Téléchargement
illégal
Posez votre question Signaler

[PHP][session] Problème avec les fichiers [Résolu]

Simon - Dernière réponse le 20 oct. 2006 à 02:27
Bonjour à tous,
J'ai configuré PHP de façon à ce qu'il me créer des fichiers dans un répertoire "tmp" pour les sessions. J'ai deux pages pourtant bien simples:
index.php:
<?php
	session_start();
	$_SESSION['test'] = "qqch";
	echo "<a href=\"index2.php\">index2</a>";
?>

index2.php:
<?php
	session_start();
	echo $_SESSION['test'];
?>

Rien ne fonctionne (je ne vois jamais ce qu'il y a dans ma variable "test" à la page index2.php) mais j'ai remarqué qu'à chaque fois que j'actualise une page (un appel de session_start() se fait donc), je me retrouve avec un fichier de session de plus dans mon répertoire "tmp".
C'est comme si PHP ne pouvait pas détecter qu'une session existe et en créer toujours une nouvelle...
Merci d'avance pour votre aide, j'ai parcouru tous les forums possibles sans résultat...
Lire la suite 

[PHP][session] Problème avec les fichiers »

4 réponses
Réponse
+0
moins plus
Bonsoir.

Peut-être que c'est parce que tu mets session_start après le code html ?

Sinon, je ne comprends pas pourquoi tu as configuré PHP pour stocker les sessions dans le répertoire temp.
Pourquoi faire compliqué quand on peut faire simple ?

Ton problème vient peut-être de la, on ne sait jamais.

a plus
Ajouter un commentaire
Réponse
+0
moins plus
Bonsoir,

Je sais que session_start(); doit être la première sortie vers le navigateur et c'est pourquoi j'ai épuré le code au maximum de mes 2 pages pour pouvoir éventuellement isoler le problème. Donc, le code que je vous ai montré initialement c'est tout le code que mes pages contiennent. Je sais que ce n'est pas très propre parce que je n'ai pas mes balises <html></html>, etc mais j'ai aussi essayé avec ces balises en m'assurant que session_start() soit la première commande dans mes deux pages.

Pour ce qui est du choix pour le stockage des sessions, le php.ini est configuré par défaut pour stocker les sessions sous forme de fichiers ("session.save_handler = files"). J'ai uniquement changé le chemin par défaut du session.save_path ("/tmp", qui ne fonctionnait vraisemblablement pas parce que je crois que c'est le type d'arborescence qu'utilise Linux), pour "C:\PHP\tmp".

Après avoir ouvert la page index.php, un fichier de session contenait bien le résultat de ma variable de session "test" (soit: "test|s:4:"qqch";"). Après avoir cliqué sur le lien qui mène à la deuxième page, un autre fichier de session est créé mais vide cette fois-ci.

Merci pour votre première réponse si rapide! J'espère vraiment pouvoir régler ce problème.
Ajouter un commentaire
Réponse
+0
moins plus
Peut-être que c'est parce qu'en local, on ne peut pas utiliser toutes les fonctions....

Avec easy PHP en local, je n'arrive pas a utiliser require.

J'ai placé les fichiers index.php et index2.php ic :
sylvain.sab.free.fr/autres/ccmsdz/pbsession/

Je n'ai pas encore regardé ce que ca donne.

EDIT : ca marche.
"qqch" s'affiche bien sur index2
Ajouter un commentaire
Réponse
+0
moins plus
Wow! Merci pour cette dernière recommandation, ça fonctionne!

J'ignore pourquoi mais en local, l'attribution de variables de session ne semble pas fonctionner correctement. J'ai placé les deux pages PHP sur un autre poste et en y accédant via le premier poste, tout fonctionne!

Merci à vous d'avoir proposé cette piste!
Ajouter un commentaire
Ce document intitulé « [PHP][session] Problème avec les fichiers » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?