Recupération des données du formulaire
merlyone
Messages postés
26
Statut
Membre
-
merlyone Messages postés 26 Statut Membre -
merlyone Messages postés 26 Statut Membre -
Bonjour,
quelqu' un aurait il l'amabilité de m'aider ! en faite j'essaye de récupérer les données saisies au niveau du formulaire pour les mettre dans la base de données mais ça m'affiche les erreurs suivantes :
Undefined index: nom in "D:\...."
Undefined index: prenom in "D:\...."
Undefined index: adresse in "D:\...."
j'ai beau cherché les erreurs de déclaration mais je ne trouve pas grande chose ! je compte sur vous pour m'aider a avancer . voici mon script de recupération des données !
<?php
include("connexion.php");
// On commence par récupérer les champs
if(isset($_POST['nom'])) $nom=$_POST['nom'];
else $nom="";
if(isset($_POST['prenom'])) $prenom=$_POST['prenom'];
else $prenom="";
if(isset($_POST['adresse'])) $adresse=$_POST['adresse'];
else $adresse="";
if(isset($_POST['email'])) $email=$_POST['email'];
else $email="";
if(isset($_POST["action"]) && $_POST["action"]=="ok"){
// On vérifie si les champs sont vides
if(empty($nom) OR empty($prenom) OR empty($adresse) OR empty($email) )
{
echo '<font color="red"> Veuillez remplir tous les champs !</font>';
}
// Aucun champ n'est vide, on peut enregistrer dans la table
else{
$req="insert into annonceur values('',.'".$nom."','".$prenom."','".$adresse."','".$email."')";
mysql_query($req) or die('Erreur SQL !'.$req.'<br>'.mysql_error());
// on affiche le résultat pour le visiteur
echo 'Vos infos on été ajoutées.';
}
}
echo'<form action="" method="POST" ENCTYPE="multipart/form-data">';
echo'<table border="3"';
echo'<tr><td>NOM:</td><td><input type="text" name "nom"></td></tr>';
echo'<tr><td>PRENOM:</td><td><input type="text" name "prenom"></td></tr>';
echo'<tr><td>ADRESSE:<td><input type="text" name "adresse"></td></tr>';
echo'<tr><td>EMAIL:</td><td><input type="text" name "email"></td></td></tr>';
echo'<tr><td><input type="submit" value="valider"></td><td><input type="reset" value="ANNULER"></td></tr>';
echo'<input type= "hidden" name="action" value="ok">';
echo'</table>';
echo'</form>';
?>
quelqu' un aurait il l'amabilité de m'aider ! en faite j'essaye de récupérer les données saisies au niveau du formulaire pour les mettre dans la base de données mais ça m'affiche les erreurs suivantes :
Undefined index: nom in "D:\...."
Undefined index: prenom in "D:\...."
Undefined index: adresse in "D:\...."
j'ai beau cherché les erreurs de déclaration mais je ne trouve pas grande chose ! je compte sur vous pour m'aider a avancer . voici mon script de recupération des données !
<?php
include("connexion.php");
// On commence par récupérer les champs
if(isset($_POST['nom'])) $nom=$_POST['nom'];
else $nom="";
if(isset($_POST['prenom'])) $prenom=$_POST['prenom'];
else $prenom="";
if(isset($_POST['adresse'])) $adresse=$_POST['adresse'];
else $adresse="";
if(isset($_POST['email'])) $email=$_POST['email'];
else $email="";
if(isset($_POST["action"]) && $_POST["action"]=="ok"){
// On vérifie si les champs sont vides
if(empty($nom) OR empty($prenom) OR empty($adresse) OR empty($email) )
{
echo '<font color="red"> Veuillez remplir tous les champs !</font>';
}
// Aucun champ n'est vide, on peut enregistrer dans la table
else{
$req="insert into annonceur values('',.'".$nom."','".$prenom."','".$adresse."','".$email."')";
mysql_query($req) or die('Erreur SQL !'.$req.'<br>'.mysql_error());
// on affiche le résultat pour le visiteur
echo 'Vos infos on été ajoutées.';
}
}
echo'<form action="" method="POST" ENCTYPE="multipart/form-data">';
echo'<table border="3"';
echo'<tr><td>NOM:</td><td><input type="text" name "nom"></td></tr>';
echo'<tr><td>PRENOM:</td><td><input type="text" name "prenom"></td></tr>';
echo'<tr><td>ADRESSE:<td><input type="text" name "adresse"></td></tr>';
echo'<tr><td>EMAIL:</td><td><input type="text" name "email"></td></td></tr>';
echo'<tr><td><input type="submit" value="valider"></td><td><input type="reset" value="ANNULER"></td></tr>';
echo'<input type= "hidden" name="action" value="ok">';
echo'</table>';
echo'</form>';
?>
18 réponses
-
Personnellement, j'aurais mis une condition pour savoir si le bouton est posté.
Tel que :if (isset($_POST['boutton'])) { }
Donc faut que tu ajoutes un nom à ton bouton.
Et de mettre simplement après mon morceau de codes tes champs postés.
Juste ça suffit :$nom=$_POST['nom'];
Et enfin pour savoir si il manque un champs je ferais comme ceci :if($nom=="" || $prenom=="" || $adresse=="" || $email=="") { echo '<font color="#C00">Veuillez remplir tous les champs !</font>'; } -
Merci MasterCrow ! attend j'essaye pour voir ce k ça va donner !
-
Évite de mettre ton formulaire sous des echo sa sert strictement à rien. x)
-
OUI ton conseil marche bien, je ne vois plus les messages d'erreurs sauf que ça n'insert pas dans la base de données alors que la connexion a la base est réussie
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Apres quelques modifications de la requete (j'ai mis de simple cote dans la requete insert) seul l' ID est qui est auto-incrementé est inséré dans la base de données ce qui signifie que la recuperation des données du formulaire marche pas ! Ups :(
-
Montre moi ton code, afin que je le corrige !
-
Que dis-tu de ceci ?
<?php $PARAM_hote='localhost'; // le chemin vers le serveur $PARAM_port='3306'; $PARAM_nom_bd='monsters'; // le nom de votre base de données $PARAM_utilisateur='root'; // nom d'utilisateur pour se connecter $PARAM_mot_passe=''; // mot de passe de l'utilisateur pour se connecter try { $DB = new PDO('mysql:host='.$PARAM_hote.';port='.$PARAM_port.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe); // Connexion $DB->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); } catch( PDOException $e) { echo "La base de données n'est pas disponile pour le momement."; } if (isset($_POST['boutton'])) // Le bouton à été appuié ! { if($nom=="" || $prenom=="" || $adresse=="" || $email=="") { echo '<font color="#C00">Veuillez remplir tous les champs !</font>'; } else { // Definition de tous les champs ! $nom=$_POST['nom']; // Noms $prenom=$_POST['prenom']; // Prénoms $adresse=$_POST['adresse']; // Adresses $email=$_POST['email']; // Email $d = array ( 'nom' =>"$nom", 'prenom' =>"$prenom", 'adresse' =>"$adresse", 'email' =>"$email" ); $req = $DB->prepare('INSERT INTO annonceur (nom, prenom, adresse, email) VALUE (:nom, :prenom, :adresse, :email)'); $req->execute($d); echo'<font color="#009900">Vous avez réussi ! </font>'; } } ?> <form action="" method="POST" ENCTYPE="multipart/form-data"> <table border="3"> <tr><td>NOM:</td><td><input type="text" name "nom"></td></tr> <tr><td>PRENOM:</td><td><input type="text" name "prenom"></td></tr> <tr><td>ADRESSE:<td><input type="text" name "adresse"></td></tr> <tr><td>EMAIL:</td><td><input type="text" name "email"></td></td></tr> <tr><td><input type="submit" value="valider" name="boutton"></td><td><input type="reset" value="ANNULER"></td></tr> <input type= "hidden" name="action" value="ok"> </table> </form> -
J'ai fais une erreur oublier de me relire, passe les définitions des champs juste en haut du if !
Parce que là il sont dans else -
meme resultat que mon code ! seul l ID est inseré ! voici mon code :
<?php
include("connexion.php");
// On commence par récupérer les champs
if(isset($_POST['nom'])) $nom=$_POST['nom'];
else $nom="";
if(isset($_POST['prenom'])) $prenom=$_POST['prenom'];
else $prenom="";
if(isset($_POST['adresse'])) $adresse=$_POST['adresse'];
else $adresse="";
if(isset($_POST['email'])) $email=$_POST['email'];
else $email="";
if(isset($_POST['bouton'])){
// On vérifie si les champs sont vides
//if(empty($nom) OR empty($prenom) OR empty($adresse) OR empty($email) )
if($nom=="" || $prenom=="" || $adresse=="" || $email=="")
echo" <script language=\"javascript\"> alert(\"Veuillez remplir toutes les cases\");</script>";
//echo '<font color="red"> Veuillez remplir tous les champs !</font>';
}
// Aucun champ n'est vide, on peut enregistrer dans la table
else{
$req="insert into annonceur values('','$nom','$prenom','$adresse','$email')";
mysql_query($req) or die('Erreur SQL !'.$req.'<br>'.mysql_error());
// on affiche le résultat pour le visiteur
echo 'Vos infos on été ajoutées.';
}
echo'<form action="" method="POST" ENCTYPE="multipart/form-data">';
echo'<table border="3"';
echo'<tr><td>NOM:</td><td><input type="text" name "nom"></td></tr>';
echo'<tr><td>PRENOM:</td><td><input type="text" name "prenom"></td></tr>';
echo'<tr><td>ADRESSE:<td><input type="text" name "adresse"></td></tr>';
echo'<tr><td>EMAIL:</td><td><input type="text" name "email"></td></td></tr>';
echo'<tr><td><input type="submit" name"bouton" value="valider"></td><td><input type="reset" value="ANNULER"></td></tr>';
echo'<input type= "hidden" name="bouton" >';
echo'</table>';
echo'</form>';
?> -
bah je crois que c'est facultatif ! mais bon je vais essayer
-
ça n'insert toujours pas et c'est pas aussi normal que ça affiche 'remplir toutes les cases' a chaque execution alor qu on a pas encore saisie !
je crois que le code est parfait qu'on a juste des problèmes d'accolât mais je ne sais pas a quel niveau ! compile le code vous verrez vous meme !
<?php
include("connexion.php");
// On commence par récupérer les champs
if(isset($_POST['nom'])) $nom=$_POST['nom'];
else $nom="";
if(isset($_POST['prenom'])) $prenom=$_POST['prenom'];
else $prenom="";
if(isset($_POST['adresse'])) $adresse=$_POST['adresse'];
else $adresse="";
if(isset($_POST['email'])) $email=$_POST['email'];
else $email="";
if(isset($_POST['bouton'])){
// On vérifie si les champs sont vides
//if(empty($nom) OR empty($prenom) OR empty($adresse) OR empty($email) )
if($nom=="" || $prenom=="" || $adresse=="" || $email=="")
echo" <script language=\"javascript\"> alert(\"Veuillez remplir toutes les cases\");</script>";
//echo '<font color="red"> Veuillez remplir tous les champs !</font>';
// Aucun champ n'est vide, on peut enregistrer dans la table
else{
$req="insert into annonceur('id','nom_ann','prenom_ann','adresse','email') values('','$nom','$prenom','$adresse','$email')";
mysql_query($req) or die('Erreur SQL !'.$req.'<br>'.mysql_error());
// on affiche le résultat pour le visiteur
echo 'Vos infos on été ajoutées.';
}
}
echo'<form action="" method="POST" ENCTYPE="multipart/form-data">';
echo'<table border="3"';
echo'<tr><td>NOM:</td><td><input type="text" name "nom"></td></tr>';
echo'<tr><td>PRENOM:</td><td><input type="text" name "prenom"></td></tr>';
echo'<tr><td>ADRESSE:<td><input type="text" name "adresse"></td></tr>';
echo'<tr><td>EMAIL:</td><td><input type="text" name "email"></td></td></tr>';
echo'<tr><td><input type="submit" name"bouton" value="valider"></td><td><input type="reset" value="ANNULER"></td></tr>';
echo'<input type= "hidden" name="bouton" >';
echo'</table>';
echo'</form>';
?> -
Test ceci :
<?php include("connexion.php"); // On commence par récupérer les champs if(isset($_POST['nom'])) $nom=$_POST['nom']; else $nom=""; if(isset($_POST['prenom'])) $prenom=$_POST['prenom']; else $prenom=""; if(isset($_POST['adresse'])) $adresse=$_POST['adresse']; else $adresse=""; if(isset($_POST['email'])) $email=$_POST['email']; else $email=""; if(isset($_POST['bouton'])){ // On vérifie si les champs sont vides //if(empty($nom) OR empty($prenom) OR empty($adresse) OR empty($email) ) if($nom=="" || $prenom=="" || $adresse=="" || $email=="") { echo" <script language=\"javascript\"> alert(\"Veuillez remplir toutes les cases\");</script>"; } //echo '<font color="red"> Veuillez remplir tous les champs !</font>'; // Aucun champ n'est vide, on peut enregistrer dans la table else{ $req="insert into annonceur('id','nom_ann','prenom_ann','adresse','email') values('','$nom','$prenom','$adresse','$email')"; mysql_query($req) or die('Erreur SQL !'.$req.'<br>'.mysql_error()); // on affiche le résultat pour le visiteur echo 'Vos infos on été ajoutées.'; } } echo'<form action="" method="POST" ENCTYPE="multipart/form-data">'; echo'<table border="3"'; echo'<tr><td>NOM:</td><td><input type="text" name "nom"></td></tr>'; echo'<tr><td>PRENOM:</td><td><input type="text" name "prenom"></td></tr>'; echo'<tr><td>ADRESSE:<td><input type="text" name "adresse"></td></tr>'; echo'<tr><td>EMAIL:</td><td><input type="text" name "email"></td></td></tr>'; echo'<tr><td><input type="submit" name"bouton" value="valider"></td><td><input type="reset" value="ANNULER"></td></tr>'; echo'<input type= "hidden" name="bouton" >'; echo'</table>'; echo'</form>'; ?> -
-
if($nom=="" || $prenom=="" || $adresse=="" || $email=="") {echo" <script language=\"javascript\"> alert(\"Veuillez remplir toutes les cases\");</script>"; }
Je pense tu peux me tutoyer on est sur un forum d'entraide x).
As-tu testé ce que j'ai fais ?--
░░░░▒▒▒▒████ ♠ MastercroW ♠ ████▒▒▒▒░░░░ -
oui mais dans ton code je comprends pas ce que tu me demande de deplacer sur le if ! :(
-
Mdr, je sais ou est ton problème.
Ton formulaire n'a pas les égales au name.
name "prenom" >> name="prenom" -
Solution finale :
<?php $PARAM_hote='localhost'; // le chemin vers le serveur $PARAM_port='3306'; $PARAM_nom_bd='monsters'; // le nom de votre base de données $PARAM_utilisateur='root'; // nom d'utilisateur pour se connecter $PARAM_mot_passe=''; // mot de passe de l'utilisateur pour se connecter try { $DB = new PDO('mysql:host='.$PARAM_hote.';port='.$PARAM_port.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe); // Connexion $DB->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); } catch( PDOException $e) { echo "La base de données n'est pas disponile pour le momement."; } if (isset($_POST['boutton'])) // Le bouton à été appuié ! { // Definition de tous les champs ! $nom=$_POST['nom']; // Noms $prenom=$_POST['prenom']; // Prénoms $adresse=$_POST['adresse']; // Adresses $email=$_POST['email']; // Email if($nom=="" || $prenom=="" || $adresse=="" || $email=="") { echo '<font color="#C00">Veuillez remplir tous les champs !</font>'; } else { $d = array ( 'nom' =>"$nom", 'prenom' =>"$prenom", 'adresse' =>"$adresse", 'email' =>"$email" ); $req = $DB->prepare('INSERT INTO annonceur (nom, prenom, adresse, email) VALUE (:nom, :prenom, :adresse, :email)'); $req->execute($d); echo'<font color="#009900">Vous avez réussi ! </font>'; } } ?> <form action="#" method="POST"> <table border="3"> <tr><td>NOM:</td><td><input type="text" name="nom"></td></tr> <tr><td>PRENOM:</td><td><input type="text" name="prenom"></td></tr> <tr><td>ADRESSE:<td><input type="text" name="adresse"></td></tr> <tr><td>EMAIL:</td><td><input type="text" name="email"></td></td></tr> <tr><td><input type="submit" value="valider" name="boutton"></td><td><input type="reset" value="ANNULER"></td></tr> <input type= "hidden" name="action" value="ok"> </table> </form> -
Ouffffff ......! Enfin j'ai juste indiqué les details de ma base et ça marche parfaitement ! Merci tu as tout fait ! il me reste juste a l'adapté a mon code ! pour vu que ça marche ! lol