Obtenir une reponse par php quand on poste un commentaire

Résolu
Mouslim02 Messages postés 320 Date d'inscription   Statut Membre Dernière intervention   -  
Mouslim02 Messages postés 320 Date d'inscription   Statut Membre Dernière intervention   -
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 ;)
A voir également:

3 réponses

Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
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
Mouslim02 Messages postés 320 Date d'inscription   Statut Membre Dernière intervention   11
 
salut pitet
merci pour les info pitet surtout ceux des injection sql ça va m'eviter d'ecrire tjr htmlspecialchars -_-
portez vous bien :)
0
mr_demonicon Messages postés 828 Date d'inscription   Statut Membre Dernière intervention   126
 
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
Mouslim02 Messages postés 320 Date d'inscription   Statut Membre Dernière intervention   11
 
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
mr_demonicon Messages postés 828 Date d'inscription   Statut Membre Dernière intervention   126
 
<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
Mouslim02 Messages postés 320 Date d'inscription   Statut Membre Dernière intervention   11
 
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
mr_demonicon Messages postés 828 Date d'inscription   Statut Membre Dernière intervention   126
 
a votre service ^^
0
Lapourax Messages postés 3014 Date d'inscription   Statut Contributeur Dernière intervention   334
 
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
Mouslim02 Messages postés 320 Date d'inscription   Statut Membre Dernière intervention   11
 
c'est ce qu'il me fallait
merci bcp lapourax :)
0
Lapourax Messages postés 3014 Date d'inscription   Statut Contributeur Dernière intervention   334
 
Y'a pas de quoi =)
Pense à mettre le sujet en résolu =)
0
Mouslim02 Messages postés 320 Date d'inscription   Statut Membre Dernière intervention   11
 
mdrrrr j'oublie tjr
voila ^^
0
Lapourax Messages postés 3014 Date d'inscription   Statut Contributeur Dernière intervention   334
 
Pas de problème ça arrive ;-)
Bonne continuation =)
0