Problème avec $_SESSION

Fermé
jojolebarge Messages postés 20 Date d'inscription mercredi 20 mai 2015 Statut Membre Dernière intervention 30 novembre 2016 - 4 nov. 2016 à 17:04
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 7 nov. 2016 à 16:21
Bonjour, je développe actuellement une application web et je voudrais que le nom et le prénom des utilisateurs qui se connectent apparaissent dans la page index. il me semble qu'il faut commencer par un session_start() et stocké les informations dans une variable lors de la connexion avec un $_SESSION, j'ai essayer de bidouiller quelque chose avec ses éléments là mais on me renvoie une erreur avec Undefined variable: _SESSION

voila pouvez vous m'indiquer une solution



merci d'avance pour votre aide

1 réponse

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
4 nov. 2016 à 17:28
Salut,

Difficile de voir le problème sans connaitre ton code.

Le message d'erreur indique que la variable n'existe pas, donc soit :
- la variable n'a jamais été définie
- la session n'a pas été initialisé avec session_start()
- une faute de frappe sur le nom de la variable
- autre...

Peux tu nous montrer ton code ?

Bonne journée,
0
jojolebarge Messages postés 20 Date d'inscription mercredi 20 mai 2015 Statut Membre Dernière intervention 30 novembre 2016
4 nov. 2016 à 17:31
Oui bien sur voici mon code:

le code de la page login.php
<?php
 
 
function demarrerSession(){
        if(session_status() == PHP_SESSION_NONE){
            session_name('gsbacrsessid');
            session_start();
        }
    }
 
function estConnecte(){
        demarrerSession();
        return isset($_SESSION['utilisateur']);
    }
function recupererInfosUtil($id){
        require 'include/bdd.php';
        $req = $pdo->prepare('SELECT * FROM Visiteur where id = :id');
        $req->execute(array(':id' => $id));
        $login = $req->fetch();
        $_SESSION['infos']['id'] = $login->id;
        $_SESSION['infos']['nom'] = $login->nom;
        $_SESSION['infos']['prenom'] = $login->prenom;
        $_SESSION['infos']['adresse'] = $login->adresse;
        $_SESSION['infos']['cp'] = $login->cp;
        $_SESSION['infos']['ville'] = $login->ville;
        $_SESSION['infos']['embauche'] = $login->dateEmbauche;
        $_SESSION['infos']['statut'] = $statut;
    }
 
 
 
 
 
if(isset($_POST['submit'])){
        if(!empty($_POST['username']) && !empty($_POST['password'])){
            require'include/bdd.php';
            $req = $pdo-> prepare('SELECT * FROM Visiteur where login = :login AND mdp = PASSWORD(:mdp)');
            $req->execute(array(':login' => $_POST['username'], ':mdp' => $_POST['password']));
           if($user = $req->fetch()){
                session_name('gsbacrsessid');
                $_SESSION['utilisateur'] = $user->id;
                 
                demarrerSession();
                header('Location: index.php');
                exit();
        } else {
            echo 'Erreur, identifiant et/ou mot de passe incorrecte.';
        }
    }
    }
 
?>
 
 
 
<!DOCTYPE html>
<html >
  <head>
    <meta charset="UTF-8">
    <title>login</title>
 
        <link rel="stylesheet" href="css/login.css">
     
  </head>
 
  <body>
 
    <div class="login">
  <div class="heading">
     
                <h1>Connexion à l'application Appli-Frais</h1><br>
                <h4>Veuillez renseigner votre identifiant et mot de passe.</h4><br>
    <form action="" method="post">
 
      <div class="input-group input-group-lg">
        <span class="input-group-addon"><i class="fa fa-user" style="color:grey"></i></span>
        <input name="username" type="text" class="form-control" placeholder="identifiant">
          </div>
 
        <div class="input-group input-group-lg">
          <span class="input-group-addon"><i class="fa fa-lock" style="color:grey"></i></span>
          <input name="password" ="" type="password" class="form-control" placeholder="Mot de passe">
        </div>
 
        <button type="submit" name="submit" class="float">Connexion</button>
       </form>
        </div>
 </div>
     
     
     
     
  </body>
</html>



le code la page index.php

<?php
 
function demarrerSession(){
        if(session_status() == PHP_SESSION_NONE){
            session_name('gsbacrsessid');
            session_start();
        }
    }
 
include 'include/header.php';
function recupererInfosUtil($id){
        require 'include/bdd.php';
        $req = $pdo->prepare('SELECT * FROM Visiteur where id = :id');
        $req->execute(array(':id' => $id));
        $login = $req->fetch();
        $_SESSION['infos']['id'] = $login->id;
        $_SESSION['infos']['nom'] = $login->nom;
        $_SESSION['infos']['prenom'] = $login->prenom;
        $_SESSION['infos']['adresse'] = $login->adresse;
        $_SESSION['infos']['cp'] = $login->cp;
        $_SESSION['infos']['ville'] = $login->ville;
        $_SESSION['infos']['embauche'] = $login->dateEmbauche;
        $_SESSION['infos']['statut'] = $statut;
    }
 
 
 
?>
 
 
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/style.css">
    <title>Accueil</title>
</head>
<body>
 
<div class="content">
<h1>Bonjour et bienvenu surl'interface de saisie des fiches de frais</h1>
 
   </div>
 
   <?php echo "bienvenu";?><?= $_SESSION['infos']['prenom']?>
   </body>
</html>

merci d'avance
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
Modifié par Pitet le 4/11/2016 à 17:40
Si le message d'erreur vient bien de l'affichage du prénom dans la page index.php, il faut activer la session en appelant session_start (dans ton cas en appelant la fonction demarrerSession) et vérifier que la variable existe :
<?php 
demarrerSession();

if (isset($_SESSION['infos']['prenom'])) {
    echo "bienvenu" . $_SESSION['infos']['prenom'];
} else {
    echo 'pas connecté';
}
?>
0
jojolebarge Messages postés 20 Date d'inscription mercredi 20 mai 2015 Statut Membre Dernière intervention 30 novembre 2016 > Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022
4 nov. 2016 à 17:59
salut,
j'ai testé ton code mais ça ne fonctionne toujours pas
j'ai cette erreur ci:
Fatal error: Call to undefined function demarrerSession()
0
jojolebarge Messages postés 20 Date d'inscription mercredi 20 mai 2015 Statut Membre Dernière intervention 30 novembre 2016
4 nov. 2016 à 18:02
j'ai de nouveau modifier le code et cette fois il m'affiche l'erreur suivante:

Parse error: syntax error, unexpected 'if' (T_IF), expecting
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
Modifié par Pitet le 7/11/2016 à 16:21
Le dernier message d'erreur indique que tu as une erreur de syntaxe.

Regarde la ligne indiqué dans le message d'erreur si tu n'aurais pas oublié un ; à la fin de la ligne précédente.
0