5 réponses
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
21 oct. 2013 à 11:17
21 oct. 2013 à 11:17
Salut,
Pour ta deuxième condition, si tu veux vérifier qu'au moins 1 des champs est présent, il faut utiliser l'opérateur XOR :
On vérifie ainsi que la variable $_POST['login'] existe ou que la variable $_POST['password'] existe, mais pas les deux.
Pour ta deuxième condition, si tu veux vérifier qu'au moins 1 des champs est présent, il faut utiliser l'opérateur XOR :
//S'il n'y a pas la présence d'au moins une des deux variables
elseif (!isset($_POST['login']) XOR !isset($_POST['password'])) {
echo ('Il y a un champs vide');
}
On vérifie ainsi que la variable $_POST['login'] existe ou que la variable $_POST['password'] existe, mais pas les deux.
Merci ! Il y avait ce problème en effet.
Mais il y en a un autre ! La fonction isset() ne fonctionne pas, seulement empty().
Lorsque je laisse les 2 champs vides, avec isset() ça me dit que les champs sont remplis...
Mais il y en a un autre ! La fonction isset() ne fonctionne pas, seulement empty().
Lorsque je laisse les 2 champs vides, avec isset() ça me dit que les champs sont remplis...
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
21 oct. 2013 à 17:32
21 oct. 2013 à 17:32
La fonction isset() vérifie uniquement si les variables existent, peu importe leurs contenus.
Donc même en laissant les champs vides, à l'envoie de ton formulaire les variables existent (même si elle sont vide) et ta première condition est vraie.
La fonction empty() vérifie si les variables sont vides et considère une variable qui n'existe pas comme vide.
Il serait donc plus adapté que tu utilises la fonction empty() à la place de isset() pour ce cas.
Donc même en laissant les champs vides, à l'envoie de ton formulaire les variables existent (même si elle sont vide) et ta première condition est vraie.
La fonction empty() vérifie si les variables sont vides et considère une variable qui n'existe pas comme vide.
Il serait donc plus adapté que tu utilises la fonction empty() à la place de isset() pour ce cas.
intoxx62
Messages postés
361
Date d'inscription
lundi 3 janvier 2011
Statut
Membre
Dernière intervention
13 mars 2015
70
Modifié par intoxx62 le 20/10/2013 à 15:31
Modifié par intoxx62 le 20/10/2013 à 15:31
Bonjour, je n'ai pas pratiqué php depuis un bon temps mais ça devrait aller et je n'ai pas Apache ou autre pour le tester sous la main.
Est-ce que ce code te convient et fonctionne ? Je l'ai bien commenté / Fais signe ;)
Evidemment c'est un code minim
Est-ce que ce code te convient et fonctionne ? Je l'ai bien commenté / Fais signe ;)
<?php
if(isset($_POST['login']) == "INTOXX" && isset($_POST['password']) == "Password")
{
// Les variables existent et correspondent à celles attendues
echo("<h3>Bienvenue à : </h3> <p> " . $_POST['login']);
}
elseif(isset($_POST['login']) == "" || isset($_POST['password']) == "")
{
// Les champs ne sont pas bien remplis (vides)
echo("Vérifiez vos informations");
}
else {
echo("<p>Une erreur est survenue, vérifiez vos informations</p>");
// Erreur
}
?>
Evidemment c'est un code minim
intoxx62
Messages postés
361
Date d'inscription
lundi 3 janvier 2011
Statut
Membre
Dernière intervention
13 mars 2015
70
20 oct. 2013 à 15:17
20 oct. 2013 à 15:17
N'oublie pas d'encoder ton fichier en UTF-8
Merci, mais il me semble qu'on ne peut pas tester si la variable $_POST est présente en même temps de vérifier si elle est égale à ce qu'on souhaite (il faudrait mieux écrire :
if(isset($_POST['login']) AND $_POST['login']== "INTOXX")
quelque chose dans ce style là. En tout cas le code ne marche pas non plus lol.
Sinon j'ai vérifié pour l'utf 8 et c'est bon.
Je ne comprends pas :/
if(isset($_POST['login']) AND $_POST['login']== "INTOXX")
quelque chose dans ce style là. En tout cas le code ne marche pas non plus lol.
Sinon j'ai vérifié pour l'utf 8 et c'est bon.
Je ne comprends pas :/
intoxx62
Messages postés
361
Date d'inscription
lundi 3 janvier 2011
Statut
Membre
Dernière intervention
13 mars 2015
70
21 oct. 2013 à 04:18
21 oct. 2013 à 04:18
Ah oui exactement
quand tu veux trouver pourquoi ton formulaire ne marche pas, tu dois te mettre en tête de toujours débugguer ton application.
pour ça avant de tester les variables: vérifies ce quelles contiennent:
affiche le résultat ici du $_POST, on devrait réussir à t'orienter un peu plus...
pour ça avant de tester les variables: vérifies ce quelles contiennent:
<?php
//<pre></pre> juste pour de la mise en forme
echo "<pre>";
//uniquement si tu envois ton formulaire avec la méthode GET
print_r($_GET);
//normalement ça devrait te retourner des valeurs non vide
print_r($_POST);
//uniquement si tu as des variables de session
print_r($_SESSION);
echo "</pre>";
if(isset($_POST['login']) == "INTOXX" && isset($_POST['password']) == "Password")
{
...
?>
affiche le résultat ici du $_POST, on devrait réussir à t'orienter un peu plus...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Avec isset() :
Array
(
[login] =>
[password] =>
[valider] => valider
)
Il y a 2 champs remplis, mais sont ils bon?
Merci pour ces explications mais je crois que Pitet a vu juste.
En tout cas, je connaissais pas et je les réutiliserais !
Array
(
[login] =>
[password] =>
[valider] => valider
)
Il y a 2 champs remplis, mais sont ils bon?
Merci pour ces explications mais je crois que Pitet a vu juste.
En tout cas, je connaissais pas et je les réutiliserais !