这是我在这里的第一个问题(原谅我,如果我做了任何愚蠢的事情)。我真的很喜欢这个论坛并且是常客。
好吧,我在iis服务器上有一个登录脚本,它在Chrome,Mozilla,Opera上没有任何问题,但在Safari和IE上没有任何问题(下面是相同的代码行):
网站/登录/ login.php中
session_start();
$_SESSION['signed_in'] = true; //i checked $_SESSION['signed_in'] here and it is "1".
session_write_close();
header("Location: ../dashboard.php");exit;
网站/ dashboard.php
session_start();
if($_SESSION['signed_in'] != true)
{
// well $_SESSION['signed_in'] is empty :-( and goes back to index.
header("Location: index.php");exit;
}
编辑:
嗨,我刚刚发现IE和Safari不允许使用cookies(它说饼干被阻止),当我更改设置并允许它在浏览器中使用时,但它不是一个合适的解决方案,因为它不会有任何意义我需要让所有访问者在他们的浏览器上允许cookie。 请帮忙: - (
答案 0 :(得分:0)
在网站上遇到同样的问题。 IE和Safari可能会将您的cookie检测为第三方cookie。您必须解决此问题或添加P3P隐私政策。
如果你谷歌的话,你会发现这种P3P的不同例子。它只是在header()中设置的一条短线。你只需要根据自己的需要进行调整。
编辑:也许你可以通过重组代码解决问题:的login.html
<form action="dashboard.php" method="post">
<input ...>
</form>
dashboard.php
<?php
required_once('login_validation.php');
if($_SESSION['signed_in'] != true)
{
header("Location: index.php");exit;
}
//do stuff to show normal dashboard
login_validation.php
$valdiate=//validation stuff
if ($valdiate) {
session_start();
$_SESSION['signed_in'] = true;
session_write_close();
}