在用户登录并验证其密码后,我需要将其用户名存储在cookie中。当密码在看起来像if ( $password_match == $user_login_password ) {...的部分中成功验证时,我尝试简单地添加setcookie(),但由于某些原因,它似乎不起作用。当用户使用正确的密码/用户名成功登录时,我无法设置cookies。是不是有什么原因不能从函数内部设置can?
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;
}
}发布于 2012-03-30 12:57:41
啊我拿到了。setcookie的协议限制,我试着在标签之后设置它。感谢每一个看过的人,我应该更好地阅读文档。抱歉的!
发布于 2012-03-30 12:49:43
我会这样做:
function mysetcookie($name, $value, $timestamp=null, $directory='/') {
return setcookie($name, $value, time()+$timestamp, $directory);
}我会使用mysetcookie()而不是setcookie() :),我会考虑阅读下面的内容:
http://php.net/manual/en/function.setcookie.php
https://stackoverflow.com/questions/9937085
复制相似问题