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 :

création d'une variable session après destruction de session


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Par défaut création d'une variable session après destruction de session
    Bonjour,

    J'utilise PHP 5.2.3.

    Lorsqu'un membre se déconnecte de la partie membre, j'aimerais qu'une variable session soit transmise.

    Dans un premier temps j'ai écris ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    session_destroy();
     
    $_SESSION['reussi'] = "Vous avez été correctement déconnecté.<br /><br />Merci de votre visite et à bientôt.";
    ?>
     
    <meta http-equiv="refresh" content="0; url=index.php?page=accueil">
    Mais la variable session n'était pas transmise ...

    Dans un second temps j'ai rajouté session_start() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    session_destroy();
     
    session_start();
    $_SESSION['reussi'] = "Vous avez été correctement déconnecté.<br /><br />Merci de votre visite et à bientôt.";?>
     
    <meta http-equiv="refresh" content="0; url=index.php?page=accueil">
    La variable session est correctement créée, mais j'obtiens dés lors l'erreur suivant :

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\index.php:58) in D:\membres\deconnexion.php on line 6
    En effet, dans le fichier index.php, j'ai écris session_start().

    Pour conclure : Comment puis je transmettre une variable session après avoir détruit une session ?

    D'avance merci pour vos réponses.



    xenos

  2. #2
    Membre éprouvé Avatar de reno_tidus
    Profil pro
    Inscrit en
    Août 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 132
    Par défaut
    Est-ce que le code donné est le début du fichier? Car normalement, il faut un session_start avant de pouvoir faire un sessio_destroy

  3. #3
    Membre éclairé
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Par défaut
    Citation Envoyé par reno_tidus Voir le message
    Est-ce que le code donné est le début du fichier? Car normalement, il faut un session_start avant de pouvoir faire un sessio_destroy
    Le code fourni est l'intégralité du fichier deconnexion.php.

    C'est le fichier qui est appelé lorsque l'utilisateur appuie sur "Déconnexion" pour ... hé oui ... se déconnecter ...

  4. #4
    Membre éprouvé Avatar de reno_tidus
    Profil pro
    Inscrit en
    Août 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 132
    Par défaut
    Essai donc de faire un session_start() dès le début car il faut une session avant de la détruire

  5. #5
    Membre éclairé
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Par défaut
    Citation Envoyé par reno_tidus Voir le message
    Essai donc de faire un session_start() dès le début car il faut une session avant de la détruire
    Dans le fichier index.php, il y a déjà un session_start().

    Et si je remets un session_start() dans le fichier deconnexion.php, il met l'erreur suivante :

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\index.php:58) in D:\membres\deconnexion.php on line 7
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    	session_start();
    	session_destroy();
     
    	session_start();
    	$_SESSION['reussi'] = "Vous avez été correctement déconnecté.<br /><br />Merci de votre visite et à bientôt.";
    ?>
     
    <meta http-equiv="refresh" content="10; url=index.php?page=accueil">
    En effet, le fichier index.php est lui aussi chargé, car j'appelle la page déconnexion.php de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost/index.php?page=membres/deconnexion

  6. #6
    Membre éprouvé Avatar de reno_tidus
    Profil pro
    Inscrit en
    Août 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 132
    Par défaut
    J'ai déjà eu le problème et je n'ai pas noter la solution mais je l'ai trouvé et elle est donc dans mes codes sources. Je peux essayer de la retrouver dès demain car ce soir je commence à fatiguer.
    En attendant tu peux mettre un @ devant tes session_start() qui supprimes les messages warning

  7. #7
    Membre éclairé
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Par défaut
    Merci pour ton aide reno_tidus.

    En effet, le coup de l'arobase fonctionne ... je ne connaissais pas ...

    J'attends avec impatience la solution que tu as trouvé.

    Et sinon, bonne nuit à demain ...

  8. #8
    Membre éprouvé Avatar de reno_tidus
    Profil pro
    Inscrit en
    Août 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 132
    Par défaut
    Encore un petit truc, ton code fonctionne très bien actuellement le warning c'est juste parce que tu fait deux sesion_start de suite et il te met un warning.

    Juste pour aiguiller mes recherche, tu ne ferais pas un include de don deconnexion.php quelque part?

  9. #9
    Membre éclairé
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Par défaut
    Citation Envoyé par reno_tidus Voir le message
    Encore un petit truc, ton code fonctionne très bien actuellement le warning c'est juste parce que tu fait deux sesion_start de suite et il te met un warning.
    En effet, maintenant il fonctionne exactement comme je le souhaite ... en rajoutant l'arobase. Voici le fichier deconnexion.php au complet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    	session_start();
    	session_destroy();
     
    	@session_start();
    	$_SESSION['reussi'] = "Vous avez été correctement déconnecté.<br /><br />Merci de votre visite et à bientôt.";
    ?>
     
    <meta http-equiv="refresh" content="10; url=index.php?page=accueil">
    Citation Envoyé par reno_tidus Voir le message
    Juste pour aiguiller mes recherche, tu ne ferais pas un include de don deconnexion.php quelque part?
    Non, aucun include.

  10. #10
    Membre éclairé
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Par défaut
    J'ai réussi à envoyer une variable session après avoir détruit une session, mais en masquant les erreurs (@session_start()) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    	session_start();
    	session_destroy();
     
    	@session_start();
    	$_SESSION['reussi'] = "Vous avez été correctement déconnecté.<br /><br />Merci de votre visite et à bientôt.";
    ?>
     
    <meta http-equiv="refresh" content="10; url=index.php?page=accueil">
    Mais comment pourrais je faire la même chose sans générer d'erreurs ?

Discussions similaires

  1. Créer une variable globale après un window.opener
    Par renaud26 dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 29/08/2006, 10h49
  2. Réponses: 9
    Dernier message: 16/03/2006, 20h34
  3. création d'une liste d'après un fichier en c
    Par ghislain118 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 21/12/2005, 10h56
  4. Création d'une variable de session avec un ID
    Par PrinceMaster77 dans le forum ASP
    Réponses: 4
    Dernier message: 18/10/2004, 10h28
  5. [BES] Création d'une variable d'environnement
    Par NGI80 dans le forum Autres
    Réponses: 2
    Dernier message: 17/10/2002, 07h31

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