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.
doubles: http://stackoverflow.com/questions/6970754/pourquoi-sont-mes-cookies-non-réglage http://stackoverflow.com/questions/6974379/cookie-and-session-errors –
Êtes-vous 1) en train d'appeler la fonction 'validateUser()'? 2) appeler 'session_start()' sur la page qui appelle 'validateUser()'? –
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 ... –