Test acceptation cookies en PHP ?
Daniel
-
Arkhadi -
Arkhadi -
Bonjour,
En PHP, quel serait le moyen le plus simple pour déterminer si l'internaute accepte les cookies, est-ce possible sans devoir en créer un et le relire ? Merci d'avance.
En PHP, quel serait le moyen le plus simple pour déterminer si l'internaute accepte les cookies, est-ce possible sans devoir en créer un et le relire ? Merci d'avance.
6 réponses
-
Javascript sinon:
http://www.destrucsaweb.com/ressources/phpmyannu/goto_35.php -
Voici un script PHP testé et approuvé !
* Il détecte si une session est en cours.
* Il protège l'URL du navigateur.
* Le script tient sur une seule page.
* Il invite l'internaute à essayer de nouveau.
* Pas de redirection vers d'autres pages
* Pas besoin de JavaScript
Il faut placer ce script en tête de tout code car on utilise init_set() et header().
ini_set('session.use_trans_sid', 0); ini_set('session.use_only_cookies', 1); session_start(); // Tester si l'utilisateur accepte les cookies $cookiePossible = FALSE; if (isset($_COOKIE["PHPSESSID"])) { $cookiePossible = TRUE; } else { if (isset($_REQUEST['testCookie'])) { $cookiePossible = FALSE; } else { if (isset($_SERVER["QUERY_STRING"]) AND ($_SERVER["QUERY_STRING"]!='')) { header("Location:http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'&testCookie=TRUE'); } else { header("Location:http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'?testCookie=TRUE'); } exit(); } } if (!$cookiePossible) { echo '<div style="position: absolute; width: 300px; border: 5px solid gray; padding: 8px; margin: 10px; background-color: #FFFFCC; bottom:1%; right:1%">'; echo '<h1 style="text-align: center; text-transform: uppercase; color: #F00;">attention !</h1>'; echo '<div style="text-indent: 50px; text-align: justify; letter-spacing: 2px;"><p>Attention, vous devez accepter les <b>cookies</b> pour utiliser certaines fonctionnalités du site.</p> <p>Merci de votre compréhension.</p> <p>Vous pouvez essayer de nouveau à accéder au site <a href=\'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'\'>'.$_SERVER['HTTP_HOST'].'</a></p></div>'; echo '</div>'; exit(); } -
Pourquoi pas la solution que tu proposes? autrement je ne crois pas que ce soit possible.
-
OK, merci, je ne connaissais pas ce site, mais il faudrait aussi
au préalable tester si le client accepte le javascript...., voir
ce sujet du forum. -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Moi aussi je ne le connaissais pas ce site avant, j'ai juste fais une recherche sur google ;-)
-
Pour savoir si le client accepte les cookies il suffit de vérifier la caonstante SID après avoir démarré la session.
Si SID est vide le client accèpte les cookies;
le code:
session_start();
if (SID=='') $cookie=true; //le client accepte les cookies
else $cookie=false;
sinon plus simple mais moins explicite:
session_start();
$cookie=SID=='';