Plusieurs possibilités

Eléphant du PHP | 103 Messages

13 juin 2015, 17:40

Bonjour,
Est-il possible d'avoir possibiltés dans un script, je m'explique, j'autorise l'accès si mot de passe = bonjour et utilisateur = aurevoir. Je voudrais par exemple autoriser l'accès si utilisateur = bonjour ou rebonjour et mot de passe = aurevoir ou adieu

Mon script (de début) :
<? if(@$_POST["pass"] == "bonjour")
if(@$_POST["utilisateur"] == "aurevoir") {

?>

Merci

Mammouth du PHP | 688 Messages

13 juin 2015, 18:03

if(isset($_POST["pass"]) && ($_POST["pass"] == "bonjour" || $_POST["pass"] == "rebonjour")){
if(isset($_POST["utilisateur"]) && ($_POST["utilisateur"] == "aurevoir" || $_POST["utilisateur"] == "adieu")) {

Eléphant du PHP | 103 Messages

13 juin 2015, 18:16

Merci beaucoup

Eléphant du PHP | 103 Messages

13 juin 2015, 18:40

Est-ce possible que l'utilisateur aurevoir ne puisse être utilisé qu'avec le mot de passe bonjour et l'utilisateur adieu avec rebonjour ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

15 juin 2015, 12:33

C'est possible, tout est question de priorité des contrôles. Cette priorité est gérée implicitement par les opérateur (ET est prioritaire sur OU) et explicitement par les parenthèses.
Ainsi :
- " a OU b ET c " est vrai si "a" est vrai OU si "b" ET "c" sont tous les deux vrais.
- " (a OU b) ET c " est vrai si "a" ou "b" est vrai ET que "c" est également vrai.

Dans ton cas, il faut donc regrouper ainsi :
( aurevoir ET bonjour ) OU ( adieu ET rebonjour )

Nota : les parenthèses sont optionnelles dans ce cas, puisque de toute façon ET est prioritaire sur OU, mais je trouve qu'elle facilitent la lecture ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...