2011-08-07 4 views
1

Possible en double:
Why are my cookies not setting?Les cookies ne conservent pas de valeur?

J'ai la fonction suivante pour définir un cookie et deux sessions:

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(); 
} 

Lorsque la fonction est appelée:

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); 

Toutefois, sur test.php j'ai ajouté echo $_COOKIE['username2']; exit(); à des fins de débogage. Cependant, le cookie apparaît comme jason, l'un des deux utilisateurs, à chaque fois. Peu importe qui est connecté.

Espérons que cela a du sens.

+0

doubles: http://stackoverflow.com/questions/6970754/pourquoi-sont-mes-cookies-non-réglage http://stackoverflow.com/questions/6974379/cookie-and-session-errors –

+0

Êtes-vous 1) en train d'appeler la fonction 'validateUser()'? 2) appeler 'session_start()' sur la page qui appelle 'validateUser()'? –

+0

Où est-ce que vous obtenez le nom d'utilisateur et où désinstallez-vous le cookie si la connexion est incorrecte, configurez-vous le cookie même si la connexion est incorrecte? avez-vous essayé d'effacer vos cookies et déboguer abit plus avec quelques 'var_dump()' et 'die()' il n'y a pas beaucoup de mal avec le code ci-dessus ... –

Répondre

0

Ne pas oublié de

session_start() 

dans votre new.php

et d'appeler vos

validateUser() 

fonction

+0

Ne dois-je pas seulement valider l'utilisateur une fois, quand ils se connectent? Je veux seulement mettre toutes ces données une fois – Jason

+0

Regardez ma modification récente. – Jason

+0

@Jason: 1. Ne sauvegardez pas le mot de passe de l'utilisateur dans les cookies 2.add else, êtes-vous sûr que cela se passe dans la dernière instruction if if? – genesis

Questions connexes