Page 1 sur 1

question a 2 sous - variable generale

Posté : 03 juil. 2006, 10:16
par gg_la_foret
Bonjour,

je passe une variable dans l'URL et je la teste avant de l'utiliser. Quand ma valeur vaut quelque chose ca marche sinon, dans le cas contraire (valap ="default") ca ne marche pas et la valeur ne me renvoie rien. pourquoi ? voici mon code :

Code : Tout sélectionner

<?php if(isset($_GET['val'])) { $valap = $_GET['val'] }else{ $valap = "default"; } ?> Ma valeur est <?echo $valap?>

Posté : 03 juil. 2006, 10:26
par guilt92
met un ; a la fin des lignes, ca marchera mieux.... ;)
$valap = $_GET['val'];
ou encore
<?php echo $valap;?>

Posté : 03 juil. 2006, 10:46
par gg_la_foret
avec les virgule c'est plus propre mais ca marche toujours pas. Quand ma variable dans l'url est remplie, le code m'affiche bien la valeur mais si elle n'est pas remplie, "default" n'apparait pas.

Posté : 03 juil. 2006, 10:52
par guilt92
Si elle n'est pas remplie c'est peut etre qu elle est vide mais déclarée... du genre ?var= dans l url...

Il faut alors utiliser la fonction isempty()
if(!isset($_GET['val']) || isempty($_GET['val']))
{
$valap = "default";
}
Sinon pour reprendre ta syntaxe :
if(isset($_GET['val']))
{
if(!isempty($_GET['val'])) $valap=$_GET['val'];
else $valap="defaut";
}
else $valap="defaut";

Posté : 03 juil. 2006, 12:18
par HanX
beaucoup plus simple
$valap="defaut";
if($_GET["val"])
   {
   $valap=$_GET["val"];
   }
à part si $_GET["val"] est un booleen... mais sinon pour des chaines, entiers ça marche.

Posté : 03 juil. 2006, 12:22
par Ryle
A moi, a moi !! ;)
$valap = (isSet($_GET["val"])) ? $_GET["val"] : "defaut";