Problème de condition php
Résolu
Ga3z
Messages postés
67
Statut
Membre
-
zzzer Messages postés 938 Statut Membre -
zzzer Messages postés 938 Statut Membre -
Bonjour,
j'ai un formulaire avec des input "mext" et "mint"
je veux tester qu'au moins une des deux valeurs mext ou mint n'est pas nulle
sur la feuille où je récupère mes données, j'ai
$mint = $_POST['mint'];
$mext= $_POST['mext'];
$ptot = $_POST['mint']*3.50 + $_POST['mext']*3;
if (empty($_POST['ptot'])) {
echo"Vous n'avez pas spécifié le linéaire à réserver ! ";
}
else
et ça marche pas: si une des valeurs est nulle ça me donne le message d'erreur !!!
pourtant mathématiquement si mint = 0 et mext =1 ptot = 3 et donc n'est pas nul ?!!!
Où me suis-je trompé à votre avis ?
j'ai un formulaire avec des input "mext" et "mint"
je veux tester qu'au moins une des deux valeurs mext ou mint n'est pas nulle
sur la feuille où je récupère mes données, j'ai
$mint = $_POST['mint'];
$mext= $_POST['mext'];
$ptot = $_POST['mint']*3.50 + $_POST['mext']*3;
if (empty($_POST['ptot'])) {
echo"Vous n'avez pas spécifié le linéaire à réserver ! ";
}
else
et ça marche pas: si une des valeurs est nulle ça me donne le message d'erreur !!!
pourtant mathématiquement si mint = 0 et mext =1 ptot = 3 et donc n'est pas nul ?!!!
Où me suis-je trompé à votre avis ?
Configuration: Windows XP Firefox 2.0.0.16
9 réponses
-
C'est $ptot que tu dois tester, et pas $_POST['ptot'] ;)
-
$_POST['ptot'] != $ptot
Je ne sais pas si tu vois ce que je veux dire, mais ça t'aidera déjà un peu :)
$_POST['ptot'] est déclaré nul part que dans ta condition donc logiquement il sera toujours vide.-
>>$_POST['ptot'] est déclaré nul part que dans ta condition donc logiquement il sera toujours vide.
damned !!!
bon j'ai contourné le problème: j'ai mis un input caché sur mon formulaire qui reprend la valeur calculée (y en avait déjà un mais il était disabled, donc je pouvais pas en récupérer la valeur: c'était juste à titre indicatif)
et donc j'ai récupéré la valeur de cet imput caché et fait ma condition:
$ptotal = $_POST['ptotal'];
elseif ($_POST['ptotal'] == 0) {
echo"Vous n'avez pas spécifié le linéaire à réserver ! ";
}
et là ça fonctionne
merci pour votre aide
-
-
Bonjour,
Le probleme c'est que quand tu mets ça :
$mint = $_POST['mint'];
$mext= $_POST['mext'];
$ptot = $_POST['mint']*3.50 + $_POST['mext']*3;
if (empty($_POST['ptot'])) {
echo"Vous n'avez pas spécifié le linéaire à réserver ! ";
}
else
Si aucun champ n'est renseigné :
ça te donne => $ptot = ' ' *3.50 + ' ' *3;
on peux pas mutliplier une valeur qui n'existe pas.
donc tu dois mettre :
$mint = $_POST['mint'];
$mext= $_POST['mext'];
if ($mint == '' ) $mint = 0;
if ($mext == '' ) $mext = 0;
$ptot = ($mint*3.50) + ($mext*3);
if ($_POST['ptot'] == 0) {
echo"Vous n'avez pas spécifié le linéaire à réserver ! ";
}
else
...
Je pense que ça doit marcher ^^
@++ -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
Salut,
je veux tester qu'au moins une des deux valeurs mext ou mint n'est pas nulle
if (isset($_POST['mint'],$_POST['mext'])){ $mint=$_POST['mint']; $mext=$_POST['mint']; if ($mint==0){ echo "Valeur nulle interdite ! "; }elseif ($mext==0){ echo "Valeur nulle interdite ! "; }else{ //ton traitement ici } }else{ echo "Champs non remplis."; } -
oups je n'ai pas répondu où il fallait, désolé ! je remets ma réponse ici:
bon j'ai contourné le problème: j'ai mis un input caché sur mon formulaire qui reprend la valeur calculée (y en avait déjà un mais il était disabled, donc je pouvais pas en récupérer la valeur: c'était juste à titre indicatif)
et donc j'ai récupéré la valeur de cet imput caché et fait ma condition:
$ptotal = $_POST['ptotal'];
elseif ($_POST['ptotal'] == 0) {
echo"Vous n'avez pas spécifié le linéaire à réserver ! ";
}
et là ça fonctionne
merci pour votre aide -
ah j'ai trouvé une solution plus simple et entièrement en php: avec une regex (on m'a un peu aidé, je dois avouer)!
$regex = '^$|^[0-9]+$';
if ( (empty($_POST['mint']) && empty($_POST['mext'])) || !( ereg($regex, $_POST['mint']) && ereg($regex, $_POST['mext']) ) ) {
echo "Vous vous êtes trompé en saisissant votre linéaire!"
}
si ça peut servir pour d'autres... -