Précédent   Forum du club des développeurs et IT Pro > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 06/01/2013, 21h19   #1
Toulousaing
Membre du Club
 
Homme
Programmeur fou
Inscription : octobre 2010
Messages : 123
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Programmeur fou

Informations forums :
Inscription : octobre 2010
Messages : 123
Points : 62
Points : 62
Par défaut (autre question de) traitement de formulaire

Bonjour les amis,

J'ai soigneusement lu la longue prose des experts en "échappement" dans le message précédent, mais n'ai pas trouvé mon bonheur.

Si je résume bien, pour blinder mon formulaire, j'écrirai :

Code :
1
2
3
4
5
6
7
8
9
10
11
$nom = $_POST['nom'];
if (!$nom)
{
	echo "$fr1 $b1 Veuillez entrer votre nom dans la zone 1 $b0 $f0 $br";
	$fail = 1;
}
$nom = filter_input(INPUT_POST, 'nom', FILTER_SANITIZE_STRING); // voir les filtres http://www.php.net/manual/fr/filter.filters.php [Filtres de nettoyage]
$nom = htmlspecialchars($nom, ENT_QUOTES);			// pour traiter les accents et supprimer le code html
$nom = stripslashes($nom);					// supprime les antislashs d'une chaîne et aussi les balises (exemple <strong>)
$nom = strip_tags($nom); 					// supprime les balises (code)
$nom = mysql_real_escape_string($nom); 				// évite les injections SQL en protégeant les caractères spéciaux d'une commande SQL
Or, moi, je souhaite DIRE à l'utilisateur qu'il n'a pas droit à tel ou tel caractère. Y aurait-il un petit script par ici qui ferait ça, svp ?
Sinon je l'écrirai.
Merci bcp.

@++

EDIT : http://php.net/manual/fr/function.my...ape-string.php
mysql_escape_string est obsolète...
__________________
Gestion d'erreurs et scripts Windows : http://www.scripting-errors.com/
Toulousaing est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2013, 22h45   #2
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 492
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 492
Points : 21 321
Points : 21 321
Tout mysql_ est effectivement obsolète.

Pour répérer si une liste de caractère est présente dans ta chaine, tu peux utiliser preg_match().
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 21h46   #3
Toulousaing
Membre du Club
 
Homme
Programmeur fou
Inscription : octobre 2010
Messages : 123
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Programmeur fou

Informations forums :
Inscription : octobre 2010
Messages : 123
Points : 62
Points : 62
Alors, je fais :

Code :
1
2
3
4
5
if (preg_match(">", $name))
{
    echo "Caractère non autorisé détecté dans la zone Nom";
    $fail=1;
}
et c'est bon ?
__________________
Gestion d'erreurs et scripts Windows : http://www.scripting-errors.com/
Toulousaing est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 22h19   #4
Exia93
Membre Expert
 
Homme
Étudiant
Inscription : avril 2012
Messages : 609
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2012
Messages : 609
Points : 1 064
Points : 1 064
Bonsoir,

si tu veut simplement tester si un caractère est dans une chaîne de caractère tu devrait passer par strpos() ou strstr() qui sont plus rapide, comme l'indique la doc de preg_match() dans la zone "Notes".


EDIT : si tu a plusieurs caractère à tester strpbek().
Exia93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 22h26   #5
Toulousaing
Membre du Club
 
Homme
Programmeur fou
Inscription : octobre 2010
Messages : 123
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Programmeur fou

Informations forums :
Inscription : octobre 2010
Messages : 123
Points : 62
Points : 62
é bin voilà.
Je m'étais arrêté à la liste des exemples, je n'étais pas descendu assez bas.
Merci.
__________________
Gestion d'erreurs et scripts Windows : http://www.scripting-errors.com/
Toulousaing est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 03h24.


 
 
 
 
Partenaires

Hébergement Web