[RESOLU] Recupérer info formulaire liste déroulante

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Recupérer info formulaire liste déroulante

Re: Recupérer info formulaire liste déroulante

par cindy381 » 13 juin 2014, 16:52

J'ai insérer le code que tu a corrigé et grand merci à toi encore.
pour le datetime picker j'utilise http://xdsoft.net/jqplugins/datetimepicker/ ( le dernier avec un champ star et end auquel j'ai rajouter l'option time)
coté var dump cela ne donne rien
Mes colone de date sont bien au format de type DATETIME

Mais le résultat en bdd est toujours de 0000-00-00 00:00. je suis que débutante mais je comment ça se fait que sur l'array il n' y a pas de $POST pour les dates;
Merci de ton aide encore
'titre'=>$_POST['titre'],
          'sous_titre'=>$_POST['sous_titre'],
          'date_debut_sortie'=>$date_debut,
          'date_fin_sortie'=>$date_fin,
          'description'=>$_POST['description'],
coté js :
datetimepicker.js

[javascript]value:'',
lang:'fr',

format: 'Y/m/d H:i',
formatTime: 'H:i',
formatDate: 'Y/m/d',
[/javascript]

coté formulaire ( maitenant )
    <p>Start <input class="form-control" id="date_debut_sortie"  name="date_debut_sortie" type="text">
     
      End <input class="form-control" id="date_fin_sortie" name="date_fin_sortie" type="text"></p>
<script type="text/javascript">// <![CDATA[
jQuery(function(){
 jQuery('#date_debut_sortie').datetimepicker({
   format:'d/m/Y H:i',
   onShow:function( ct ){
     this.setOptions({
       maxDate:jQuery('#date_fin_sortie').val()?jQuery('#date_fin_sortie').val():false
     })
   },
   timepicker:true
 });
 jQuery('#date_fin_sortie').datetimepicker({
   format:'d/m/Y H:i',
   onShow:function( ct ){
     this.setOptions({
       minDate:jQuery('#date_debut_sortie').val()?jQuery('#date_debut_sortie').val():false
     })
   },
   timepicker:true
 });
});
// ]]></script>
]

Re: Recupérer info formulaire liste déroulante

par yann18 » 13 juin 2014, 15:57

j'ignore dans quel format les dates sont transmises par le formulaire, un debogage sur les données reçues pourra se révéler utile pour ce qui te lisent(un var_dump figure déjà dans ton code il suffit de le décommenter et de publier le résultat sur le forum).
par contre ton js laisse supposer que le séparateur des dates est un point(.) et non un tiret(-) et que les dates ne comportent pas de secondes.celà revient à:
$date_debut = date_create_from_format('d.m.Y H:i', $_POST['date_debut_sortie']);// ex : 13.06.2014 15:36
//idem pour la date de sortie
une petite correction donnera:

//le tableau d'erreurs est vide alors on insère les données
if( empty( $erreurs)  ){

//conversion de la date debut du format fr(jj:mm:aaaa hh:mm:ss) en format us(aaaa-mm-jj hh:mm:ss)
$date_debut = date_create_from_format('d.m.Y H:i', $_POST['date_debut_sortie']);
$date_debut = date_format($date_debut, 'Y-m-d H:i:s');

//conversion de la date fin du format fr(jj:mm:aaaa hh:mm:ss) en format us(aaaa-mm-jj hh:mm:ss)
$date_fin = date_create_from_format('d.m.Y H:i:s', $_POST['date_fin_sortie']);
$date_fin = date_format($date_fin, 'Y-m-d H:i:s');

   $req = $bdd->prepare('INSERT INTO loisirs ( id_departements, id_type_loisirs, photo, titre, sous_titre, date_debut_sortie, date_fin_sortie, description, phone, email, website, street, postcode, city, price)
 
  VALUES (:id_departements, :id_type_loisirs, :photo, :titre,
       :sous_titre, :date_debut_sortie, :date_fin_sortie, :description,
    :phone, :email, :website, :street, :postcode, :city, :price )');
   
   
   
     $retour= $req->execute(array(
          'id_departements'=>$_POST['departements'],
          'id_type_loisirs'=>$_POST['type_loisirs'],
          'photo'=>$photo,
          'titre'=>$_POST['titre'],
          'sous_titre'=>$_POST['sous_titre'],
          'date_debut_sortie'=>$date_debut,
          'date_fin_sortie'=>$date_fin,
          'description'=>$_POST['description'],
          'phone'=>$_POST['phone'],
          'email'=>$_POST['email'],
          'website'=>$_POST['website'],
          'street'=>$_POST['street'],
          'postcode'=>$_POST['postcode'],
          'city'=>$_POST['city'],
          'price'=>$_POST['price']
    ));
if( $retour ===false) echo "Problème lors de l'insertion";
       
}else{//le tableau ne contient
 echo "<p> renseignez les champs vides</p>";
}

}//fin de la soumission du formulaire


