使用cookie_lifetime的IE / Edge会话cookie问题

时间:2017-03-27 14:01:52

标签: php internet-explorer cookies microsoft-edge

由于几天(至少我知道),我无法使用Internet Explorer或Edge登录我的网站。登录确实可以使用Firefox和Chrome!我也见过其他计算机上的问题,表明它不是本地浏览器问题。

我知道IE / Edge默默地从子域中带有_的域中删除cookie,但是在我的情况下没有。

在分配了汗水和痛苦之后,我已经将脚本减少到最低限度来复制问题。

我也发现了问题,但我没有真正的解决方案。

<?PHP
    ini_set( 'session.cookie_lifetime', '3600' );

    if( session_id() == '' )
        session_start( );

    $i = 1;
    if( isset( $_POST['logout'] ) ) {
        unset( $_SESSION['loggedin' . $i] );
        session_destroy();
        header( 'Location: http://jbtje.com/test' . $i . '.php' );
    }
    if( isset( $_POST['login'] ) ) {
        $_SESSION['loggedin' . $i] = 'LOGGED IN: ' . $i;
        header( 'Location: http://jbtje.com/test' . $i . '.php' );
    }
?><!DOCTYPE html>
<html>
<head>
<title>TEST <?PHP $i ?></title>
</head>
<body>
<?PHP echo 'You are currently ' . (isset($_SESSION['loggedin' . $i]) ? $_SESSION['loggedin' . $i] : 'not logged in ' . $i); ?>
<form method="POST"><input type="submit" name="login" value="login" /></form>
<form method="POST"><input type="submit" name="logout" value="logout" /></form>

</body>
</html>

测试网站:http://jbtje.com/test1.php

如果按下登录按钮,文本应更改为&#34;您当前正在登录&#34;。但是,它没有。

如果您评论ini_set行,(并将$ i更改为2): http://jbtje.com/test2.php 确实工作....

为什么使用PHP设置cookie_lifetime导致IE和Edge不存储cookie? (以及如何解决这个问题......?)

祝你好运, 杰弗里

0 个答案:

没有答案