Au hasard de Perdre des Variables de Session que Dans Google Chrome & la Réécriture d'URL
À l'aide de Google Chrome, je suis apparemment perdre/corrompre les données de session lors de la navigation entre les pages (PHP 5.0.4, Apache 2.0.54). Le site fonctionne parfaitement bien dans IE7/8, Firefox, Safari & Opéra. Le problème est qu'avec Google Chrome.
J'ai rétréci le problème. Je suis en utilisant de recherche convivial URL, et de cacher mon contrôleur frontal (index.php) via un .fichier htaccess. Donc l'URL ressemble à: www.domain.com/blah/blah/Voici la .fichier htaccess contenu:
Options +FollowSymlinks
RewriteEngine on
#allow cool urls
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php [L]
#allow to have Url without index.php
Si je supprime le .fichier htaccess, et d'exposer le contrôleur dans l'URL: www.domain.com/index.php/blah/blah/, Chrome fonctionne parfaitement bien.
Pensées, des idées? Je pense que c'est une sorte de problème avec la façon dont google Chrome permet d'identifier ce cookie à utiliser et à envoyer au serveur? Ce qui se passe dans Chrome 4 & 5. Merci!
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème et à le résoudre, je n'avais qu'à créer un favicon.ico et le placer dans la racine de votre site - sinon j'ai pu voir à l'aide de Fiddler qu'une 404 entraîné pour cela avec chaque demande de page à partir de Chrome (malgré moi de ne pas en fait d'un lien à un favicon sur la page de la majoration).
Dans mon esprit, c'est clairement un bug dans Chrome, ainsi que l'absence d'un favicon devrait pas avoir d'incidence sur les données de session.
S'avère que le problème était avec le contenu de mon .fichier htaccess. Cette résolu le problème:
Essayez d'utiliser;
pour faire respecter le cookie de session params. Supprimer la période si vous vous adressiez "pas de www', ou ne sont pas en utilisant des sous-domaines.
Vous pouvez également essayer d'appeler
session_write_close()
à la fin du script pour forcer PHP à écrire et fermer la session puis et là (c'est particulièrement pratique lorsque vous exécutez rediriger les en-têtes de droit après avoir écrit les données de session).Mise à JOUR:
Essayez d'utiliser cela à votre
.htaccess
;#<IfModule mod_rewrite.c> Options +FollowSymlinks
RewriteEngine on RewriteCond %{REQUEST_URI} !^/.*(thèmes|wysiwyg|images|js)/ RewriteRule ^favicon.ico$ favicon.ico [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule .* index.php #</IfModule> `Semble que ce problème a réapparu sur les navigateurs Chrome dernièrement. J'ai eu un site en cours depuis 6 mois sans aucun problème et tout à coup hier a commencé à avoir des problèmes avec les données de la session en cours remplacé. À l'aide de fiddler j'ai pu voir que chrome a été d'essayer de charger le favicon. Mon problème est aussi que j'avais un lien vers "favicon.ico" plutôt que "/favicon.ico" afin de chrome puis ajouté favicon.ico à ma requête, par exemple. /produit/abc/favicon.ico qui a entraîné le chargement de la page deux fois, la deuxième fois d'écraser les données de la session. Donc, ma solution était:
La dernière étape a été mentionné dans plusieurs réponses, et je pense qu'il serait une bonne réponse, sauf qu'il me manquait, parce que mon lien réf était "favicon.ico".