Page 1 sur 1

problèmes de session

Posté : 14 mars 2012, 16:10
par bostak
Bonjour tout le monde,

j'ai un module de connexion comme ceci :

Code : Tout sélectionner

if(isset($_POST['login']) && isset($_POST['pass'])) { if(verifUser($_POST["login"], ($_POST["pass"]))) { $_SESSION["login"] = $_POST["login"]; $_SESSION["pass"] = $_POST["pass"]; } else { $connexionError = putError("pseudo ou mot de passe incorrect"); } }
je crée donc ceci :

$_SESSION["login"] = $_POST["login"];
$_SESSION["pass"] = $_POST["pass"];

j'ai fais un var_dump de $_SESSION il contient bien les informations mais le soucis c'est que ensuite je fais ceci :

Code : Tout sélectionner

if(isset($_SESSION['login'])) { include 'templates/listdir.php'; } else on fait un autre truc
et je ne tombe jamais dans la première condition alors que le $_SESSION['login'] existe bien, j'ai fais un echo et c'est certains que je ne rentre jamais dans la première condition je suis toujours dans le else.

je ne vois pas pourquoi, auriez vous des suggestions ?

Cordialement,

Re: problèmes de session

Posté : 14 mars 2012, 17:00
par xTG
C'est forcement que tu effaces la variable de session avant cette condition.
Un session_destroy() qui se balade ?
Un session_start() oublié sur la page en question ?

Re: problèmes de session

Posté : 14 mars 2012, 17:03
par bostak
j'ai bien un session_destroy mais qui est appart pour se déconnecter, j'ai bien un session_start qui est sur ma page index.php mais qui n'est pas dans la page de mon controller (je code en mvc) mais je pense que sa devrait passer quand même non ?

Re: problèmes de session

Posté : 14 mars 2012, 17:45
par bostak
j'ai fais des test et enfaite mon $_SESSION["login"] n'existe pas sur toutes les pages ! et sa c'est plutôt un problème

et ce que dans une struture MVC, j'ai le droit d'avoir ceci :

Code : Tout sélectionner

include 'templates/menu.php'; echo $_SESSION["login"]; if(isset($_SESSION["login"])) { include 'templates/listdir.php'; echo "toto"; } else { include 'templates/horsligne.php'; echo "kikoo"; }
dans une vue ?

Re: problèmes de session

Posté : 14 mars 2012, 18:19
par xTG
session_start() doit être la première chose envoyé au navigateur.
Et il doit obligatoirement être présent si tu souhaites utiliser les sessions.
Donc ton problème est bien un oubli de session_start() sur la page concernée.
Sachant que les sessions sont censées être manipulées dans le contrôleur il convient de la démarrer avant son instanciation.

PS : pour ton "est-ce que j'ai le droit" je répondrai "cela dépend"...
Car tu ne dis pas si ce code provient d'un modèle, d'un contrôleur ou d'une vue. ;)
En soit vu qu'il y a un echo ce code ne peut être qu'un code de vue et est tout à fait correct ainsi.

Re: problèmes de session

Posté : 14 mars 2012, 18:22
par bostak
je m'explique

voici mon code en gros

j'ai un index.php qui est enfaite un dispatcheur si il récupère un $_GET['action'] il envoie au controller file.php

et mon session_start est la première ligne de code de mon index.php donc sa devrait le faire non ?

ensuite les echos que j'ai mis la c'est juste pour savoir dans qu'elle condition je suis, sinon j'inclue des templates donc c'est bien de la vue, donc je peux les laisser dans une vue ?

Cordialement,