IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

bien valider un formulaire


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de fadex
    Inscrit en
    Septembre 2005
    Messages
    223
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Septembre 2005
    Messages : 223
    Par défaut bien valider un formulaire
    Bonjour

    c'est quoi la meilleure pratique pour bien valider un formulaire :

    ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ..............
    if(isset($_POST['addnew']) && $_POST['addnew']!='')
    {
    	if($_POST['gest_name']!='' && $_POST['gest_type_id']!='' && $_POST['gest_tel_bureau']!='' && $_POST['gest_email1']!='' )
    	{ 
                  $gest_name=mysql_escape_string($_POST['gest_name']);
    .........
    ou ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ..............
    if(isset($_POST['addnew']) && $_POST['addnew']!='')
    {
    	if($_POST['gest_name']!='' && $_POST['gest_type_id']!='' && $_POST['gest_tel_bureau']!='' && $_POST['gest_email1']!='' )
    	{ 
        $gest_name=htmlentities(addslashes($_POST['gest_name']), ENT_QUOTES, 'UTF-8');
    ...............
    et si vous avez une autres ca ca sera bien

    merci d'avance

  2. #2
    Membre éprouvé
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Par défaut
    Déjà, tu n'as pas besoin de faire de addslashes si tu utilises htmlentities avec l'option ENT_QUOTES, comme tu le fais là, parce que les quotes et les guillemets sont de toute manière encodé donc ne peuvent plus poser de problème.

    J'ai pour ma part utilisé la méthode du htmlentities et celle du mysql_escape_string pendant pas mal de temps.

    Le htmlentities est super sécure, avec ca tes requetes ne plantent jamais. Par contre, ca oblige à supprimer l'encodage assez souvent (genre si tu as sauvegardé un login par exemple, ou si tu veut afficher le contenu dans un textarea).

    Mysql_escape_string, peut parfois poser problème quand les magic_quotes_gpc sont a 1, ce qui double les slasches.

    Bref j'ai pris le parti de faire une petite fonction "protect" dans chacun de mes projets, que j'appele pour proteger mes champs. Cette fonction teste entre autre la valeur de magic_quotes_gpc, et fait un mysql_escape_string si jamais les slaches ne se sont pas rajouté tout seul. C'est, d'experience, la méthode la contraignante en terme d'encodage/décodage/protection. De plus, ca me permet, dans certain cas précis, de rajouter d'autres tests sur l'intégralité de mes champs ou de faire des actions du genre transformer '' en NULL ou faire des vérifications d'encodage... (ok, c'est pas tout les jours qu'on fait ça, mais au moins, j'en ai la possibilité).

  3. #3
    Membre confirmé Avatar de fadex
    Inscrit en
    Septembre 2005
    Messages
    223
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Septembre 2005
    Messages : 223
    Par défaut
    merci Rakken

    don voila :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    function secure($string)
    {
    if (!get_magic_quotes_gpc()) {
      $string = mysql_escape_string($string);
      }
     
      return $string
    }
    j'en profite

    c quoi l'utilité de transformer des '' en NULL.

    merci d'avance

  4. #4
    Membre éprouvé
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Par défaut
    En règle générale, a rien, mais j'ai eu un cas foireux dans un projet qui devait s'interfacer avec un truc existant qui ne gérait pas de la même maniere les NULL et les '' et qui me provoquait des plantages.

    Pense également au intval, quand tu sais que ce que tu dois récuperer est un entier.

  5. #5
    Membre chevronné Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Par défaut
    Je dirais même :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function secure($string)
    {
    if (!get_magic_quotes_gpc()) {
      $string = mysql_real_escape_string($string);
      }
     
      return $string
    }

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Par défaut
    celle que j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function quote_smart($value)
    	{
    	// Protège la variable lors de l'injection dans mysql
    	// Stripslashes
    	if (get_magic_quotes_gpc()) $value = stripslashes($value);
    	// Protection si ce n'est pas une valeur numérique ou une chaîne numérique
    	if (!is_numeric($value)) $value = "'" . mysql_real_escape_string($value) . "'";
    	return $value;
    	}

Discussions similaires

  1. validation du formulaire de la page ouvrante d'un popup
    Par noa dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/08/2005, 12h11
  2. Réponses: 5
    Dernier message: 24/05/2005, 11h21
  3. Valider un formulaire contenu dans une iframe
    Par snoopy5.0 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/04/2005, 11h14
  4. Valider un formulaire par une image
    Par Fleep dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 31/10/2004, 01h50
  5. [Struts]Validation de formulaire
    Par djoukit dans le forum Struts 1
    Réponses: 4
    Dernier message: 12/03/2004, 09h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo