Recupération des données du formulaire

merlyone Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -  
merlyone Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -
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>';
?>
A voir également:

18 réponses

MastercroW Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   163
 
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>';
}
0
merlyone Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
 
Merci MasterCrow ! attend j'essaye pour voir ce k ça va donner !
0
MastercroW Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   163
 
Évite de mettre ton formulaire sous des echo sa sert strictement à rien. x)
0
merlyone Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
merlyone Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
 
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 :(
0
MastercroW Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   163
 
Montre moi ton code, afin que je le corrige !
0
MastercroW Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   163
 
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>
0
MastercroW Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   163
 
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
0
merlyone Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
 
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>';
?>
0
MastercroW Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   163
 
C'est normal tu ne dis pas dans quel champs, les variables doivent aller !
0
merlyone Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
 
bah je crois que c'est facultatif ! mais bon je vais essayer
0
merlyone Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
 
ç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>';
?>
0
MastercroW Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   163
 
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>'; 
?>
0
merlyone Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
 
helas toujours rien ! qu'est ce que vous avez modifié ?
0
MastercroW Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   163
 
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 ♠ ████▒▒▒▒░░░░
0
merlyone Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
 
oui mais dans ton code je comprends pas ce que tu me demande de deplacer sur le if ! :(
0
MastercroW Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   163
 
Mdr, je sais ou est ton problème.

Ton formulaire n'a pas les égales au name.
name "prenom" >> name="prenom"
0
MastercroW Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   163
 
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>
0
merlyone Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
 
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
0