LE NAVIGATEUR DU CLIENT ACCEPTE T'IL LES COOKIES

cs_pyranhaz Messages postés 236 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 13 décembre 2004 - 15 déc. 2003 à 01:06
Hellway Messages postés 37 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 2 août 2004 - 20 déc. 2003 à 16:58
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/18715-le-navigateur-du-client-accepte-t-il-les-cookies

Hellway Messages postés 37 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 2 août 2004
20 déc. 2003 à 16:58
Bah, personnellement, je n'utilise pas les sessions php, mais j'utilise quelquechose que je connaît sûr et inviolable à mon sens.

En fait, je pense que les sessions PHP se comportent un peu comme mon script. A la différence que ces sessions ne sont valable que pour mes membres et pas pour les visiteurs. Elle permet de garder la connexion.

Ce que je fait quand un membre ce connecte, c'est que je lui donne un Id de 20 caractères pris au hasard parmi tous les caractères ansii. Ce qui réduit fortement la possibilité d'avoir deux fois le même Id et de pirater une sessions en rechergeant la page avec toutes les combinaisons possibles... Ensuite, je stocke cet Id dans la base de donnée.

Ensuite, reste la question de savoir comment conserver l'Id car pour reste connecté, le membre doit envoyer cet Id à chaque chargement de page. Alors, j'ai opté pour les cookies de sessions qui se détruisent dès que le naviguateur est fermé, mais j'ai autorisé les cookies persistants pour qu'ils puissent être automatiquement reconnus à leur prochaine visite. Dans le cas où le membre n'accepte pas les cookies, alors, cet Id est transmis via CGI ce qui est pas très sûr vu que cet Id est visible dans l'Url et il suffit que ce dernier donne un lien pour mettre les autres au courant de son Id.

M'enfin, depuis trois ans que j'utilise ce système, j'ai pas eu de problème. Et la différence fondamentale avec les phpsessid, c'est que l'Id est plus long, donc, plus dur à trouver, mais aussi que cet Id n'est pas le fruit du hasard et est généré par rapport à des facteurs qui me sont inconnus (timestamp peut-être... pour fixer un delai d'expiration). Alors, je crois qu'on peut se fier à php pour ça... Par contre, je ne sais pas où ils stockent ces données (les Id) ,mais si c'est en mémoire vive, cela doit ralentir d'autant plus le serveur. Et au moins, avec mon script, je sais ce qu'il se passe et je dors sur mes deux oreilles, d'autant plus que ce dernier est très peu long.

M'enfin, si tu veux étudier le problème de fond en comble, j'ai mis la source de mon site on-line...
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
20 déc. 2003 à 16:34
de toute façon, moi les cookies... je les fuis, c'est pas du tout "reliable", pas du tout sur.

ah question, les sessions en php utilisent un cookie? les infos sont toutes sauvées côté serveur ça c'est du sur, mais pr repérer chaque "client", c'est seulement sur base de l'IP ou c'est appuyé par un cookie ? auquel cas, faudrait se méfier des session aussi...
Hellway Messages postés 37 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 2 août 2004
20 déc. 2003 à 16:27
Effectivement, bien vu. A supposer que comme je le disais dans le commentaire, on n'utilise pas se cookie pour autre chose, encore que tout contenu d'une variable retourne true...

M'enfin, je propose que ce code source soit corrigé... Sinon, pour info et pour éviter que l'on se méprenne, la fonction setcookie() retourne false en cas d'erreur, mais uniquement côté serveur...
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
20 déc. 2003 à 14:28
tu peus aussi écrire ça en plus court:

$CookieAccepte = isset($_COOKIE["CookieAccepte"]);

et donc il n'est pas possible de savoir en un chargement de page, ce qui justifie mon étonnement. je trouvais ça bizarre... et je comprends pas que tu aies eu des bons résultats avec cette manière de faire.
Hellway Messages postés 37 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 2 août 2004
20 déc. 2003 à 03:06
Pour répondre à la question des cookies, le problème justement avec les cookies, c'est qu'on ne peut pas savoir si le naviguateur accepte les cookies ou pas, en tout cas, pas en un seul chargement de page.

En effet, si vous placez un cookie, celui-ci ne sera disponible qu'au prochain chargement de page et ce code est donc par conséquent inutile.

Le seul et unique moyen de faire une telle vérification reste de faire comme je l'ai fait sur mon site. Dès que le visiteur arrive, on place un cookie (ex: setcookie("CookieAccepte","true");) et à chaque fois qu'on recharge une page, on met ce petit bout de code:
if(isset($_COOKIE["CookieAccepte"])){ CookieAccepte=true; } else { $CookieAccepte=false; }

Et donc, dans tous le reste du script, la variable $CookieAccepte nous renseigne sur le fait que le client accepte les cookies.

Bon, après, on peut placer ce cookie de vérification avec une valeur dont on a besoin pour rendre ce cookie de vérification utile à plusieurs choses et faire d'une pierre deux coups.

J'espère que j'en ai aidé certains, sinon, ben j'ai perdu mon temps :-D
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
16 déc. 2003 à 23:22
moui, ben c bien gentil mais il y a 3 semaines, alors que j'avais linux depuis plusieurs mois ss y toucher, j'ai écrasé le disque dur pour y stocker mes gros fichiers ss windows. c'est arf. merci qd même pr ta bonne volonté ;-)
amosc Messages postés 82 Date d'inscription lundi 10 février 2003 Statut Membre Dernière intervention 18 octobre 2005
16 déc. 2003 à 23:20
les version Mandrake son des version dite facile mais cependant on ne pas pas recompiler un noyaux comme on veux meme le non des fonction de base du noyaux sont changer c est le bordel, cest pas terrible comme distrib si tu veu recompiler un noyaux proprement install debian 3.0 version trés intérrésante, et tu trouvera tt ce que tu a besoin sur le net by ;-)

