session sans cookie

Eléphanteau du PHP | 19 Messages

20 janv. 2007, 00:42

Après lecture des différents posts et tuto, j'ai réussi à utiliser les sessions correctement.

J'ai bien compris que le session_start installait un cookie coté poste client.

Cependant si le poste client refuse les cookies, rien ne va plus (cf ce forum).

Peut on interroger le poste client pour savoir si les cookies sont acceptés et comment contourner ce pb ?

Merci à vous

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

20 janv. 2007, 00:56

Renseigne toi du coté de la constante SID

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Invité
Invité n'ayant pas de compte PHPfrance

20 janv. 2007, 01:29

Renseigne toi du coté de la constante SID
OK je cherche. Merci à toi !

Eléphanteau du PHP | 19 Messages

22 janv. 2007, 16:01

Après recherche, je suis parvenu à utiliser la constante SID en bloquant les cookies de Firefox.

Est il possible de savoir si un utilisateur accepte ou non les cookies afin d'ajouter ou pas le session_id()

Merci à vous.

Ps je suis à la recherche de la réponse...

:?:

Eléphanteau du PHP | 19 Messages

22 janv. 2007, 16:27

Pour palier ce pb j'essaye de créer un cookie vide (setccokie) puis je vérifie son exitence (isset).

S'il est là pas besoin de passer la variable en GEt sinon on l'ajoute.

Cela est il suffisant ?

Seulement je me fais un peu de souci avec le référencement Google.

GoogleBot accepte t il les cookies ????

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

22 janv. 2007, 16:48

Cette solution n'est qu'a moitié satisfaisante :?

En effet, après un setcookie(), le cookie créé n'est disponible qu'à la page suivante ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 19 Messages

22 janv. 2007, 17:22

Cette solution n'est qu'a moitié satisfaisante :?

En effet, après un setcookie(), le cookie créé n'est disponible qu'à la page suivante ;)
C'est ce dont je me suis rendu compte.....


QQN a une autre solution ?

Mammouth du PHP | 693 Messages

22 janv. 2007, 18:13

Je vois bien une solution, mais bon, elle me plait pas trop...

On crée une première page avec juste l'envoie de cooie, puis le navigateur est rediriger vers une autre page, ou il teste la présence de cookie.

Si quelqu'un a quelque chose d'autre, je suis preneur

Eléphanteau du PHP | 19 Messages

23 janv. 2007, 10:54

Je vois bien une solution, mais bon, elle me plait pas trop...

On crée une première page avec juste l'envoie de cooie, puis le navigateur est rediriger vers une autre page, ou il teste la présence de cookie.

Si quelqu'un a quelque chose d'autre, je suis preneur
J'y ai pensé avec un header et une relecture de la même page...mais c'est pas terrible.

ViPHP
AB
ViPHP | 5818 Messages

23 janv. 2007, 19:04

Après lecture des différents posts et tuto, j'ai réussi à utiliser les sessions correctement.

J'ai bien compris que le session_start installait un cookie coté poste client.

Cependant si le poste client refuse les cookies, rien ne va plus (cf ce forum).

Peut on interroger le poste client pour savoir si les cookies sont acceptés et comment contourner ce pb ?

Merci à vous
Si l'on utilise pas une directive comme ini_set('session.use_only_cookies', true) pour imposer l'utilisation des cookies pour stocker l'identifiant de session, l'identifiant de session sera stocké par défaut dans un cookie, et si le navigateur client n'accepte pas les cookies, l'identifiant sera sauvegardé automatiquement dans l'url.

Donc si le poste client n'accepte pas les cookies, la session fonctionnera malgré tout mais l'identifiant de session sera passé dans l'URL.

Le test pour savoir si le navigateur client accepte les cookies n'est donc utile que si tu veux savoir comment sera passé l'identifiant de session.