Obtenir une reponse par php quand on poste un commentaire

Résolu
bonjours

je suis en trein de faire un livre d'or
quand je poste un commentaire j'utilise ce script
<form method="post" action="livresub.php"> 
<label for="nom" >Votre nom : </label><br/>
<input type="text" name="nom"><br/>
<label for="mail" >Votre mail : </label><br/>
<input type="mail" name="mail"><br/>
<label style="vertical-align: top;">Votre commentaire : </label><br/>
<textarea rows="10" cols="50" name="message"></textarea><br/>

<input type="submit" value="Envoyer">
</form> 


la page livresub.php recoit l'info avec ce script
$req = $bdd->prepare('INSERT INTO livre (nom, mail, message, date, value) VALUES(?, ?, ?, now(), ?)');
$req->execute(array(htmlspecialchars($_POST['nom']), htmlspecialchars($_POST['mail']), htmlspecialchars($_POST['message']), 'false'));

header('Location: livre.php');

et me redirecte a la page principale
ce que je veut c'est qu'elle me redirecte a la page principale avec un message du genre "votre commentaire a bien été posté"
merci de votre aide ;)

3 réponses

  1. Salut,

    Si tu veux le faire en php, tu peux ajouter un paramètre get dans ta redirection :
    header('Location: livre.php?succes=1');


    Puis dans livre.php ajoute (au dessus du formulaire par exemple) :
    if (!empty($_GET['succes'])) {
        echo 'Message posté';
    }
    


    Petite remarque : l'utilisation de htmlspecialchars ou htmlentities à l'insertion des données en bdd n'est pas conseillé (sauf si tu veux laissé trainer des entités html dans ta base). Ces fonctions ne devrait être utilisées uniquement lors de l'affichage des données dans une page html.
    Puisque tu utilises une requête préparée avec PDO, tes données sont automatiquement protégées contre les injections sql, pas besoin d'utiliser une autre fonction.

    Bonne journée
    1
    1. salut pitet
      merci pour les info pitet surtout ceux des injection sql ça va m'eviter d'ecrire tjr htmlspecialchars -_-
      portez vous bien :)
      0
  2. tu rajoute
    <script type="text/javascript">alert(message);</script>
    et tu mets ton message dans
    var message="votre message a ete posté a la prochaine"; 


    Bonne continuation et n'oubliez pas le risque zéro c'est dans vos rêves.
    0
    1. salut mr_demonicon
      j'ai essayé le code que vous m'avez envoyé mais il ne marche pas
      je pense que moi qui ne sais pas ou le placer
      en effet je ne maitrise pas bien javascript
      pourriez vous me dire ou le placer ?
      merci :)
      0
    2. <form method="post" action="livresub.php"> 
      <label for="nom" >Votre nom : </label><br/>
      <input type="text" name="nom"><br/>
      <label for="mail" >Votre mail : </label><br/>
      <input type="mail" name="mail"><br/>
      <label style="vertical-align: top;">Votre commentaire : </label><br/>
      <textarea rows="10" cols="50" name="message"></textarea><br/>
      
      <input type="submit" value="Envoyer" onClick="alert('Votre message/commentaire a été posté')">
      </form>

      Voila en js cela donne une alerte qui va afficher malheureusement un bandeau ce qui peut gener l'utilisateur mais au moins il le verra
      0
    3. salut je vien tout juste de me rendre compte que vous mavez repondu
      donc il fallait le mettre dans le submit j'apprend avec vous
      merci ^^
      0
    4. a votre service ^^
      0
  3. Contributeur
    En complément à la solution de Pitet :

    C'est plus joli avec une div en haut de page. tu définie dans ton css une div rectangle toute belle en vert par exemple (vert = succes !) et dans ta page d'accueil:

    <?php
    if (!empty($_GET['succes'])) { ?>
        <div class="div_succes_comment">Votre message est bien enregistré !</div>
    <?php
    }
    ?>


    Si tu définie une jolie div, tu peut obtenir un truc similaire au message de connexion de ccm


    Le tout est de bien définir la css et l'endroit ou tu la positionne pour qu'elle s'intègre bien à ta page

    EDIT : Image cliquable = plus lisible =P

    La vie est un mystère qu'il faut vivre, et non un problème à résoudre. (Gandhi)
    La meilleure manière d'atteindre le bonheur est de le donner aux autres. (Lord Baden-Powell)
    0
    1. c'est ce qu'il me fallait
      merci bcp lapourax :)
      0
    2. Contributeur
      Y'a pas de quoi =)
      Pense à mettre le sujet en résolu =)
      0
    3. mdrrrr j'oublie tjr
      voila ^^
      0
    4. Contributeur
      Pas de problème ça arrive ;-)
      Bonne continuation =)
      0