PHP : argument omis dans URL

Résolu/Fermé
dimi3 Messages postés 269 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 1 avril 2011 - 7 sept. 2010 à 10:28
dimi3 Messages postés 269 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 1 avril 2011 - 7 sept. 2010 à 11:35
Bonjour,

Comment traiter le cas où aucun argument n'est passé par l'URL alors que le fichier doit en récupérer la valeur par $_GET["valeur"];
Par exemple :

URL nécessaire : http://monsite.monfichier.php?argument=valeur

et

URL avec argument omis : http://monsite.monfichier.php

Je sais traiter l'erreur lorsque la valeur est omise (c'est-à-dire : http://monsite.monfichier.php?argument= ), mais pas l'omission de l'argument lui-même

Je vous remercie beaucoup de votre aide.


A voir également:

5 réponses

if(isset(...)) ?
0
Si j'ai bien compris ta question tu cherches à savoir comment résoudre l'erreur affichée sur ta page de réception lorsque celle-ci n'a pas recu de valeur de passage GET.

 

if (isset($_GET['machin']))      // si machin existe 
{ 
$valeur = $_GET['machin'];
}



sorry ! Distraction J'ai corrigé...
0
dimi3 Messages postés 269 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 1 avril 2011 20
7 sept. 2010 à 11:12
Merci pour vos réponse. Je pensais aussi que !isset résoudrait l'affaire mais il n'en est rien.

En effet le problème ne vient pas de ce que la valeur est vide, mais de ce que l'URL ne passe aucun argument.

Le fichier attend cette URL complète :

http://monsite.monfichier.php?argument=valeur

mais il reçoit celle-ci incomplète (c'est à dire pas d'argument) :

http://monsite.monfichier.php

Voici l'erreur retournée :

notice: Undefined index: machin in /home/monchemin/monfichier.php on line ...
0
Au moment ou il attend la valeur dans ton code, ca doit être dans la boucle conditionnelle sinon c'est normal que ca ne fonctionne pas.
en gros:

if (isset($_GET['machin'])) // si machin existe
{
$valeur = $_GET['machin'];

// et tous les appels de cette valeur dans la boucle. si besoin est, répète cette boucle à un autre endroit

}
0
au pire si ca ne fonctionne pas essaye plutot un

if (!empty($_GET['machin']))
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dimi3 Messages postés 269 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 1 avril 2011 20
7 sept. 2010 à 11:35
Voilà :

if (!isset($_GET['machin']))
{
$valeur = $_GET['machin'];
}

... fonctionne. Le message d'erreur disparaît.

Merci beaucoup à tous pour votre temps et votre patience.
0