Souci de formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Souci de formulaire

Re: Souci de formulaire

par stevefigueras » 15 janv. 2011, 07:43

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

Re: Souci de formulaire

par AB » 13 janv. 2011, 16:21

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

par xTG » 13 janv. 2011, 09:13

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).

Souci de formulaire

par stevefigueras » 13 janv. 2011, 08:31

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"; 
 ?>