hello tous,
j'ai un souci avec mes session a travers les classes en PHP4 :
j'ai une première classe ADVANCED qui définit les Paths et url de mon site, et qui déclare un session_start(); dans le constrcuteur,
une classes HTML hérite de cette ADVANCED et me sert à set mes header
une classe SQL hérite de ADVANCED et me sert à déclarer mes DB fields etc
jusque là l'héritage de tout cela est ok.
En revanche, je déclare une classe USER qui hérite de SQL (et donc par ricochet de ADVANCED), et là, quand j'assigne une valeur à un $_SESSION['login'], impossible de récupérer la variable de session sur la page qui appelle.....
- classe ADVANCED
- la classe SQL
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 class Advanced { function advanced() { session_start(); // set des paths et url } }
- la classe USERS
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 classe Sql extends Advanced { function sql() { parent::advanced(); // set des constantes DB } function select_login($login) { // les query vers la DB // return de la String login } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 class Users extends Sql { function users() { parent::sql(); } function set_session_login($login) { // recup des DB OK $mon_login = $this->select_login($login); // ce echo là marche ! echo $mon_login; $_SESSION['login'] = $mon_login; // ce echo là marche ! echo $_SESSION['login']; } }
mon problème est dans la page qui appelle tout ce beau monde :
- page login.php :
j'en suis à mon troisième tube d'aspirine.. si quelqu'un à une idée...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 require('../advanced/advanced.php'); require('../advanced/html.php'); require('../advanced/sql.php'); require('../advanced/users.php'); $user = new Users(); // ok $user->set_session_login('renard'); // ok, affiche les echo de la classe // en revanche ici ça ne me récupère pas ma var de session ! // ça m'affiche juste "SESSION LOGIN =" et puis rien derière... echo 'SESSION LOGIN = '.$_SESSION['login'];
merci !
PS : je viens d'essayer de mettre le session_start(); directement dans la page login.php, tt en haut of course, sans plus de succès..
PS2 : un echo du session_id(); dans la page login.php me renvoie la même chose qu'un echo du session_id() dans la classe users ..... bouhouhouhououuuu
r.
Partager