?>
 
   
     
    <div class="container">
        <div class="row">
    <div class="col-md-6 col-md-offset-3 col-sm-8 col-sm-offset-2">
 
 

        <form  action="mon_profil_client.php" method="post" enctype="multipart/form-data" onSubmit="return(VerifForm(this))">
   

         
        <label for="departement">Departement </label>
        <select class="form-control" name="departements" id="departement">
     <?php foreach ($bdd->query("SELECT * from departements order by nom") as $dep):?>
        <option value="<?php echo $dep['departement_id']; ?>"><?php echo $dep['nom'];?></option>
     <?php endforeach; ?>
        </select>
   
   
     <label>Sortie</label>
     <select class="form-control" name="type_loisirs" id="age">
      <?php foreach ($bdd->query("SELECT * from type_loisir order by type") as $typeloisirs):?>
     <option value="<?php echo $typeloisirs['type_loisir']; ?>"><?php echo $typeloisirs['type'];?></option>
     <?php endforeach; ?>
        </select>
   
   

           

     <!-- titre de la sortie -->
     <label>titre :</label>
     <input class="form-control" type="text" name="titre" value="<?php if(isset($_POST['titre'])) echo $_POST['titre'];?>" />
     <div class="error"><?php if(isset($erreurs['titre'])) echo $erreurs['titre'];?></div>
 
     
     
   
     
      <!-- titre de la sortie -->
     <label>email :</label>
     <input class="form-control" type="text" name="email" value="<?php if(isset($_POST['email'])) echo $_POST['email'];?>" />
     <div class="error"><?php if(isset($erreurs['email'])) echo $erreurs['email'];?></div>
     
   
     
      <!-- Ville de la sortie -->
      <label>Ville *</label>
      <input class="form-control" type="text" name="city" value="<?php if(isset($_POST['city'])) echo $_POST['city'];?>" />
      <div class="error"><?php if(isset($erreurs['city'])) echo $erreurs['city'];?></div>
     
     
       <!-- Ville de la sortie -->
      <label>Rue</label>
      <input class="form-control" type="text" name="street" value="<?php if(isset($_POST['street'])) echo $_POST['street'];?>" />
      <div class="error"><?php if(isset($erreurs['street'])) echo $erreurs['street'];?></div>
     
      <!-- Code postal de la sortie -->
      <label>Code postal *</label>
      <input class="form-control" type="text" name="postcode" value="<?php if(isset($_POST['postcode'])) echo $_POST['postcode'];?>" />
      <div class="error"><?php if(isset($erreurs['postcode'])) echo $erreurs['postcode'];?></div>
     
       <!-- Sous-titre de la sortie -->
      <label>Sous titre*</label>
      <input class="form-control" type="text" name="sous_titre" value="<?php if(isset($_POST['sous_titre'])) echo $_POST['sous_titre'];?>" />
      <div class="error"><?php if(isset($erreurs['sous_titre'])) echo $erreurs['sous_titre'];?></div>
     
     
      <!-- Sous-titre de la sortie -->
      <label>website</label>
      <input class="form-control" type="text" name="website" value="<?php if(isset($_POST['website'])) echo $_POST['website'];?>" />
      <div class="error"><?php if(isset($erreurs['website'])) echo $erreurs['website'];?></div>
     
      <!-- Sous-titre de la sortie -->
      <label>Prix</label>
      <input class="form-control" type="text" name="price" value="<?php if(isset($_POST['price'])) echo $_POST['price'];?>" />
      <div class="error"><?php if(isset($erreurs['price'])) echo $erreurs['price'];?></div>
     
       <!-- Description de la sortie -->
      <label>Detail de votre sortie</label>
       <input class="form-control" type="text" name="description" value="<?php if(isset($_POST['description'])) echo $_POST['description'];?>" />
      <div class="error"><?php if(isset($erreurs['description'])) echo $erreurs['description'];?></div>
   
       
       
      <p>Start <input class="form-control" id="date_debut_sortie"  name="date_debut_sortie" type="text">
     
      End <input class="form-control" id="date_fin_sortie" name="date_fin_sortie" type="text"></p>
<script type="text/javascript">// <![CDATA[
jQuery(function(){
 jQuery('#date_debut_sortie').datetimepicker({
   format:'d.m.Y H:i',
   onShow:function( ct ){
     this.setOptions({
       maxDate:jQuery('#date_fin_sortie').val()?jQuery('#date_fin_sortie').val():false
     })
   },
   timepicker:true
 });
 jQuery('#date_fin_sortie').datetimepicker({
   format:'d.m.Y H:i',
   onShow:function( ct ){
     this.setOptions({
       minDate:jQuery('#date_debut_sortie').val()?jQuery('#date_debut_sortie').val():false
     })
   },
   timepicker:true
 });
});
// ]]></script>

          <label>Télephone</label>
      <input class="form-control" type="text" name="phone" value="<?php if(isset($_POST['phone'])) echo $_POST['phone'];?>" />
       <div class="error"><?php if(isset($erreurs['phone'])) echo $erreurs['phone'];?></div>
             
          <label>Photo</label>
      <input  name="photo" type="file">
       
   
    <input class="btn-u" type="submit" value="ENVOYER">
    </form>

Re: Recupérer info formulaire liste déroulante

par cindy381 » 13 juin 2014, 14:52

A vrai dire je m'étais apercu de l'erreur du égal mais ça ne change pas le fait que le retour en bbd soi vide sur les champs date_debut_sortie et date_fin_sortie
le retour en bdd est : 0000-00-00 00:00

J'ai ceci comme erreur lors de l'envoir du formulaire:

Warning: date_format() expects parameter 1 to be DateTimeInterface, boolean given in /home/users6/l/lasortie/www/mon_profil_client.php on line 144

Warning: date_format() expects parameter 1 to be DateTimeInterface, boolean given in /home/users6/l/lasortie/www/mon_profil_client.php on line 148


Juste les date qui reste avec un retour vide

//le tableau d'erreurs est vide alors on insère les données
if( empty( $erreurs)  ){

//conversion de la date debut du format fr(jj:mm:aaaa hh:mm:ss) en format us(aaaa-mm-jj hh:mm:ss)
$date_debut = date_create_from_format('d-m-Y H:i:s', $_POST['date_debut_sortie']);
$date_debut = date_format($date_debut, 'Y-m-d H:i:s');

//conversion de la date fin du format fr(jj:mm:aaaa hh:mm:ss) en format us(aaaa-mm-jj hh:mm:ss)
$date_fin = date_create_from_format('d-m-Y H:i:s', $_POST['date_fin_sortie']);
$date_fin = date_format($date_fin, 'Y-m-d H:i:s');

   $req = $bdd->prepare('INSERT INTO loisirs ( id_departements, id_type_loisirs, photo, titre, sous_titre, date_debut_sortie, date_fin_sortie, description, phone, email, website, street, postcode, city, price)
 
  VALUES (:id_departements, :id_type_loisirs, :photo, :titre,
       :sous_titre, :date_debut_sortie, :date_fin_sortie, :description,
    :phone, :email, :website, :street, :postcode, :city, :price )');
   
   
   
     $retour= $req->execute(array(
          'id_departements'=>$_POST['departements'],
          'id_type_loisirs'=>$_POST['type_loisirs'],
          'photo'=>$photo,
          'titre'=>$_POST['titre'],
          'sous_titre'=>$_POST['sous_titre'],
          'date_debut_sortie'=>$date_debut,
          'date_fin_sortie'=>$date_fin,
          'description'=>$_POST['description'],
          'phone'=>$_POST['phone'],
          'email'=>$_POST['email'],
          'website'=>$_POST['website'],
          'street'=>$_POST['street'],
          'postcode'=>$_POST['postcode'],
          'city'=>$_POST['city'],
          'price'=>$_POST['price']
    ));
if( $retour ===false) echo "Problème lors de l'insertion";
       
}else{//le tableau ne contient
 echo "<p> renseignez les champs vides</p>";
}

}//fin de la soumission du formulaire


