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 :

Vérification paramètres passés en GET


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut Vérification paramètres passés en GET
    Bonjour,

    Je suis en train de programmer une vérification sur des paramètres passés en GET donc dans l'url.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $erreurs = 0;
    $max = $_GET["max"];
    if (!is_int($max)) {$erreurs += 1;}
    echo $erreurs;
    Si je teste avec cette url
    La valeur de $erreurs vaut 0! Donc pour PHP quand ?max= rien $max est un entier?

    Merci.

  2. #2
    Fabouney
    Invité(e)
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $erreurs = 0;
    $max = $_GET["max"];
    echo gettype($max).'<br>';
    if (!is_int($max)) {$erreurs += 1;}
    echo $erreurs;
    si je met ?max=

    et bien il me retourne bien un string vide, et erreur vaut 1 donc sa fonctionne chez moi.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 47
    Points : 56
    Points
    56
    Par défaut
    J'ai déja eu un problème avec un truc genre

    sa renvoie vrai, ce qui me laisse penser que '' est considéré comme étant 0 donc numérique.

  4. #4
    Fabouney
    Invité(e)
    Par défaut
    PHP renvoi toujours un typr string pour des parametre passer en GET.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 47
    Points : 56
    Points
    56
    Par défaut
    Je vien de faire quelques tests en vitesses, avec is_numeric sa semble bien fonctionner, alors tu peux toujours essayer de remplacer is_int par is_numeric.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Merci pour vos réponses mais is_numeric me donne le même résultat!

  7. #7
    Fabouney
    Invité(e)
    Par défaut
    il suffit de faire un var_dump($max); pour voir qu'il retour toujours un String ...

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 47
    Points : 56
    Points
    56
    Par défaut
    Fabouney, je ne voulqis pqs mettre en doute que l'on traite un string, c'est d'ailleur pour cela que je conseille plutôt is_numeric() qui peut considérer une string comme un nombre (du moment que la string est composé de chiffre).
    J'ai fait sa pour tester, quand je passe un nombre j'ai oui, quand je passe rien j'ai non, quand je passe une lettre c'est non, quand je passe 0 j'ai oui (php 5 en passant). Je te laisse expérimenter.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
     
    if(is_numeric($_GET['bob']))
    echo "oui";
    else
    echo "non"; 
     
    echo gettype($_GET['bob']);
     
    echo $_GET['bob'];
    ?>

  9. #9
    Fabouney
    Invité(e)
    Par défaut
    je te crois à 200%, je savais pas que is_numeric réagissait comme cela.
    disons que moi je test pas le type, je force avec intval() quand j'attend un entier.

    Cordialement.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Merci les gars je vois que mon code a une syntaxe correcte mais rien ne va plus! J'ai de drôles de bug ailleurs où c'était testé 100% ok...

    Exemple :
    Pour une commande (site e-commerce) je calcule le total du panier dans $total et d'un autre côté le total transport compris ($totalTrans).

    La différence $totalTrans - $total me donnant les frais de transport.

    Si les 2 variables contiennent des float différents le résultat est ok.

    Si les 2 variables sont identiques (donc logiquement frais = 0) j'obtiens des frais de 5.54564565E-14!!

    Je crois que je vais laisser mon code tel qu'il est, si c'est bien php qui bug alors le passage en prod devrait résoudre les problèmes! Ensuite je réinstallerai php au complet sur le serveur test.

    Bon w-e!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/01/2007, 09h45
  2. Réponses: 11
    Dernier message: 06/09/2006, 12h48
  3. Réponses: 1
    Dernier message: 29/03/2006, 11h05
  4. [C#] - Récupérer les paramètres passés à une application
    Par linuxludo dans le forum Windows Forms
    Réponses: 4
    Dernier message: 14/11/2005, 14h41
  5. Paramètres passés à une servlet
    Par mandarindi dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 17/09/2004, 15h42

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