Cookie适用于Chrome,但不适用于IE或Safari?

时间:2013-12-23 01:16:25

标签: php mysql sql cookies browser

我在登录系统中使用cookie,系统可以在Chrome上运行,但是当我进入IE或Safari时,它无效。由于某些原因,没有设置cookie,我试图回应它们无济于事。

以下是制作Cookie的代码:

if(isset($_POST['log_in_iniator'])){
    $username = $_POST['username'];
    $password = $_POST['password'];
    $log_in_checker_status = check_user_data($username, $password);
    if($log_in_checker_status == 'true'){
        //user has successfully logged in, create two cookies
        //cookie 1 username
        setcookie('username', $username, 0, 'http://shkeek.com');
        setcookie('loginstatus', 'true', 0, 'http://shkeek.com');
        header("Location: index.php");
    }else{
        setcookie('loginstatus', 'invalid', 0);
        header("Location: index.php");
    }
}

1 个答案:

答案 0 :(得分:2)

变化:

 setcookie('username', $username, 0, 'http://shkeek.com');

要:

 setcookie('username', $username, (24*60*60), '/');

或:(见下文)

 setcookie('username', $username, (24*60*60), '/', '.shkeek.com');

为什么:

您将“过期”时间设置为0秒。因此,Chrome正在制作一个“会话”cookie(当您关闭浏览器时将会过期),IE和FF将完全按照您的要求进行操作 - 使任何匹配的cookie过期。

(24*60*60)是“有一天”; 24小时* 60小时*从现在起60秒。

对于“域路径”部分,您只需要为当前服务器和服务器路径设置“/”。

如果您为该网站支持多个子域,请改用'/', '.shkeek.com'。然后,您支持www.shkeek.comshkeek.comimg.shkeek.com以及.shkeek.com的任何其他子域。

有关详细信息,请查看PHP docs