我是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!";
}
?>