Problème de condition php
Résolu
Ga3z
Messages postés
67
Date d'inscription
Statut
Membre
Dernière intervention
-
zzzer Messages postés 906 Date d'inscription Statut Membre Dernière intervention -
zzzer Messages postés 906 Date d'inscription Statut Membre Dernière intervention -
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 ?
A voir également:
- Problème de condition php
- Excel cellule couleur si condition texte - Guide
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Excel condition ou - Guide
- Excel soustraction avec condition ✓ - Forum Excel
9 réponses
$_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
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 ^^
@++
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
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...
$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...