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

Mammouth du PHP | 571 Messages

10 juin 2014, 13:10

essaies d'attraper les exceptions avec PDOException (cf.messages précédents).

dans tous les cas fais un debogage pour vérifier si toutes les données envoyées sont bien reçues:


<?php include("include/header.php");?>
 
    <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';
  }


var_dump($_POST);
die('fin degogage');

  $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'=>$scity,
          'price'=>$price,
          'valide'=>$valide,
    ));
   
        }
  ?>



Eléphant du PHP | 75 Messages

10 juin 2014, 13:38

Voilà ce qui en ressort :

array(0) { }

Mammouth du PHP | 571 Messages

10 juin 2014, 14:50

le problème vient du formulaire qui est sans doute mal construit.
Au niveau des attributs value des éléments de ton formulaire il faut remplacer toutes les variables par $_POST['nom-du-champ']( ex: $title par $_POST['title'])
     <input class="form-control" type="text" name="title" value="<?php if(isset($_POST['title'])) echo $_POST['title'];?>" />
  <!-- ...

 -->
------------------------
à l'avenir penses à ne plus utiliser extract pour extraire les clés d'un tableau ($_POST, $_GET...) pour des raisons de sécurité car il n y a aucun contrôle sur la provenance de la variable.

Eléphant du PHP | 75 Messages

10 juin 2014, 15:26

J'ai le message d'erreur suivant en faisant:
Warning: PDO::query(): SQLSTATE[42S02]: Base table or view not found: 1146 Table 'lasortie1.wrongtable' doesn't exist in /home/users6/l/lasortie/www/mon_profil_client.php on line 26
<?php

try
{
$bdd = new PDO('mysql:host=cl1-sql8;dbname=lasortie1','lasortie1','adminyoann', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
$bdd->exec('SET NAMES utf8');
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
echo 'Echec de la connexion : ' . $e->getMessage();
exit;
}

// Ceci fera que PDO lancera une erreur de niveau E_WARNING au lieu d'une exception (lorsque la table n'existe pas)
$bdd->query("SELECT wrongcolumn FROM wrongtable");

?>

Eléphant du PHP | 75 Messages

10 juin 2014, 17:44

Voilà ce que j'ai essayé sinan mais le formulaire renvoi :
Warning: PDOStatement::execute(): SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'id_departements' cannot be null in /home/users6/l/lasortie/www/mon_profil_client.php on line 132

et la ligne 132:
 $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'=>$scity,
          'price'=>$price,
          'valide'=>$valide
    ));
   //////////ligne 132
        }
  ?>
<?php

try
{
$bdd = new PDO('mysql:host=**************;dbname=*************************','******************','***********************', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
$bdd->exec('SET NAMES utf8');
}
 
catch(Exception $e)
{
        echo 'Une erreur est survenue !';
        die();
}
?>
et 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'=>$scity,
          '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="adresse_email" value="<?php if(isset($adresse_email)) echo $adresse_email;?>" />
     <div class="error"><?php if(isset($erreuradresse_email)) echo $erreuradresse_email;?></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>

Eléphant du PHP | 75 Messages

10 juin 2014, 20:38

J'ai fait ceçi depuis, mais je ne reçois rien en bdd et lorsque je valide mon formulaire je reste donc sur la page et garde les info saisies sauf les champs : Detail de votre sortie, champ start et and, ainsi que téléphone et photo).
Est ce que l'erreur viendrai de là du coup.....
ou est ce la requete ????

la connexion
<?php

try
{
$bdd = new PDO('mysql:host=****************;dbname=*********************',*****************','***************************');
$bdd->exec('SET NAMES utf8');
}
 
catch(Exception $e)
{
        echo 'Une erreur est survenue !';
        die();
}
?>

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>
   
   

ViPHP
xTG
ViPHP | 7331 Messages

10 juin 2014, 20:52

Tu n'as pas activé la gestion des erreurs sur ton dernier code, donc on est un peu aveugle...

Pour ton post d'avant :
Warning: PDOStatement::execute(): SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'id_departements' cannot be null in /home/users6/l/lasortie/www/mon_profil_client.php on line 132
Il te dit que tu viole une contrainte de la table, la colonne id_departements ne peut être vide car la colonne a été créé avec l'attribut NOT_NULL.

Eléphant du PHP | 75 Messages

11 juin 2014, 11:30

comment procéder à cela svp .... un tuto, un lien ....?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

11 juin 2014, 11:45

activation des erreurs => http://fr2.php.net/manual/fr/function.e ... orting.php utilise E_ALL

Pour l'erreur sql en clair tu as
[mysql]
create table toto (
id_departement int NOT NULL,
-- d'autre truc
);
[/mysql]

or dans ton insert id_departement n'est pas indiqué, ou null et comme il n'y a pas de valeur par défaut (default) mysql râle car la contrainte impose une valeur.

le problème viens du fait que ta liste déroulante a pour nom departement et pas id_departement.

utiliser extract est une erreur, tu risque d'écraser d'autre variable et tu perd l'orgine de l'info.

donc 'id_departements'=>$_POST['departements']

pense à faire des close sur les résultat de requête.


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 75 Messages

11 juin 2014, 11:50

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

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).


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 75 Messages

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>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

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 ;)

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 75 Messages

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>

Mammouth du PHP | 571 Messages

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']