Comprend pas, fonctionne pas setcookie

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Comprend pas, fonctionne pas setcookie

par Ryle » 28 mai 2009, 16:46

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'];
}

par Nicost » 28 mai 2009, 12:47

Un petit up !
Merci...

par Nicost » 26 mai 2009, 09:38

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']))
{
}
?>

par stopher » 25 mai 2009, 18:47

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.

par thehawk » 25 mai 2009, 18:24

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.

par Nicost » 25 mai 2009, 18:17

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.

par thehawk » 25 mai 2009, 18:02

tu as pas désactivé les cookies dans ton naviguateur ?

par Nicost » 25 mai 2009, 16:56

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

par enneite » 25 mai 2009, 16:39

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...

Comprend pas, fonctionne pas setcookie

par Nicost » 25 mai 2009, 14:55

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> ';
          }
          }
}
?>