2009-12-13 5 views
1

J'ai un problème étrange avec Zend Session.problème de session zend

J'ai créé une base de site Web dans le cadre zend et j'utilise Zend_session pour stocker les informations d'un utilisateur connecté. C'est très bien, mais quand j'utilise uploadify pour permettre à l'utilisateur de télécharger un fichier sur le serveur, je pense que uploadify crée une nouvelle session sur le serveur et que je ne peux pas accéder à l'ancienne session stockée par Zend_session_namespace auparavant. Mais chez mon serveur local, ça marche parfaitement. Quand j'examine ce qui est différent entre mon local et mon serveur, je vois que le fichier de session sur mon serveur local a un nom fixe, mais le magasin de fichiers de session de mon serveur change toujours de nom chaque fois que j'appelle Zend_Session_namespace.

Ci-dessous la configuration php.ini à mon serveur

session.auto_start Off Off 
session.bug_compat_42 Off Off 
session.bug_compat_warn On On 
session.cache_expire 180 180 
session.cache_limiter nocache nocache 
session.cookie_domain no value no value 
session.cookie_lifetime 0 0 
session.cookie_path// 
session.cookie_secure Off Off 
session.entropy_file no value no value 
session.entropy_length 0 0 
session.gc_divisor 1000 1000 
session.gc_maxlifetime 1440 1440 
session.gc_probability 1 1 
session.hash_bits_per_character 5 5 
session.hash_function 0 0 
session.name PHPSESSID PHPSESSID 
session.referer_check no value no value 
session.save_handler files files 
session.save_path /var/lib/php/session /var/lib/php/session 
session.serialize_handler php php 
session.use_cookies On On 
session.use_only_cookies Off Off 
session.use_trans_sid 0 0 

est Ci-dessous de mon serveur local

session.auto_start Off Off 
session.bug_compat_42 On On 
session.bug_compat_warn On On 
session.cache_expire 180 180 
session.cache_limiter nocache nocache 
session.cookie_domain no value no value 
session.cookie_httponly Off Off 
session.cookie_lifetime 0 0 
session.cookie_path// 
session.cookie_secure Off Off 
session.entropy_file no value no value 
session.entropy_length 0 0 
session.gc_divisor 100 100 
session.gc_maxlifetime 1440 1440 
session.gc_probability 1 1 
session.hash_bits_per_character 4 4 
session.hash_function 0 0 
session.name PHPSESSID PHPSESSID 
session.referer_check no value no value 
session.save_handler files files 
session.save_path C:\xampp\tmp C:\xampp\tmp 
session.serialize_handler php php 
session.use_cookies On On 
session.use_only_cookies Off Off 
session.use_trans_sid 0 0 

comment puis-je résolu ce problème ou configurer le serveur ont fixe le nom de fichier de la session? Merci à tous,

+1

Ne pas nous montrer les fichiers php.ini. Montrez-nous les valeurs 'ini_get()' de la page qui vous pose problème. –

Répondre

1

Je pense que j'ai trouvé le problème, c'est parce que j'utilise l'Iframe, et le src dans iframe obtient le contenu d'un autre contrôleur Zend. Lorsque ce contrôleur sera appelé, il génèrera un nouvel ID session et définira un nouveau PHPSESSID, mais la page principale utilise toujours l'ancien PHPSESSID.

Je l'ai corrigé en chargeant src à partir d'un fichier php statique dans un dossier public, et son fonctionnement est correct.

0

Ajouter:

register_shutdown_function('session_write_close'); 

à index.php avant:

$application->bootstrap()->run();