Un problème avec un IF dans php

Fermé
Floppydisck - 14 juil. 2008 à 15:55
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 - 14 juil. 2008 à 16:18
Bonjour,
voici un bout de code php (qui ne marche pas biensur)

<?php
if(isset($_GET['visiteur']))
{
$visiteur=$_GET['visiteur'];
}
else
{
$visiteur="M";
}
if($visiteur="M")
{
include("membres.php");
}
else
{
include("inscription.php");
}
?>

ce que je veux :
que si le visiteur est un membre cela affiche le contenu de membres.php et s'il est anonyme,
ça affiche le contenu de la page inscription.php.
ce que ce code affiche:
Ben il affiche toujours la page membres.php, quelle que soit la valeur que je lui affecte.
Je fais mes tests en accedant directe à la page comme ça : .../index.php/?visiteur=M ou
.../index.php/?visiteur=A

voilà, merci à ceux qui voudront bien me dire pourquoi ce code ne marche pas.

3 réponses

X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24
14 juil. 2008 à 16:05
Corrige ton deuxième IF:

if($visiteur=="M")
{
include("membres.php");
}
else
{
include("inscription.php");
}

Si tu ne mets qu'un seul signe = entre $visiteur et "M", ce n'est pas une comparaison et donc c'est toujours vrai et donc il affichera toujours " include("membres.php"); " que ce soit un visiteur ou pas.

Et pourquoi ne pas tout simplement faire:

if(isset($_GET['visiteur']))
{
include("membres.php");
}
else
{
include("inscription.php");
}

?????????
0
oh merci beaucoup,
Mais bon pour ta proposition, ça marche bien mais je n'ai pas que ce bout de code, parce qu'après quand le membre il va se déconnecter, la variable visiteur va devenir "A" elle existe toujours mais elle change de valeur et donc je dois faire ce test.
Merci pour ta réponse si rapide.
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24
14 juil. 2008 à 16:18
Ah je vois. Bien bien bonne continuation dans ce cas. ^^

Simple suggestion, pourquoi ne pas mettre ta variable $_GET dans un variable $_SESSION et faire un simple isset dessus? Et une fois que le visiteur se déconnecte, tu fais unset sur la variable $_SESSION? Il me semble que c'est une façon plus pro de travailler (les $_GET ne devraient pas servir à ce genre de chose car ton URL est limité en longueur et ça devient très vite très grand un URL dont on passe un tas de variable inutile dedans).
0