Message d'erreur "Undefined variable"

bonjour tout le monde
voila, j’ai trouvé un exemple que j’ai voulu refaire
lorsque je refais l’exemple à l’identique il fonctionne, lorsque à l’exemple j’ajoute quelque chz ça foire…
l’exemple en question est un formulaire (qui contient pseudo et message) qui permet d’ajouter ces données sur la table « abcd » qui contient les champs id, pseudo et message (id est en auto-incrément)…
le probleme c’est que quand j’ajoute le champs nom ça ne marche plus, bizard,
il me met le message « Notice: Undefined variable: nom in d:\lesite\minichat.php on line 31 »

pouvez-vous m’aider svp
(je peux vous donner éventuellement les deux codes pour comparer)
merci
Edité le 26/07/2007 à 17:37

Bah ce serait bien, ouais.

ok
voici le premier: (avec celui ça marche sans bobos)

Mini-chat form { text-align:center; } <?php if (isset($_POST['pseudo']) AND isset($_POST['message'])) // Si les variables existent { if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL) // Si on a quelque chose à enregistrer { // D'abord, on se connecte à MySQL mysql_connect("localhost", "root", ""); mysql_select_db("nab"); // On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité $message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); // Ensuite on enregistre le message mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')"); // On se déconnecte de MySQL mysql_close(); } } // Que l'on ait enregistré des données ou pas... // On affiche le formulaire puis les 10 derniers messages // Tout d'abord le formulaire : ?>

Pseudo :
Message :

<?php // Maintenant on doit récupérer les 10 dernières entrées de la table // On se connecte d'abord à MySQL : mysql_connect("localhost", "root", ""); mysql_select_db("nab"); // On utilise la requête suivante pour récupérer les 10 derniers messages : $reponse = mysql_query("SELECT * FROM minichat ORDER BY ID DESC LIMIT 0,10"); // On se déconnecte de MySQL mysql_close(); // Puis on fait une boucle pour afficher tous les résultats : while ($donnees = mysql_fetch_array($reponse) ) { ?>

<?php echo $donnees['pseudo']; ?> / <?php echo $donnees['message']; ?>

<?php } // Fin de la boucle, le script est terminé ! ?>

et voila celui dans lequel ya probleme, aprés avoir rajouté le champ « nom »

Mini-chat form { text-align:center; } <?php if (isset($_POST['pseudo']) AND isset($_POST['message']) AND isset($_POST['nom'])) // Si les variables existent { if ($_POST['pseudo'] != NULL AND $_POST['nom'] != NULL AND $_POST['message'] != NULL) // Si on a quelque chose à enregistrer { // D'abord, on se connecte à MySQL mysql_connect("localhost", "root", ""); mysql_select_db("nab"); // On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité $message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); $message = mysql_real_escape_string(htmlspecialchars($_POST['nom'])); // Ensuite on enregistre le message mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message', '$nom')"); // On se déconnecte de MySQL mysql_close(); } } // Que l'on ait enregistré des données ou pas... // On affiche le formulaire puis les 10 derniers messages // Tout d'abord le formulaire : ?>

Pseudo :
Message :
Nom :

<?php // Maintenant on doit récupérer les 10 dernières entrées de la table // On se connecte d'abord à MySQL : mysql_connect("localhost", "root", ""); mysql_select_db("nab"); // On utilise la requête suivante pour récupérer les 10 derniers messages : $reponse = mysql_query("SELECT * FROM minichat ORDER BY ID DESC LIMIT 0,10"); // On se déconnecte de MySQL mysql_close(); // Puis on fait une boucle pour afficher tous les résultats : while ($donnees = mysql_fetch_array($reponse) ) { ?>

<?php echo $donnees['pseudo']; ?> / <?php echo $donnees['message']; ?> / <?php echo $donnees['nom']; ?>

<?php } // Fin de la boucle, le script est terminé ! ?>

ps: pour les deux variantes du codes je mets la table qui contient les chanmps cités dans les codes

MERCI

évite AND, utilise && (pas la même priorité). Et sinon, c’est où la ligne 31?

c’est cela:
mysql_query(« INSERT INTO minichat VALUES(‹  ›, ‹ $pseudo ›, ‹ $message ›, ‹ $nom ›) »);

La troisième ligne ce ne serait pas plutôt


$nom = mysql_real_escape_string(htmlspecialchars($_POST['nom']));

Edité le 26/07/2007 à 17:01

oh merci philouvb, t’es le (la) meilleur
c’est exactement ça,
merci bcp

+1 philouvb.

merci à tout les autres aussi
ya-t-il un lien pour dire que c’est résolu ?

Il te suffit d’étiter ton premier message et de mettre résolu dans le titre
Edité le 26/07/2007 à 17:31