?>
 
    
     
    <div class="container">
	<div class="row">
    <div class="col-md-6 col-md-offset-3 col-sm-8 col-sm-offset-2">
 
 

        <form  action="mon_profil_client.php" method="post" enctype="multipart/form-data" onSubmit="return(VerifForm(this))">
   

         
        <label for="departement">Departement </label>
        <select class="form-control" name="departements" id="departement">
     <?php foreach ($bdd->query("SELECT * from departements order by nom") as $dep):?>
        <option value="<?php echo $dep['departement_id']; ?>"><?php echo $dep['nom'];?></option>
     <?php endforeach; ?>
        </select>
   
   
     <label>Sortie</label>
     <select class="form-control" name="type_loisirs" id="age">
      <?php foreach ($bdd->query("SELECT * from type_loisir order by type") as $typeloisirs):?>
     <option value="<?php echo $typeloisirs['type_loisir']; ?>"><?php echo $typeloisirs['type'];?></option>
     <?php endforeach; ?>
        </select>
   
   

           

     <!-- titre de la sortie -->
     <label>titre :</label>
     <input class="form-control" type="text" name="titre" value="<?php if(isset($_POST['titre'])) echo $_POST['titre'];?>" />
     <div class="error"><?php if(isset($erreurs['titre'])) echo $erreurs['titre'];?></div>
 
     
     
   
     
      <!-- titre de la sortie -->
     <label>email :</label>
     <input class="form-control" type="text" name="email" value="<?php if(isset($_POST['email'])) echo $_POST['email'];?>" />
     <div class="error"><?php if(isset($erreurs['email'])) echo $erreurs['email'];?></div>
     
   
     
      <!-- Ville de la sortie -->
      <label>Ville *</label>
      <input class="form-control" type="text" name="city" value="<?php if(isset($_POST['city'])) echo $_POST['city'];?>" />
      <div class="error"><?php if(isset($erreurs['city'])) echo $erreurs['city'];?></div>
     
     
       <!-- Ville de la sortie -->
      <label>Rue</label>
      <input class="form-control" type="text" name="street" value="<?php if(isset($_POST['street'])) echo $_POST['street'];?>" />
      <div class="error"><?php if(isset($erreurs['street'])) echo $erreurs['street'];?></div>
     
      <!-- Code postal de la sortie -->
      <label>Code postal *</label>
      <input class="form-control" type="text" name="postcode" value="<?php if(isset($_POST['postcode'])) echo $_POST['postcode'];?>" />
      <div class="error"><?php if(isset($erreurs['postcode'])) echo $erreurs['postcode'];?></div>
     
       <!-- Sous-titre de la sortie -->
      <label>Sous titre*</label>
      <input class="form-control" type="text" name="sous_titre" value="<?php if(isset($_POST['sous_titre'])) echo $_POST['sous_titre'];?>" />
      <div class="error"><?php if(isset($erreurs['sous_titre'])) echo $erreurs['sous_titre'];?></div>
     
     
      <!-- Sous-titre de la sortie -->
      <label>website</label>
      <input class="form-control" type="text" name="website" value="<?php if(isset($_POST['website'])) echo $_POST['website'];?>" />
      <div class="error"><?php if(isset($erreurs['website'])) echo $erreurs['website'];?></div>
     
      <!-- Sous-titre de la sortie -->
      <label>Prix</label>
      <input class="form-control" type="text" name="price" value="<?php if(isset($_POST['price'])) echo $_POST['price'];?>" />
      <div class="error"><?php if(isset($erreurs['price'])) echo $erreurs['price'];?></div>
     
       <!-- Description de la sortie -->
      <label>Detail de votre sortie</label>
       <input class="form-control" type="text" name="description" value="<?php if(isset($_POST['description'])) echo $_POST['description'];?>" />
      <div class="error"><?php if(isset($erreurs['description'])) echo $erreurs['description'];?></div>
   
       
       
      <p>Start <input class="form-control" id="date_debut_sortie"  name="date_debut_sortie" type="text">
     
      End <input class="form-control" id="date_fin_sortie" name="date_fin_sortie" type="text"></p>
<script type="text/javascript">// <![CDATA[
jQuery(function(){
 jQuery('#date_debut_sortie').datetimepicker({
   format:'d.m.Y H:i',
   onShow:function( ct ){
     this.setOptions({
       maxDate:jQuery('#date_fin_sortie').val()?jQuery('#date_fin_sortie').val():false
     })
   },
   timepicker:true
 });
 jQuery('#date_fin_sortie').datetimepicker({
   format:'d.m.Y H:i',
   onShow:function( ct ){
     this.setOptions({
       minDate:jQuery('#date_debut_sortie').val()?jQuery('#date_debut_sortie').val():false
     })
   },
   timepicker:true
 });
});
// ]]></script>

          <label>Télephone</label>
      <input class="form-control" type="text" name="phone" value="<?php if(isset($_POST['phone'])) echo $_POST['phone'];?>" />
       <div class="error"><?php if(isset($erreurs['phone'])) echo $erreurs['phone'];?></div>
             
          <label>Photo</label>
      <input  name="photo" type="file">
       
   
    <input class="btn-u" type="submit" value="ENVOYER">
    </form>

