Safari、Opera 和 IE 中的 PHP session 问题

标签 php session

通过 SSL。在 Chrome/Firefox 中工作,但对 Opera/Safari/IE 的 sessionTestVariable 显示空值:

<? // https://mydomain.com/setSession.php
session_cache_limiter( 'nocache' );
session_set_cookie_params("899", "/", ".mydomain.com");
session_start();
unset($_SESSION['sessionTestVariable']);

// Set sessionTestVariable
$_SESSION['sessionTestVariable'] = "some string";
header("Cache-Control: no-cache, must-revalidate, post-check=3600, pre-check=3600"); // CacheBusting
header("Location: http://mydomain2.com/testSession.php");
exit; // this *should* fix the problem but does not
?>

////////////

<? // http://mydomain2.com/testSession.php
echo "Testing to see if we can trigger the session from mydomain.com";
echo "<script type=\"text/javascript\" src=\"https://mydomain.com/triggerCookie.php\">";
?>

////////////

<? // https://mydomain.com/triggerCookie.php
session_cache_limiter( 'nocache' );
session_set_cookie_params("899", "/", ".mydomain.com");
session_start();

// Set sessionTestVariable
echo "alert('session: " . $_SESSION['sessionTestVariable'] . "');";
session_destroy();
?>

最佳答案

我能够解决这个问题。答案在于称为 P3P 的协议(protocol)。

我加了

header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');

就在

session_start()

有效!

关于Safari、Opera 和 IE 中的 PHP session 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3393674/

相关文章:

php - 播种机命令不工作 Laravel 5.4

php - PHP : Output current script name

php - 通过 SOAP 检索数据并将其发送到 MYSQL 数据库

php - Codeigniter - 如果用户在数据库中创建了条目,则仅允许用户从数据库中删除

php - 在 symfony 中测试 session

php - Blade 和 Twig 之间的区别

ruby-on-rails - 给定 session key 和 secret ,我们如何解密 Rails cookies?

php - PDO 对象可以存储在 session 中吗?

php - 在同一页面上提交表单时如何预填充下拉列表?

mysql - .Net session ,如何获取数据