Ma requête avec l activation des erreurs est elle bonne

Résolu
flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   -  
flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   -
bonjour a tous

j ai un soucis dans un formulaire et j essaye donc d activer les erreurs dans pdp pour savoir d ou cela peux provenir

je souhaiterais savoir si ma requete est bonne
merci de l aide

  
       $req = $bdd->prepare('INSERT INTO pecheurs_perle(date_sortie,pseudo,city_name,email,gardon,breme,tanche,carpe,carassin,ides,hybride,perche,ablette,rotengle,sandre,brochet,anguille,goujon,gobies,truite,cours_do, duree,technique,meteo,total) VALUES(:date_sortie,:pseudo,:city_name,:email,:gardon,:breme,:tanche,:carpe,:carassin,:ides,:hybride,:perche,:ablette,:rotengle,:sandre,:brochet,:anguille,:goujon,:gobies,:truite,:cours_do, :duree,:technique,:meteo,:total)');
       $req->execute(array(
	   'date_sortie' => $date_sortie,
           'pseudo' => $pseudo,
           'city_name' => $city_name,
           'email' => $email,
           'gardon' => $gardon,
           'breme' => $breme,
           'tanche' => $tanche,
           'carpe' => $carpe,
           'carassin' => $carassin,
           'ides' => $ides,
           'hybride' => $hybride,
           'perche' => $perche,
           'ablette' => $ablette,
           'rotengle' => $rotengle,
           'sandre' => $sandre,
           'brochet' => $brochet,
           'anguille' => $anguille,
           'goujon' => $goujon,
           'gobies' => $gobies,
           'truite' => $truite,
           'cours_do' => $cours_do,
           'duree' => $duree,
           'technique' => $chk,
           'meteo' => $chkx,
           'total' => $total,
		   
       ));
	   try{
  $requete = $bdd -> prepare($req) ;
  $requete->execute($req) ;
}catch(Exception $e){
  // en cas d'erreur :
   echo " Erreur ! ".$e->getMessage();
   echo " Les req : " ;
  print_r($req);
}

21 réponses

  • 1
  • 2
Résumé de la discussion

