2016-11-25 2 views
2

J'ai PHP 5.6 en cours d'exécution sur IIS 8.5. J'ai utilisé ce journal de test:Réinitialisation de session PHP

echo '<p>'.sizeof($_SESSION).' - '.session_id().' - '.ini_get('session.cookie_domain').'</p>';

Avec elle, je vois que $_SESSION a quelques éléments, cookie_domain est correctement définie dans le php.ini comme mon domaine, mais session_id() a une chaîne différente sur chaque chargement de page. session_start() est appelée à chaque chargement de page.

Une idée sur ce que je peux faire pour rendre la session persistante?

$sessionfile = ini_get('session.save_path') . '/' . 'sess_'.session_id(); indique où se trouve le fichier de session. Je suis capable de l'ouvrir et les données sont là. En effet, c'est quelque chose dans la création de chaque session, pas dans la sauvegarde de leurs fichiers.

Est-il possible qu'un certain paramètre IIS ou un certain ASP réinitialise la session?

+0

Vous appelez ce code AFTER 'session_start();' right? – OptimusCrime

+0

Oui, session_start() est l'une des premières choses à être exécutée. – Hikari

Répondre

0

Ce problème se produit la plupart du temps si vous n'avez pas les autorisations pour stocker la session dans votre IIS. J'ai eu le même problème avant longtemps. Pour corriger les autorisations ou le chemin de session a résolu mon problème.

+0

Je comprends. Mais je crois que ce n'est pas le problème, parce que je suis capable de trouver le fichier de session et l'ouvrir et les données sont sauvegardées sur ce fichier. Quelque chose est en train de réinitialiser la session, peut-être le cookie qui stocke sa référence. – Hikari