IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Variable de session inexistante


Sujet :

Langage PHP

  1. #1
    Membre actif
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2009
    Messages : 447
    Points : 241
    Points
    241
    Par défaut Variable de session inexistante
    Bonjour à vous tous,

    j'ai un soucis à cause d'une variable session qui veut pas s'afficher lorsque je fais un echo , je tombre sur la notification :
    Notice: Undefined variable: _SESSION
    au fait ce que j'aimerais faire, j'ai une page qui liste un ensemble d'utilisateurs venant de ma table, et à coté de chaque user , j'ai mis un lien pour se connecter et donc redirection à la page de profile.
    alors :
    liste_usr.php

    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
    23
    24
    25
    26
    27
    <?php
    include('connect.php'); 
     
    $users=nom_utilisateur(); // fonction recupere tous les noms avec leurs id
     
    	foreach($users as $user)
    	{
    		if(isset($_SESSION['iduser']) && !empty($_SESSION['iduser']))
    		{
    			if($_SESSION['iduser'] == $user['id_user'])
    			{
    				echo "<a href='supprimersession.php'>Se déconnecter  de : </a>&nbsp;&nbsp;&nbsp";
    			}
    			else 
    			{
    				echo "<a href='creersession.php?id=".$user['id_user']."'>Se connecter en tant que:</a>&nbsp;&nbsp;&nbsp";
    			}
     
    		}
    		else
    		{
    			echo "<a href='creersession.php?id=".$user['id_user']."'>Se connecter en tant que:</a>&nbsp;&nbsp;&nbsp";
    		}
    		echo "<a href='profile.php?id=".$user['id_user']."'>".$user['username']."</a><br><br>";
    	}
     
    ?>
    creersession.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
     
    session_start();
    $id=$_GET['id']; 
    $_SESSION['iduser']=$id; 
    header("location:liste_user.php");
     
    ?>
    supprimersession.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
     
    session_destroy();
    header("location:liste_user.php");
     
    ?>
    photo :
    Nom : Sans titrse.png
Affichages : 102
Taille : 2,0 Ko
    lorsuqe je clique sur Se connecter en tant que : badrix (par exemple), il y a une redirection vers creersession.php?id='id_badrix' puis redirection vers la page liste_user.
    normalement je devrais voir Se déconnecter de : badrix puisque j'ai créer une session['id']=id_user,
    lorsque je fais un echo $_SESSION['id'] sur la page list_user.php je reçois l'erreur suivant:
    Notice: Undefined variable: _SESSION
    Merci de m'aider,
    Cordialement,

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    session_start(); doit être déclaré au début de TOUT fichier (hors includes).

    N.B. Je ne comprends pas :
    N'importe qui peut ouvrir une session pour n'importe quel user ??
    Dernière modification par Invité ; 07/01/2014 à 17h43.

  3. #3
    Membre actif
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2009
    Messages : 447
    Points : 241
    Points
    241
    Par défaut
    N.B. Je ne comprends pas :
    N'importe qui peut ouvrir une session pour n'importe quel user ??
    en fait , c'est page d'administrations.

    Merci pour votre réponse , oui j'ai mis session_start(); à l'entéte de chaque page et s'est marché,
    maintenant ce que je ne comprends pas ,c'est que lorsque je clique sur :
    Connecté en tant que:
    je me suis rediriger vers une supprimersession.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // session_destroy();
    // session_unset();
    unset($_SESSION["iduser"]); // normalement elle doit supprimer carement la valeur de la session , 
    header("location:liste_user.php");//mais quand la redirection se fait , je vois que y'a envore la session qui est définit ,
    que pensiez vous ?

    Excusez moi de vous déranger ,

    Cordialement,

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    à priori, tu peux simplifier avec 2 fichiers :

    liste_user.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php session_start();
    include('connect.php'); 
    $users=nom_utilisateur(); // fonction recupere tous les noms avec leurs id
     
    	foreach($users as $user)
    	{
    		if(!empty($_SESSION['iduser']) && $_SESSION['iduser'] == $user['id_user'])
    		{
    			echo "<a href='dosession.php?action=ko'>Se déconnecter (".$user['username'].")</a>";
    		} else {
    			echo "<a href='dosession.php?action=ok&id=".$user['id_user']."'>Se connecter en tant que ".$user['username']."</a>";
    		}
    		echo "<br /><a href='profile.php?id=".$user['id_user']."'>Voir le profil de ".$user['username']."</a>";
    	}
    ?>
    dosession.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php session_start();
    // CREATION
    if(!empty($_GET['action']) && $_GET['action']=='ok' && !empty($_GET['id']) && is_numeric($_GET['id']))
    {
    	$_SESSION['iduser'] = $_GET['id']; 
    }
    // SUPPRESSION
    elseif(!empty($_GET['action']) && $_GET['action']=='ko')
    {
    	unset($_SESSION['iduser']);
     
    }
    	header('location: liste_user.php');
    	exit;

  5. #5
    Membre actif
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2009
    Messages : 447
    Points : 241
    Points
    241
    Par défaut
    Merci jreaux62 infiniment pour votre aide.

    Cordialement,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] Tester existence d'une variable de session
    Par IDNoires dans le forum ASP.NET
    Réponses: 2
    Dernier message: 31/12/2004, 13h30
  2. Création d'une variable de session avec un ID
    Par PrinceMaster77 dans le forum ASP
    Réponses: 4
    Dernier message: 18/10/2004, 11h28
  3. Effacer les variables de session
    Par glsn dans le forum ASP
    Réponses: 2
    Dernier message: 12/12/2003, 14h42
  4. Variable de session
    Par Sadneth dans le forum ASP
    Réponses: 6
    Dernier message: 14/11/2003, 12h12
  5. variable de session
    Par divableue dans le forum ASP
    Réponses: 2
    Dernier message: 23/10/2003, 17h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo