2009-11-17 5 views
0

j'ai une page Web à laquelle une quantité de varibales URL peut être définie .. exemples:PHP détecter si toutes les variables d'URL ont été définies

  • index.php source = lol
  • index.php? source = lol & sub = haha ​​
  • index.php? aff = 123
  • index.php? keyword = pizza

Je veux une manière que je peux détecter toute variable url a été défini, si une variable d'URL a été définie, je veux imprimer quelque chose sur la page. Des idées? Je n'ai rien trouvé sur Google à ce sujet.

Répondre

7

count($_GET); renverra le nombre de paramètres dans l'URL. Utilisez if (count($_GET) > 0) pour tester leur présence.

Par exemple:

if (count($_GET) > 0){ 
    print "You supplied values!"; 
} else { 
    print "Please supply some values."; 
} 
+0

+1. Maintenant que j'ai relu trois fois la question de l'OP, je * pense * que c'est ce qu'il cherche. – Matt

1

Check isset ($ _ GET [ 'var_name'])

http://php.net/isset

+0

... conjointement avec $ _GET ou $ _REQUEST , qui contiennent les variables d'URL. Si vous souhaitez les traiter plus en détail, veillez à vous informer sur la manière de gérer les saisies de l'utilisateur de manière sécurisée. –

0

Vous pouvez voir si une variable a été définie à l'aide isset ou array_key_exists:

if (isset($_GET['source'])) 
    doSomething(); 

Vous pouvez passer en boucle tout la variable de la chaîne de queues comme suit:

foreach ($_GET as $key => $value) 
    echo htmlspecialchars($key) . ' is set to ' . htmlspecialchars($value); 
+0

Ne pensez-vous pas que var_dump ($ _ GET) ou print_r ($ _ GET) est plus utile que foreach? –

0

Plus générale:

if (count($_GET)) { 
foreach ($_GET as $key => $value) { 
    echo "Key $key has been set to $value<br />\n"; 
} 
} 
0

Si vous voulez vérifier si toutes les variables a été envoyé, utilisez la fonction ci-dessous.

function hasGet() 
{ 
    return !empty($_GET); 
} 

if (hasGet()) { 
    echo "something on the page"; 
} 
0

depuis $ _GET retourne un tableau, il pourrait être plus sûr de vérifier sa taille en utilisant la fonction sizeof()

Exemple:

if(sizeof($_GET)>0){ 
    /*you had passed something on your link*/ 
}else{ 
    /*you did not passed anything on your link*/ 
} 
Questions connexes