Page 1 sur 1

Comprend pas, fonctionne pas setcookie

Posté : 25 mai 2009, 14:55
par Nicost
Bonjour,
J'arrive pas a comprendre pourquoi le setcookie ne s'enregistre pas.
J'essai de garder le pseudo et mot de pass du membre dans un cookie, malgrer mes multiple tantative, aucun moyen d'y arriver.
Vous avez peut être une idée sur la question, merci de votre aide !

Ma page connection.php
L'utilisateur entre son pseudo et mot de pass.
Il active se souvenir.
<?php
session_start();
include("includes/identifiants.php");
mysql_connect($adresse, $nom, $motdepasse);
mysql_select_db($database);
//Je vérifi si le membre est pas déjà connecter.
if (isset($_SESSION['pseudo']))
{
echo '<p>Tu est déjà connecter.</p></div></body></html>';
exit();
}
?>
<form method="post" action="ok.php">
Connexion :
<p>
<label for="pseudo">Pseudo :</label><input name="pseudo" type="text" id="pseudo" /><br />
<label for="password">Mot de Passe :</label><input type="password" name="password" id="password" /><br />
</p>
<p><input type="submit" value="Connexion" /></p>
 <label>Se souvenir de moi ?</label><input type="checkbox" name="souvenir" /><br />
</form>
</div>
Ma page ok.php
Je vérifier avant si le membre a bien rentrer les bonne information et la je créer le cookie.
session_start();
if (empty($_POST['pseudo']) || empty($_POST['password']) )
{
        $message = '<p>Erreur tous les champs ne son pas rempli
        Cliquez <a href="connexion.php">ici</a> pour revenir</p>';
}
else
{
        //Acces interdit membre déjà conncté
        if (isset($_SESSION['pseudo'])) 
        {
                $message ='<p>Tu est déjà connecter</p>';
        }
        else // Autorisation ok : il reste à voir le mot de passe
        {
        include("includes/identifiants.php");
        mysql_connect($adresse, $nom, $motdepasse);
        mysql_select_db($database);
       
       
        //On protège les données
        $pseudo = mysql_real_escape_string($_POST['pseudo']);
        $password = mysql_real_escape_string($_POST['password']);
        
        $requete1 = mysql_query('SELECT membre_mdp, membre_id, membre_rang 
        FROM forum_membres WHERE membre_pseudo = "'.$pseudo.'"') 
        or die (mysql_error());
        $data1 = mysql_fetch_assoc($requete1);
 
       
        if ($data1['membre_mdp'] == md5($password)) // Acces OK !
        {
                $_SESSION['pseudo'] = $pseudo;
                $_SESSION['level'] = $data1['membre_rang'];
                $_SESSION['id'] = $data1['membre_id'];

if (isset($_POST['souvenir']))
{
$expire = time() + 365*24*3600;
setcookie('membre_id', $_SESSION['pseudo'], $expire);
setcookie('membre_mdp', $_SESSION['password'], $expire);  
}
echo '<script type="text/javascript">window.location= "index.php"</script>';
          }
          else
         // Acces pas OK ! 
      {
                $message = '<p>Erreur pendant votre identification.
                Le mot de passe ou le pseudo n est pas correcte.
                Cliquez <a href="connexion.php">ici</a> ';
          }
          }
}
?>

Posté : 25 mai 2009, 16:39
par enneite
setcookie("membre_id", $_SESSION['pseudo'], time()+ 1*365*24*60*60,"/","nomdomaine.com",0);
setcookie("membre_mdp", $_SESSION['password'], time()+ 1*365*24*60*60,"/","nomdomaine.com",0);
essaie toujours ça...

Posté : 25 mai 2009, 16:56
par Nicost
Merci de ton aide Enneite.
Il garde toujours pas le cookie.
Je me demande s'il faut pas avant faire le seetcookie dans la page connection.php

Posté : 25 mai 2009, 18:02
par thehawk
tu as pas désactivé les cookies dans ton naviguateur ?

Posté : 25 mai 2009, 18:17
par Nicost
non Thehawk !
J'arrive vraiment pas à comprendre, je suis sur que je me plante quelque part.
Le cookie se créer mais il ne garde sans doute pas le mot de pass, car des que je ferme la page internet, et que j'attend un petit 15 minute, je relance et la je suis pas reconnu.

Posté : 25 mai 2009, 18:24
par thehawk
tu as pas de données avant le session_start() ? car les cookies se font avant l'envoi des en-tetes (enfin de mémoire)

Bonne journée Hawk.

Posté : 25 mai 2009, 18:47
par stopher
Salut ,

comment vérifies tu tes cookies ?

comment sais tu qu'il ne s'enregistrent pas ou mal ?
lorsque tu réouvre ,ton navigateur , montre nous la partie de ton code qui réinjecte les données contenues dans les cookies vers la session .

Utilises tu un outil du style firebug pour pour vérifier si tes cookies sont effectivement mal enregistrés ?

Ch.

Posté : 26 mai 2009, 09:38
par Nicost
Merci à tous pour votre aide :D
Alors le cookie se créer bien, maintenant je n'est aucune idée si enregistre le mot de pass, pour le pseudo ok, j'ai fait un echo cookie et la il affiche le pseudo.
Voila comment je vérifi ensuite.
<?php
if (isset ($_COOKIE['membre_id']) && !isset ($_SESSION['pseudo']) && !isset ($_COOKIE['membre_mdp']) && !isset ($_SESSION['password']))
{
$_SESSION['pseudo'] = $_COOKIE['membre_id']; 
$_SESSION['password'] = $_COOKIE['membre_mdp'];
}
if (isset ($_COOKIE['membre_id']) && isset ($_SESSION['pseudo']) && isset ($_COOKIE['membre_mdp']) && isset ($_SESSION['membre_mdp']))
{
}
if (!isset ($_COOKIE['membre_id']) && !isset ($_SESSION['pseudo']) && !isset ($_COOKIE['membre_mdp']) && !isset ($_SESSION['password']))
{
}
?>

Posté : 28 mai 2009, 12:47
par Nicost
Un petit up !
Merci...

Posté : 28 mai 2009, 16:46
par Ryle
Ca me parait pas très logique c't'histoire....
<?php
if (isset ($_COOKIE['membre_id']) && !isset ($_SESSION['pseudo']) && !isset ($_COOKIE['membre_mdp']) && !isset ($_SESSION['password']))
{
$_SESSION['pseudo'] = $_COOKIE['membre_id'];
$_SESSION['password'] = $_COOKIE['membre_mdp'];
}