traitement d'un champs texte d'un 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 : traitement d'un champs texte d'un formulaire

par Ryle » 19 juin 2006, 12:54

C'est très vraissemblablement une différence de paramétrage de la variable magic_quotes_gpc dans le php.ini. Sur ton poste, toutes les apostrophes sont automatiquement protégées par un antislash dès lors que tu les récupères avec GET ou POST :

Si dans ton formulaire tu envois la chaine "L'apostrophe", lorsque tu la récupères en php, celle-ci est automatiquement transformée en "L\'apostrophe", te permettant de l'utiliser directement dans une requête sql. Le fait d'avoir un antislash devant permet à sql de savoir qu'il s'agit du caractère apostrophe et non pas de la fin de la chaine.

Sur ton serveur, ce paramètre doit être à off et l'apostrophe n'est donc pas protégée automatiquement. Si tu as la main sur le fichier php.ini tu peux en modifier le paramétrage (Voir ici comment ça fonctionne), sinon il te faut modifier ton code en conséquence et faire appel à la fonction addslashes() sur tes variables pour en protéger les apostrophes :)

par guilt92 » 19 juin 2006, 12:53

Quelqu'un pourrait me venir en aide ?
Oui, le module de recherche de php france ! ;)


http://www.phpfrance.com/forums/voir_su ... emaine.php

traitement d'un champs texte d'un formulaire

par py » 19 juin 2006, 12:45

Bonjour,

J'ai un problème dans un de mes scripts de traitement de formulaire...
J'ai un champs texte que je souhaite enregistrer dans une table, mais lorsque je mets des apostrophes j'ai une erreur... mon script marche en local, mais pas sur mon serveur distant... (je pense que ce sont 2 versions différentes de php)

mon script :

$texte = $_POST['texte'];
$texte = str_replace("\n","<br>","$texte");

$query = "INSERT INTO matable VALUES ('$champ1', '$texte')";
mysql_query($query);

Quelqu'un pourrait me venir en aide ?
Merci d'avance !...