Re: Recupérer info formulaire liste déroulante

par yann18 » 13 juin 2014, 14:38

eh benh je me suis gouré.
voilà les 2 erreurs j'ai omis = au moment de la conversion:
//juste après l'instrction if( empty($erreur) )
 $date_debut date_format($date_debut, 'Y-m-d H:i:s');
 $date_fin date_format($date_fin, 'Y-m-d H:i:s');
tu peux les remplacer par:
 $date_debut =  date_format($date_debut, 'Y-m-d H:i:s');
 $date_fin = date_format($date_fin, 'Y-m-d H:i:s');
active les erreurs php pour détecter d'éventuelles erreurs

Re: Recupérer info formulaire liste déroulante

par cindy381 » 13 juin 2014, 13:33

Grand merci à toi yann18 .
Juste une petite question car cependant il y a un petit soucis ce sont les dates, les valeurs en bdd reste à 0000-00-00 00:00.

Sinan tout le reste c'est bien inséré en bdd et oui je sais qu'il y a un truc à faire pour les insertion de photo je vais regardé ça.

Re: Recupérer info formulaire liste déroulante

par telnes » 13 juin 2014, 11:55

il est de quel couleur son manteau ? :mrgreen:

Re: Recupérer info formulaire liste déroulante

par yann18 » 13 juin 2014, 11:49

