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 :

Ma calculette déconne [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Par défaut Ma calculette déconne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?
    $nbr1=$_post['nbr1'];
    $oper=$_post['oper'];//c'est l'operateur+,-,*,/
    $nbr2=$_post['nbr2'];
    $calcul=$nbr1.$oper.$nbr2;
    if($nbr1!=0)
    echo$calcul;
    else
    echo('nombre injuste');
    ?>
    le champs 'oper' de mon formulaire est
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type=text name=oper>

    est ce que le type est compatible car le message d'erreur est :
    $OPER error T_VARIABLE

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Il faudrait utiliser la fonction eval pour que le calcul soit interprété sinon il est normal qu'une erreur de syntaxe soit retournée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    $nbr1 = 2;
    $oper = '+';
    $nbr2 = 3;
    eval("\$calcul = $nbr1 $oper $nbr2;");
    echo $calcul;
    ?>
    Mais dans la mesure où $oper est un opérateur et $nbr1 et $nbr2 sont des nombres et pour renforcer la sécurité, l'ajout de contrôles est recommandé (voir la FAQ pour les nombres et concernant oper, une regex fera l'affaire).

    Edit : la fonction eval est une solution (la plus simple).


    Julp.

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

Discussions similaires

  1. [Casio GRAPH25+] Calculette de programmation
    Par Extra-Nitro dans le forum Autres langages
    Réponses: 13
    Dernier message: 03/09/2006, 19h03
  2. [Debutant] Mini calculette
    Par cyrill.gremaud dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 18/01/2006, 13h49
  3. glDisable(GL_LIGHTING) pour un plan 2D qui déconne
    Par Coelacanthe dans le forum OpenGL
    Réponses: 1
    Dernier message: 09/12/2005, 22h03
  4. [test]Ma page déconne avec IE ?
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 14/11/2005, 17h19
  5. Calculette
    Par teto dans le forum C
    Réponses: 8
    Dernier message: 14/10/2003, 01h08

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