可以';t使用ssl读取php中的cookie


Can't read cookies in php using ssl

我正在www.mysite.com/CookieTest.PHP中用PHP设置cookie,如下所示:

setcookie( "test", "value", time( ) + 259200000, "/" );

它运行良好,我可以在Chrome的设置中看到cookie。然后,我试着阅读www.mysite.com/Login.php中的cookie,如下所示:

if( isset( $_COOKIE[ "test" ] ) == false )
{
    echo "error";
}

它可以很好地使用http,但不能使用https。以上总是返回false,当我尝试时

print_r( $_COOKIE );

它打印一个空数组,尽管我可以在Chrome中看到我的网站域上设置了5个其他cookie。

我在jquery中使用ajax,使用https向CookieTest.php和Login.php发出请求。我已经设置了Access Control Allow Origin标头,我没有收到关于原点的错误,所以我认为这不是问题所在。

除非您在设置cookie时使用secure标志,否则您的cookie应同时使用http和https发送。

在这两种情况下,你需要仔细检查你的域名是否完全相同。例如,如果在设置cookie时未使用http://www.yourdomain/(带www.),而在尝试读取cookie时没有使用https://yourdomain/(不带www.),请进行检查。