Cookie

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 : Cookie

Re: Cookie

par Thibaut47 » 11 juil. 2011, 12:45

Voici mon code est ça ne fonctionne toujours pas. Ma page affiche de nombreuses erreurs.

Code : Tout sélectionner

<?php $pseudo = $_POST['pseudo']; setcookie('pseudo', $_POST['pseudo'] , time() + 365*24*3600, null, null, false, true); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title> Bienvenue sur le minichat! </title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <form method="post" action="minichat_post.php"> <p> <label for="pseudo">Pseudo</label> : <input type="text" name="pseudo" id="pseudo" value="<?php echo $_COOKIE['pseudo']; ?>" /><br /> <label for="message">Message</label> : <input type="text" name="message" id="message" /><br /> <input type="submit" value="Envoyer" /> </p> </form> <p> </p> </br> <?php try { $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options); $reponse = $bdd->query('SELECT pseudo, message FROM minichat ORDER BY ID DESC LIMIT 0,10'); while ($donnees = $reponse->fetch()) { echo '<p><strong>' . htmlspecialchars($donnees['pseudo']) . '</strong> : ' . htmlspecialchars($donnees['message']) . '</p>'; } $reponse->closeCursor(); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } ?> </body> </html>

Re: Cookie

par Thibaut47 » 11 juil. 2011, 12:42

Ok merci je vais essayer cela.

Re: Cookie

par Ryle » 11 juil. 2011, 12:38

Qu'est ce qui ne fonctionne pas ?

En effet, dans ton code tu créer un cookie, mais tu n'en fais rien par la suite, pas plus que tu n'utilises la valeur de $pseudo que tu as récupéré du formulaire...

Si tu veux ré-exploiter la valeur envoyée comme valeur par défaut de ton champ pseudo, il faut le spécifier dans l'attribut value de ton champ :
<input ... value="<?php echo $pseudo; ?>" />
Pour récupérer la valeur placée dans un cookie, on utilise la super globale $_COOKIE (donc dans ton cas $_COOKIE['pseudo']).
<input ... value="<?php echo $_COOKIE['pseudo']; ?>" />
Attention cependant, lorsque tu définis un cookie dans une page, celui-ci n'est accessible qu'au prochain chargement d'une page. Dans la logique, il faudrait dans ton traitement déterminer le pseudo de la façon suivante :

Code : Tout sélectionner

SI un pseudo est envoyé par le formulaire utiliser le pseudo du formulaire le stocker dans un cookie SINON SI un cookie est défini utiliser le pseudo du cookie FINSI FINSI

Cookie

par Thibaut47 » 11 juil. 2011, 12:17

Bonjour à tous j'aimerais intégrer un cookie qui récupère le pseudo d'un utilisateur dans un minichat et qui le met en valeur initiale quand il veut rechater. Voici mon code car ça ne fonctionne pas. Je précise je suis débutant et j'aimerais que vous m'aidiez à trouver l'erreur.

Code : Tout sélectionner

<?php $pseudo = $_POST['pseudo']; setcookie('pseudo', $_POST['pseudo'] , time() + 365*24*3600, null, null, false, true); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title> Bienvenue sur le minichat! </title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <form method="post" action="minichat_post.php"> <p> <label for="pseudo">Pseudo</label> : <input type="text" name="pseudo" id="pseudo" value= /><br /> <label for="message">Message</label> : <input type="text" name="message" id="message" /><br /> <input type="submit" value="Envoyer" /> </p> </form> <p> </p> </br> <?php try { $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options); $reponse = $bdd->query('SELECT pseudo, message FROM minichat ORDER BY ID DESC LIMIT 0,10'); while ($donnees = $reponse->fetch()) { echo '<p><strong>' . htmlspecialchars($donnees['pseudo']) . '</strong> : ' . htmlspecialchars($donnees['message']) . '</p>'; } $reponse->closeCursor(); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } ?> </body> </html>