首先抱歉可能有重複。我注意到那裏有很多問題,並且我讀了很多不同的答案。似乎可能有幾個原因讓會話變量不起作用,但給出的答案中沒有一個對我有用。這就是爲什麼我打開另一個問題,並希望你能幫助我。IE和Firefox既不讀取也不刪除php會話變量
我創建了我的Apache2 web服務器以下兩個PHP文件(位於命名爲「ASC-OpenLDAP的」在OpenSuse 13.2虛擬服務器上)
的第一個文件創建會話變量。
test1.php:
<?php
session_start();
$_SESSION['test'] = 'test';
header('Location: test2.php');
exit();
?>
第二個文件應讀取會話變量和創建輸出。
test2.php:
<?php
session_start();
echo("Test: " . $_SESSION['test']);
session_unset();
session_destroy();
exit();
?>
到目前爲止,我已經測試了PROGRAMM在一些瀏覽器。 Vivaldi 1.8正確顯示test2.php中會話變量的內容,而Internet Explorer 11和Firefox 51則不會。
當然cookies是在三種瀏覽器中激活的。
我還檢查了session.save_path中的會話變量文件。所有瀏覽器都會在服務器上生成會話文件。該文件的內容始終爲test|s:4:"test";
。但是,只有Vivaldi能夠刪除test2.php中的文件。
正如我PROGRAMM會成爲最終用戶工具,我需要使它的兼容和DAU保存成爲可能。 請幫幫我。
沒有數據存儲在瀏覽器中,它都存儲在服務器端。存儲在瀏覽器中的所有內容都是包含會話ID的cookie。如果某些瀏覽器無法在會話中顯示數據,那麼他們可能不會存儲會話ID cookie,可能是由於您在瀏覽器中設置的cookie政策。 Firefox有一個控制檯,可以向您顯示諸如服務器發送的cookie以及作爲請求的一部分發送的cookie等內容,可能值得檢查以查看會話cookie的情況。 – GordonM
是的。這就是我檢查它的原因。會話日期與每個瀏覽器一起存儲在服務器上,並具有正確的內容。 Firefox控制檯說:'Set-Cookie:'PHPSESSID = 8c5hskk514dlkmpvn16k1mvn41sifcrmnnaadcoofsr979hlkpt1; path =/var/lib/php5 /''我認爲問題更多的在於訪問已存儲的數據,因爲讀取和刪除不適用於IE和Firefox。 – G4schberle
使用Chrome 56時,它也無法正常工作。與Firefox和IE相同的問題。 – G4schberle