PHP Get et Empty [Résolu/Fermé]

Signaler
-
 Utilisateur anonyme -
Bonjour,je souhaite récupérer les données GET d'une url :

127.0.0.1/infovehicule.php?id=4&vnvo=vo

<?php 

$vechicule = !empty($_GET['vnvo']);
echo $vechicule;

?>


Le problème est que sa me renvoi la valeur "1" au-lieu de "vo"
Si j'enlève !empty() la c'est bon ! mais si une personne modifie le lien il y aura des erreurs...




2 réponses

Salut,

C'est normal empty permet de tester une variable et revoit un booléen en gros si c'est pas vide ça vaut 1 et si c'est vide ça vaut 0. Pour que ça marche comme tu le souhaite il faut l'utiliser dans une condition :

<?php   

if (!empty($_GET['vnvo']))  
$vechicule = $_GET['vnvo'];  

echo $vechicule;  
?>


Là en gros ça dit : "si c'est pas vide alors $vehicule vaut la valeur du paramètre vnvo" et tu peux compléter avec else pour dire : "par contre si c'est vide ..."

Si tu peux tester une variable fais le dans une condition sinon il te reverras juste le résultat de la fonction : 0 ou 1.

Je sais pas si j'ai bien expliqué, sinon ben je te donnerai des exemples plus percutant.

Allez à plus ;)

Edit : par contre si le paramètre est vide tu aura une erreurs du genre Parse error: parse error, unexpected T_VARIABLE, et ça c'est compréhensible puisque tu ne déclare la variable que si le paramètre n'est pas vide donc si c'est vide tu essais d'afficher une variable qui n'existe pas :)
La chance aide parfois, le travail toujours !
Merci beaucoup pour ton explication complète même si j'ai trouvai entre temps :

if (!empty($_GET['vnvo']) && !empty($_GET['id'])) { 

$vehiculetype = htmlentities($_GET['vnvo']); 
$vehiculeid = htmlentities($_GET['id']); 

} 

else { 
echo '<center><b>Veuillez passer par la liste de véhicule !</b></center>'; 
} 



Mais au moins maintenant je serrai pourquoi sa me renvoyé "1"


EDIT : J'ai aussi fait des conditions dans la condition principale afin de ne pas avoir d'erreur si le paramètre est vide ou si il ne correspond pas à vn ou vo (véhicule neuf / véhicule occasion)