3

Nous avons un site intranet local que tout le monde sur le réseau utilise. Peut-être 5% (ou même moins) des utilisateurs qui utilisent le site ont des problèmes où la session n'est pas stockée correctement.PHP Sessions/cookies ne stockent pas correctement en utilisant IE6/IE7

J'ai essayé de définir un chemin manuellement (C:/Coookieess) et de vérifier ce qui se passe. Alors que les sessions de la plupart des utilisateurs sont créées et restent très bien, sur les machines affectées il semble qu'il oublie les cookies ou il ne peut pas les lire, puis crée un nouveau cookie presque chaque fois qu'une page est rafraichie .

Les choses sont à noter ...

  • il ne touche que < 5% des utilisateurs
  • il ne se produit que lorsque vous utilisez IE
  • il arrive à ces utilisateurs, quel que soit la machine theyre utilisant
  • que cela se produit uniquement avec Windows XP ou Vista - Windows 2000 fonctionne très bien!

J'ai essayé de jouer avec les paramètres de sécurité dans IE aussi, changer la sécurité des cookies pour permettre à tous les cookies/sessions, mais pas de chance sur ce soit malheureusement :(

Toute aide serait incroyable. Je suis vraiment coincé sur ce point.

Merci!

+0

Pouvez-vous s'il vous plaît poster comment vous initiez les sessions? –

+0

Salut Chris, quelque chose un peu comme ça ... // session-test.php session_start(); $ _SESSION ['testing'] = "Just testing ..."; // session-test2.php echo '

'; print_r($_SESSION); echo '
'; Cheers (pas sûr comment obtenir le formatage triés, désolé) –

+0

Pas d'aide, mais j'ai posté à propos de quelque chose de similaire ici: http://stackoverflow.com/questions/1464477/session-unexpectedly-lost sans solution non plus. Me rend fou. –

Répondre

0

un nouveau cookie peut se créé lorsque le site ne perçoit pas un être présent ou passé le long de la requête précédente ...

Y a-t-il quelque chose au sujet du site, de votre réseau ou de vos clients qui empêche le hachage des cookies de se propager entre les demandes?

Utilisez un analyseur HTTP (fiddler, nettool) pour le savoir.

+0

Merci Omega! Je vais regarder avec nettool –

0

Pas vraiment assez d'informations pour continuer, mais une chose qui pourrait arriver est que si vous stockez la session dans un cookie, vous pourriez avoir fini avec un cookie trop grand pour IE à gérer. Cependant, la définition de «Too Large» varie d'un navigateur à l'autre et d'un OS à l'OS.

+0

C'est une bonne suggestion, mais les cookies en question ne sont que 1kb ou plus, et fonctionnent sur la plupart des machines ... testé encore beaucoup aujourd'hui, et oui exactement le même ordinateur, le même la version de IE6/IE7 aura des résultats différents pour certains utilisateurs :( –

3

Juste une idée aléatoire, et probablement pas pertinent, mais il vaut la peine de mentionner au cas où - la date et l'heure sont-elles correctement définies sur les ordinateurs avec lesquels vous rencontrez des problèmes?

+0

Une autre bonne suggestion merci, et yup malheureusement l'heure/dates correspondent parfaitement :( –

0

est-ce que votre domaine interne a un caractère de soulignement dedans? c'est-à-dire http://dev_server.example.net

L'utilisation de caractères de soulignement en tant que caractères DNS est un peu floue. FF/Safari fonctionne très bien, mais IE ne parviendra pas à définir un cookie si elle provient d'un domaine avec un trait de soulignement

La plupart des bureaux d'enregistrement publics vous empêcher d'utiliser les mauvais caractères, mais à l'intérieur il n'y a rien qui vous empêche.

+0

Hey, désolé pour la réponse bêtement en retard, mais non, pas de soulignement malheureusement - très bon crier si, et il a un tiret si cela est pertinent –

0

Nous avons récemment rencontré un problème qui semblait être le même que celui-ci: apparence sporadique, affectant uniquement les utilisateurs IE plus anciens.À l'époque, les ressources ou les commentaires étaient assez flous, donc nous n'avons jamais été en mesure de diagnostiquer le problème - l'information la plus proche que nous avons trouvée était qu'IE ne jouait pas bien avec les données g-zippées.

Quoi qu'il en soit - solution que nous avons constaté que fixé notre question -

  1. Définissez manuellement un en-tête de type de contenu par PHP, tout en supprimant l'en-tête ("type de contenu déclaration HTML

: text/html; jeu de caractères = utf-8 ");

  1. Définir vos site pour envoyer un en-tête P3P (politique de sécurité compacte).

    Voir http://www.sitepoint.com/article/p3p-cookies-ie6/2/

1

Une autre chose que vous pouvez vérifier: sont-ils utilisent un proxy d'aucune sorte?

L'un des projets PHP sur lesquels j'ai travaillé semblait avoir des problèmes avec les sessions lorsque l'application était exécutée sur l'intranet. Il s'est avéré que toutes les installations d'IE avaient été configurées pour fonctionner à travers le proxy d'entreprise qui semblait bousiller de temps en temps ...

0

Se pourrait-il que 5% des utilisateurs aient des informations d'utilisateur qui, une fois récupérées à partir du cookie, perturbe la lecture/décodage/analyse correcte du cookie côté serveur?

2

J'ai eu exactement le même problème et trouvé que l'ajout de l'en-tête P3P avant de commencer la session l'a corrigé.

header('P3P: CP="IDC DSP COR CURa ADMa OUR IND PHY ONL COM STA"');

session_start();

+0

Cela a fait l'affaire pour moi, je pense que cela a quelque chose à voir avec le cadre de politique de confidentialité de Compacy. – barfoon

Questions connexes