PHP页面是';t存储cookie


PHP Page isn't storing cookies

我是php的新手,正在制作一个基本的登录脚本。我只想登录并存储我的user_id的cookie。它适用于我的所有其他页面,除了我的索引页面,它在一个目录上。

所以在我的索引页面上,我有这样的if语句:

<?php
if (!isset($_COOKIE['user_id'])) {
    sign_in();
} else {
    echo "You're already logged in!";
}
?>

无论我做什么,sign_();函数总是显示。

但关键是:在我的登录脚本中,整个过程就像我成功登录一样。我使用将其发送回此页面

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

(它在一个目录上)然而,当我让它链接到同一目录中的页面时,它会注册cookie,一切都很好。

header("Location: show_user.php");

如果你想亲自观看,你可以去http://patti-bee2.dcccd.edu/coleman/wonder%20penguin/php/signup.php来开立您的账户。和http://patti-bee2.dcccd.edu/coleman/wonder%20penguin/php/show_user.php查看它。注意索引页面没有注册cookie。

我是如何设置cookie的:

if (isset($_POST['usernamelogin'])) {
        $user_login = $_REQUEST['usernamelogin'];
        $pass_login = $_REQUEST['passwordlogin'];
        $pass_login = trim(crypt($pass_login, $user_login));
        $login_query = sprintf("SELECT username, user_id FROM user WHERE username = '%s' and password = '%s';", mysql_real_escape_string($user_login), mysql_real_escape_string($pass_login));
        $loginresult = mysql_query($login_query, $dbConn);
        echo $login_query;
        if (mysql_num_rows($loginresult) == 1) {
        $userinfo = mysql_fetch_array($loginresult);
        $username = $userinfo['username'];
        $userid = $userinfo['user_id'];
        setcookie('username', $username);
        setcookie('user_id', $userid);
        header("Location: show_user.php");
        exit();
        } else {
            echo "Couldn't find your account!";
        }
    }

请原谅我未经修改的页面和业余爱好者的错误。我有很多东西要学。

有什么想法吗?

谢谢你抽出时间。

检查您是否有带有以下的cookie

<?php
var_dump($_COOKIE);
//if (!isset($_COOKIE['user_id'])) 
if (empty($_COOKIE['user_id'])) 
{
    sign_in();
} 
else {
    echo "You're already logged in!";
}
?>