à trés bientot avec le noyaux 2.4.23 compilé lol ;-)

ps : vive l'OpensOurce ...

ps2: t est pas obliger de recompiler tt ton noyaux, tu peux compiler les modules à l'extèrieure du noyaux, regarde dans le README de ta version telecharger ...
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
16 déc. 2003 à 23:12
c'est marrant que tu dises "mvmnt féministes", c'est associer explicitement "secrétaire" à "femme", c'est toi qui va avoir des ennuis ;-)
précision: je suis Belge, et ici c'est la liberté d'expression qui prime. Quand je dis pas futé, c'est pas dégradant, c'est une constatation: les secrétaires ne sont pas patrons, ... donc y a une raison, voilà tout.

pour linux, j'ai installé Linux Mandrake 9.1 sur mon pc, sur un disuqe dur à part, c'est très bien tout ça mais... mon réseau n'est pas détecté, et si je veux l'installer (carte IEEE: wireless), je dois installer un truc qui me fait recompiler le kernel, modifier la config de linux etc, alors pr un premier contact faut bien dire que c'est compliqué!! et en devant rebooter entre deux problèmes pr vérifier sous win ce que me dis tel ou tel site web, ben ça facilite rien du tt, et j'en suis fort déçu :-( j'ai écrit à Belkin et à D-Link, mais aucun des deux n'envisage de créer un driver "facile". c'est pas glop
amosc Messages postés 82 Date d'inscription lundi 10 février 2003 Statut Membre Dernière intervention 18 octobre 2005
16 déc. 2003 à 22:52
Désolé de te dire sa mais c est vraiment le genre de discution ke j adore voir les differents points de vue de chacuns, mais tu a raison on pourrai saturé le site tellement qu'il ya d arguments de chacun des coté, faut garder espoire et essayer de faire de linux quelque chose d'utile GATEWAY, FIREWALL Serveur FTP ou HTTP avec des PII200 ou 400 on peut tellement modifier(moduler) ou concentrer le systeme sur une tache précise c est sa la magie ...

Enfin bref on arrete la philo, Knoppix est genial elle est basée sur Debian 3.0, je la recommande fortement car elle regroupe plusieur fonction trés pratique de debian rien qu avec les packtages .deb la commande apt-get ... et encore bien d autre chose

J espere qu'un jour CS ouvrira un forum libre sur Unix ...

Bonsoir à tt le canada et aussi au monde libre OO

by ;-)

ps: envoyer un mail sous linux, n est pas si sorcier que sa. Mozilla, Netscape avec les plugin exploreur on peut deguiser son bureau KDE en bureau WindoB et parametre sa boite comme sous Outlook ou exploreur ... j espere qu'un jour les gens arreteront d avoir cette vision complexe de linux ...
cs_pyranhaz Messages postés 236 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 13 décembre 2004
16 déc. 2003 à 17:26
Cette discussion dégénère !

