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

Langage PHP Discussion :

[PHP-JS] Comment mieux tester l'existence de plusieurs variables


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Par défaut [PHP-JS] Comment mieux tester l'existence de plusieurs variables
    Bonjour les amis(es)

    Depuis PHP4, il y a des erreurs lorsqu'une varaiable n'est pas testée avant son utilisation. Modifier le php.ini pour masquer les erreurs n'étant pas conseillé, nous sommes obligés de faire à chaque fois ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    if(isset($_POST['nom'])){
    $nom = $_POST['nom'];
    }
    ?>
    Mais qu'en est-il si vous avez plus de 20 variables à traiter?
    Il y a pas un risque d'augmenter considérablement le temps d'exécution en posant tous ces ifs?

    Que fera un bon développeur?

    D'avance je vous remercie

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Par défaut
    Un formulaire comportant 20 champs commence à être conséquent à mon gout.
    Au dela un bon développeur ira consulter son ergonome (ou des cours faute de mieux) pour trouver une solution.

    Et 20 conditions à traiter en php, à moins d'avoir un serveur datant de l'avant guerre c'est très rapide (plus que le temps de latence de la connexion je suis sur )

    Un bon développeur pour moi s'assure qu'il n'y a pas d'erreur avant tout, et privilégie robustesse à rapidité (sans toutefois négliger ce dernier point).

  3. #3
    Membre éclairé Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Par défaut
    Merci beaucoup.

    J'apprend bcp avec toi. Donc en conclusion, il y a pas moyen de faire autrement. Je suis donc sur la bonne voie. Parce que c'est comme ça que je fais. Je voudrais savoir s'il y avait mieux.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Par défaut
    Citation Envoyé par Alexandrebox
    Bonjour les amis(es)

    Depuis PHP4, il y a des erreurs lorsqu'une varaiable n'est pas testée avant son utilisation. Modifier le php.ini pour masquer les erreurs n'étant pas conseillé, nous sommes obligés de faire à chaque fois ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    if(isset($_POST['nom'])){
    $nom = $_POST['nom'];
    }
    ?>
    Mais qu'en est-il si vous avez plus de 20 variables à traiter?
    Il y a pas un risque d'augmenter considérablement le temps d'exécution en posant tous ces ifs?

    Que fera un bon développeur?

    D'avance je vous remercie
    Je rajoute juste une toute petite chose...
    Mieu vaut initialiser tes variables avant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    $nom = "";
    if(isset($_POST['nom'])){
    $nom = $_POST['nom'];
    }
    ?>
    Après perso je l'écrit comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $nom = isset($_POST['nom']) ? $_POST['nom'] : "";
    Comme cela si j'en ai une vingtaine à faire c'est relativement rapide. Mais bon sa ne change pas le fait que c'est vraiment très fastidieux ces déclarations.

    bye

  5. #5
    Membre émérite Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Par défaut
    initialiser les variables avant?!
    Ben non, sinon ton isset ne sert à rien! Il renverra toujours true, puisqu'il sert justement à vérifier qu'une variable est définie ou non.

  6. #6
    Membre éclairé Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Par défaut
    Mettez vous d'accord les mecs.

    Là je suis embrouillé. MDR

    En tout cas merci pour vos efforts

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Par défaut
    L'exemple de kaymak peut s'avérer dangereux, en particulier si le register_globals est à on dans le php.ini

    Je plussoie haltabush

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Par défaut
    initialiser les variables avant?!
    Ben non, sinon ton isset ne sert à rien! Il renverra toujours true, puisqu'il sert justement à vérifier qu'une variable est définie ou non.
    Ok donc, si le isset ne passe pas que fais tu ?
    Tu executes ton script avec des variables qui n'existent pas ?
    Dans ce cas à quoi sert il de vérifier que $_post[une clef] existe, si la variable qui recoit la donnée n'est pas systèmatiquement initialisée ?
    C'est un peu comme piss** dans un violon si tu me pardonnes l'expression.

    Fin moi je dis sa, je dit rien....

    L'exemple de kaymak peut s'avérer dangereux, en particulier si le register_globals est à on dans le php.ini
    Dangereux ?? J'aimerais bien voir comment.

    bye

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/09/2006, 10h07
  2. [débutant]Tester l'existance d'une variable
    Par Death83 dans le forum Langage
    Réponses: 7
    Dernier message: 19/08/2006, 15h37
  3. Tester l'existence d'une variable
    Par rukiaa dans le forum Langage
    Réponses: 6
    Dernier message: 14/05/2006, 23h11
  4. Tester l'existence d'une variable?
    Par Death83 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/03/2006, 21h53
  5. Réponses: 3
    Dernier message: 19/08/2005, 14h24

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