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

Résolu/Fermé
Simon - 14 oct. 2006 à 22:39
 Simon - 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...
A voir également:

4 réponses

Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020 825
14 oct. 2006 à 23:06
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
0
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.
0
Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020 825
15 oct. 2006 à 10:32
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
0
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!
0