PDA

Voir la version complète : aucune variable de session


phear
20/06/2007, 21h58
Bonjour.
J'ai un hébèrgement sur OVH en mutualisé (90plan).
Dans un fichier PHP, j'ai :

<?php
session_start();
$_SESSION["user"] = "toto";
?>
<html><body>page 1</body></html>

Dans un autre fichier php j'ai :

<?php
echo $_SESSION["user"];
?>

suite à un accès à la première page, la deuxième page n'affiche pas la variable de session. j'ai vraiment essayé pas mal de truc mais ça ne marche pas.

Merci pour n'importe quelle idée là-dessus.

phear
21/06/2007, 00h08
en fait j'ai trouvé comment faire pour que ça marche :
il faut mettre session_start() en début de TOUTES les pages qui utilisent les variables de session, même pour celles qui ne font que de la lecture de variable de session.
je ne trouve pas ça très logique, ni même normal. y'a-t-il un moyen d'éviter de mettre ça sur toutes mes pages ?
par ailleurs, je pensais que la fonction session_start permettait juste d'initialiser la session comme il est précisé dans la doc php ?

onet
21/06/2007, 17h26
en fait j'ai trouvé comment faire pour que ça marche :
il faut mettre session_start() en début de TOUTES les pages qui utilisent les variables de session, même pour celles qui ne font que de la lecture de variable de session.
je ne trouve pas ça très logique, ni même normal. y'a-t-il un moyen d'éviter de mettre ça sur toutes mes pages ?
par ailleurs, je pensais que la fonction session_start permettait juste d'initialiser la session comme il est précisé dans la doc php ?

Oui, mais tu dois l'initialiser sur toutes les pages qui utilisent ta session. C'est les bases du php.

Et oui, ca permets juste d'initialiser la session (ou de la récupérer), pour la page en cours. ;)

Onet

phear
22/06/2007, 14h25
merci pour la réponse. n'est-il pas possible de mettre session_start() dans un fichier php et dans un autre faire appel à ce fichier en include ? j'ai essayé mais je n'ai pas l'impression que cela fonctionne... :confused:

rtb
22/06/2007, 14h40
A tester je suis pas sûr :

ob_start();
include_once 'fichier_session.php';
ob_end_clean();

onet
22/06/2007, 18h28
merci pour la réponse. n'est-il pas possible de mettre session_start() dans un fichier php et dans un autre faire appel à ce fichier en include ? j'ai essayé mais je n'ai pas l'impression que cela fonctionne... :confused:

Ben... Faire un session_start() juste en dessous de <?PHP lors de la création d'uine page, il y a plus compliqué, il me semble...

Onet

P.S: de plus, je veux pas dire, mais faire un include pour un session_start, ca reste ultra lourd pour le serveur...

freeraid
23/06/2007, 19h47
Salut,

Tu le mets dans ton fichier entete, vu que tu dois souvent faire appel à lui, et puis onet, il a mis un include_ONCE, et pas un include, donc il se sera charger qu'une fois.

phear
25/06/2007, 09h49
merci pour toutes vos réponses qui m'ont été d'une aide utile, je pense pouvoir me débrouiller tout seul avec tout ça :D