récupérer la variable pseudo d'une table msql via un cookie ou une session
Bonjour,
je suis débutant en php et je développe un chat qui permet d'incrémenter des messages et des pseudos dans une base de données msql via un formulaire - jusque là, pas de problème.
Je souhaiterais créer une session / un cookie qui conserve le pseudo de l'utilisateur après l'envoi d'un premier message et l'affiche dans le champ de pseudo ; et là, je n'y arrive pas ... ça fait 3 jours que je m'échine sur ce problème sans trouver de solution ...
Quelqu'un pourrait-il venir à mon aide ?
Par avance merci.
1 pièce(s) jointe(s)
Bonjour THES32 et Grand Merci !!!
Et bien voilà, mon chat est constitué de deux pages.
Voici les codes de mes pages - en pièce jointes également car je n'ai pas trouvé le bouton </> qui permet un affichage propre ... mes excuses ...
Page 01 :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| <?php
$temps = 365*24*5500;
setcookie ("pseudo", "LA GLOBULE", time() + $temps);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Mini-chat</title>
</head>
<style>
form
{
text-align:center;
}
</style>
<body>
<form action="minichat_post_Cookie.php" method="post">
<p>
<label for="pseudo">Pseudo</label> : <input type="text" name="pseudo" id="pseudo" value="'<?php if (isset($_COOKIE['pseudo'])) {echo $_COOKIE['pseudo'];} ?> '" /><br />
<label for="message">Message</label> : <input type="text" name="message" id="message" /><br />
<input type="submit" value="Envoyer" />
</p>
</form>
<?php
// Connexion à la base de données
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
// Récupération des 10 derniers messages
$reponse = $bdd->query('SELECT DATE_FORMAT(date, \'le %d/%m/%Y à %Hh%imin%ss\') AS date_creation, pseudo, message FROM minichat_ameliore ORDER BY ID DESC LIMIT 0, 10');
// Affichage de chaque message (toutes les données sont protégées par htmlspecialchars)
while ($donnees = $reponse->fetch())
{
echo '<p>' . $donnees['date_creation'] . ' <strong>' . htmlspecialchars($donnees['pseudo']) . '</strong> : ' . htmlspecialchars($donnees['message']) . '</p>';
}
$reponse->closeCursor();
?>
</body>
</html> |
Page 02 :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <?php
// Connexion à la base de données
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$date_creation_fr =
// Insertion du message à l'aide d'une requête préparée
$req = $bdd->prepare('INSERT INTO minichat_ameliore (pseudo, message, date) VALUES(?, ?, NOW())');
$req->execute(array($_POST['pseudo'], $_POST['message']));
// Redirection du visiteur vers la page du minichat
header('Location: Minichat_Cookie.php');
?> |
Bonjour THES32 et Grand Merci !!! Suite
Mon problème est que je voudrais qu'après avoir émis un commentaire qui est enregistré dans la base sql via le formulaire de la première page, le pseudo de l'auteur du message soit affiché dans le champs "Pseudo" du formulaire, toujours en première page - puisque ma seconde page renvoie automatiquement sur le première pour affichage du message ...
J'espère avoir été clair.
Je suis débutant en php, je ne vois pas bien comment récupérer le pseudo sur la base de données ... On m'a dit que cela ne se pouvait pas en SQL et qu'il fallait créer un troisième page - avant ma page de chat - qui permette de mettre en place une session ...
Vas-tu dans ce sens ?
Merci pour ton avis. ;)
Toute petite dernière question ....
Jreau, juste pour ma curiosité, aurait-il été possible de réaliser la même chose avec un cookie ?
Merci encore pour ta piste et pour cette possible réponse.