猿问

为什么我的cookie没有设置?

我有以下PHP函数:


function validateUser($username){

    session_regenerate_id (); 

    $_SESSION['valid'] = 1;

    $_SESSION['username'] = $username;

    setcookie('username2',$username,time()+60*60*24*365);

    header("Location: ../new.php");

}

然后,我获取Cookie:


echo $_COOKIE['username2']; exit();


(我仅exit()出于调试目的而放置)


唯一的问题,它变得空白。有任何想法吗?


更新: 这是该函数的调用方式:


    if(mysql_num_rows($queryreg) != 0){

    $row = mysql_fetch_array($queryreg,MYSQL_ASSOC);

    $hash = hash('sha256', $row['salt'] . hash('sha256', $password));

    if($hash == $row['password']) {

        if($row['confirm'] == 1){

            if(isset($remember)){

                setcookie('username',$username,time()+60*60*24*365);

                setcookie('password',$password,time()+60*60*24*365);

            } else {

                setcookie('username','',time()-3600);

                setcookie('password','',time()-3600);

            }

            validateUser($username);

我没有包括所有if()语句以节省一些空间。


qq_遁去的一_1
浏览 610回答 3
3回答

富国沪深

尝试添加path = /,以使Cookie不仅适用于当前目录,而且适用于整个网站(之前使我陷入困境的目录)例setcookie('password',$password,time()+60*60*24*365, '/'); 还要确保cookie是php手册中建议的输出的第一件事(这也使我很困惑)与其他标头一样,必须在脚本的任何输出之前发送cookie(这是协议限制)。
随时随地看视频慕课网APP
我要回答