voilà j'ai essayé de corriger ton code. Reste quelques corrections à faire de ton côté:
-supprime le champ valide dans la table loisirs car ce type d'information n'a pas besoin d'être sauvegardé en bd(quand on sauvegarde les données c'est qu'elles ont été validées en amant par php )
-j'ai donné un nom bidon à la photo uploadée question de tester que toutes les données sont bien insérées.cependant pour télécharger la photo de l'internaute vers ton serveur je laisse consulter ce tuto: uplodé u fichier
//côté php
<?php
   
   $erreurs = array();   //tableau contenant des messages d'erreurs 

 /* traitement des erreurs
 * tous les champs du formulaire non remplis seront placés
 * dans le tableau des erreurs $erreurs.A la fin du traitement
 * ce tableau sera soit vide, auquel cas on exécute la requête insert
 * pour inserer les données en bd, soit ce tableau n'est pas vide(champs non remplis) on invite
 * l'utilisateur à remplir tous les champs

 */
  if(!empty($_POST)) {//soumission du formulaire
   //Verification titre
  if(empty($_POST['titre']))
  {

   $erreurs['titre'] = 'Renseigner un nom de sortie';
  }
 
   //Verification ville
  if(empty($_POST['city']))
  {

    $erreurs['city'] = 'Renseigner une ville';
  }
 
   //Verification code postal
  if(empty($_POST['postcode']))
  {

    $erreurs['postcode'] = 'Renseigner un code postal';
  }
 
   //Verification sous-titre
  if(empty($_POST['sous_titre']))
  {
    $erreurs['sous_titre'] = 'Votre sortie en quelques mots';
  }
 
 
   //Verification description
  if(empty($_POST['description']) )
  {
    $erreurs['description'] = 'Le detail de votre sortie';
  }

         //Verification description
  if(empty($_POST['email']))
  {
    $erreurs['email'] = 'verifier';
  }


  if(empty($_POST['price']))
  {
    $erreurs['price'] = "le prix n'est pas renseigné";
  }

 //Verification description
  if(empty($_POST['website']))
  {
    $erreurs['website'] = 'lien url';
  }
//fin traitement des erreurs



//pour l'instant je donne un nom bidon à la photo question de voir si les données s'insèrent à la bd
//par après tu pourras consulter les tutos sur comment uploadé les fichiers en php 
$photo='nom bidon';


//s'il y a  problème, procède au debogage en decommentant les 2 lignes çi-dessus:
//var_dump($_POST);
//die('fin debogage');



//le tableau d'erreurs est vide alors on insère les données
if( empty( $erreurs)  ){

//conversion de la date debut du format fr(jj:mm:aaaa hh:mm:ss) en format us(aaaa-mm-jj hh:mm:ss)
$date_debut = date_create_from_format('d-m-Y H:i:s', $_POST['date_debut_sortie']);
$date_debut date_format($date_debut, 'Y-m-d H:i:s');

//conversion de la date fin du format fr(jj:mm:aaaa hh:mm:ss) en format us(aaaa-mm-jj hh:mm:ss)
$date_fin = date_create_from_format('d-m-Y H:i:s', $_POST['date_fin_sortie']);
$date_fin date_format($date_fin, 'Y-m-d H:i:s');

   $req = $bdd->prepare('INSERT INTO loisirs ( id_departements, id_type_loisirs, photo, titre, sous_titre, date_debut_sortie, date_fin_sortie, description, phone, email, website, street, postcode, city, price)
 
  VALUES (:id_departements, :id_type_loisirs, :photo, :titre, 
       :sous_titre, :date_debut_sortie, :date_fin_sortie, :description, 
    :phone, :email, :website, :street, :postcode, :city, :price )');
   
   
   
     $retour= $req->execute(array(
          'id_departements'=>$_POST['departements'],
          'id_type_loisirs'=>$_POST['type_loisirs'],
          'photo'=>$photo,
          'titre'=>$_POST['titre'],
          'sous_titre'=>$_POST['sous_titre'],
          'date_debut_sortie'=>$date_debut,
          'date_fin_sortie'=>$date_fin,
          'description'=>$_POST['description'],
          'phone'=>$_POST['phone'],
          'email'=>$_POST['email'],
          'website'=>$_POST['website'],
          'street'=>$_POST['street'],
          'postcode'=>$_POST['postcode'],
          'city'=>$_POST['city'],
          'price'=>$_POST['price']
    ));
if( $retour ===false) echo "Problème lors de l'insertion";
        
}else{//le tableau ne contient 
 echo "<p> renseignez les champs vides</p>";
}

}//fin de la soumission du formulaire


?>

le formulaire

        <form  action="mon_profil_client.php" method="post" enctype="multipart/form-data" onSubmit="return(VerifForm(this))">
   

         
        <label for="departement">Departement </label>
        <select class="form-control" name="departements" id="departement">
     <?php foreach ($bdd->query("SELECT * from departements order by nom") as $dep):?>
        <option value="<?php echo $dep['departement_id']; ?>"><?php echo $dep['nom'];?></option>
     <?php endforeach; ?>
        </select>
   
   
     <label>Sortie</label>
     <select class="form-control" name="type_loisirs" id="age">
      <?php foreach ($bdd->query("SELECT * from type_loisir order by type") as $typeloisirs):?>
     <option value="<?php echo $typeloisirs['type_loisir']; ?>"><?php echo $typeloisirs['type'];?></option>
     <?php endforeach; ?>
        </select>
   
   

           

     <!-- titre de la sortie -->
     <label>titre :</label>
     <input class="form-control" type="text" name="titre" value="<?php if(isset($_POST['titre'])) echo $_POST['titre'];?>" />
     <div class="error"><?php if(isset($erreurs['titre'])) echo $erreurs['titre'];?></div>
 
     
     
   
     
      <!-- titre de la sortie -->
     <label>email :</label>
     <input class="form-control" type="text" name="email" value="<?php if(isset($_POST['email'])) echo $_POST['email'];?>" />
     <div class="error"><?php if(isset($erreurs['email'])) echo $erreurs['email'];?></div>
     
   
     
      <!-- Ville de la sortie -->
      <label>Ville *</label>
      <input class="form-control" type="text" name="city" value="<?php if(isset($_POST['city'])) echo $_POST['city'];?>" />
      <div class="error"><?php if(isset($erreurs['city'])) echo $erreurs['city'];?></div>
     
     
       <!-- Ville de la sortie -->
      <label>Rue</label>
      <input class="form-control" type="text" name="street" value="<?php if(isset($_POST['street'])) echo $_POST['street'];?>" />
      <div class="error"><?php if(isset($erreurs['street'])) echo $erreurs['street'];?></div>
     
      <!-- Code postal de la sortie -->
      <label>Code postal *</label>
      <input class="form-control" type="text" name="postcode" value="<?php if(isset($_POST['postcode'])) echo $_POST['postcode'];?>" />
      <div class="error"><?php if(isset($erreurs['postcode'])) echo $erreurs['postcode'];?></div>
     
       <!-- Sous-titre de la sortie -->
      <label>Sous titre*</label>
      <input class="form-control" type="text" name="sous_titre" value="<?php if(isset($_POST['sous_titre'])) echo $_POST['sous_titre'];?>" />
      <div class="error"><?php if(isset($erreurs['sous_titre'])) echo $erreurs['sous_titre'];?></div>
     
     
      <!-- Sous-titre de la sortie -->
      <label>website</label>
      <input class="form-control" type="text" name="website" value="<?php if(isset($_POST['website'])) echo $_POST['website'];?>" />
      <div class="error"><?php if(isset($erreurs['website'])) echo $erreurs['website'];?></div>
     
      <!-- Sous-titre de la sortie -->
      <label>Prix</label>
      <input class="form-control" type="text" name="price" value="<?php if(isset($_POST['price'])) echo $_POST['price'];?>" />
      <div class="error"><?php if(isset($erreurs['price'])) echo $erreurs['price'];?></div>
     
       <!-- Description de la sortie -->
      <label>Detail de votre sortie</label>
       <input class="form-control" type="text" name="description" value="<?php if(isset($_POST['description'])) echo $_POST['description'];?>" />
      <div class="error"><?php if(isset($erreurs['description'])) echo $erreurs['description'];?></div>
   
       
       
      <p>Start <input class="form-control" id="date_debut_sortie"  name="date_debut_sortie" type="text">
     
      End <input class="form-control" id="date_fin_sortie" name="date_fin_sortie" type="text"></p>
<script type="text/javascript">// <![CDATA[
jQuery(function(){
  jQuery('#date_debut_sortie').datetimepicker({
    format:'d.m.Y H:i',
    onShow:function( ct ){
      this.setOptions({
        maxDate:jQuery('#date_fin_sortie').val()?jQuery('#date_fin_sortie').val():false
      })
    },
    timepicker:true
  });
  jQuery('#date_fin_sortie').datetimepicker({
    format:'d.m.Y H:i',
    onShow:function( ct ){
      this.setOptions({
        minDate:jQuery('#date_debut_sortie').val()?jQuery('#date_debut_sortie').val():false
      })
    },
    timepicker:true
  });
});
// ]]></script>

          <label>Télephone</label>
      <input class="form-control" type="text" name="phone" value="<?php if(isset($_POST['phone'])) echo $_POST['phone'];?>" />
       <div class="error"><?php if(isset($erreurs['phone'])) echo $erreurs['phone'];?></div>
             
          <label>Photo</label>
      <input  name="photo" type="file">
       
   
    <input class="btn-u" type="submit" value="ENVOYER">
    </form>
     
pour plus d'informations sur comment construire et traiter un formulaire(ce qui te pose problème) :traitement formulaire.

Re: Recupérer info formulaire liste déroulante

par xTG » 13 juin 2014, 07:45

Quand tu as un formulaire avec un champs nommé objet par exemple.
Tu ne doit pas faire d'extract() pour utiliser $objet mais directement utiliser $_POST['objet'].
extract() ne se soucie pas des variables qui pourraient déjà exister.
De plus tu n'as pas de certitude que c'est TON formulaire qui a été utilisé.
On peut attaquer ta page à partir d'un formulaire placé sur n'importe quel autre site avec n'importe quel champs dedans.

Exemple barbare d'un problème :
<form ...>
<input type="text" name="nom" />
...
</form>
<?php
// ...

$id = $_SESSION['id'];
extract($_POST);
$sql = "UPDATE membres SET nom = $nom WHERE id = $id";
// ...
Maintenant si je veux je peux détourner le principe et ne pas mettre à jour mon nom (puisque je suis identifié grâce à la session), mais le nom d'un autre !
J'ai juste à faire un formulaire avec un champs id et le faire pointer vers ce script.
Le extract va remplacer la variable $id et le tour est joué.

Re: Recupérer info formulaire liste déroulante

par cindy381 » 12 juin 2014, 15:34

vs avez un exemple svp quand vous dite enlève:
Enlève la fonction extract() de ton code,appelle les champs par super gobale $_POST['le-champ-name']

ou faire un pti bout de mon code en expliquant svp que je comprenne, je suis un peu perdu et je suis une vraie débutante, j'ai l'impression que de voir des infos à droite et à gauche m'embrouille plus que tout.
En vous remericant

Re: Recupérer info formulaire liste déroulante

par yann18 » 12 juin 2014, 15:00

id_loisirs est auto_increment, ma variable $valide doit renvoyé elle 0 par défault
si id_losir est auto-incrémenté alors dans ce cas tu ne l'insères pas tu l'enlèves tout simplement de ton code mysql lui attribuera une valeur.sinon si tu tiens à insérer id_loisirs tu peux l'assigner 0 (zéro) comme valeur et mysql l'assignera une valeur auto-incrémentée.
Notice: Undefined variable: id_departements in /home/users6/l/lasortie/www/mon_profil_client.php on line 156
l'attribut name de select s'appelle departements ( <select class="form-control" name="departements" id="departement">) donc pour recuper le champ département tu procèdes comme suit:
$id_departement=$_POST['departement'];
Idem pour id_type_losirs.
Enlève la fonction extract() de ton code,appelle les champs par super gobale $_POST['le-champ-name']

Re: Recupérer info formulaire liste déroulante

par cindy381 » 12 juin 2014, 13:41

me voilà j'ai corrigé les quelques petit trucs qui n'allai pas et voilà pour l'instant le résultat:
Je tenais donc juste à rajouter quelque infos pour ceux qui pourront m'aider id_loisirs est auto_increment, ma variable $valide doit renvoyé elle 0 par défault et je ne vois pas comment faire pour mes 4 erreurs.
Si quelqu'un pouvais m'aider et si skype aussi si possible ( c plus simple ). Merci
( il me reste encore quelques erreurs :
Notice: Undefined variable: id_loisirs in /home/users6/l/lasortie/www/mon_profil_client.php on line 155

Notice: Undefined variable: id_departements in /home/users6/l/lasortie/www/mon_profil_client.php on line 156

Notice: Undefined variable: id_type_loisirs in /home/users6/l/lasortie/www/mon_profil_client.php on line 157

Notice: Undefined variable: photo in /home/users6/l/lasortie/www/mon_profil_client.php on line 158 )


mon formulaire:
	<form  action="mon_profil_client.php" method="post" enctype="multipart/form-data" onSubmit="return(VerifForm(this))">
    

         
 	<label for="departement">Departement </label>
 	<select class="form-control" name="departements" id="departement">
     <?php foreach ($bdd->query("SELECT * from departements order by nom") as $dep):?>
        <option value="<?php echo $dep['departement_id']; ?>"><?php echo $dep['nom'];?></option>
     <?php endforeach; ?>
	</select>
    
    
     <label>Sortie</label>
     <select class="form-control" name="type_loisirs" id="age">
      <?php foreach ($bdd->query("SELECT * from type_loisir order by type") as $typeloisirs):?>
     <option value="<?php echo $typeloisirs['type_loisir']; ?>"><?php echo $typeloisirs['type'];?></option>
     <?php endforeach; ?>
	</select>
    
    

            

     <!-- titre de la sortie -->
     <label>titre :</label>
     <input class="form-control" type="text" name="titre" value="<?php if(isset($_POST['titre'])) echo $_POST['titre'];?>" />
     <div class="error"><?php if(isset($erreurtitre)) echo $erreurtitre;?></div>
 
     
     
   
     
      <!-- titre de la sortie -->
     <label>email :</label>
     <input class="form-control" type="text" name="email" value="<?php if(isset($_POST['email'])) echo $_POST['email'];?>" />
     <div class="error"><?php if(isset($erreuremail)) echo $erreuremail;?></div>
     
    
     
      <!-- Ville de la sortie -->
      <label>Ville *</label>
      <input class="form-control" type="text" name="city" value="<?php if(isset($_POST['city'])) echo $_POST['city'];?>" />
      <div class="error"><?php if(isset($erreurcity)) echo $erreurcity;?></div>
      
      
       <!-- Ville de la sortie -->
      <label>Rue</label>
      <input class="form-control" type="text" name="street" value="<?php if(isset($_POST['street'])) echo $_POST['street'];?>" />
      <div class="error"><?php if(isset($erreurstreet)) echo $erreurstreet;?></div>
     
      <!-- Code postal de la sortie -->
      <label>Code postal *</label>
      <input class="form-control" type="text" name="postcode" value="<?php if(isset($_POST['postcode'])) echo $_POST['postcode'];?>" />
      <div class="error"><?php if(isset($erreurpostcode)) echo $erreurpostcode;?></div>
      
       <!-- Sous-titre de la sortie -->
      <label>Sous titre*</label>
      <input class="form-control" type="text" name="sous_titre" value="<?php if(isset($_POST['sous_titre'])) echo $_POST['sous_titre'];?>" />
      <div class="error"><?php if(isset($erreursous_titre)) echo $erreursous_titre;?></div>
      
      
      <!-- Sous-titre de la sortie -->
      <label>website</label>
      <input class="form-control" type="text" name="website" value="<?php if(isset($_POST['website'])) echo $_POST['website'];?>" />
      <div class="error"><?php if(isset($erreurwebsite)) echo $erreurwebsite;?></div>
      
      <!-- Sous-titre de la sortie -->
      <label>Prix</label>
      <input class="form-control" type="text" name="price" value="<?php if(isset($_POST['price'])) echo $_POST['price'];?>" />
      <div class="error"><?php if(isset($erreurprice)) echo $erreurprice;?></div>
      
       <!-- Description de la sortie -->
      <label>Detail de votre sortie</label>
       <input class="form-control" type="text" name="description" value="<?php if(isset($_POST['description'])) echo $_POST['description'];?>" />
      <div class="error"><?php if(isset($erreurdescription)) echo $erreurdescription;?></div>
    
    	
        
      <p>Start <input class="form-control" id="date_debut_sortie"  name="date_debut_sortie" type="text">
      
      End <input class="form-control" id="date_fin_sortie" name="date_fin_sortie" type="text"></p>
<script type="text/javascript">// <![CDATA[
jQuery(function(){
  jQuery('#date_debut_sortie').datetimepicker({
    format:'d.m.Y H:i',
    onShow:function( ct ){
      this.setOptions({
        maxDate:jQuery('#date_fin_sortie').val()?jQuery('#date_fin_sortie').val():false
      })
    },
    timepicker:true
  });
  jQuery('#date_fin_sortie').datetimepicker({
    format:'d.m.Y H:i',
    onShow:function( ct ){
      this.setOptions({
        minDate:jQuery('#date_debut_sortie').val()?jQuery('#date_debut_sortie').val():false
      })
    },
    timepicker:true
  });
});
// ]]></script>

	  <label>Télephone</label>
      <input class="form-control" type="text" name="phone" value="<?php if(isset($_POST['phone'])) echo $_POST['phone'];?>" />
       <div class="error"><?php if(isset($erreurphone)) echo $erreurphone;?></div>
             
	  <label>Photo</label>
      <input  name="photo" type="file">
        
    
    <input class="btn-u" type="submit" value="ENVOYER"> 
    </form>

Re: Recupérer info formulaire liste déroulante

par moogli » 11 juin 2014, 14:52

Comme je te l'ai dit, ton problème vient de l'utilisation de extract.
pour t'aider sur la récupération des données d'un formulaire : http://www.lephpfacile.com/cours/8-recu ... ormulaires

le problème viens tu fait que les variables que tu essai d'employer n'existe simplement pas parce que les champs de formulaire associé n'existe pas (par exemple le champ de formulaire pour le titre s'appel title et pas titre).