les secrétaires ne sont pas futés... dans quel monde tu vie toi ???
On exige maintenant une formation académique minimale et même universitaire... pas futés les secrétaires... tu vas t'attirer les foudres mon ami... mais c'est vrai que tu es en France... ici tes propos ne passeraient tout simplement pas... ni du patronat, ni des regroupements féministes...

mais arrêtons là cette discussion, cela a déjà suffisament dérapé et on est loin de CodeSourceS et des cookies de la source de cette page...

Bon bisou du Canada et du Québec !
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
16 déc. 2003 à 17:20
les secrétaires n'ont qu'à bien se former... dire ça c'est nier la réalité du monde. la population mondiale, c'est en grande partie des pas très futés, et tu peux pas exiger de tlm qu'il soit énarque, dsl. faut vivre avec les gens.
cs_pyranhaz Messages postés 236 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 13 décembre 2004
16 déc. 2003 à 17:17
lol tu es comique Kirua... ;-)

les secrétaires n'ont qu'à bien se former ou venir nous voir sur CS ;-)

Je suis fermement convaincu que si oncle Bill continue à se foutre de notre gueule LINUX ou un autre système prendra le relais...

Je ne suis pas le seul à en avoir assez de devoir demander à oncle Bill avant d'aller pisser et de payer un dû pour pouvoir le faire...
C'est une opinion personnelle, mais elle est de plus en plus répandue...
Si on ne peut plus rien dire, il y aura des oncles Bill qui pousseront partout...

Et mon LINUX Knoppix fait exactement la même chose que ton DemoLinux... Il est sorti en Novembre 2003 !

bon bien @+ j'ai une tonne de travail à faire avec la migration de serveur de mes domaines...
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
16 déc. 2003 à 15:52
pyranhaz faut réfléchir plus avant de parler, merci de considérer cette remarque. suis dsl, mais si windows existait pas, le monde serait pas pareil, et les secrétaires devraient avoir BAC+5 pour envoyer un mail.

y a aussi DemoLinux qui se met ds la mémoire vive du système sans toucher au DD, c'est bien pratique, très bien fait, avec tous les programmes nécessaires (traitements de texte etc), tu peux graver tes ficheirs de configuration sur le cd DemoLinux, comme ça n'importe où ds le monde où tu as un PC, tu mets ton cd et tu retrouves ton ordinateur sans toucher au DD du PC que tu utilises, ça c'est grandiose.
cs_pyranhaz Messages postés 236 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 13 décembre 2004
16 déc. 2003 à 14:19
Ma version de Linux est Knoppix

elle me permet de l'apprivioser à mon rythme puisqu'elle s'installe dans la mémoire du système au lieu du HDD comme Microsoft...

5 minutes de patience et tout est fonctionnel avec TOUS les drovers reconnus et fonctionnels

INCROYABLE !!!

Je n'ai jamais vue ça...
On est loin de Microsoft et on voit ce que ça donnne quand on prend le temps de faire quelque chose de solide au lieu de regarder juste les profit possibles au dépends de la solidité du système...

Hein Bill ???

Mets ça dans ta pipe !!!
amosc Messages postés 82 Date d'inscription lundi 10 février 2003 Statut Membre Dernière intervention 18 octobre 2005
16 déc. 2003 à 13:08
lol bien j suis pres à aider tt le monde pour faire avancer l'OpensOurce, inutile de rappeler que php est un langage OO,
pour ce qui est de linux je recommande DEBIAN, et j comprend pas pk sur un site comme les groupe CS ya pas un forum sur UNIX !!

Enfin bref si qulqu'un veux de l aide Amos93@hotmail.com ou allée voir sur les site suivant :
www.lea-linux.org
www.toolinux.com
www.GNUf;o.com
et bienur
www.fr.debian.org ;-)
et bien d autres encore ...
bon courage et à trés bientot ...

ps : vive l'OpensOurce ...
cs_pyranhaz Messages postés 236 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 13 décembre 2004
15 déc. 2003 à 18:20
Moi, je veiens d'avoir LINUX, question de faire un pied de nez à Bill Gates et son monopole...

LINUX est OpenSource

Mais c'est un peu trop complexe pour moi de tripouiller dans ces codes...

