Php Prob d'écriture et de lecture d'un cookie

Résolu/Fermé
Noviceman Messages postés 222 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 2 mars 2016 - Modifié par Noviceman le 4/08/2010 à 16:20
Noviceman Messages postés 222 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 2 mars 2016 - 5 août 2010 à 18:23
Bonjour,
Je patauge plus qu'un peu sur les cookies...
Comme vous pouvez voir, j'ai avancé dans mes scripts et je voudrais arriver à finir comme je l'ai pensé, même si il y a sûrement mieux à faire (?)=>(sessions) mais je voudrais vraiment terminer, car j'apprends comme ça...
Voila, je fais un min-chat sans DB avec 4 fichiers (les voici; les voila)

Fichier1.php ouvre le fichier texte.txt envoie et enregistre le nom du pseudo choisi par le visiteur (pas de prob, fonctionne)
Fichier2.php identifie le pseudo que tappe le visiteur après inscription et le redirige via le lien qui s' affiche si validation vers le fichier 3 (pas de prob, fonctionne)
Fichier3.php ouvre le textarea pour poster le commentaire et affiche les autres commentaires. (pas de prob, fonctionne)
(fichier4.txt liste des inscrits)
Là où ça se complique :
J'envois le pseudo du fichier2.php vers le fichier3.php avec : <a href="fichiers3.php?pseudo=<?php echo $pseudo; ?>">Vers la page 3</a> ...
Dans le fichier3.php je récupère le pseudo et avec echo il s'affiche. (ça fonctionne)

Mon problème est que je voudrais mémoriser le pseudo du visiteur dans un cookie et que ce cookie donne le pseudo en toutes lettres à chaque post de commentaire. Alors que jusqu'à présent, il ne le donne qu'au premier post, vu que le pseudo n'est plus renvoyé par le lien <a href... noté au dessus.
D'où la nécessité pour moi de rentrer le pseudo dans un cookie, afin qu'il le conserve tant que le navigateur est allumé et qu'il donne ainsi le pseudo à chaque fois que le visiteur inscrit poste un commentaire...
J'avoue que je ne sais pas comment faire pour enregistrer dans le cookie le pseudo (via le lien <a href="????.php?pseudo=<?php echo $pseudo; ?>">Vers le cookie</a>) et comment le récupérer pour qu'il affiche le pseudo du visiteur à chaque fois qu'il poste...
j'ai essayé et lu des articles sur les cookies (manuel php, phpFrance, etc...), mais je n'y arrive pas...
Si vous voulez bien m'aider...
(Ne tirez pas sur le pianiste, lol...)
Merci
A voir également:

6 réponses

Bonjour,
Une manière simple je pense de faire des cookies :

Tout d'abord sur la première page la personne rentre son pseudo dans un formulaire du type :

<form action="log.php" method="post">
		 <div class="line" >
<p>Pseudo: </p>
<input type="text" class="sign" name="TB_Nom_Utilisateur" /></div>
		
<input type="submit" name="BT_Envoyer" value="ok" />
	</form>



Lorsqu'il va cliquer sur ok, il va être renvoyé sur la page log.php (qui peut être la seconde page)
Son pseudo sera mémorisé dans $_POST["BT_Envoyer"]

Là setcookie va servir à créer le cookie de cette façon
setcookie (le nom du cookie, la valeur du cookie, la date d'expiration)

     
if(isset($_POST["BT_Envoyer"]))
     {
                $message = "Bienvenue" . $_POST["TB_Nom_Utilisateur"];


                                   // Définition du temps d'expiration des cookies
                                   $expiration =  90 * 24 * 60 * 60;
                                   
                                   // Création des cookies
                        
                                   setcookie("NOM_UTILISATEUR",$_POST["TB_Nom_Utilisateur"], $expiration, "/");
                                                  
          }
          


pour $expiration il suffit de mettre un nombre assez grand ( ici 90 jours )

ensuite pour servir le cookie il suffit d'un petit
$_COOKIE["NOM_UTILISATEUR"];
0
Noviceman Messages postés 222 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 2 mars 2016 7
4 août 2010 à 17:38
Merci Matthieu d'avoir pris le temps.
Ok, j'essais ça dès que possible et je te dis !
@+ !
0
Leviathan49 Messages postés 257 Date d'inscription jeudi 10 juin 2010 Statut Membre Dernière intervention 22 juillet 2011 70
4 août 2010 à 17:43
Tu peux aussi garder le pseudo dans un variable de session si tu ne veux pas utiliser les cookies :
https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/913348-variables-superglobales#ss_part_3
0
Noviceman Messages postés 222 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 2 mars 2016 7
4 août 2010 à 18:02
@ Leviathan49, Oui, ce sera ma prochaine étape...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Noviceman Messages postés 222 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 2 mars 2016 7
5 août 2010 à 17:28
@Mathieu, je sais pas si j'ai tout compris, mais ça me donne 2 champs à remplir :
<input type="text" class="sign" name="TB_Nom_Utilisateur" /></div>
et
<input type="submit" name="BT_Envoyer" value="ok" />
Et quand j'appel le cookie ça m'inscrit une erreur php ou
$_COOKIE["NOM_UTILISATEUR"];
avec
<?php echo '["TB_Nom_Utilisateur"], $expiration, "/")'; ?>
avec
echo '<div style="text-align:left">'.$_COOKIE["NOM_UTILISATEUR"].';
ne donne rien.
Evidemment mon désir était de pouvoir écrire le nom de l'utilisateur sur le message posté et aussi sur la page ...

EDIT j'ai trouvé ce post qui peut intéresser...:
https://forums.commentcamarche.net/forum/affich-6802903-cookie-aide-svp
0
Noviceman Messages postés 222 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 2 mars 2016 7
Modifié par Noviceman le 5/08/2010 à 18:25
Bon, en mélangeant plusieurs infos j'en suis arrivé à cette solution (si ça intéresse mettez moi un petit +, lol, ça fait tjrs plaisir...)

page1.php(ou .html)
<html>
<body>
Votre nom :
<form action="page2.php" method="POST">
<input name="user_name" type="text" /><br>
<input name="envoyer" type="submit" value="Envoyer" />
</form>
<a href="page2.php">page 2</a>
</body>
</html>

page2.php
<?php header('Location: page3.php'); ?>
<?php
setcookie('name',$_POST['user_name'],time()+36000);
?>
<html>
<a href="page3.php">page 3</a>
</html>

page3.php
<?php
echo "Bonjour ! ";
// Afficher un cookie
echo $_COOKIE["TestCookie"];
echo $HTTP_COOKIE_VARS["TestCookie"];
print_r($_COOKIE);
?>

Reste plus qu'à sécuriser mieux et à insérer dans son code, quoique, je ne vois pas pourquoi le résultat sort avec "Array"... Là, on peut encore m'éclairer...
@+
0