[RESOLU] Un paramètre dans un if

Eléphanteau du PHP | 25 Messages

06 déc. 2013, 17:41

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!

ViPHP
xTG
ViPHP | 7331 Messages

06 déc. 2013, 18:53

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";
}

Mammouth du PHP | 2278 Messages

06 déc. 2013, 22:28

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!
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphanteau du PHP | 46 Messages

07 déc. 2013, 09:22

Code : Tout sélectionner

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

Mammouth du PHP | 2278 Messages

07 déc. 2013, 11:11

pour bien faire, il faudrait en plus tester la validité de $_GET['id']
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

ViPHP
ViPHP | 1996 Messages

07 déc. 2013, 18:53

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;
}
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Mammouth du PHP | 2278 Messages

07 déc. 2013, 19:04

Manuel officiel:
bool isset ( mixed $var [, mixed $... ] )

Détermine si une variable est définie et est différente de NULL.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD