Antho03 Posté 1 Mars 2010 Partager Posté 1 Mars 2010 Bonjour à tous, J'ai créé un formulaire d'inscription sur mon site et souhaite insérer les valeurs sélectionnées de ce dernier dans ma BDD. voici le code de mon formulaire : <form name="form" action="action.php" method="post"> <fieldset style="border: 3px double #333399"> <legend>Secteur d'activité</legend> <!-- Secteur 1 --> Secteur d'activité 1 : <select name="Zsecteur1" onChange="getSecteur1(this.value);"> <option value="vide">- - - Choisissez un secteur - - -</option> <?php /* Construction de la première liste : on se sert du tableau PHP */ foreach($regions as $nr => $nom) { ?> <option value="<?php echo($nr); ?>"><?php echo($nom); ?></option><?php } ?> </select> <span id="blocDepartements">Sous-secteur</span><br /> <!-- Secteur 2 --> Secteur d'activité 2 : <select name="Zsecteur2" onChange="getSecteur2(this.value);"> <option value="vide">- - - Choisissez un secteur - - -</option> <?php /* Construction de la première liste : on se sert du tableau PHP */ foreach($regions as $nr => $nom) { ?> <option value="<?php echo($nr); ?>"><?php echo($nom); ?></option><?php } ?> </select> <span id="blocDepartements2">Sous-secteur</span><br /> Adresse : <input type="text" name="Zadresse"> <input type="submit" name="ok" id="ok" value="Envoyer" /> </fieldset></form> Ce formulaire est composé de 2 menus déroulants, appelant eux-mêmes un second menu déroulant en fonction du choix effectué dans le premier (AJAX) et d'un champ texte. voilà ensuite le fichier "action.php" : <?phpecho("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n");/* Variables de connexion */$serveur = "localhost";$admin = "******";$mdp = "******";$base = "******";//connexion à la base_AT_mysql_connect($serveur, $admin, $mdp)or die("Impossible de se connecter au serveur de bases de données.".mysql_error());//sélection de la base_AT_mysql_select_db($base)or die("Impossible de se connecter à la base de données.".mysql_error());/* Enregistrement du formulaire dans la BDD */$annuaire = mysql_query("insert into spip_annuaire (secteur1,secteur2,sous_secteur1,sous_secteur2,adresse) values('".$Zsecteur1."','".$Zsecteur2."','".$Zsous_secteur1."','".$Zsous_secteur2."','".$Zadresse."')");echo $annuaire;?> Ma requête est effectuée correctement (test avec des alert) et insère une ligne dans ma table mais avec des champs vides. J'ai testé ma requête directement dans PHP My Admin, elle fonctionne correctement. J'ai mis la valeur "adresse" en dur dans ma requête dans action.php, elle apparait bien dans la BDD. "echo $annuaire;" m'affiche systématiquement "1" Le problème vient donc à mon avis de la récupération des variables du formulaire et là...je bloque complétement. Pour info, la récupération des variables "sous_secteur1" et "sous_secteur2" est générée grâce à un autre fichier php. Merci pour votre aide Lien vers le commentaire Partager sur d’autres sites More sharing options...
jcaron Posté 1 Mars 2010 Partager Posté 1 Mars 2010 A moins que tu n'utilises une option php qui est fortement déconseillée, les variables de ton formulaire sont dans $_POST['nom_du_champ'], pas dans $nom_du_champ... Jacques. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Antho03 Posté 3 Mars 2010 Auteur Partager Posté 3 Mars 2010 A moins que tu n'utilises une option php qui est fortement déconseillée, les variables de ton formulaire sont dans $_POST['nom_du_champ'], pas dans $nom_du_champ... Jacques. Il manquait en effet tout simplement l'appel des variables..., par exemple : $Zsecteur1 = htmlentities($_POST['Zsecteur1']); Merci Jacques Lien vers le commentaire Partager sur d’autres sites More sharing options...
jcaron Posté 3 Mars 2010 Partager Posté 3 Mars 2010 Ne pas oublier de valider ou d'escaper (avec mysql_real_escape_string) toutes données reçues (dans un $_POST, $_GET, $_COOKIE, $_SERVER...) avant de les passer à ta bdd. Sinon tu ouvres la porte à des injections SQL. Jacques. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant