Problème de "if" en PHP

Résolu/Fermé
Shenko90 - 26 mai 2010 à 17:18
Neliel Messages postés 6146 Date d'inscription jeudi 9 juillet 2009 Statut Contributeur Dernière intervention 20 mars 2017 - 27 mai 2010 à 12:02
Bonjour à tous,

Je suis en train de créer mon premier site et j'ai un problème avec une structure "if" en PHP à l'intérieur d'une page HTML. Voici mon code :

<?php
if ($connex == true)
{
?>
<a href='deco.php' target=page>déconnexion</a><br />
<a href='chang_psw.html' target=page>changer le mot de passe</a>
<?php
}
else{
?>
<a href='form_connex.html' target=page>connexion</a>
<?php
}
?>

Ma page devrait m'afficher soit un lien "déconnexion" et un lien "changer le mot de passe", soit un lien "connexion"; mais au lieu de ça elle m'affiche les trois.
Quelqu'un pourrait-il m'expliquer pourquoi svp?

Merci d'avance de vos réponses.

Shenko90
A voir également:

6 réponses

justoo76 Messages postés 186 Date d'inscription mardi 13 avril 2010 Statut Membre Dernière intervention 23 mars 2016 13
27 mai 2010 à 09:33
Bonjour,

As-tu bien enregistré ton code en .php et non pas .html ?

car on dira que le php n'est pas interprété..
1
fxtaa Messages postés 1050 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 2 avril 2015 74
Modifié par fxtaa le 27/05/2010 à 09:45
installe easy php ou wamp et met ta page php dans le répertoire www.

Ensuite lance ton navigateur et connecte toi à 127.0.0.1/[nom de ta page].php
0
Je l'avais d'abord enregistré en .html, puis ensuite je l'ai mis en .php mais ça me donne le même résultat.

Je croyais qu'on pouvait mettre du php dans une page .html, je me trompe ?

Merci pour tes conseil fxtaa, je vais essayer ça.

Shenko90
0
justoo76 Messages postés 186 Date d'inscription mardi 13 avril 2010 Statut Membre Dernière intervention 23 mars 2016 13
27 mai 2010 à 10:04
lol oui, premier point : dès que tu met des balises <?php ?> , il faut enregistrer le fichier en .php

Deuxieme point: il te faut un serveur (local) comme dit fxtaa pour intérpreter ce code php. Effectivement, Wamp est une très bonne solution.
0
fxtaa Messages postés 1050 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 2 avril 2015 74
Modifié par fxtaa le 27/05/2010 à 10:07
oui mais l'extension doit être php.

Mettre du php dans une page html est mal-dit. Pour que le serveur comprenne et interpretre le php, ta page doit être en .php

Rien ne t'empêche de mettre du html dedans.

Le <?php ?> est interpreté coté serveur, (serveur apache la plupart du temps + module php), et peut exécuter des requêtes sql : wamp = windows apache mysql php.
Donc pour résumer pour que ta page php fonctionne correctement il faut que tu installes wamp pour que ta page php soit bien interprété.

Ensuite tu nommes ta page php index.php et tu la met dans le répertoire "www" de ton install wamp. Tu lances ton navigateur : http://127.0.0.1 et voila
0
Neliel Messages postés 6146 Date d'inscription jeudi 9 juillet 2009 Statut Contributeur Dernière intervention 20 mars 2017 1 688
26 mai 2010 à 17:20
Bonjour,

Je pense que le problème vient de ta variable $connex... c'est un booléen ? Comment la déclare tu ?
0
$connex est bien un booléen. je la récupère depuis une autre page par la méthode POST.
0
Neliel Messages postés 6146 Date d'inscription jeudi 9 juillet 2009 Statut Contributeur Dernière intervention 20 mars 2017 1 688
26 mai 2010 à 17:31
Poste le formulaire, la partie du code où tu initialise $connex et celle où tu la récupère sur la page de destination.

Essaie de mettre un :
echo $connex;

pour vérifier la valeur que contient la variable.
0
Bonjour,
j'ai essayé de mettre :
echo $connex;
comme tu me l'a dit mais ça ne changeait rien. J'ai alors essayer d'initialiser $connex juste avant de faire le test, mais là non plus aucune différence.

J'ai l'impression que le php n'est pas pris en compte car même quand je fais :
echo "salut";
ça n'apparait pas.

Shenko90
0
Neliel Messages postés 6146 Date d'inscription jeudi 9 juillet 2009 Statut Contributeur Dernière intervention 20 mars 2017 1 688
27 mai 2010 à 09:52
Juste pour info... tu exécute ton script PHP en local ?
Utilises-tu un serveur Apache virtuel avec EasyPHP ou Wamp ?
0
CRBHD Messages postés 136 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 5 avril 2011 9
26 mai 2010 à 17:22
Hello,

Perso, je ne suis pas fan de ce genre de pratique essaye comme ceci :

<?php
if ($connex == true)
{
echo "<a href='deco.php' target=page>déconnexion</a><br />";
echo "<a href='chang_psw.html' target=page>changer le mot de passe</a>";
}
else{
echo "<a href='form_connex.html' target=page>connexion</a>";
}
?>

Question, pourquoi mets-tu "target=page", tu utilise des frames ?
0
Bonjour,

J'avais d'abord essayer de coder comme tu me le dit mais j'avais un problème d'affichage. J'ai tout de même réessayer avec ton code, au cas où j'aurai fait une erreur mais voilà le résultat :

déconnexion
"; echo "changer le mot de passe"; } else{ echo "connexion"; } ?>

avec "changer le mot de passe" et "connexion" en liens, mais pas "déconnexion".

Pour répondre à ta question, j'utilise en effet des frames.

Shenko90
0
CRBHD Messages postés 136 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 5 avril 2011 9
27 mai 2010 à 09:59
Curieux, la syntaxe à l'air correcte ... essaye ça :

<?php
if ($connex == true)
{
echo "<a href='deco.php' target='page'>déconnexion</a><br />";
echo "<a href='chang_psw.html' target='page'>changer le mot de passe</a>";
}
else{
echo "<a href='form_connex.html' target='page'>connexion</a>";
}
?>
0
Neliel Messages postés 6146 Date d'inscription jeudi 9 juillet 2009 Statut Contributeur Dernière intervention 20 mars 2017 1 688
Modifié par Neliel le 26/05/2010 à 17:25
Non, ce n'est pas ça le problème, je code mes if comme le fait l'auteur du sujet, et jamais aucun soucis...

Je suis sûr que son problème viens de la variable $connex...
"Trotti Trotta, Monsieur P, il y a des anges qui veulent un bisou..."
"Même les joujou de Monsieur P ont besoin de joujou"
0
CRBHD Messages postés 136 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 5 avril 2011 9
27 mai 2010 à 10:01
Je n'ai pas dis que la manière de coder n'était pas correct, c'est juste que je ne trouve pas ça lisible, je préfère bien séparé le php et l'html mais ce n'est qu'un avis personnel.
0
Neliel Messages postés 6146 Date d'inscription jeudi 9 juillet 2009 Statut Contributeur Dernière intervention 20 mars 2017 1 688
27 mai 2010 à 10:06
Dans les deux cas, le PHP et le HTML ne sont pas séparés...

Dans ton cas, tu insère du code HTML dans du code PHP en utilisant les chaînes de caractères.
Dans mon cas (et dans le sien), on insère du code PHP dans du code HTML.
0
CRBHD Messages postés 136 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 5 avril 2011 9
27 mai 2010 à 10:19
Oui, enfin, je me suis compris.

Dans mon cas c'est le PHP qui écrit le HTML... encore une fois par soucis de lisibilité. Les 2 sont tout à fait valable. Je dirais même que beaucoup de professionnel utilise "votre" méthode. Enfin le débat n'est pas là. ^^
0
Neliel Messages postés 6146 Date d'inscription jeudi 9 juillet 2009 Statut Contributeur Dernière intervention 20 mars 2017 1 688
27 mai 2010 à 12:02
Exact, on s'égare ;-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
CRBHD Messages postés 136 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 5 avril 2011 9
Modifié par CRBHD le 26/05/2010 à 17:38
Bah peut-être que ça vient de la variable comme tu dis.

Mais que la condition soit toujours vraie ou toujours fausse d'accord ça c'est un bug plausible. Mais qu'elle soit vrai et fausse, c'est impossible !

Faut dire aussi que je suis crevé, j'ai du mal à réfléchir. ^^
0
Voilà, mon problème est résolu, ça venait que je n'utilisait pas de serveur apache. J'ai téléchargé wamp et maintenant tout marche très bien. Merci à tous de votre aide.

Shenko90
0