coté html lorsque tu met <label for="title">titre :</label>
cela inclus que tu ai un attribut de formulaire avec un id="title" ;)


pour résoudre ton problème suis les infos du tutos et ça ira mieux.

dernière chose, pour la gestion du niveau de rapport d'erreur pas besoin des 50 lignes que tu as copié à droite à gauche, seule la dernière est utile ;)

@+

Re: Recupérer info formulaire liste déroulante

par cindy381 » 11 juin 2014, 13:36

j'ai fait le rapport d'erreur ( je sais j'ai tt mis )
Voici le rapport d'erreur: ( ces lignes correspond à mon execute )
Notice: Undefined variable: id_loisirs in /home/users6/l/lasortie/www/mon_profil_client.php on line 145

Notice: Undefined variable: id_departements in /home/users6/l/lasortie/www/mon_profil_client.php on line 146

Notice: Undefined variable: id_type_loisirs in /home/users6/l/lasortie/www/mon_profil_client.php on line 147

Notice: Undefined variable: photo in /home/users6/l/lasortie/www/mon_profil_client.php on line 148

Notice: Undefined variable: titre in /home/users6/l/lasortie/www/mon_profil_client.php on line 149

Notice: Undefined variable: street in /home/users6/l/lasortie/www/mon_profil_client.php on line 157

Notice: Undefined variable: price in /home/users6/l/lasortie/www/mon_profil_client.php on line 160

Notice: Undefined variable: valide in /home/users6/l/lasortie/www/mon_profil_client.php on line 162


<?php

try
{
$bdd = new PDO('mysql:host=cl1-sql8;dbname=mabase','user','motdepasse');
$bdd->exec('SET NAMES utf8');

}
 
catch(Exception $e)
{
        echo 'Une erreur est survenue !';
        die();
}



// Désactiver le rapport d'erreurs
error_reporting(0);

// Rapporte les erreurs d'exécution de script
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Rapporter les E_NOTICE peut vous aider à améliorer vos scripts
// (variables non initialisées, variables mal orthographiées..)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Rapporte toutes les erreurs à part les E_NOTICE
// C'est la configuration par défaut de php.ini
error_reporting(E_ALL & ~E_NOTICE);

// Reporte toutes les erreurs PHP (Voir l'historique des modifications)
error_reporting(E_ALL);

// Reporte toutes les erreurs PHP
error_reporting(-1);

// Même chose que error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);




?>

le formulaire:
 <div class="container">
    <?php
       
        if(!empty($_POST))
        {
  extract($_POST);
  $valid = true;
 
  //Verification titre
  if(empty($title))
  {
    $valid = false;
    $erreurtitle = 'Renseigner un nom de sortie';
  }
 
   //Verification ville
  if(empty($city))
  {
    $valid = false;
    $erreurcity = 'Renseigner une ville';
  }
 
   //Verification code postal
  if(empty($postcode))
  {
    $valid = false;
    $erreurpostcode = 'Renseigner un code postal';
  }
 
   //Verification sous-titre
  if(empty($sous_titre))
  {
    $valid = false;
    $erreursous_titre = 'Votre sortie en quelques mots';
  }
 
 
   //Verification description
  if(empty($description))
  {
    $valid = false;
    $erreurdescription = 'Le detail de votre sortie';
  }

         //Verification description
  if(empty($adresse_email))
  {
    $valid = false;
    $erreuradresse_email = 'verifier';
  }

 //Verification description
  if(empty($website))
  {
    $valid = false;
    $erreurwebsite = 'lien url';
  }




  $req = $bdd->prepare('INSERT INTO loisirs (id_loisirs, id_departements, id_type_loisirs, photo, titre, sous_titre, date_debut_sortie, date_fin_sortie, description, phone, email, website, street, postcode, city, price, valide)
 
  VALUES (:id_loisirs, :id_departements, :id_type_loisirs, :photo, :titre, :sous_titre, :date_debut_sortie, :date_fin_sortie, :description, :phone, :email, :website, :street, :postcode, :city, :price, :valide)');
   
   
   
      $req->execute(array(
     	  'id_loisirs'=>$id_loisirs,
      	  'id_departements'=>$id_departements,
          'id_type_loisirs'=>$id_type_loisirs,
          'photo'=>$photo,
          'titre'=>$titre,
          'sous_titre'=>$sous_titre,
          'date_debut_sortie'=>$date_debut_sortie,
          'date_fin_sortie'=>$date_fin_sortie,
          'description'=>$description,
          'phone'=>$phone,
          'email'=>$email,
          'website'=>$website,
          'street'=>$street,
          'postcode'=>$postcode,
          'city'=>$city,
          'price'=>$price,
          'valide'=>$valide
    ));
	
	
   
        }
		
  ?>


 
    
     
    <div class="container">
	<div class="row">
    <div class="col-md-6 col-md-offset-3 col-sm-8 col-sm-offset-2">
 
 

 
  	<form  action="mon_profil_client.php" method="post" enctype="multipart/form-data" onSubmit="return(VerifForm(this))">
    

         
 	<label for="departement">Departement </label>
 	<select class="form-control" name="departement" id="departement">
     <?php foreach ($bdd->query("SELECT * from departements order by nom") as $dep):?>
        <option value="<?php echo $dep['departement_id']; ?>"><?php echo $dep['nom'];?></option>
     <?php endforeach; ?>
	</select>
    
    
     <label>Sortie</label>
     <select class="form-control" name="type" id="age">
      <?php foreach ($bdd->query("SELECT * from type_loisir order by type") as $typeloisirs):?>
     <option value="<?php echo $typeloisirs['id_type_loisir']; ?>"><?php echo $typeloisirs['type'];?></option>
     <?php endforeach; ?>
	</select>
    
    

            

     <!-- titre de la sortie -->
     <label for="title">titre :</label>
     <input class="form-control" type="text" name="title" value="<?php if(isset($title))  echo $title;?>" />
     <div class="error"><?php if(isset($erreurtitle)) echo $erreurtitle;?></div>
     
   
     
      <!-- titre de la sortie -->
     <label for="adresse_email">email :</label>
     <input class="form-control" type="text" name="email" value="<?php if(isset($email)) echo $email;?>" />
     <div class="error"><?php if(isset($erreuremail)) echo $erreuremail;?></div>
     
    
     
      <!-- Ville de la sortie -->
      <label>Ville *</label>
      <input class="form-control" name="city" type="text" value="<?php if(isset($city))  echo $city;?>" />
      <div class="error"><?php if(isset($erreurcity)) echo $erreurcity;?></div>
     
      <!-- Code postal de la sortie -->
      <label>Code postal *</label>
       <input class="form-control" name="postcode" type="text" maxlength="5" value="<?php if(isset($postcode))  echo $postcode;?>" />
      <div class="error"><?php if(isset($erreurpostcode)) echo $erreurpostcode;?></div>
      
       <!-- Sous-titre de la sortie -->
      <label>Sous titre*</label>
      <input class="form-control" name="sous_titre" type="text" value="<?php if(isset($sous_titre))  echo $sous_titre;?>" />
      <div class="error"><?php if(isset($erreursous_titre)) echo $erreursous_titre;?></div>
      
      
      <!-- Sous-titre de la sortie -->
      <label>website</label>
      <input class="form-control" name="website" type="text" value="<?php if(isset($website)) echo $website;?>" />
      <div class="error"><?php if(isset($erreurwebsite)) echo $erreurwebsite;?></div>
      
       <!-- Description de la sortie -->
      <label>Detail de votre sortie</label>
       <textarea class="form-control" name="description" value="<?php if(isset($description)) echo $description;?>" type="text" /></textarea>
      <div class="error"><?php if(isset($erreurdescription)) echo $erreurdescription;?></div>
    
    	
        
      <p>Start <input class="form-control" id="date_debut_sortie"  name="date_debut_sortie" type="text">
      
      End <input class="form-control" id="date_fin_sortie" name="date_fin_sortie" type="text"></p>
<script type="text/javascript">// <![CDATA[
jQuery(function(){
  jQuery('#date_debut_sortie').datetimepicker({
    format:'d.m.Y H:i',
    onShow:function( ct ){
      this.setOptions({
        maxDate:jQuery('#date_fin_sortie').val()?jQuery('#date_fin_sortie').val():false
      })
    },
    timepicker:true
  });
  jQuery('#date_fin_sortie').datetimepicker({
    format:'d.m.Y H:i',
    onShow:function( ct ){
      this.setOptions({
        minDate:jQuery('#date_debut_sortie').val()?jQuery('#date_debut_sortie').val():false
      })
    },
    timepicker:true
  });
});
// ]]></script>

	  <label>Télephone</label>
      <input class="form-control"  name="phone" type="tel" id="nom" pattern="^\+?\s*(\d+\s?){8,}$" onKeyUp="verif_integer(this)" />
            
	  <label>Photo</label>
      <input  name="photo" type="file">
      
        
    
    <input class="btn-u" type="submit" value="ENVOYER"> 
    </form>
    </div>

Re: Recupérer info formulaire liste déroulante

par moogli » 11 juin 2014, 12:28

lit bien mon message tu verras pourquoi.

tu peux aussi debuguer avec des print_r() ou var_dump() des variables.

Le mieux étant d'utiliser xdebug lié avec un ide (comme eclipse).


@+

Re: Recupérer info formulaire liste déroulante

par cindy381 » 11 juin 2014, 11:50

pourtant je rentre bien une valeur ( je choisi bien un département dans mon select ) ..... :?