Aller au contenu

if else : je m'emmele


Sujets conseillés

Posté

Bonjour,

je veux verifier l'existence de mes variables passé par l'url

exemple : index.php?cat=xxx

et faire les includes en fonction :

si cat = (include _index.php)

si site = (include _site.php)

si voir = (include _voir.php)

si aucune variable ou autre variable que celle ci-dessus et si les var site & voir sont mise "à la main : site=xxx& voir=xxx" toujours inclure _index.php

Florent

Posté

Bonjour,

Pour vérifier l'existence d'une variable passée par url : $_POST.

donc :

if ($_POST['cat']==){

//code pour cat

}

if ($_POST['site']==){

//code pour site

}

if ($_POST['voir']==){

//code pour voir

}

Attention, ce n'est pas pareil que :

if ($_POST['cat']==){

//code pour cat

}

elseif ($_POST['site']==){

//code pour site

}

elseif ($_POST['voir']==){

//code pour voir

}

else{

// code autrement.

}

Dans le premier cas, on teste toutes les variables. Dans le deuxieme, on teste la premiere, et si c'est pas bon, on teste la seconde, et si c'est pas bon on teste la troisieme,et si c'est pas bon, on fait le code par défaut.

Pour toi, si j'ai bien compris, ca devrait donner :

if ($_POST["site"]==...){

// code pour site

include("include_site.php");

}

elseif ($_POST["voir"]){

//code pour voir

include("include_voir.php");

}

else{

// code dans le cas où site n'est pas bon, ET voir n'est pas bon.

include("include_cat.php");

}

Mais je ne suis pas sûr d'avoir compris :(

Anonymus.

Posté

Salut anonymus,

a partir deuxieme exemple

$_POST['cat']==?? ,

je m'interroge, je n'ai pas besoin du "==" ?

si je veux verifier l'existence de mes variables (est ce que je dois lui coller "==true") , j'ai corrigé l'exemple deux en les supprimant, dis moi si c'est bon comme ca! merci

if ($_POST['cat']){
//code pour cat
}
elseif ($_POST['site']){
//code pour site
}
elseif ($_POST['voir']){
//code pour voir
}

/*je verifie en cas de manip à la main pour eviter un plantage
que si les variables sont associés je mets cat */

elseif ($_POST['voir'] && $_POST['site'] ){
//code pour cat
}
elseif ($_POST['cat'] && $_POST['site'] ){
//code pour cat
}
elseif ($_POST['cat'] && $_POST['voir'] ){
//code pour cat
}

else{
// code pour cat
}

en gros le code pour cat est celui par defaut sauf si "voir & site" sont renseignés.

Tu me comprends toujours :D

Florent

Posté

Prenons ceci :

if ($_POST['cat']){

//code pour cat

}

elseif ($_POST['site']){

//code pour site

}

elseif ($_POST['voir']){

//code pour voir

}

cela verifie d'abord cat. Donc, c'est pas bon.

Il te faut d'abord vérifier site, puis voir (ou l'inverse), et SEULEMENT ENSUITE, tu verifies cat.

Pour ton code, il est bon, sauf si la valeur de voir (par exemple, est FALSE. Autrement dit, quelqu'un qui rentre voir=false. Ca va interpreter la valeur comme fausse, et donc voir n'existera pas, alors qu'elle existe.

Autre exemple (pour changer), si site=0, alors site egal quelque chose. On est d'accord. Pourtant, ca sera interprété comme faux, puisque php interprete le 0 comme le booleen. Donc, pour résumer, il te faudrait écrire :

if ($_POST['voir']){

//code pour voir

}

elseif ($_POST['site']){

//code pour site

}

else{

//code tous les AUTRES cas. Aussi bien cat qu'un autre.

}

Pour mieux faire, et pour prendre en compte les 2 remarques que j'ai faites plus haut, tu peux mettre :

if (isset($_POST['voir'])){

//code pour voir

}

elseif (isset($_POST['site'])){

//code pour site

}

else{

//code tous les AUTRES cas. Aussi bien cat qu'un autre.

}

Qu'on soit bien d'accord :

- si voir existe, on execute le code de voir, et c'est tout.

sinon :

- si site existe, on execute le code de site, et c'est tout.

sinon :

- on execute le code standard.

C'est ca ! ?

on s'est compris ? :)

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...