首先抱歉可能有重复。我注意到那里有很多问题,并且我读了很多不同的答案。似乎可能有几个原因让会话变量不起作用,但给出的答案中没有一个对我有用。这就是为什么我打开另一个问题,并希望你能帮助我。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