Création
d'entreprise
Posez votre question Signaler

Test acceptation cookies en PHP ?

Daniel - Dernière réponse le 16 janv. 2012 à 15:12
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.
Lire la suite 

Test acceptation cookies en PHP »

8 réponses
Réponse
+2
moins plus
Javascript sinon:
http://www.destrucsaweb.com/ressources/phpmyannu/goto_35.php
Ajouter un commentaire
Réponse
+1
moins plus
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();
	}
Arkhadi - 16 janv. 2012 à 15:12
Merci beaucoup. Quelques heures de travail épargnées. : )
Ajouter un commentaire
Réponse
+0
moins plus
Pourquoi pas la solution que tu proposes? autrement je ne crois pas que ce soit possible.
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
Moi aussi je ne le connaissais pas ce site avant, j'ai juste fais une recherche sur google ;-)
Ajouter un commentaire
Réponse
+0
moins plus
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=='';
jside - 7 janv. 2012 à 10:15
Je ne suis pas d'accord avec ta solution car le SID est généré dans tous les cas. Il sera différant à chaque appel de page.
Ajouter un commentaire
Ce document intitulé « test acceptation cookies en PHP ? » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?