Formulaire : autoriser que les nombres

Eléphanteau du PHP | 10 Messages

10 août 2009, 12:06

Bonjour,

Certains en lisant le titre vont peut-être me dire qu'on pourrait faire ça en javascript, mais je préférerais comprendre comment le faire en php :)

Voila mon problème, j'ai un jeu où le visiteur envoi grâce à un formulaire un nombre, ce nombre correspond à une valeur inscrite dans la BDD, et ne doit en aucun cas être supérieur à cette valeur lors de son envoi à la BDD :

Voici le code php traitant la donnée envoyée :
// étape 1 : on récupère la donnée et on vérifie qu'elle est pas nulle
if ($_POST['num1'] < 1) {
		$numero1      = 0;
	} else {
		$numero1      = $_POST['num1'];
	}

// étape 2 : on a le nombre, maintenant on appelle la valeur correspondante dans la BDD
$total_numero1      = $compte_courant['num1'];

// étape 3 : on vérifie que la valeur entrée est inférieure ou égale à celle inscrite dans la BDD
if ($total_numero1 >= $numero1) {
// on fait l'UPDATE en inscrivant la nouvelle valeur correspondant à $numero1 dans la BDD
Mon problème est que ce code ne suffit apparemment pas, des joueurs arrivent à entrer la valeur qu'ils veulent, et à l'envoyer en passant la vérification correspondant à l'étape 3 dans mon code. J'aimerais savoir comment ils y arrivent et si vous avez des idées pour éviter qu'ils y arrivent (je précise que le nombre entré est supérieur à 2147483648 donc je ne peux pas utiliser intval() )

Merci pour vos éventuelles réponses,

Mammouth du PHP | 991 Messages

10 août 2009, 12:31

Bonjour
regarde du coté de la fonction is_numeric() ?.
http://fr.php.net/manual/fr/function.is-numeric.php

bye Hawk
DevOps, Symfony4, Hoa

ViPHP
ViPHP | 2291 Messages

10 août 2009, 14:49

Salut
Ici

Code : Tout sélectionner

// étape 3 : on vérifie que la valeur entrée est inférieure ou égale à celle inscrite dans la BDD if ($total_numero1 >= $numero1) {
Tu désire vérifier que le chiffre est = ou inférieur mais ton instruction demande de vérifier que le chiffre PLUS GRAND OU EGAL donc essaye
avec
<=
qui lui veut dire = ou plus petit (inférieur) :wink:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.