Formulaire
babouchboy
-
babouchboy -
babouchboy -
Bonjour,
Je requiers votre aide car je débute en Php et j'ai un code qui ne fonctionne pas (normal me direz vous...).
C'est un formulaire qui demande un login et un mot de passe. Je ne vérifie pas les login et mot de passe pour l'instant car quelque chose cloche et je ne sais pas quoi... voyez par vous même :
<?php
//Si il y a présence des variables login et password
if (isset($_POST['login']) AND isset($_POST['password']))
{
echo('Il y a 2 champs remplis, mais sont ils bon?');
}
//S'il n'y a pas la présence d'au moins une des deux variables
elseif (!isset($_POST['login']) OR !isset($_POST['password']))
{
echo ('Il y a un champs vide');
}
//sinon (si les 2 variables sont absentes)
else
{
echo ('Il n\'y a rien du tout, tu te fiches de moi?');
}
?>
Merci
Je requiers votre aide car je débute en Php et j'ai un code qui ne fonctionne pas (normal me direz vous...).
C'est un formulaire qui demande un login et un mot de passe. Je ne vérifie pas les login et mot de passe pour l'instant car quelque chose cloche et je ne sais pas quoi... voyez par vous même :
<?php
//Si il y a présence des variables login et password
if (isset($_POST['login']) AND isset($_POST['password']))
{
echo('Il y a 2 champs remplis, mais sont ils bon?');
}
//S'il n'y a pas la présence d'au moins une des deux variables
elseif (!isset($_POST['login']) OR !isset($_POST['password']))
{
echo ('Il y a un champs vide');
}
//sinon (si les 2 variables sont absentes)
else
{
echo ('Il n\'y a rien du tout, tu te fiches de moi?');
}
?>
Merci
5 réponses
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...
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.
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
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 :/
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