我有以下功能設置Cookie和兩會:
function validateUser($username) {
session_regenerate_id();
$_SESSION['valid'] = 1;
$_SESSION['username'] = $username;
setcookie('username2',$username,time()+60*60*24*365,'/');
header("Location: ../new.php");
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);
但是,在test.php
上,爲了調試目的,我添加了echo $_COOKIE['username2']; exit();
。但是,cookie每次都是作爲jason(兩個用戶之一)出現。不管是誰登錄。
希望這是有道理的。
重複:http://stackoverflow.com/questions/6970754/why-are-my-cookies-not-setting http://stackoverflow.com/questions/6974379/cookie-and-session-errors –
你是1)實際調用函數'validateUser()'? 2)在調用'validateUser()'的頁面上調用'session_start()'? –
哪裏可以獲得用戶名?如果登錄錯誤,您會在哪裏取消設置Cookie,即使登錄錯誤,您是否設置了Cookie?你有沒有嘗試清除你的cookies和用一些'var_dump()'和'die()'調試更多的高級代碼沒有太大的錯誤... –