Recupération des données du formulaire

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>';
?>

18 réponses

  1. MastercroW Messages postés 1259 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
  2. merlyone Messages postés 26 Statut Membre
     
    Merci MasterCrow ! attend j'essaye pour voir ce k ça va donner !
    0
  3. MastercroW Messages postés 1259 Date d'inscription   Statut Membre Dernière intervention   163
     
    Évite de mettre ton formulaire sous des echo sa sert strictement à rien. x)
    0
  4. merlyone Messages postés 26 Statut Membre
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. merlyone Messages postés 26 Statut Membre
     
    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
  7. MastercroW Messages postés 1259 Date d'inscription   Statut Membre Dernière intervention   163
     
    Montre moi ton code, afin que je le corrige !
    0
  8. MastercroW Messages postés 1259 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
  9. MastercroW Messages postés 1259 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
  10. merlyone Messages postés 26 Statut Membre
     
    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
    1. MastercroW Messages postés 1259 Date d'inscription   Statut Membre Dernière intervention   163
       
      C'est normal tu ne dis pas dans quel champs, les variables doivent aller !
      0
  11. merlyone Messages postés 26 Statut Membre
     
    bah je crois que c'est facultatif ! mais bon je vais essayer
    0
  12. merlyone Messages postés 26 Statut Membre
     
    ç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
  13. MastercroW Messages postés 1259 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
  14. merlyone Messages postés 26 Statut Membre
     
    helas toujours rien ! qu'est ce que vous avez modifié ?
    0
  15. MastercroW Messages postés 1259 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
  16. merlyone Messages postés 26 Statut Membre
     
    oui mais dans ton code je comprends pas ce que tu me demande de deplacer sur le if ! :(
    0
  17. MastercroW Messages postés 1259 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
  18. MastercroW Messages postés 1259 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
  19. merlyone Messages postés 26 Statut Membre
     
    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