用户登录并验证密码后,我需要将其用户名存储在Cookie中。我尝试在setcookie()
部分成功验证密码时添加if ( $password_match == $user_login_password ) {...
,但由于某种原因,它似乎无法正常工作。当用户使用正确的密码/用户名成功登录时,我无法设置cookie。有没有什么理由你不能从函数内部设置coco?
public function write($p) {
if ( $_POST['user_login_username'] )
$user_login_username = mysql_real_escape_string($_POST['user_login_username']);
if ( $_POST['user_login_password'] )
$password = mysql_real_escape_string($_POST['user_login_password']);
$password .= 'some_Salt';
$user_login_password = hash('sha256', $password);
} elseif ( $user_login_username && $user_login_password ) {
$q = "SELECT * FROM users WHERE username = '$user_login_username'";
$r = mysql_query($q);
if ( $r !== false && mysql_num_rows($r) > 0 ) {
while ( $a = mysql_fetch_assoc($r) ) {
$password_match = stripslashes($a['password']);
}
if ( $password_match == $user_login_password ) {
echo $this ->display_login('Correct!');
setcookie('user','some_username');
} else {
echo $this ->display_login('Wrong Password!');
}
} else {
echo $this ->display_login('That username does not exist.');
}
return;
} else {
return false;
}
}
答案 0 :(得分:1)
我这样做:
function mysetcookie($name, $value, $timestamp=null, $directory='/') {
return setcookie($name, $value, time()+$timestamp, $directory);
}
我会使用mysetcookie()
代替setcookie()
:)而且我会考虑阅读此内容:
答案 1 :(得分:0)
啊,我明白了。使用setcookie限制协议,我试图在标签之后设置它。感谢所有看过的人,我应该更好地阅读文档。遗憾!