SESSION PHP session_set_save_handler

Nouveau WRInaute
Bonjour,

Voici ce qui m'arrive : après identification de mon login, je clique sur une rubrique de mon espace sécurisé et je retourne systématiquement sur ma page de login !

J'utilise la fonction session_set_save_handler() pour stocker mes sessions en fichier sur mon serveur (1et1) et le phénomène suivant se produit :

1/ Je me connecte sur ma page d'identification : création d'un fichier session vide

2/ login reconnu : un nouveau fichier est créé avec les données sessions

3/ je clique sur ma rubrique : un nouveau fichier vide est créé !

Ce n'est pas normal puisque c'est le fichier créé en 1/ qui devrait être mis à jour. Cela fonctionne bien sur EasyPHP.

Voici ma fonction de lecture de session :

function read($id) {
$contenu = '';
if(file_exists(REPERTOIRE . "$id")) {
$contenu = file_get_contents(REPERTOIRE . "$id");
}
return $contenu;
}

autre version :

function read($id) {
if($fp = fopen(REPERTOIRE . "$id", 'r')) {
$contenu = fread($fp, filesize(REPERTOIRE . "$id"));
fclose($fp);

return $contenu;
}
return '';
}

(REPERTOIRE est correctement initialisé)

Il se trouve que sur 1et1, même si mon fichier existe, il n'est pas lu ($contenu est toujours vide). A noter que EasyPHP sur mon ordi et 1et1 ont la même configuration au niveau des sessions.

A part le fait que 1et1 soit en rade, avez-vous une idée de l'origine du problème ?

Merci pour votre réponse.
 
Nouveau WRInaute
Oui sûr et certain : j'ai vérifié mon dossier session à chaque étape via mon logiciel FTP.

J'ajoute que le même phénomène se produit avec une table session dans ma base de données. Ne parlons pas des cookies... Mon navigateur, que ce soit IE ou Firefox, accepte bien les cookies... ?
 
WRInaute impliqué
ok.
là, dans tes exemples de lecture, le cas pas de fichier trouvé et fichier vide renvoi la même chose: chaîne vide, il faudrait bien distinguer les deux cas pour être sûr
 
Nouveau WRInaute
Bon ben finalement, c'était l'hébergeur qui a foiré. Mes deux exemples de lecture fichier + le mode de lecture en SQL fonctionne sans que je n'ai rien modifié de particulier !

La distinction fichier inexistant / fichier vide pourrait me servir dans d'autres cas.

Merci pour ton aide.
 
Discussions similaires
Haut