Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2294 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  pb insertion champ vide dans BDD via formulaire (PHP/SQL) [Résolu]

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pb insertion champ vide dans BDD via formulaire (PHP/SQL) [Résolu]

n°1970173
Antho03
Posté le 01-03-2010 à 13:27:35  profilanswer
 

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 :

Code :
  1. <form name="form" action="action.php" method="post">
  2.   <fieldset style="border: 3px double #333399">
  3.   <legend>Secteur d'activité</legend>
  4.  
  5.   <!-- Secteur 1 -->
  6.   Secteur d'activité 1 :
  7.     <select name="Zsecteur1" onchange="getSecteur1(this.value);">
  8.       <option value="vide">- - - Choisissez un secteur - - -</option>
  9.     <?php
  10.     /* Construction de la première liste : on se sert du tableau PHP */
  11.     foreach($regions as $nr => $nom)
  12.     {
  13.         ?>
  14.     <option value="<?php echo($nr); ?>"><?php echo($nom); ?></option>
  15. <?php
  16.     }
  17.     ?>
  18.     </select>
  19.    
  20.   <span id="blocDepartements">Sous-secteur</span><br />
  21.  
  22.   <!-- Secteur 2 -->
  23.    Secteur d'activité 2 :
  24.     <select name="Zsecteur2" onchange="getSecteur2(this.value);">
  25.       <option value="vide">- - - Choisissez un secteur - - -</option>
  26.     <?php
  27.     /* Construction de la première liste : on se sert du tableau PHP */
  28.     foreach($regions as $nr => $nom)
  29.     {
  30.         ?>
  31.     <option value="<?php echo($nr); ?>"><?php echo($nom); ?></option>
  32. <?php
  33.     }
  34.     ?>
  35.     </select>
  36.    
  37.   <span id="blocDepartements2">Sous-secteur</span><br />
  38.  
  39.   Adresse :
  40.   <input type="text" name="Zadresse">
  41.  
  42.   <input type="submit" name="ok" id="ok" value="Envoyer" />
  43.   </fieldset>
  44. </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" :

Code :
  1. <?php
  2. echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n" );
  3. /* Variables de connexion */
  4. $serveur = "localhost";
  5. $admin   = "******";
  6. $mdp     = "******";
  7. $base    = "******";
  8. //connexion à la base
  9. _AT_mysql_connect($serveur, $admin, $mdp)
  10. or die("Impossible de se connecter au serveur de bases de données.".mysql_error());
  11. //sélection de la base
  12. _AT_mysql_select_db($base)
  13. or die("Impossible de se connecter à la base de données.".mysql_error());
  14. /* Enregistrement du formulaire dans la BDD */
  15. $annuaire = mysql_query("insert into spip_annuaire (secteur1,secteur2,sous_secteur1,sous_secteur2,adresse) values('".$Zsecteur1."','".$Zsecteur2."','".$
  16. Zsous_secteur1."','".$Zsous_secteur2."','".$Zadresse."
  17. ')" );
  18. echo $annuaire;
  19. ?>


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.
 
J'ai ajouté une ligne de test : "echo $annuaire;" qui 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


Message édité par Antho03 le 03-03-2010 à 10:29:49
mood
Publicité
Posté le 01-03-2010 à 13:27:35  profilanswer
 

n°1970267
rengzehn
Posté le 01-03-2010 à 17:18:32  profilanswer
 

tes $zsecteurs $zadresse ont bien été définis  ? et ont bien reçu les valeurs des champs respectifs du formulaire par les méthodes get ou post ? parceque si tout le code d'acton.php est là, ces variables sont vides.

 

$Zsecteur1=$_POST['Zsecteur1'];


Message édité par rengzehn le 01-03-2010 à 17:31:21
n°1970277
rengzehn
Posté le 01-03-2010 à 17:29:07  profilanswer
 

et pour info, tu devrais proteger ton site de l'injection sql en utilisant http://fr.php.net/mysql_real_escape_string

n°1970792
Antho03
Posté le 03-03-2010 à 10:29:20  profilanswer
 

Il manquait en effet tout simplement l'appel des variables...
 
Merci rengzehn


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  pb insertion champ vide dans BDD via formulaire (PHP/SQL) [Résolu]

 

Sujets relatifs
[php] Problème d'include et génération d'image (résolu)Formulaire et macro sous Word 2007
Affichage de fiche produit en PHP/SQL[RESOLU]Afficher le plus grand ID de plusieurs sous_id
Mail automatique (PHP si possible) depuis données SQL[resolu] 1 menu pour toutes les pages d'un site ...
application PHP sur un CDPetit projet: classe PHP, framework ou pas ?
Plus de sujets relatifs à : pb insertion champ vide dans BDD via formulaire (PHP/SQL) [Résolu]


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR