Pb appel de variable php/sql (simple)
Greg
-
Chat -
Chat -
Bonjour,
Je suis en train de créer un formulauire pour un site,celui ci sur la page "acceuil" qui renvoie ensuite a la page "validation" apres l'avoir rempli.
J'ai crée une base de donnée sql pour la sauvegarde, avec les noms de variables qui correspondent aux champs. (j'ai suivi un tuto)
Mais lors de la validation j'ai cette erreur :
Notice: Undefined variable: prenom in C:\Documents and Settings\Greg\Mes documents\Projet Info\Tests\Validation.php on line 28
(cela 5fois pour les 5 variables)
En plus de cela, dans la base de donnée, il y a sauvegarde d'espace vides au lieu des infos insérées. (la db marche donc)
Dans le formulaire la methode est celle-ci :
<form action="validation.php" method="post">
<p>
Nom <input type="text" name="nom">
Et dans la validation le code est :
$db = mysql_connect('localhost', 'root');
mysql_select_db('test',$db);
$sql = "INSERT INTO testexperiment
VALUES('$nom','$prenom','$email','$ville','$blog')";
mysql_query($sql)
or die('Erreur SQL !'.$sql.'
'.mysql_error());
echo 'Merci, vos données sont enregistrées!.';
mysql_close();
Merci de m'aider c'est sympa !
Je suis en train de créer un formulauire pour un site,celui ci sur la page "acceuil" qui renvoie ensuite a la page "validation" apres l'avoir rempli.
J'ai crée une base de donnée sql pour la sauvegarde, avec les noms de variables qui correspondent aux champs. (j'ai suivi un tuto)
Mais lors de la validation j'ai cette erreur :
Notice: Undefined variable: prenom in C:\Documents and Settings\Greg\Mes documents\Projet Info\Tests\Validation.php on line 28
(cela 5fois pour les 5 variables)
En plus de cela, dans la base de donnée, il y a sauvegarde d'espace vides au lieu des infos insérées. (la db marche donc)
Dans le formulaire la methode est celle-ci :
<form action="validation.php" method="post">
<p>
Nom <input type="text" name="nom">
Et dans la validation le code est :
$db = mysql_connect('localhost', 'root');
mysql_select_db('test',$db);
$sql = "INSERT INTO testexperiment
VALUES('$nom','$prenom','$email','$ville','$blog')";
mysql_query($sql)
or die('Erreur SQL !'.$sql.'
'.mysql_error());
echo 'Merci, vos données sont enregistrées!.';
mysql_close();
Merci de m'aider c'est sympa !
A voir également:
- Pb appel de variable php/sql (simple)
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Appel privé - Guide
- 14 simple - Guide
- Double appel - Guide
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
3 réponses
Salut alors tes variables doivent etre :
$_POST['nom'], $_POST['prenom'] ... et non $nom, $prenom
de plus il t'insere des choses vide pense a testé le contenu des variables avant de les insérés :
if (!empty($_POST['taVariable']) ))
{
INSERT....
}
$_POST['nom'], $_POST['prenom'] ... et non $nom, $prenom
de plus il t'insere des choses vide pense a testé le contenu des variables avant de les insérés :
if (!empty($_POST['taVariable']) ))
{
INSERT....
}
Avant d'inséré tes variable dans ta base essai de les affichés :
echo $_POST['taVar1'];
echo $_POST['taVar2']; ...
et dis moi si ta page validation récupère bien les champs du formulaire :)
echo $_POST['taVar1'];
echo $_POST['taVar2']; ...
et dis moi si ta page validation récupère bien les champs du formulaire :)
Bonsoir,
Voici le code de ton formulaire :
<form action="validation.php" method="post">
<p>Nom <input type="text" name="nom"></p>
<p>Prénom <input type="text" name="prenom" ></p>
<p>E-mail <input type="text" name="email"></p>
<p> Lille, Nantes, Toulouse ?<input type="text" name="ville"></p>
<p>Blog/Site <input type="text" name="blog"></p>
<p><input type="submit" value="cliquez-ici"></p>
</form>
Un formulaire défini de tel manière fait en sorte de transmettre en POST les variables nom, prenom, email, ville et blog à la page validation.php, je pense que tu l'as bien compris.
Cependant, une fois dans validation.php, tes variables $nom, $prenom, $email, etc... N'existent pas encore.
En effet, tout est stocké dans $_POST['nom'], $_POST['prenom'], $_POST['email'], etc...
Donc avant toute chose il faut récupérer les infos :
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$email = $_POST['email'];
etc...
ensuite tu pourras les utiliser dans :
$sql = "INSERT INTO testexperiment
VALUES('$nom','$prenom','$email','$ville','$blog')";
mysql_query($sql)
or die('Erreur SQL !'.$sql.'
'.mysql_error());
Et ça devrait marcher :)
P.S : au lieu de faire $nom = $_POST['nom']; et compagnie, tu peux utiliser la fonction extract (cherche php extract sur google) pour aller plus vite (ça stocke dans $nom la valeur de $_POST['nom'], pareil pour prenom et le reste d'un seul coup)
P.S2 : n'hésite pas à tester tes valeurs avant toute insertion dans la base de données : if (isset($_POST['nom'])) et if ($_POST['nom']!='')
P.S3 : renseigne toi également sur les injections sql (pareil google est ton ami) et comment protéger ton site, si tu utilises mysql le meilleur moyen est mysql_real_escape_string.
P.S4 : ayé j'ai finis promis :p
Voici le code de ton formulaire :
<form action="validation.php" method="post">
<p>Nom <input type="text" name="nom"></p>
<p>Prénom <input type="text" name="prenom" ></p>
<p>E-mail <input type="text" name="email"></p>
<p> Lille, Nantes, Toulouse ?<input type="text" name="ville"></p>
<p>Blog/Site <input type="text" name="blog"></p>
<p><input type="submit" value="cliquez-ici"></p>
</form>
Un formulaire défini de tel manière fait en sorte de transmettre en POST les variables nom, prenom, email, ville et blog à la page validation.php, je pense que tu l'as bien compris.
Cependant, une fois dans validation.php, tes variables $nom, $prenom, $email, etc... N'existent pas encore.
En effet, tout est stocké dans $_POST['nom'], $_POST['prenom'], $_POST['email'], etc...
Donc avant toute chose il faut récupérer les infos :
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$email = $_POST['email'];
etc...
ensuite tu pourras les utiliser dans :
$sql = "INSERT INTO testexperiment
VALUES('$nom','$prenom','$email','$ville','$blog')";
mysql_query($sql)
or die('Erreur SQL !'.$sql.'
'.mysql_error());
Et ça devrait marcher :)
P.S : au lieu de faire $nom = $_POST['nom']; et compagnie, tu peux utiliser la fonction extract (cherche php extract sur google) pour aller plus vite (ça stocke dans $nom la valeur de $_POST['nom'], pareil pour prenom et le reste d'un seul coup)
P.S2 : n'hésite pas à tester tes valeurs avant toute insertion dans la base de données : if (isset($_POST['nom'])) et if ($_POST['nom']!='')
P.S3 : renseigne toi également sur les injections sql (pareil google est ton ami) et comment protéger ton site, si tu utilises mysql le meilleur moyen est mysql_real_escape_string.
P.S4 : ayé j'ai finis promis :p
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Documents and Settings\Greg\Mes documents\Projet Info\Tests\Validation.php on line 28
C'est vraiment un probleme de definition de variables car quand je mets par exemple 100 a la place de $nom, il me met "100" dans la base de données !
pour rappel mon formulaire est comme ceci :
<form action="validation.php" method="post">
<p>
Nom <input type="text" name="nom">
</p>
<p>Prénom
<input type="text" name="prenom" >
</p>
<p>
E-mail
<input type="text" name="email">
</p>
<p>
Lille, Nantes, Toulouse ?
<input type="text" name="ville">
</p>
<p>Blog/Site
<input type="text" name="blog">
</p>
<p>
<input type="submit" value="cliquez-ici">
</p>
</form>