La problématique porte sur la saisie et le formatage d'une date dans un formulaire PHP avant l'insertion en base de données via PDO, afin que la valeur voie le bon format et soit stockée correctement. Plusieurs répondants recommandent d'utiliser un champ de type date et de laisser le traitement du formatage à PHP ou à SQL, plutôt qu'un champ texte libre. En cas de formatage côté serveur, les échanges évoquent strtotime, date et timezone, mais des soucis peuvent survenir, notamment des dates en 1970 lorsque les conversions échouent. D'autres approches évoquent l'utilisation de NOW() en SQL comme valeur par défaut ou des ajustements d'affichage côté client, tout en insistant sur une intégration propre avec les paramètres de requête.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour,
    il est préférable de faire ainsi:
    $req = 'INSERT INTO pecheurs_perle(date_sortie,pseudo,city_name,email,gardon,breme,tanche,carpe,carassin,ides,hybride,perche,ablette,rotengle,sandre,brochet,anguille,goujon,gobies,truite,cours_do, duree,technique,meteo,total) VALUES(:date_sortie,:pseudo,:city_name,:email,:gardon,:breme,:tanche,:carpe,:carassin,:ides,:hybride,:perche,:ablette,:rotengle,:sandre,:brochet,:anguille,:goujon,:gobies,:truite,:cours_do, :duree,:technique,:meteo,:total)';
    $param=array(
    	   'date_sortie' => $date_sortie,
               'pseudo' => $pseudo,
               'city_name' => $city_name,
               'email' => $email,
               'gardon' => $gardon,
               'breme' => $breme,
               'tanche' => $tanche,
               'carpe' => $carpe,
               'carassin' => $carassin,
               'ides' => $ides,
               'hybride' => $hybride,
               'perche' => $perche,
               'ablette' => $ablette,
               'rotengle' => $rotengle,
               'sandre' => $sandre,
               'brochet' => $brochet,
               'anguille' => $anguille,
               'goujon' => $goujon,
               'gobies' => $gobies,
               'truite' => $truite,
               'cours_do' => $cours_do,
               'duree' => $duree,
               'technique' => $chk,
               'meteo' => $chkx,
               'total' => $total,
    		   );
    try{
      $requete = $bdd -> prepare($req) ;
      $requete->execute($param) ;
    }
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Bonjour,
      Tu as laissé une virgule en trop à la fin de la variable $param
      Tu as oublié de remettre le catch
      Il est préférable, dans $param de remettre les ":" devant le nom des variables

      Donc
      $req = 'INSERT INTO pecheurs_perle(
              date_sortie
              ,pseudo
              ,city_name
              ,email
              ,gardon
              ,breme
              ,tanche
              ,carpe
              ,carassin
              ,ides
              ,hybride
              ,perche
              ,ablette
              ,rotengle
              ,sandre
              ,brochet
              ,anguille
              ,goujon
              ,gobies
              ,truite
              ,cours_do
              , duree
              ,technique
              ,meteo
              ,total) 
       VALUES(:date_sortie
              ,:pseudo
              ,:city_name
              ,:email
              ,:gardon
              ,:breme
              ,:tanche
              ,:carpe
              ,:carassin
              ,:ides
              ,:hybride
              ,:perche
              ,:ablette
              ,:rotengle
              ,:sandre
              ,:brochet
              ,:anguille
              ,:goujon
              ,:gobies
              ,:truite
              ,:cours_do
              , :duree
              ,:technique
              ,:meteo
              ,:total)';
      $param=array(
          ':date_sortie'=> $date_sortie,
          ':pseudo'=> $pseudo,
          ':city_name'=> $city_name,
          ':email'=> $email,
          ':gardon'=> $gardon,
          ':breme'=> $breme,
          ':tanche'=> $tanche,
          ':carpe'=> $carpe,
          ':carassin'=> $carassin,
          ':ides'=> $ides,
          ':hybride'=> $hybride,
          ':perche'=> $perche,
          ':ablette'=> $ablette,
          ':rotengle'=> $rotengle,
          ':sandre'=> $sandre,
          ':brochet'=> $brochet,
          ':anguille'=> $anguille,
          ':goujon'=> $goujon,
          ':gobies'=> $gobies,
          ':truite'=> $truite,
          ':cours_do'=> $cours_do,
          ':duree'=> $duree,
          ':technique'=> $chk,
          ':meteo'=> $chkx,
          ':total'=> $total
      );
      try{
        $requete = $bdd -> prepare($req) ;
        $requete->execute($param) ;
      } catch(PDOException $e) {
          die('Erreur : ' . $e->getMessage());
      }
      
      


      Et bien entendu, pour que ça fonctionne correctement .. ne pas oublier d'activer l'affichage des erreurs PDO dans la connexion
      https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

      .
      0
  2. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    bonjour a vous deux
    un super grand merci pour votre aide

    cela fonctionne parfaitement
    oui bien entendu dans la connexion les erreurs sont acivees

    j ai ce message d erreur
    Erreur : SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'date_sortie' cannot be null

    donc je dois mettre la colonne en null ?
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Cela indique que ta variable $date_sortie est null ou pas au bon format.
      Est-ce bien une colonne au format DateTime dans ta bdd ?
      Lui envoies tu bien une date valide ( au format Année - Mois - Jours ) ?
      Veux tu autoriser qu'elle soit vide ? Si oui, au niveau de ta bdd tu dois modifier le champ pour autoriser le null.
      0
  3. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    bonjour
    merci pour l aide
    j avais donc un formulaire
    dans lequel je veux envoyer une date
    donc en variable $date_sortie

    de cette façon
    date_default_timezone_set('Europe/Paris');
    echo date("d/m/Y"); // Affiche la date du jour
    $date_sortie=date("d/m/Y");
    echo"$date_sortie";


    et ensuite je veux insérer cette date dans ma base de donnée

    dans ma base de donnée
    je suis bien en au format DateTime

    donc je pense que d après les explications je ne retourne pas la date de la bonne manière dans phpmyadmin car il attends surement une date au format(Année - Mois - Jours )

    comment je pourrais m y prendre ?
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      comme je te l'ai dit ;.. en mettant au format anglais
      $date_sortie = date('Y-m-d');
      
      0
  4. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    merci jordane
    oui j avais bien compris que je devais retourner la date dans phpmyadmin en ('Y-m-d')
    mais alors comment faire pour que le pécheur puisse voir s afficher
    la date en jour/mois /annee

    peut etre pour le formulaire l indiquer en jour/mois /annee et ensuite la remettre en annee/mois/jour avant l insertion
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Pour l'insertion tu n'es pas obligé de passer par une variable PHP.
      Tu pourrais très bien utiliser la fonction now de SQL
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    merci pour la reponse
    donc si j utilise la fonction now
    la date que l utilisateur aura choisie sera envoyé vers la base de donnée en annee/mois/jour

    mais alors dans ce cas je fais quoi avec la variable date_sortie ...dans laquelle l utilisateur entre la date
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Ah non, si c'est la date que l'utilisateur choisi, il faut la convertir dans le bon format.
      Mais dans l'exemple que tu nous donnes, ce n'est pas la date choisi .. mais celle du serveur que tu utilises actuellement...
      0
  7. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    merci pour l aide

    oui cela était juste un morceau de mon code afin de comprendre pourquoi cela ne fonctionnait pas et donc dans un premier temps savoir ou sa bloquait avec la gestion des erreurs

    donc en réalité j ai un formulaire dans lequel je propose la date du jour en Français et que l utilisateur peux changer
    je pratique de cette façon

            <?php
    
    date_default_timezone_set('Europe/Paris');
    echo date("d/m/Y"); // Affiche la date du jour
    $date_sortie=date("d/m/Y");
    ?>

    <input type="text" name="pseudo" class="form-control "value="<?php echo"$date_sortie";?>" required>


    cela fonctionne
    j ai donc bien ma date en Français du jour

    une fois que j ai cette date je veux la renvoyer vers ma base de donnée
    mais donc apparemment je dois la remettre en langage mysql pour la renvoyer dans ma base ...

    cela doit se faire dans la requête insert ?
    si je comprends bien la logique
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Il serait plus simple d'utiliser un champ de type date plutôt qu'un champ texte libre.
      Au moins la date serait au bon format à l'affichage et également dans le bon format pour l'ajout en Bdd
      0
  8. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    merci pour la reponse

    donc d après toi mon imput devrait être

    <input type="date" name="pseudo" class="form-control "value="<?php echo"$date_sortie";?>" required>


    et je ne dois rien faire de plus ?

    et donc a ce moment la dans ma requête je dois la fonction now de SQL
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Regarde du côté de jquery DatePicker
      https://jqueryui.com/datepicker/#date-formats
      Ce plugin te permet de choisir une date et de l'afficher au format français, et en même temps de disposer d'un champ alternatif au format anglais
      https://api.jqueryui.com/datepicker/#option-altField
      0
      1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Après... tu peux aussi simplement convertir une date française au format Y-m-d en php...
        Tu trouveras des milliers de discussions à ce sujet sur le net sans souci...
        0
  9. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    bonsoir
    merci pour l aide
    et les liens

    je préfère ne pas m encombrer pour l instant de jquery

    donc j opte pour la solution numero 2

    juste avant l insert je pourrais faire ceci

    date_default_timezone_set('Europe/London');
    echo date("Y/m/d"); // Affiche la date du jour
    $date_sortie=date("Y/m/d");


    mais le soucis c est que j ai besoin de retrouver le format date dans mysql en datetime

    du coup je pourrais juste avant l insertion faire ceci

    
    date_default_timezone_set('Europe/London');
    echo date("Y/m/d"); // Affiche la date du jour
    $date_sortie=date('Y-m-d H:i:s');
    
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Alors .. un DateTime en SQL c'est de la forme Y-m-d H:i:s

      Et si tu fais juste un
      $date_sortie=date('Y-m-d H:i:s');
      

      tu auras la date/heure du moment où ton script sera lancé .. pas celle choisie par ton visiteur.

      Je te laisse chercher comment convertir une date française ( transmise par le formulaire) en date valide pour la bdd.
      Franchement.. vu le nombre de sujets sur le net à ce propos.. tu devrais réussir à trouver par toi même....
      0
  10. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    bonjour
    merci pour l information
    voila je viens de faire un essai
    pour convertir la date_sortie

    je fais juste avant la requeste d insertion mais mysql refuse de prendre en compte

     date_default_timezone_set('Europe/London');
    echo date("Y/m/d"); // Affiche la date du jour
    $date_sortie=date('Y-m-d H:i:s');


    je vais aller voir un peu sur le net ce que l on raconte ...
    0
  11. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    bon voila je reviens
    donc je viens de trouver comment convertir la date en anglais

    je fais des essais

    dans le code html je fais ceci
    ce qui me donne bien la date en francais et ensuite la date anglaise

    	        <?php
    
    
    date_default_timezone_set('Europe/Paris');
    echo date("d/m/Y"); // Affiche la date du jour
    $date_sortie=date("d/m/Y");echo "<br>";
    echo"$date_sortie";echo "<br>";
    ?>
       </br>    
    	 </br>   
    	  </br>            
    			      
    
    <?php  
       
    	 $date_sortie= "$date_sortie";  echo "<br>";
        $date_sortie= date("Y-m-d", strtotime($date_sortie));  echo "<br>";
        echo "New date format is: ".$date_sortie. " (MM-DD-YYYY)";  echo "<br>";
    ?>  


    donc tout va bien

    avant la requête
    je refais
    un petit écho

     echo "New date format is: ".$date_sortie. " (MM-DD-YYYY)";  echo "<br>";

    a ce moment c est vide

    j ai essaye aussi avant la requete de faire ceci

     $date_sortie= "$date_sortie";  echo "<br>";
        $date_sortie= date("Y-m-d", strtotime($date_sortie));  echo "<br>";
        echo "New date format is: ".$date_sortie. " (MM-DD-YYYY)";  echo "<br>";
    ?> 

    ca me retourne la date en 1970
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Avec des bouts de codes .. impossible de te dire ce que tu as mal fait.
      Il nous faut l'intégralité du code (celui où tu fais l'ajout en bdd )
      0
  12. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    merci pour l aide
    je pense comprendre mon erreur
    je reviens une fois que j ai effectue la correction
    0
  13. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    voila
    après avoir cherche pas mal je reviens avec mon code
    enfin du moins une partie
    j ai juste pris les morceaux intéressants
    du cote du html

    <!-- debut essai avec les dates  -->
    	        <?php
    
    // Y=année, m=Mois, d=Jour (La date en chiffre)
    //affiche date du jour 
     echo "date du jour du pc";echo "<br>";
    echo date("Y-m-d");echo "<br>";echo "<br>";
             echo "date du jour du pc en francais ";echo "<br>";
               //affiche date du jour 
                setlocale(LC_TIME, ['fr', 'fra', 'fr_FR']);
                echo strftime('%x '). '<br>';echo "<br>";
          
    		echo "date du jour en francais avec date_default_timezone_set ";	
    date_default_timezone_set('Europe/Paris');echo "<br>";
    echo date("d/m/Y "); // Affiche la date du jour
    $date_sortie=date("d/m/Y H:i:s");echo "<br>";
    echo"$date_sortie";echo "<br>";
    ?>
      <!-- fin essai avec les dates  -->
    		 
                 <div class="container1" style=" padding-left:15px;padding-right:15px; margin:auto;">
                <form method="post" id="sectionForm">
               			 <button class="btn btn-lg btn-success btn-block" ><h3>Ta journee de peche</h3></button></br>
    			 			 
    			  <div class="form-label-group">
    			  <button class="btn btn-lg btn-primary btn-block" ><h3>Date</h3></button>
    			 
    			   <input type="text" name="date_sortie" class="form-control "value="<?php echo"$date_sortie";?>" required>
    			  </div>
    			 
    			  <!-- debut remise de la date en anglais   -->
    			<?php 
    			 
    			 $newDate = date("Y/d/m H:i:s", strtotime($date_sortie));
    
    
       	  echo"$date_sortie";echo "<br>";
    	  echo "date du jour en francais avec strtotime ";echo "<br>";
    	  echo"$newDate";echo "<br><br><br>";
    	  $date_sortie=$newDate;
    	   echo "dernier";echo "<br>";
    	   echo"$date_sortie";echo "<br>";
    	   echo "fin";echo "<br>";
    		?>	 
    			  <!-- fin remise de la date en anglais   -->


    ensuite le code php pour le traitement il y a un echo ou je vérifie que ma date est toujours bien en anglais sur ce $_post
    ($_POST['date_sortie'])
    et malheureusement a ce stade ma date apparaît toujours en francais
    alors que juste apres le input du formulaire la date a ete formater en anglais

    	
    
    	  
    	    $date_sortie = $_POST['date_sortie'];
           $city_name = $_POST['city_name'];
           $email = $_POST['email'];
           $gardon = $_POST['gardon'];
           $breme = $_POST['breme'];
           $tanche = $_POST['tanche'];
           $carpe = $_POST['carpe'];
           $carassin = $_POST['carassin'];
           $ides = $_POST['ides'];
           $hybride = $_POST['hybride'];
           $perche = $_POST['perche'];
           $ablette = $_POST['ablette'];
           $rotengle = $_POST['rotengle'];
           $sandre = $_POST['sandre'];
           $brochet = $_POST['brochet'];
           $anguille = $_POST['anguille'];
           $goujon = $_POST['goujon'];
           $gobies = $_POST['gobies'];
           $truite = $_POST['truite'];
           $cours_do = $_POST['cours_do'];
           $duree = $_POST['duree'];
           $checkbox1 = $_POST['technique'];
           $chk = "";
           foreach ($checkbox1 as $chk1)
           {
               $chk .= $chk1 . ",";
           }
           $checkbox2 = $_POST['meteo'];
           $chkx = "";
           foreach ($checkbox2 as $chk2)
           {
               $chkx .= $chk2 . ",";
           }
           $total = $gardon + $breme + $tanche + $carpe + $carassin + $ides + $hybride + $perche + $ablette + $rotengle + $sandre + $brochet + $anguille + $goujon + $truite + $gobies;
    
    		  print_r($_POST['date_sortie']);echo "<br>";
      $req = 'INSERT INTO pecheurs_perle(
            date_sortie
            ,pseudo
            ,city_name
            ,email
            ,gardon
            ,breme
            ,tanche
            ,carpe
            ,carassin
            ,ides
            ,hybride
            ,perche
            ,ablette
            ,rotengle
            ,sandre
            ,brochet
            ,anguille
            ,goujon
            ,gobies
            ,truite
            ,cours_do
            , duree
            ,technique
            ,meteo
            ,total) 
     VALUES(:date_sortie
            ,:pseudo
            ,:city_name
            ,:email
            ,:gardon
            ,:breme
            ,:tanche
            ,:carpe
            ,:carassin
            ,:ides
            ,:hybride
            ,:perche
            ,:ablette
            ,:rotengle
            ,:sandre
            ,:brochet
            ,:anguille
            ,:goujon
            ,:gobies
            ,:truite
            ,:cours_do
            , :duree
            ,:technique
            ,:meteo
            ,:total)';
    $param=array(
        ':date_sortie'=> $date_sortie,
        ':pseudo'=> $pseudo,
        ':city_name'=> $city_name,
        ':email'=> $email,
        ':gardon'=> $gardon,
        ':breme'=> $breme,
        ':tanche'=> $tanche,
        ':carpe'=> $carpe,
        ':carassin'=> $carassin,
        ':ides'=> $ides,
        ':hybride'=> $hybride,
        ':perche'=> $perche,
        ':ablette'=> $ablette,
        ':rotengle'=> $rotengle,
        ':sandre'=> $sandre,
        ':brochet'=> $brochet,
        ':anguille'=> $anguille,
        ':goujon'=> $goujon,
        ':gobies'=> $gobies,
        ':truite'=> $truite,
        ':cours_do'=> $cours_do,
        ':duree'=> $duree,
        ':technique'=> $chk,
        ':meteo'=> $chkx,
        ':total'=> $total
    );
    try{
      $requete = $bdd -> prepare($req) ;
      $requete->execute($param) ;
    } catch(PDOException $e) {
        die('Erreur : ' . $e->getMessage());
    }
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      C'est bien entendu au moment de récupérer la variable post qu'il faut la transformer en date anglaise ...
      0
    2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      difficile de comprendre ce que tu fais avec des morceaux de code, sans même nous préciser le nom du fichier.
      je ne vois pas trop pourquoi tu modifies le format de la date après l'avoir envoyé dans le formulaire.
      par ailleurs, n'est-ce pas préférable d'utiliser, dans le formulaire, un type date plutôt qu'un type text?
      0
  14. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    merci pour l aide

    oui j ai essaye mais alors cela me retourne une date en 1970
    j ai essaye avec ceci

      <!-- debut remise de la date en anglais   -->
    			<?php 
    			 
    			 $newDate = date("Y/d/m H:i:s", strtotime($date_sortie));
    
    
       	  echo"$date_sortie";echo "<br>";
    	  echo "date du jour en francais avec strtotime ";echo "<br>";
    	  echo"$newDate";echo "<br><br><br>";
    	  $date_sortie=$newDate;
    	   echo "dernier";echo "<br>";
    	   echo"$date_sortie";echo "<br>";
    	   echo "fin";echo "<br>";
    		?>	 
    			  <!-- fin remise de la date en anglais   -->
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      pourquoi ne nous montres-tu pas ce qui est affiché par la page?
      0
  15. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    bonjour
    merci pour l aide

    voici la page qui s affiche une fois que j ai cliquer sur envoyer le formulaire
    les dates qui apparaisse sont du aux différents echo

    date du jour en francais avec strtotime
    1970/01/01 00:00:00

    dernier
    1970/01/01 00:00:00
    fin
    06/04/2021 13:25:36
    Erreur : SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '06/04/2021 13:25:36' for column `id16000760_phil`.`pecheurs_perle`.`date_sortie` at row 1
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      comme tu le vois, le soucis est présent avant le premier echo, dans le code que tu ne montres pas.
      0
  16. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    oui en effet
    voici donc le code complet
    mais il est long ...
    et a l intérieur plusieurs tests pour l heure

    <?php
     include('base.php');
      $req=$bdd->prepare('SELECT email FROM utilisateurs  where pseudo = ?');
    		  $req->execute(array($getpseudo));
    		  $dones=$req->fetch();
    		  $getemail=$dones['email'];
      if(isset($_POST['submit'])) 
    {$pseudo = htmlspecialchars($_POST['pseudo']);
    $email = htmlspecialchars($_POST['email']);	  
    	  if($pseudo == $getpseudo AND $email == $getemail){
    			  
    	  }else{
    		  echo ' <span style="font-size:24px;">  Ces coordonnées ne correspondent pas aux vôtres.</span>';
    		  exit();
    	  }
    	    $newDate = date("Y/d/m H:i:s", strtotime($date_sortie));
    
       	  echo"$date_sortie";echo "<br>";
    	  echo "date du jour en francais avec strtotime ";echo "<br>";
    	  echo"$newDate";echo "<br><br><br>";
    	  $date_sortie=$newDate;
    	   echo "dernier";echo "<br>";
    	   echo"$date_sortie";echo "<br>";
    	   echo "fin";echo "<br>";
    	
    
    	  
    	    $date_sortie = $_POST['date_sortie'];
           $city_name = $_POST['city_name'];
           $email = $_POST['email'];
           $gardon = $_POST['gardon'];
           $breme = $_POST['breme'];
           $tanche = $_POST['tanche'];
           $carpe = $_POST['carpe'];
           $carassin = $_POST['carassin'];
           $ides = $_POST['ides'];
           $hybride = $_POST['hybride'];
           $perche = $_POST['perche'];
           $ablette = $_POST['ablette'];
           $rotengle = $_POST['rotengle'];
           $sandre = $_POST['sandre'];
           $brochet = $_POST['brochet'];
           $anguille = $_POST['anguille'];
           $goujon = $_POST['goujon'];
           $gobies = $_POST['gobies'];
           $truite = $_POST['truite'];
           $cours_do = $_POST['cours_do'];
           $duree = $_POST['duree'];
           $checkbox1 = $_POST['technique'];
           $chk = "";
           foreach ($checkbox1 as $chk1)
           {
               $chk .= $chk1 . ",";
           }
           $checkbox2 = $_POST['meteo'];
           $chkx = "";
           foreach ($checkbox2 as $chk2)
           {
               $chkx .= $chk2 . ",";
           }
           $total = $gardon + $breme + $tanche + $carpe + $carassin + $ides + $hybride + $perche + $ablette + $rotengle + $sandre + $brochet + $anguille + $goujon + $truite + $gobies;
    
    		  print_r($_POST['date_sortie']);echo "<br>";
      $req = 'INSERT INTO pecheurs_perle(
            date_sortie
            ,pseudo
            ,city_name
            ,email
            ,gardon
            ,breme
            ,tanche
            ,carpe
            ,carassin
            ,ides
            ,hybride
            ,perche
            ,ablette
            ,rotengle
            ,sandre
            ,brochet
            ,anguille
            ,goujon
            ,gobies
            ,truite
            ,cours_do
            , duree
            ,technique
            ,meteo
            ,total) 
     VALUES(:date_sortie
            ,:pseudo
            ,:city_name
            ,:email
            ,:gardon
            ,:breme
            ,:tanche
            ,:carpe
            ,:carassin
            ,:ides
            ,:hybride
            ,:perche
            ,:ablette
            ,:rotengle
            ,:sandre
            ,:brochet
            ,:anguille
            ,:goujon
            ,:gobies
            ,:truite
            ,:cours_do
            , :duree
            ,:technique
            ,:meteo
            ,:total)';
    $param=array(
        ':date_sortie'=> $date_sortie,
        ':pseudo'=> $pseudo,
        ':city_name'=> $city_name,
        ':email'=> $email,
        ':gardon'=> $gardon,
        ':breme'=> $breme,
        ':tanche'=> $tanche,
        ':carpe'=> $carpe,
        ':carassin'=> $carassin,
        ':ides'=> $ides,
        ':hybride'=> $hybride,
        ':perche'=> $perche,
        ':ablette'=> $ablette,
        ':rotengle'=> $rotengle,
        ':sandre'=> $sandre,
        ':brochet'=> $brochet,
        ':anguille'=> $anguille,
        ':goujon'=> $goujon,
        ':gobies'=> $gobies,
        ':truite'=> $truite,
        ':cours_do'=> $cours_do,
        ':duree'=> $duree,
        ':technique'=> $chk,
        ':meteo'=> $chkx,
        ':total'=> $total
    );
    try{
      $requete = $bdd -> prepare($req) ;
      $requete->execute($param) ;
    } catch(PDOException $e) {
        die('Erreur : ' . $e->getMessage());
    }
    
       
           echo '<h2> Vos données sont enregistrées. <h2> <br/><br/>
          Aller à :     <a href="journees-de-peche.php"> Tableau des sorties de pêche </a><br/><br/>
          Retourner à :<a href="accueil-peche-perle.php"> Accueil du site </a>';
           exit();
       }
          ?>
    <!doctype html>
    <html lang="en">
       <!-- debut head -->
       <head>
          <?php include("include/head.php"); ?>
          <link rel="stylesheet" type="text/css" href="./css/cadre-horizontal.css">
        
       </head>
       <!-- fin head -->
       <!-- debut body -->
       <body>
          <!-- debut container global-->
          <div class="container">
             <title>phil le perleur</title>
             <div class="container" style=" max-width: 100%;margin:auto;">
                <!-- debut banniere -->
                <?php include("include/baniere-peche-perle.php"); ?>
                <!-- fin banniere -->
                <!-- debut menu -->
                <?php include("include/menu1.php"); ?>
                <!-- fin menu -->
             </div>
    
        </br>    
    	 </br>   
    	  </br>   
    	  <!-- debut essai avec les dates  -->
    	        <?php
    
    // Y=année, m=Mois, d=Jour (La date en chiffre)
    //affiche date du jour 
     echo "date du jour du pc";echo "<br>";
    echo date("Y-m-d");echo "<br>";echo "<br>";
             echo "date du jour du pc en francais ";echo "<br>";
               //affiche date du jour 
                setlocale(LC_TIME, ['fr', 'fra', 'fr_FR']);
                echo strftime('%x '). '<br>';echo "<br>";
          
    		echo "date du jour en francais avec date_default_timezone_set ";	
    date_default_timezone_set('Europe/Paris');echo "<br>";
    echo date("d/m/Y "); // Affiche la date du jour
    $date_sortie=date("d/m/Y H:i:s");echo "<br>";
    echo"$date_sortie";echo "<br>";
    ?>
      <!-- fin essai avec les dates  -->
    		 
                 <div class="container1" style=" padding-left:15px;padding-right:15px; margin:auto;">
                <form method="post" id="sectionForm">
               			 <button class="btn btn-lg btn-success btn-block" ><h3>Ta journee de peche</h3></button></br>
    			 			 
    			  <div class="form-label-group">
    			  <button class="btn btn-lg btn-primary btn-block" ><h3>Date</h3></button>
    			 
    			   <input type="text" name="date_sortie" class="form-control "value="<?php echo"$date_sortie";?>" required>
    			  </div>
    			 
    			  <!-- debut remise de la date en anglais   -->
    			<?php 
    			 
    			 $newDate = date("Y/d/m H:i:s", strtotime($date_sortie));
    
    
       	  echo"$date_sortie";echo "<br>";
    	  echo "date du jour en francais avec strtotime ";echo "<br>";
    	  echo"$newDate";echo "<br><br><br>";
    	  $date_sortie=$newDate;
    	   echo "dernier";echo "<br>";
    	   echo"$date_sortie";echo "<br>";
    	   echo "fin";echo "<br>";
    		?>	 
    			  <!-- fin remise de la date en anglais   -->
    			 <div class="form-label-group">
    			  <button class="btn btn-lg btn-primary btn-block" ><h3>Ton pseudo </h3></button>
    			 
    			   <input type="text" name="pseudo" class="form-control "value="<?php echo $getpseudo;?>" required>
    			  </div>
    			  <div class="form-label-group">
    			   <button class="btn btn-lg btn-primary btn-block" ><h3>Ton email </h3></button>
    			  
    				<input type="email" name="email"class="form-control"value="<?php echo $getemail;?>" required> 
    				 </div>
    				 <div class="form-label-group">
    			  <button class="btn btn-lg btn-primary btn-block" ><h3>ville peche </h3></button>
    			  			  <input type="text" name="city_name"class="form-control" placeholder="ville peche" required></br>
    						  </div>
    						  <div class="form-label-group">
    			  <button class="btn btn-lg btn-primary btn-block" ><h3>Cours d'eau </h3></button>
    			  <input type="text" name="cours_do"class="form-control" placeholder="cours d eau " required></br>
    			  </div>
    			 <button class="btn btn-lg btn-primary btn-block" ><h3>Duree de ta seance de peche</h3></button>
    			 
    			   
                   <div class="row">
                      <div class="col-sm text-center">
    				  
    				  
    				  
    
                     
                            <select  name="duree"style="width:100%;"  required>
                               <option value="">duree seance </option>
                               <option value="1">1</option>
                               <option value="2">2</option>
                               <option value="3">3</option>
                               <option value="4">4</option>
                               <option value="5">5</option>
                               <option value="6">6</option>
                            </select>
    
                      </div>
                   </div></br>
    			 
    			              <div class="row">
                      <div class="col-sm text-center">
                        <button class="btn btn-lg btn-primary btn-block" > <h3>les sortes et quantité de poissons capturés </h3></button>
                      </div>
                   </div></br>
                   <div class="form-label-group">
                                         <button type="button" class="btn btn-info">  <h3>Nombre de Gardons: </h3></button>
                    
                                        <input id="number" type="number" value="0" min="0" type="text" name="gardon"class="form-control">
                      </div>
                   </br>
    			   
    			   
                   <div class="form-label-group">
                          <button type="button" class="btn btn-info"><h3>Nombre de Bremes: </h3></button>
                     <input id="number" type="number" value="0" min="0" type="text" name="breme"class="form-control">
                     </div>  
    </br>				 
    				 <div class="form-label-group">
                   
                   
                         <button type="button" class="btn btn-info"><h3>Nombre de Tanches: </h3></button>
                         <input id="number" type="number" value="0" min="0" type="text" name="tanche"class="form-control">
                  </div>     
    </br>			  
    				 <div class="form-label-group">   
                   
                         <button type="button" class="btn btn-info"><h3>Nombre de Carpes: </h3></button>
                         <input id="number" type="number" value="0" min="0" type="text" name="carpe"class="form-control">
                   </div>      
    			   </br>
    				 <div class="form-label-group">   
                   
                         <button type="button" class="btn btn-info"><h3>Nombre de Carassins: </h3></button>
                                      <input id="number" type="number" value="0" min="0" type="text" name="carassin"class="form-control">
                     </div> 
    </br>				 
    				 <div class="form-label-group">
                   
                         <button type="button" class="btn btn-info"><h3>Nombre d'Ides: </h3></button>
                                <input id="number" type="number" value="0" min="0" type="text" name="ides"class="form-control">
                     </div>  
    </br>				 
    				 <div class="form-label-group">
                   
                         <button type="button" class="btn btn-info"><h3>Nombre d'd'Hybrides: </h3></button>
                                   <input id="number" type="number" value="0" min="0" type="text" name="hybride"class="form-control">
                    </div>   
    </br>				
    				 <div class="form-label-group">
                   
                         <button type="button" class="btn btn-info"><h3>Nombre Perches: </h3></button>
                              <input id="number" type="number" value="0" min="0" type="text" name="perche"class="form-control">
                     </div>   
    </br>				 
    				 <div class="form-label-group">
                   
                         <button type="button" class="btn btn-info"><h3>Nombre d'Ablettes: </h3></button>
                            <input id="number" type="number" value="0" min="0" type="text" name="ablette"class="form-control">
                    </div>     
    </br>				
    				 <div class="form-label-group">
                   
                         <button type="button" class="btn btn-info"><h3>Nombre de Rotengles: </h3></button>
                              <input id="number" type="number" value="0" min="0" type="text" name="rotengle"class="form-control">
                     </div>
    </br>				 
    				 <div class="form-label-group">
                   
                         <button type="button" class="btn btn-info"><h3>Nombre de sandres: </h3></button>
                              <input id="number" type="number" value="0" min="0" type="text" name="sandre"class="form-control">
                    </div> 
    </br>				
    				 <div class="form-label-group">
                   
                         <button type="button" class="btn btn-info"><h3>Nombre de Brochets: </h3></button>
                            <input id="number" type="number" value="0" min="0" type="text" name="brochet"class="form-control">
                     </div>  
    </br>				 
    				 <div class="form-label-group">
                   
                         <button type="button" class="btn btn-info"><h3>Nombre d'Anguilles: </h3></button>
                                     <input id="number" type="number" value="0" min="0" type="text" name="anguille"class="form-control">
                     </div>   
    </br>				 
    				 <div class="form-label-group">
                   
                         <button type="button" class="btn btn-info"><h3>Nombre de Goujons: </h3></button>
                                       <input id="number" type="number" value="0" min="0" type="text" name="goujon"class="form-control">
                     </div>  
    </br>				 
    				 <div class="form-label-group">
                   
                         <button type="button" class="btn btn-info"><h3>Nombre de Gobies: </h3></button>
                                     <input id="number" type="number" value="0" min="0" type="text" name="gobies"class="form-control">
                    </div>   
    </br>				
    				 <div class="form-label-group">
                   
                         <button type="button" class="btn btn-info"><h3>Nombre de Truite: </h3></button>
                                     <input id="number" type="number" value="0" min="0" type="text" name="truite"class="form-control">
                     </div>
    			 </br>	
    			 
    			 
    			 
    			 
    			  <div class="form-label-group">
                   
                         <button type="button" class="btn btn-info"><h3 >esches utilisees </h3></button>
                      </div> 
                
                   <div class="form-label-group">
                       <button type="button" class="btn btn-danger"><h3 >  Ne pas oublier d'entrer une valeur pour l esche. Merci.</h3></button>
                      
                   </div> </br>
                  <div class="form-label-group">
                         <input type="checkbox" name="technique[]" value="perle">perle</br>
                         <input type="checkbox" name="technique[]" value="graine">graines</br>
                         <input type="checkbox" name="technique[]" value="asticot">asticot/pinkies</br>
                         <input type="checkbox" name="technique[]" value="pelets">pelets</br>
    					  <input type="checkbox" name="technique[]" value="vaseux">vaseux</br>
                     
                   </div>
    			    </br>
                   <div class="form-label-group">
                        <button type="button" class="btn btn-info"> <h3>meteo: </h3></button>
                      </div>
                  
                   <div class="form-label-group">
                        <button type="button" class="btn btn-danger"><h3 > Ne pas oublier d'entrer une valeur pour la météo. Merci</h3></button>
                      </div>
                  </br>
                 <div >
                        
                         <input type="checkbox" name="meteo[]" value="vent">vent</br>
                         <input type="checkbox" name="meteo[]" value="pluie">pluie</br>
                         <input type="checkbox" name="meteo[]" value="neige">neige</br>
                         <input type="checkbox" name="meteo[]" value="soleil">soleil</br>
                         <input type="checkbox" name="meteo[]" value="nuageux">nuageux</br>
                      </div>
                 
    			 
    			    <div class="form-label-group">
                         <input type="submit" class="form-control"name="submit" value="Valider" />
                      </div>
                   
               
    			 
    			 
    			 
    			 
    			 
    			 
    			 
    			 
    			 
    			 
    			 
    			 
    			 
    			 
    			 
    			 
    			 
    			 
     
                </form>
                <script>
                   //on selectionne notre form sur lequel on souhaite écouter les évenements
                   const formulaire = document.querySelector('#sectionForm');
                   //si on clic sur "Envoyer" on vérifi si il y a un minimum de case cochées:
                   formulaire.onsubmit = function(){
                   if(verifier_si_cochee('technique[]') && verifier_si_cochee('meteo[]'))
                   return true;
                   else {
                   //on affiche un petit message
                   formulaire.append(" Vous devez cocher au moins une case dans la meteo et dans les esches utilisees ");
                   //et on bloque le soumission du form:
                   return false;
                   }
                   }
                   function verifier_si_cochee(name_input) {
                   //avec cette fonction, on boucle chaque case et retourne true si ya une case cochée
                   let input=formulaire.querySelectorAll('input[name="'+name_input+'"]')
                   for (let i = 0; i < input.length; i++) {
                   if(input[i].checked)
                   return true;
                   }
                   //sinon on retourne false
                   return false;
                   }
                </script>
                <br />
                <h3 id="DivClignotante" style="color:black;" >
                   Chers membres.<br /> Vous pourrez ajouter des images ou des photos plus tard <br /> en consultant les détails de vos journées de pêche.
                </h3>
                <br />
                <script type="text/javascript">
                   var clignotement = function (){
                   if (document.getElementById('DivClignotante').style.color == 'black') {
                   
                   document.getElementById('DivClignotante').style.color = "red";
                   
                   } else if (document.getElementById('DivClignotante').style.color == 'red') {
                   
                   document.getElementById('DivClignotante').style.color = "blue";
                   
                   } else {
                   
                   document.getElementById('DivClignotante').style.color = 'black';
                   
                   }
                   
                   };
                   
                   // mise en place de l appel de la fonction toutes les 0.8 secondes
                   
                   // Pour arrêter le clignotement : clearInterval(periode);
                   
                   periode = setInterval(clignotement, 1000);
                   
                </script>
             </div>
             <div class="container" style=" max-width: 100%;margin:auto;">
                <!-- debut pied de page-->
                <?php include("./include/pied-de-page.php"); ?>
                <?php include("./include/footer.php"); ?>
             </div>
          </div>
          </div>
       </body>
       <!-- fin du body-->
    </html>
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      et toutes les informations affichées par cette page?
      0
    2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      as-tu tenu compte de la suggestion en #17?
      0
  17. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    les informations affichées sur cette page ?
    je ne comprends pas désolé ?
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      le résultat de tous les echos.
      0
  18. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    voila je pense avoir trouve
    lorsque j utilise ce code et donc lorsque je remplace le type "text" par type "date"

    <input type="text" name="date_sortie" class="form-control "value="<?php echo"$date_sortie";?>" required>


    donc cela est nickel et enfin la date est bien injectée dans la base de donnée

    a présent je dois juste mettre la date du jour dans le input et que l utilisateur pourra changer

    voici les différents echo que j avais avec le type "texte"

    date du jour en francais avec strtotime
    1970/01/01 00:00:00

    dernier
    1970/01/01 00:00:00
    fin
    1970-01-012021-04-30
    Vos données sont enregistrées.
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      nous t'avions déjà écrit trois fois de mettre date au lieu de text.
      prends le temps de tout lire avant de répondre.
      0
  19. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    oui je l avais fait mais a chaque fois cela m interdit de mettre la date du jour dans input

    j avais essaye avec placeholder mais cela ne fonctionnait pas
    donc pour moi le seul moyen de pouvoir y arriver c était de laisser le type"texte"

    du coup a présent que j utilise le type "date"
    comment mettre dans le input la date du jour par défaut

    merci pour l aide
    0
  20. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    je pense avoir trouve
    type="datetime-local" id="meeting-time"
           name="meeting-time" value="2018-06-12T19:30"
           min="2018-06-07T00:00" max="2018-06-14T00:00"
    0
  21. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    alors pour ceux que cela interesse
    voici pour avoir la date du jour dans input en francais

    un tout tres grand merci pour l aide

    <!doctype html>
    <html lang="en">
    <head>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <title>jQuery UI Datepicker - Show week of the year</title>
      <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
      <link rel="stylesheet" href="/resources/demos/style.css">
      <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
      <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
      <script>
    $(document).ready( function(){
        var now = new Date();
     
        var day = ("0" + now.getDate()).slice(-2);
        var month = ("0" + (now.getMonth() + 1)).slice(-2);
    
        var today = now.getFullYear()+"-"+(month)+"-"+(day) ;
    
    
       $('#datePicker').val(today);
        
        $('#test').click(function(){
            
            testClicked();
            
        });
    });
    function testClicked()
    {
        
    console.log(    $('#datePicker').val());    
    }
    
      </script>
    </head>
    <body>
     
    
     <input id="datePicker" type="date" name="date_sortie" class="form-control" />
    
     
    </body>
    </html>
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      au final tu es parti sur du javascript jquery ...
      Tu aurais donc pu utiliser le alternate field dont je t'avais parlé ...
      0
  • 1
  • 2