2011-08-07 66 views
1

可能重複:
Why are my cookies not setting?Cookie不保留價值?

我有以下功能設置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(兩個用戶之一)出現。不管是誰登錄。

希望這是有道理的。

+0

重複:http://stackoverflow.com/questions/6970754/why-are-my-cookies-not-setting http://stackoverflow.com/questions/6974379/cookie-and-session-errors –

+0

你是1)實際調用函數'validateUser()'? 2)在調用'validateUser()'的頁面上調用'session_start()'? –

+0

哪裏可以獲得用戶名?如果登錄錯誤,您會在哪裏取消設置Cookie,即使登錄錯誤,您是否設置了Cookie?你有沒有嘗試清除你的cookies和用一些'var_dump()'和'die()'調試更多的高級代碼沒有太大的錯誤... –

回答

0

不要忘了

session_start() 

在new.php

,並打電話給你

validateUser() 

功能

+0

我不需要僅在用戶登錄時驗證一次用戶嗎?我只想設置所有這些數據一次 – Jason

+0

看看我最近的編輯。 – Jason

+0

@Jason:1.不要將用戶的密碼保存到cookie中2.另外,如果聲明是否確定最後會顯示? – genesis