question a 2 sous - variable generale

gg_la_foret
Invité n'ayant pas de compte PHPfrance

03 juil. 2006, 10:16

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?>

Mammouth du PHP | 1353 Messages

03 juil. 2006, 10:26

met un ; a la fin des lignes, ca marchera mieux.... ;)
$valap = $_GET['val'];
ou encore
<?php echo $valap;?>
Tell me and I forget. Teach me and I remember. Involve me and I learn.

gg_la_foret
Invité n'ayant pas de compte PHPfrance

03 juil. 2006, 10:46

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.

Mammouth du PHP | 1353 Messages

03 juil. 2006, 10:52

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";
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Eléphant du PHP | 197 Messages

03 juil. 2006, 12:18

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.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

03 juil. 2006, 12:22

A moi, a moi !! ;)
$valap = (isSet($_GET["val"])) ? $_GET["val"] : "defaut";