Salutations ! J'ai réalisé le mini-chat demandé par Openclassrooms en 20 minutes, mais ensuite ils me demandent d'aller plus loin en enregistrant le pseudo de la personne dans un cookie.
Lien : http://fr.openclassrooms.com/informatique/cours/concevez-votre-site-web-avec-php-et-mysql/tp-un-mini-chat
Et je galère comme un fou dessus. J'ai ajouté un cookie via
<?php setcookie('pseudonyme', $_POST["pseudo"], time() + 365*24*3600, null, null, false, true); ?>
Ensuite j'essaye "d'écrire" grâce à la BDD le cookie suivit du message grâce à
$req = $bdd->prepare('INSERT INTO minichat(pseudo,message) VALUES(?, ?)');
$req->execute(array(htmlspecialchars($_COOKIE["pse
udo"]),
htmlspecialchars($_POST["message"])));
Mais, ça n'affecte absolument RIEN au chat. On met un pseudo, un message et ça l'envoie. Mais si on remet un message sans le pseudo, le pseudo devient " (vide) " et donc le cookie n'est-il pas lu j'imagine ?
Si c'est un peu flou n'hésitez pas à me demander des explications à propos de certains points.
Voici mes 2 fichiers :
testminichatauto.php
<!doctype html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="minichat.css" />
</head>
<body>
<form action="testminichatauto1.php" method="POST"><p>Pseudo : <input type="text" name="pseudo">
Message : <input type="text" name="message"> <input type="submit"></p>
</form>
<div id="chat">
<?php $bdd = new PDO("mysql:host=localhost;dbname=test", "root", "", array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
$reponse = $bdd->query('SELECT * FROM minichat ORDER BY id DESC LIMIT 10');
while ($donnees = $reponse->fetch())
{
echo "<p>" . $donnees["pseudo"] . " : " . $donnees["message"] . "</p>";
}?></div>
</body>
</html>
testminichatauto1.php
<?php setcookie('pseudonyme', $_POST["pseudo"], time() + 365*24*3600, null, null, false, true); ?>
<!doctype html>
<html>
<head>
</head>
<body>
<?php
$pseudo = $_COOKIE["pseudonyme"];
$message = $_POST["message"];
$bdd = new PDO("mysql:host=localhost;dbname=test", "root", "", array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
$req = $bdd->prepare('INSERT INTO minichat(pseudo,message) VALUES(?, ?)');
$req->execute(array(htmlspecialchars($_COOKIE["pse
udo"]),
htmlspecialchars($_POST["message"])));
header('Location: testminichatauto.php');
?>
</body>
</html>
Votre aide me serait vraiment utile, merci d'avance. 