8768 sujets

Développement web côté serveur, CMS

Bonjour,
J'ai fait ce code pour afficher une page suivant une variable reçue.
Mais le code ne lis que le début et même si la variable change de nom, cela affiche toujours le premier echo.

Code:
if ($pdt == "[PDT]" OR "[MATERIEL]")
{
echo "oui";
}
elseif ($pdt == "[APPLICATION]")
{
echo "non";
}
else{ echo "error"; }
?>
Merci.
Bonjour,

Peut-être comme ça:
if ($pdt == "[PDT]" || $pdt == "[MATERIEL]") 


ou

if (in_array($pdt,["[PDT]","[MATERIEL]"])) 

Modifié par loicbcn (25 Mar 2022 - 11:34)
Meilleure solution
wisefun77 a écrit :

même si la variable change de nom,


Change de valeur plutôt ?

Utilise plutôt || plutot que OR

if ($pdt == "[PDT]" OR "[MATERIEL]")


Ici c'est pas bon
tu dois faire une comparaison à pdt pour materiel aussi
Dans ta ligne ci dessus,
si je traduis en pseudo code ça donne
Si $pdt contient un string "[PDT]" OU si le string "[MATERIEL]" existe. Forcement le string "[MATERIEL]" existe tout le temps donc il rendre dans ton if dans 100% des cas. Tu as oublié le test avec pdt.

C'est plutôt ça :

if($pdt == "[PDT]" OR $pdt == "[MATERIEL]")

Modifié par JENCAL (25 Mar 2022 - 14:03)
Bonjour JENCAL,
Merci pour ton info, je ferais attention lors de mes énoncés.
Modifié par wisefun77 (25 Mar 2022 - 15:49)