Bonjour, moi aussi cela fonctionne.
Bon déjà pour commencer, un petite modification de code. La première ligne fait exactement ce que tu recherches mais, en plus, cela vérifie si $_GET['lang'] existe, si la variable est vide ou pas et si elle est égale à 'fr' ou 'en'. Dans un des cas contraire, 'fr' lui est attribué. Le tout en une ligne... cool non ?
J'ai préféré faire comme cela car ton code précédent vérifiait si la variable $_GET['lang'] existait mais ne vérifié pas si elle était vide ou pas.
Pour la seconde et troisième ligne, je vérifie que setcookie ne retourne pas FALSE ie. que le cookie est bien parti.
J'ai modifié time()+... par strtotime("+1 week",time()) qui reviens à la même chose mais c'est plus parlant ainsi.
<
?php
$get_langue = (!empty($_GET['lang']) && in_array($_GET['lang'], array('en','fr'))) ? $_GET['lang'] : 'fr';
if (!setcookie('langue', $get_langue, strtotime("+1 week",time())))
echo 'cookie pas envoyé';
?>
Qu'est ce que cela donne ?
Bonjour, moi aussi cela fonctionne.
Bon déjà pour commencer, un petite modification de code. La première ligne fait exactement ce que tu recherches mais, en plus, cela vérifie si $_GET['lang'] existe, si la variable est vide ou pas et si elle est égale à 'fr' ou 'en'. Dans un des cas contraire, 'fr' lui est attribué. Le tout en une ligne... cool non ?
J'ai préféré faire comme cela car ton code précédent vérifiait si la variable $_GET['lang'] existait mais ne vérifié pas si elle était vide ou pas.
Pour la seconde et troisième ligne, je vérifie que setcookie ne retourne pas FALSE ie. que le cookie est bien parti.
J'ai modifié time()+... par strtotime("+1 week",time()) qui reviens à la même chose mais c'est plus parlant ainsi.
<[php]?php
$get_langue = (!empty($_GET['lang']) && in_array($_GET['lang'], array('en','fr'))) ? $_GET['lang'] : 'fr';
if (!setcookie('langue', $get_langue, strtotime("+1 week",time())))
echo 'cookie pas envoyé';
?>[/php]
Qu'est ce que cela donne ?