If / else
Résolu
Gui4671
Messages postés
33
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour à tous,
J'ai un petit problème avec les conditions php...
Je voulais utiliser un if et un else pour autoriser ou bloquer l'accès à une partie de membres de mon site...
Ma première page (avec un petit formulaire)
Ma seconde page (page reservée à certaines personnes)
J'ai juste mis ma partie php qui me pose problème...
Quand je cela, tous les mots de passe sont autorisés et donc en tapant n'importe quoi on peut accéder à cette page (Plus de sécurité)
Quand je mets la même chose mais avec un seul mdp, cela fonctionne...
Je ne comprends ce qui se passe, quelqu'un peut il m'éclairer?
(Je vous avoue que je n'ai pas su chercher beaucoup car je dois terminer mon travail rapidement et que j'ai encore du boulot :) )
Merci d'avance à vous.
J'ai un petit problème avec les conditions php...
Je voulais utiliser un if et un else pour autoriser ou bloquer l'accès à une partie de membres de mon site...
Ma première page (avec un petit formulaire)
<tr><td>En savoir plus:</td><td><form action="/membres/ID1001.php" method="post"> <p> <input type="password" name="mot_de_passe" placeholder="Votre mot de passe" required /> <input type="submit" value="Valider" /> </p> </form></th></tr>
Ma seconde page (page reservée à certaines personnes)
<?php if (isset($_POST['mot_de_passe']) AND $_POST['mot_de_passe'] == "mdp1" OR "mdp2" OR "mdp3") {texte texte.} else { texte texte }?>
J'ai juste mis ma partie php qui me pose problème...
Quand je cela, tous les mots de passe sont autorisés et donc en tapant n'importe quoi on peut accéder à cette page (Plus de sécurité)
Quand je mets la même chose mais avec un seul mdp, cela fonctionne...
Je ne comprends ce qui se passe, quelqu'un peut il m'éclairer?
(Je vous avoue que je n'ai pas su chercher beaucoup car je dois terminer mon travail rapidement et que j'ai encore du boulot :) )
Merci d'avance à vous.
Configuration: Windows / Firefox 65.0
A voir également:
- Php if multiple conditions
- Ecran multiple pc - Guide
- Easy php - Télécharger - Divers Web & Internet
- Excel cellule choix multiple - Guide
- Copier coller multiple - Guide
- Test IF a plusieurs condition en PHP ✓ - Forum PHP
2 réponses
(isset($_POST['mot_de_passe']) AND $_POST['mot_de_passe'] == "mdp1" OR "mdp2" OR "mdp3")
Une chaine n'est pas vide donc renvoie true :
Ton code est en fait (une fois les priorités remise en place) :
((isset($_POST['mot_de_passe']) AND $_POST['mot_de_passe'] == "mdp1") OR true OR true)
donc True.
Bonjour,
Les conditions c'est :
Si variable == toto
OU si variable == titi
OU si variable == truc ...
Tu remarqueras qu'on réécrit la variable pour CHAQUE condition....
Le
Si variable == toto ou titi ou truc ..... ça ne marche pas !
Donc
Déjà.. on commence par récupérer proprement les variables avant de les utiliser :
(je t'invite à lire ceci : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code )
Puis on fait le IF correctement
On peut aussi utiliser un array pour contenir les réponses possibles...
Puis vérifier si le mot de passe se trouve dans cette liste
Les conditions c'est :
Si variable == toto
OU si variable == titi
OU si variable == truc ...
Tu remarqueras qu'on réécrit la variable pour CHAQUE condition....
Le
Si variable == toto ou titi ou truc ..... ça ne marche pas !
Donc
Déjà.. on commence par récupérer proprement les variables avant de les utiliser :
(je t'invite à lire ceci : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code )
$password = !empty($_POST['mot_de_passe']) ? $_POST['mot_de_passe'] : NULL;
Puis on fait le IF correctement
//on fait le test : if ($password == "mdp1" OR $password=="mdp2" OR $password=="mdp3") {
On peut aussi utiliser un array pour contenir les réponses possibles...
$password_allow = array("mdp1","mdp2","mdp3");
Puis vérifier si le mot de passe se trouve dans cette liste
if(in_array($password,$password_allow)){