Page 1 sur 1

Souci de formulaire

Posté : 13 janv. 2011, 08:31
par stevefigueras
Bonjour j'ai un formulaire qui enoit des donnée sur du MYSQL via un autre fichier php.
Tout fonctionne mais j'ai un petit bémol, après validation j'aimerai rester sur la même page et avoir le message de validation directement dans le site car là du coup je l'ai sur une autre page obligant ainsi mes visiteurs à faire un retour pour revenir sur le site

voici le code intégrer dans la page html

Code : Tout sélectionner

</div> <form action="process451.php" method="post"> <p>Titre du SMS: <input type="text" name="name"> <br> Contenu :</p> <p> <textarea name="sms" cols="80" rows="20"></textarea> <br> <input type="submit" value="Envoyer"> </p> </form> <div class="content"></div>
Voici le code du process.php
<? 
 $name=$_POST['name']; 
 $email=$_POST['email']; 
 $sms=$_POST['sms']; 
 $date = date("d-m-Y");
$heure = date("H:i");
 mysql_connect("***************", "***************", "***********") or die(mysql_error()); 
 mysql_select_db("************************") or die(mysql_error()); 
 mysql_query("INSERT INTO `********************` VALUES ('1','$date','$heure', '$name', '$email',)"); 
 Print "blablabla"; 
 ?> 

Re: Souci de formulaire

Posté : 13 janv. 2011, 09:13
par xTG
Il faut modifier le action du formulaire pour qu'il envoie sur la même page.

Copier le code du traitement sur la même page que le formulaire et le modifier un maximum !
Rien n'est protégé. :/

Tu peux utiliser htmlspecialchars() et/ou (je sais jamais) htmlentities() pour protéger tes variables reçues contre les balises html.
Il faut utiliser une condition pour exécuter la requête, à savoir qu'exécuter une requête avec des champs vides risque de poser problème, regardes du côté de la fonction empty().
Enfin pour protéger tes champs dans la requête il faut utiliser la fonction mysql_real_escape_string() (protection contre les caractères spéciaux).

Re: Souci de formulaire

Posté : 13 janv. 2011, 16:21
par AB
Tu peux utiliser htmlspecialchars() et/ou (je sais jamais) htmlentities() pour protéger tes variables reçues contre les balises html.
Juste une remarque, c'est l'un ou l'autre, mais en aucun cas les deux. Et à moins d'avoir une raison particulière de faire autrement, je conseille d'utiliser htmlspecialchars(). D'une part c'est suffisant et d'autre part il n'y a pas besoin de spécifier le second paramètre indiquant l'encodage si l'on travaille en utf-8, ce qui n'est pas le cas pour htmlentities() où il faut spécifier le second paramètre en utf-8.


@stevefigueras
J'ai également tendance à tout faire sur la même page comme te l'a suggérer xTG
Mais tu pourrais aussi garder ta structure à deux pages (qui normalement est un peu plus rapide en temps d'exécution) : suite au traitement dans ta seconde page il te suffit d'utiliser un header de redirection vers ta page d'appel.
Prends l'habitude de ne pas oublier le exit à la suite du header :
header("Location: http://www.example.com/"); /* Redirection du navigateur */

/* Assurez-vous que la suite du code ne soit pas exécutée une fois la redirection effectuée. */
exit;

Re: Souci de formulaire

Posté : 15 janv. 2011, 07:43
par stevefigueras
Auriez vous par hasard un tuto ou un exemple car j'ai peur de patauger un peu.
Merci de votre aide en tout cas ce forum m'a l'air d'une grande aide.
Encore merci