2011-08-07 124 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