Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/02/2007, 12h00   #1
Invité régulier
 
Inscription : février 2007
Messages : 27
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 27
Points : 5
Points : 5
Par défaut Ma calculette déconne

Code :
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 :
<input type=text name=oper>

est ce que le type est compatible car le message d'erreur est :
Citation:
$OPER error T_VARIABLE
bebas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2007, 12h15   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
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 :
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.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web