Retour au site
Connexion : S'inscrire

10 messages
Filtrer ok

Message d'erreur "Undefined variable"

Un expert informatique vous aide immédiatement par téléphone.
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

   Php
 
 
nabians a écrit:

(je peux vous donner éventuellement les deux codes pour comparer)
merci
Bah ce serait bien, ouais.
 
 
ok
voici le premier: (avec celui ça marche sans bobos)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Mini-chat</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
form
{
text-align:center;
}
</style>
</head>
<body>


<?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 :
?>



<form action="minichat.php" method="post">

<p>
Pseudo : <input type="text" name="pseudo" /><br />
Message : <input type="text" name="message" /><br />

<input type="submit" value="Envoyer" />
</p>

</form>



<?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) )
{
?>

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



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


</body>
</html>



et voila celui dans lequel ya probleme, aprés avoir rajouté le champ "nom"
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Mini-chat</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
form
{
text-align:center;
}
</style>
</head>
<body>


<?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 :
?>



<form action="minichat.php" method="post">

<p>
Pseudo : <input type="text" name="pseudo" /><br />
Message : <input type="text" name="message" /><br />
Nom : <input type="text" name="nom" /><br />

<input type="submit" value="Envoyer" />
</p>

</form>



<?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) )
{
?>

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



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


</body>
</html>


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?
Modérateur Logiciel - Programmation
 
 
c'est cela:
mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message', '$nom')");
 
 
nabians a écrit:

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

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

Code :
$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.
Modérateur Logiciel - Programmation
 
 
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
 
 

|
 
10 messages
Un expert informatique vous aide immédiatement par téléphone.
Filtrer ok
 
Vous devez être connecté pour écrire un message !
 

 Sujets Similaires: