Partage
  • Partager sur Facebook
  • Partager sur Twitter

Easyphp et date

formulaire

Sujet résolu
    8 novembre 2010 à 8:13:04

    Bonjour,

    je voudrai savoir comment faire pour que easyphp enregistre automatiquement la date du jour dans par exemle le champ date_commentaire lorsqu'on envoie des données par le biais d'un formulaire. En effet, dans ma base de données j'ai ce champ date_commentaire et je croyais qu'en mettant dans mon formulaire en hidden la date du jour de l'envoi du commentaire serait automatiquement prise en compte, mais ce n'est pas le cas puisque j'ai des 00/00/00 ce qui n'est pas sans incidence pour la suite. Merci pour votre aide et voici mon code de formulaire :

    <form action="ajoutcommentaire_post.php" method="post">
    <fieldset><legend>Commentaire</legend>
    	 Titre :<input type="text" name="titre" id="titre" size="40"/><br>
    	 Message :<br><textarea cols="50" rows="10" name="commentaire"  id="commentaire"/></textarea><br>
    	 Auteur <input type="text" name="auteur" id="auteur" size="40"/>
    	<input type="hidden" name="date_commentaire" value="datetime"/><p>
    	
    <input type="submit" value="Envoyer">
    <input type="reset" value="Annuler">
    </fieldset>
    <p>
    </form>
    
    • Partager sur Facebook
    • Partager sur Twitter
      8 novembre 2010 à 9:16:57

      Salut,
      datetime est une fonction php, donc faut pas l'écrire en html :

      <form action="ajoutcommentaire_post.php" method="post">
      <fieldset><legend>Commentaire</legend>
      	 Titre :<input type="text" name="titre" id="titre" size="40"/><br>
      	 Message :<br><textarea cols="50" rows="10" name="commentaire"  id="commentaire"/></textarea><br>
      	 Auteur <input type="text" name="auteur" id="auteur" size="40"/>
      	<input type="hidden" name="date_commentaire" value="<?php date('d/m/y'); ?>"/>
      	
      <input type="submit" value="Envoyer">
      <input type="reset" value="Annuler">
      </fieldset>
      </form>
      


      a savoir que c'est un peu inutile puisque tu peux l'envoyer directement via sql...
      • Partager sur Facebook
      • Partager sur Twitter
        8 novembre 2010 à 10:27:36

        Salut lukyboss1, j'ai essayé ce que tu me dis mais cela ne fonctionne pas. Et comment doit-on procéder avec sql ? Merci pour ton aide.
        • Partager sur Facebook
        • Partager sur Twitter
          8 novembre 2010 à 10:36:59

          Supprime ce champ de form qui ne sert à tien, et dans ton insert sql, mets NOW() comme valeur pour la date.
          • Partager sur Facebook
          • Partager sur Twitter
            8 novembre 2010 à 12:09:54

            Bonjour Lord Casque Noir,

            Voici à présent mon code dans mon fihcier ajoutcommentaire_psot.php :
            <?php
            try
            {
            $bdd=new PDO('mysql:host=localhost;dbname=test','root','');
            }
            catch (Exception $e)
            {
            die('Erreur :'.$e->getMessage());
            }
            //Insertion des données à l'aide d'une requête préparée
            $req=$bdd->prepare('INSERT INTO commentaires (titre, commentaire, auteur, date_commentaire) VALUES (?,?,?,NOW())');
            $req->execute(array($_POST['titre'],$_POST['commentaire'],$_POST['auteur'],$_POST['date_commentaire']));  
            
            //Redirection de l'auteur vers le formulaire
            header ('Location:commentaire.php');
            ?>
            


            Est-ce la bonne façon de procéder car a présent je n'ai plus rien qui s'ffiche lors de mes tests ?

            Me faut-il modifier mon fichier commentaire.php dont une partie du code figure ci-dessous :

            <?php
            $req->closeCursor(); // Important : on libère le curseur pour la prochaine requête
            
            // Récupération des commentaires
            $req = $bdd->prepare('SELECT titre,commentaire, auteur, DATE_FORMAT(date_commentaire, \'%d/%m/%Y à %Hh%imin%ss\') AS date_commentaire_fr FROM commentaires WHERE id_billet = ? ORDER BY date_commentaire');
            $req->execute(array (isset($_GET['billet'])));
            
            while ($donnees = $req->fetch())
            {
            ?>
            <p><strong><?php echo htmlspcialchars($donnees['titre']);?> par<?php echo htmlspecialchars($donnees['auteur']); ?></strong> le <?php echo $donnees['date_commentaire_fr']; ?></p>
            <p><?php echo nl2br(htmlspecialchars($donnees['commentaire'])); ?></p>
            <?php
            } // Fin de la boucle des commentaires
            $req->closeCursor();
            ?>
            



            Merci pour ton aide.
            • Partager sur Facebook
            • Partager sur Twitter
              8 novembre 2010 à 12:40:08

              Presque, mais comme la date n'est plus un paramètre de la requête, il ne faut pas l'ajouter dans le execute. Donc tu peux aussi virer le champ date du formulaire, qui ne sert à rien, puisque tu ne veux pas que l'utilisateur entre une date, mais mettre automatiquement la date du jour.

              <?
              $req=$bdd->prepare('INSERT INTO commentaires 
              (titre, commentaire, auteur, date_commentaire) 
              VALUES (?,?,?,NOW())');
              $req->execute(array($_POST['titre'],$_POST['commentaire'],$_POST['auteur']));
              
              • Partager sur Facebook
              • Partager sur Twitter
                8 novembre 2010 à 15:31:44

                Messir Lord Casque Noir, d'aussi loin que je fus dans mon désespoir vous vintes au péril de votre vie m'extirper de ce ténébreux soir. Pour votre rescousse, permettez que je m'incline devant votre grandeur d'âme et vous encense de mille louanges. Grâce à vous, mon problème est résolu. Il y en aura d'autre mais grâce à vous je ne serai plus pris au dépourvu. Mille mercis.
                • Partager sur Facebook
                • Partager sur Twitter

                Easyphp et date

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown