Bonjour à tous, j'ai un petit problème concernant ma session.
J'ai une fonction qui fait une vérification lors d'une connexion afin de voir si l'email et le password sont les bons.
Je veux créer par la suite un espace personnel en fonction de la session que j'ai récupérer afficher les informations de la personne.
Mais je n'arrive pas a passer la session dans la requête.
Voici mon code :
Page pour la connexion et vérification de la session
<?php
require_once('Connexion.php');
session_start();
class GetSession
{
public static function isLogged($redir = true)
{
if (empty($_SESSION'email']) && $redir ) {
header('Location:../view/login.html.twig');
}
return !empty($_SESSION'email']);
}
public static function checkLogin($arr)
{
$connexion = Connexion::getInstance();
if (empty($arr'email']) or empty($arr'password']))
{
header('Location:../view/login.html.twig');
echo"connexion pas ok";die;
}
else{
if(isset($_POST'connexion'])){
$arr'email'] = addslashes(($_POST'email']));
$arr'password'] = addslashes(md5($_POST'password']));
}
$sql=sprintf("SELECT * from ps_membre where email_membre='".$arr'email']."'and password='".$arr'password']."'");
$verif = $connexion->prepare($sql);
$verif->execute();
$row_verif=$verif->fetch(PDO::FETCH_ASSOC);
$utilisateur =$verif->rowCount($verif);
$resp = array_shift($row_verif);
if ($utilisateur) {
$_SESSION'email'] = $row_verif'email_membre']."<br>";
$_SESSION'password'] = $row_verif'password']."<br>";
header("Location:../index.php"); // redirection si OK
}
else {
echo"<br>mauvais identifiants";
header("Location:../view/login.html.twig"); // redirection si utilisateur non reconnu
}
return $row_verif;
}
} // endfunction
}
if(count($_POST))
{
GetSession::checkLogin($_POST);
}
Voici une autre page avec une fonction pour récupérer les informations en fonction de la session:
function fetchInfoMembre()
{
$connexion = Connexion::getInstance();
//echo $session = "sabiiii@gmail.com";
/* $row_verif'email']=$_SESSION'email'];
$email=$row_verif'email'];*/
include_once'GetSession.php';
;
echo $email = $_SESSION'email'];
$sql = $connexion->prepare("SELECT * from ps_membre as pm LEFT JOIN ps_information as pi ON pm.id_membre = pi.id_membre WHERE pm.email_membre = ?");
$sql->bindValue(1,$email,PDO::PARAM_STR);
$sql->execute(array($email));
echo "<pre>";print_r($sql);
$select = $sql->fetchAll(PDO::FETCH_OBJ); //selectionne les membres en fonction de l'id
echo "<pre>";print_r($select);
return $select;
//echo $_SESSION'email'];die;
//$_SESSION'email']=$session;
//$email=$_SESSION'email'];
}
et ma vue
class Info
{
static function testSession()
{
$twig= LoadingView::loadTwigView();
$twig->addGlobal('test',new Info());
echo $twig->render('EspacePersonnel.html.twig', array(
'testin'=> fetchInfoMembre(),
));
}
}
Info::testSession();
Dans mon deuxième bout de code, lorsque je fais mon print_r de $email, dans ma vue j'ai bien l'email récupérer de la session, mais pas les informations complémentaires.
mais lorsque mon email je le note en dur tout marche.
exemple avec $email = $_SESSION'email'] ===> http://puu.sh/b1NhL/8ece13536d.png
===> http://puu.sh/b1Nre/886f8b1afc.png
exemple avec $email écrit en dur ==> http://puu.sh/b1NmO/e79e825478.png
http://puu.sh/b1Nom/4a1e35790b.png
J'espère que vous pourrez m'aider, merci d'avance....