Problème avec $_SESSION [Fermé]

Signaler
Messages postés
20
Date d'inscription
mercredi 20 mai 2015
Statut
Membre
Dernière intervention
30 novembre 2016
-
Messages postés
2371
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
13 janvier 2021
-
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

Messages postés
2371
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
13 janvier 2021
444
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,
Messages postés
20
Date d'inscription
mercredi 20 mai 2015
Statut
Membre
Dernière intervention
30 novembre 2016

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
Messages postés
2371
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
13 janvier 2021
444
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é';
}
?>
Messages postés
20
Date d'inscription
mercredi 20 mai 2015
Statut
Membre
Dernière intervention
30 novembre 2016
>
Messages postés
2371
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
13 janvier 2021

salut,
j'ai testé ton code mais ça ne fonctionne toujours pas
j'ai cette erreur ci:
Fatal error: Call to undefined function demarrerSession()
Messages postés
20
Date d'inscription
mercredi 20 mai 2015
Statut
Membre
Dernière intervention
30 novembre 2016

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
Messages postés
2371
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
13 janvier 2021
444
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.