je risquerais de me téléporter sur MARS sans m'en rendre compte lol ;-)
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
15 déc. 2003 à 18:14
c'est marrant que tu dises ça mtnt amosc, ds ton PS, je viens de regarder le film AntiTrust, je le conseil à tout le monde, c'est un excellent film, et ça parle d'open source :-)
amosc Messages postés 82 Date d'inscription lundi 10 février 2003 Statut Membre Dernière intervention 18 octobre 2005
15 déc. 2003 à 18:02
salut tt le monde ;

Bien j suis bien content, car pour un petit bou de code, ya un putin de forum lol; qui derive meme sur la philosophie de php ...
Enfin bref j suis entièrement d accord avec toi, pyranhaz, le echo etait juste pour l exemple, modulable pour l application de chacun ...

Bon J espere à tres bientot ...

Mic_abelanski@hotmail.com

ps : vive l'OpensOurce ...
cs_pyranhaz Messages postés 236 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 13 décembre 2004
15 déc. 2003 à 14:42
Voici une partie de réponse qui confirme l'appel du http

Une fois que le cookie a été placé, il est accessible dans les variables globales $_COOKIE ou bien $HTTP_COOKIE_VARS arrays. Notez que les autoglobales telles que $_COOKIE sont disponibles en PHP depuis la version 4.1.0. $HTTP_COOKIE_VARS existe depuis PHP 3. Les valeurs de cookies existent aussi dans la variable $_REQUEST
floflotz Messages postés 240 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 6 janvier 2006
15 déc. 2003 à 14:36
bien que le php est exécuté coté serveur, il envoie des informations au navigateur du client et ce dernier lui en renvoie !
lorsque php veut placer un cookie sur la machine d'un client, il place les informations du cookie dans l'entete de la page et le navigateur se charge de créer le cookie. Dans l'autre sens c'est pareil, le navigateur informe le serveur quel cookie sont dispo pour ce site.

et voila comment ce marche
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
15 déc. 2003 à 13:38
vivi mais je doute pas de l'efficacité, je me demande simplement comment ça marche. ça doit être ça. bonne journée
cs_pyranhaz Messages postés 236 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 13 décembre 2004
15 déc. 2003 à 02:33
alors c'est la seule logique que je puisse voir...

Kirua, pour te convaincre va sur mon site zone-pc et tu constatera l'écriture de mon setcookie "backup" avec la valeur "ok" qui sert justement à faire le travail de vérification du cookie actif...

Tu verras le cookie sur ton HDD sinon tu seras redirigé sur ma page qui tedit qu'il y a un problème avec la lecture du cookie...
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
15 déc. 2003 à 02:26
oui j'en doute pas, mais le PHP n'est jamais exécuté côté client, c'est physiquement impossible. Donc c'est qu'il y a une requête HTTP (pour contacter le client) qui est lancée par SetCookie, ce qui est, à mon sens, la seule explication au fonctionnement de cette méthode.
cs_pyranhaz Messages postés 236 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 13 décembre 2004
15 déc. 2003 à 02:22
Que je sache, setcookie écrit un cokkie sur le disque du client...

Par conséquent, la commande suivant if(isset()) est en mesure de voir si il le cookie a été écrit ou non et d'agir en conséquence...

Enfin, j'utilise cela depuis plusieurs mois sans problème et les analyses sont exacts chaque fois...
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
15 déc. 2003 à 01:56
je ne comprends pas comment c'est possible.
PHP est un langage serveur, donc tes deux instructions (écriture puis lecture) vont être exécutée à la suite côté serveur, ça devrait toujours retourner false.

à moins que, justement, la commande setcookie envoie une requête HTTP au client et que le client renvoie une réponse qui mette à jour les Cookie Vars. c'est ça ?
cs_pyranhaz Messages postés 236 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 13 décembre 2004
15 déc. 2003 à 01:06
ne serait-il pas plus simple de faire comme ceci:

// Page index

<?
setcookie("TEST","OK",mktime()+900);
?>

// Page suivante

<?
if(isset($_COOKIE["TEST"]));
else
header("Location: Cookie.php");
?>

c'est tout à fait transparent si l'utilisateur accepte les cookies sinon il est redirigé sur la page lui demandant d'activer ses cookies

Le mktime()+900 n'est pas nécessaire mais dans mon cas, le cookie est utilisé pour 15 minutes, soit la durée moyenne d'un visiteur sur mon site

Le même principe est utilisé dans le cas de $session_start() où la page suivante vérifie si le cookie de session répond ou non et dans la négative il est redirigé sur la page lui indiquant d'activer ses cookies

une débrouillardise maison quoi ;-)
Rejoignez-nous