Division dans un $_POST

Eléphanteau du PHP | 12 Messages

14 avr. 2008, 11:58

Bonjour tout le monde!

Voila je rencontre un petit soucis si vous pouviez m'aider ca serai super.
J'explique:
J'ai un formulaire classique avec un champs et un bouton submit j'envoi mes données en POST

Lorsque j'envoi 15/3+(2+1)*2 par exemple j'aimerais à la reception du post faire le calcul. Y a t il une fonction qui permettrais de le faire ou faut il en faire une a la mimine? :D
Car en fait une fois envoyé lorsque le champs se raffraichi le calcul est fait.

Enfin voila j'espere avoir été un peu clair si vous avez des questions n'hesitez pas.

ViPHP
ViPHP | 2287 Messages

14 avr. 2008, 12:40

Bonjour,

Il y a la fonction eval() qui fait ça, mais utilisée comme tu veux le faire, elle présente de TRES GROS risques de sécurité. Il faudra très bien contrôler les saisies que tu transmets en post...
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Eléphanteau du PHP | 12 Messages

14 avr. 2008, 12:47

Merci je vais me renseigner la dessus. A la limite avec un test eregi ca peux aller non ?

ViPHP
ViPHP | 5924 Messages

14 avr. 2008, 13:33

Le mieux est tout de même d'implémenter un parseur d'expressions mathématiques, mais bon, c'est un peu galère :-/

Eléphanteau du PHP | 12 Messages

14 avr. 2008, 14:26

C'est clair c'est la galère surtout qu'il n y a pas que les * - / + il y a aussi les () a prendre en compte les priorité etc...

Du coup j ai fait ca en eregi:
if($_POST['maVariable'])
{
	if(eregi("^[0-9\(\)]+[/*+-\(\)0-9]+[0-9\(\)]$",$_POST['maVariable']))
	{
		eval("\$_POST['maVariable'] = ".$_POST['maVariable'].";");
	}
}
ca marche impec et niveau securité je devrais pas trop avoir de soucis...

Merci pour vos reponse!

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

14 avr. 2008, 14:42

Modération :
vibou_, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 12 Messages

14 avr. 2008, 15:02

Ah désolé c'est vrai j ai pas fait attention.

Ok merci pour l'info j'y penserais la prochaine fois! ;)