mes test ne marche pas!

Eléphant du PHP | 130 Messages

25 sept. 2006, 14:46

Je fais un test sur des variables passé en URL mais c'est comme si il n'y avait aucun test toutes les données s'affiche sans distinction.
Je ne vois pas mon erreur.
Est ce que quelqu'un peut m'aider.
D'avance merci.
if (isset($_GET['lien'])){
            if( $_GET['lien']=_ADD_SM) {echo 'add sm<br>';}
            if( $_GET['lien']=_ADD_DEV) {echo 'add dev<br>';}
            if( $_GET['lien']=_ADD_CONT_DEV) {echo 'add dev cont<br>';}
        }else{
            echo'accueil';
        } 

Avatar du membre
ViPHP
ViPHP | 3008 Messages

25 sept. 2006, 14:52

if (isset($_GET['lien']))
{ 
	if($_GET['lien']=="_ADD_SM") {echo 'add sm<br />';} 
	if($_GET['lien']=="_ADD_DEV") {echo 'add dev<br />';} 
	if($_GET['lien']=="_ADD_CONT_DEV") {echo 'add dev cont<br />';} 
}
else
{ 
	echo 'accueil'; 
}
"_ADD_SM" est du texte que tu passes par l'URL ? Si oui mets des guillemets.

Il te faut un double égal dans ton if.

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

25 sept. 2006, 16:06

Si tu ne mets pas le double égal , PHP fait alors deux actions dans le IF :
1/ il affecte la valeur _ADD_SM à ta variable
2/ il teste que cette opération ne renvoie pas FALSE (donc que l'affectation s'est bien passée).

C'est pour cela que tu as toujours bon à ce test.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphant du PHP | 130 Messages

26 sept. 2006, 10:23

Les _ADD_SM et autres sont des constantes passé en url.

Si je met un double egal il trouve bien le $_GET['lien'] donc rentre dans le premier "if isset" mais ne fait d'autre test ou en tout cas ne m'affiche rien pas le resultat voulu à l'écran

Avatar du membre
ViPHP
ViPHP | 3008 Messages

26 sept. 2006, 10:44

Dans ce cas tu fais avec des else.

Si alors...sinon si....sinon....
<?php if (isset($_GET['lien'])) 
{  
    if($_GET['lien']=="_ADD_SM")
	{
		echo 'add sm<br />';
	}  
    elseif($_GET['lien']=="_ADD_DEV")
	{
		echo 'add dev<br />';
	}  
    else
	{
		echo 'add dev cont<br />';
	}  
} 
else 
{  
    echo 'accueil';  
}
?>
Pour le dernier else, tu n'as pas besoin de donner de condition puisque c'est le dernier.

Eléphant du PHP | 130 Messages

26 sept. 2006, 14:26

il me fallait mettre entre cote les _ADD* et mettre un double =
if (isset($_GET['lien'])){
            if( $_GET['lien']=='_ADD_SM') {echo 'add sm<br>';}
            if( $_GET['lien']=='_ADD_DEV') {echo 'add dev<br>';}
            if( $_GET['lien']=='_ADD_CONT_DEV') {echo 'add dev cont<br>';}
        }else{
            echo'accueil';
        } 
merci à tous

Avatar du membre
ViPHP
ViPHP | 3008 Messages

26 sept. 2006, 14:48

il me fallait mettre entre cote les _ADD* et mettre un double =
Ne serais-ce pas ce qu'on a mis depuis le début ? :langue:

Utilises les elseif c'est mieux ;)