Page 1 sur 1

Un paramètre dans un if

Posté : 06 déc. 2013, 17:41
par skywhi
Bonjour!
Je rencontre un problème de php et j'espère que vous pourrez m'éclairer.
Sur ma page index, j'ai ce bout de code:

Code : Tout sélectionner

if ($_GET['id'] == 3) { require_once 'includes/galerie.php'; }
Mais j'aimerais maintenant rajouter une ligne de code qui fasse que si $_GET['id'] est égal à 3 ET que le paramètre album existe (soit index.php?id=3&album=quelquechose) le require_once affiche une autre page. Comment faire cela? D'avance un grand merci!

Re: Un paramètre dans un if

Posté : 06 déc. 2013, 18:53
par xTG
Ce qu'il te manque pour tester l'existence d'une variable c'est la fonction isset(). :)
if( isset($mavariable) )
{
  echo "ma variable existe";
}
else
{
  echo "ma variable n'existe pas";
}

Re: Un paramètre dans un if

Posté : 06 déc. 2013, 22:28
par sirakawa
Bonjour!
Je rencontre un problème de php et j'espère que vous pourrez m'éclairer.
Sur ma page index, j'ai ce bout de code:

Code : Tout sélectionner

if ($_GET['id'] == 3) { if (isset($parametre)) { } else { require_once 'includes/galerie.php'; } }
Mais j'aimerais maintenant rajouter une ligne de code qui fasse que si $_GET['id'] est égal à 3 ET que le paramètre album existe (soit index.php?id=3&album=quelquechose) le require_once affiche une autre page. Comment faire cela? D'avance un grand merci!

Re: Un paramètre dans un if

Posté : 07 déc. 2013, 09:22
par nico63800

Code : Tout sélectionner

if ($_GET['id'] == 3) { if(isset($_GET['album'])) { require_once 'includes/monfichier.php'; } else { require_once 'includes/galerie.php'; } }

Re: Un paramètre dans un if

Posté : 07 déc. 2013, 11:11
par sirakawa
pour bien faire, il faudrait en plus tester la validité de $_GET['id']

Re: Un paramètre dans un if

Posté : 07 déc. 2013, 18:53
par Aureusms
Il faut vérifié si la variable existe si elle n'est pas vide, si elle correpond à ce que tu attends d'elle (genre un nombre),...

Dans ton cas :
la fonction isset() te permet de vérifier si la fonction existe mais je ne l’utilise quasiment plus celle là.. Je la remplace souvent par empty().
La fonction empty() te permet de vérifier si ta variable existe ET si ta variable est nulle ou pas (nulle veut dire égale à 0, ou à NULL, ou à False)
Pour vérifier les genres tu as les fonctions "is_quelqueChose" comme is_numeric() qui vérifie si ta variable est en genre numérique.
Enfin, le ! avant la fonction indique si elle retourne FALSE

Ainsi :
if (!empty($_GET['id']) && is_numeric($_GET['id']) && $_GET['id'] == 3)
{
    if(!empty($_GET['album']) && $_GET['album'] == 'quelquechose')
    {
      require_once 'includes/monfichier.php';
    }
   else
    {
      require_once 'includes/galerie.php';
    }
}
Alors en première ligne je vérifier si $_GET['id'] existe, si elle n'est pas nulle ou vide, qu'elle est de type numérique et égale à 3.
En seconde ligne, je vérifie si $_GET['album'] existe, si elle n'est pas vide ou nulle et qu'elle est égale à quelquechose (tu remarqueras les ' autour de quelquechose).

Si tu attends plusieurs $_GET['album'] ou plusieurs $_GET['id'], tu peux utiliser swicth :

Ex avec $_GET['album']
if (!empty($_GET['album'])) {
  switch ($_GET['album']) :
    case  'quelquechose1':
        require_once 'includes/monfichier1.php';
    break;
    case  'quelquechose2':
        require_once 'includes/monfichier2.php';
    break;
    case  'quelquechose3':
        require_once 'includes/monfichier3.php';
    break;
    default:
    return false;
  endswitch;
}

Re: Un paramètre dans un if

Posté : 07 déc. 2013, 19:04
par sirakawa
Manuel officiel:
bool isset ( mixed $var [, mixed $... ] )

Détermine si une variable est définie et est différente de NULL.