Bonsoir bonsoir!

Voilà, je pose mon idée:

Je voulais intégrer un chat sur mon site. Le visiteur arrive sur une page, qui l'invite à entrer son pseudo. Changement de page, zone de texte avec bouton 'envoyer'. Le but est que le visiteur reste loggé grace aux variables de session. En dessous de la zone de texte, un div dans lequel s'affichent les dix derniers messages, le div se refresh toutes les dix secondes.

Etant novice, j'ai deja tenté de créer un simple chat, mais rien que là ça coince. Tout va bien au début, mon formulaire s'affiche, mais aucune donnée ne va vers la BDD, et la redirection ne se fait pas. Je vous donne le code actuel, excusez le mélange php/html qui doit piquer les yeux, gardez à l'esprit que c'est un simple brouillon.

Page minichat.php

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>Mini-chat</title>
    </head>
    <style>
    form
    {
        text-align:center;
    }
    </style>
    <body>
  <form action="minichat_post.php" method="post">
        <p>
        <label for="pseudo">Pseudo</label> : <input type="text" name="pseudo_user" id="pseudo_user" /><br />
        <label for="message">Message</label> :  <input type="text" name="message_texte" id="message_texte" /><br />
 
        <input type="submit" value="Envoyer" />
    </p>
    </form>
 
<?php 
try
{
	    $bdd = new PDO('mysql:host=localhost;dbname=mini_chat;charset=utf8', 'root', 'root');
	}
	catch(Exception $e)
	{
		        die('Erreur : '.$e->getMessage());
		}
 
 
 
// Récupération des 10 derniers messages
$reponse = $bdd->query('SELECT pseudo_user, message_texte FROM user, message ORDER BY ID DESC LIMIT 0, 10');
 
// Affichage de chaque message 
while ($donnees = $reponse->fetch())
{
    echo '<p><strong>' . htmlspecialchars($donnees['pseudo_user']) . '</strong> : ' . htmlspecialchars($donnees['message_user']) . '</p>';
}
 
$reponse->closeCursor();
 
?>
    </body>
</html>

Page minichat_post.php

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
<?php
 
//on récupère les champs dans des variables
 
if(isset($_POST['pseudo_user']))      $pseudo_user=$_POST['pseudo_user'];
else      $pseudo_user="";
 
if(isset($_POST['message_texte']))      $pseudo_user=$_POST['message_texte'];
else      $message_texte="";
 
//on teste si les champs sont vides
 
if(empty($pseudo_user) OR empty($message_texte))
{
	echo '<font color="red">Attention, vous devez entrer quelque chose!</font>';
}
 
else
{					//connexion à la bdd
	try
	{
		$bdd = new PDO('mysql:host=localhost;dbname=mini_chat;charset=utf8', 'root', 'root');
	}
	catch(Exception $e)
	{
		die('Erreur : '.$e->getMessage());
	}
 
SELECT *					//jointure
	FROM `user`
	INNER JOIN `message`
	ON `user`.`id_user` = `message`.`id_user`
 
	//requete préparée pour envoyer les données à la bdd
 
$req = $bdd->prepare("INSERT INTO message (message_texte) VALUES('$message_texte')");
 
$req->execute(array($message_texte['message_texte']));
 
$id_message = $bdd->lastInsertId();
 
$req = $bdd->prepare("INSERT INTO user (pseudo_user, id_user) VALUES('$pseudo_user', '$id_user')");
 
$req->execute(array($pseudo_user['pseudo_user'], $id_user['id_user']));
 
// Redirection du visiteur vers la page du minichat
header('Location: minichat.php');
?>

J'ai commenté le code pour expliquer ce que j'ai tenté de faire...

Merci d'avance?