2010-05-20 14 views
2

Hé les gars, c'est un peu difficile à expliquer mais en gros je veux détecter si des variables ont été définies via l'URL. Donc, avec ma déclaration si tous les éléments suivants doivent retourner vrai:PHP Détecter si des variables d'URL ont été définies

et tout le faux retour suivant:

Toutes les idées?

Répondre

9

je serais tester QUERY_STRING:

if (!empty($_SERVER["QUERY_STRING"])) 

devrait en effet être pas différent de vérifier $_GET, cependant - de toute façon est très bien.

+1

J'aime ça car il va découvrir: http://example.com/foo.php?thisisaquery. Notez le manque de signes égaux. – jmucchiello

+1

@jmuchhiello true, mais même dans ce cas 'thisisaquery' devrait être présent dans' $ _GET' comme une entrée vide si je ne me trompe pas. –

+0

Comme toujours une autre excellente réponse de @Pekka: La différence subtile le rend plus correct que les autres réponses – Josh

-2

isset($_GET['m'])

ou si quoi que ce soit, je crois count($_GET) pourrait fonctionner.

+0

Yeh mais je ne sais pas quelles variables vont être appelées, c'est mon point. – zuk1

0

Si vous voulez prendre une chaîne et vérifier si elle contient une chaîne de requête, vous pouvez utiliser parse_url.

Si vous voulez vérifier si la requête en cours comporte une chaîne de requête, vous pouvez simplement vérifier la longueur de $_SERVER['QUERY_STRING'].

Si vous voulez dire pour obtenir un décompte du nombre de variables analysées à partir de la chaîne de requête, vous pouvez le faire count($_GET);

5
if(!empty($_GET)) { 
    //GET variables have been set 
} 
2

(count ($ _ GET)> 0)

1

Si vous voulez le faire à l'exception de (a) variable (s), utilisez cette instruction if avant qu'elle ne le vérifie:

if (!isset($_GET['getvariable'])) { 
    if (!empty($_SERVER["QUERY_STRING"])) { 
     echo "do something"; 
    } 
} 
Questions connexes