Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/12/2007, 15h34   #1
Membre à l'essai
 
Inscription : avril 2006
Messages : 55
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 55
Points : 20
Points : 20
Envoyer un message via MSN à Appwal
Par défaut Petit problème, session_destroy()

Bonjour à tous!

En cette veille de Noel, php n'a pas l'air decidé à me faire de cadeau...

Voici mon problème:

Sur ma page d'accueil, j'ai un petit formulaire permettant de se loguer.
Ce petit formulaire renvoit vers un script php qui se charge de vérifier si l'identification est ok, qui ouvre une session avec session_start() et qui met le login saisit dans la variable $_SESSION['login']

J'ai ensuite un include('membre.php') qui me permet d'afficher la page membre sur laquelle je vérifie que la variable $_SESSION['login'] existe avec if(isset($_SESSION['login']))

Jusque la tout va bien puisque la page s'affiche bien lorsque que le login est valable.

C'est maintenant que ça va coincer...

Je clique sur un lien qui me redirige vers un script php dans lequel se trouve:

Code :
1
2
3
4
5
6
 
<?php
$_SESSION = array();
session_destroy();
header('Location: ./index.php');
?>
Et la ma console d'erreur m'indique

Citation:
Trying to destroy uninitialized session in disconnect.php
A noter que je travaille sous MacOS Leopard et que j'utilise MAMP.

Merci à ceux qui pourront m'aider
Appwal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2007, 15h49   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Comment voulez-vous que le serveur récupère la session sans l'appel à session_start ? (l'exception étant un démarrage automatique de la session - directive session.auto_start - mais est déconseillé)
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2007, 16h05   #3
Membre à l'essai
 
Inscription : avril 2006
Messages : 55
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 55
Points : 20
Points : 20
Envoyer un message via MSN à Appwal
Je ne comprend pas bien ce que vous voulez dire...

session_start est bien appelé dans mon script login.php

D'ailleurs je retrouve bien la session dans le dossier /tmp de MAMP.
Appwal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2007, 16h49   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Oui mais pas dans le code de votre script effectuant la déconnexion alors qu'il y est nécessaire ou alors il est incomplet
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/12/2007, 10h11   #5
Membre régulier
 
Inscription : août 2007
Messages : 147
Détails du profil
Informations personnelles :
Localisation : France, Drôme (Rhône Alpes)

Informations forums :
Inscription : août 2007
Messages : 147
Points : 90
Points : 90


Là je me sent a l'aise parce que j'ai galéré sur les sessions...
Toutes tes pages concernées par ta session doivent comporter
session_start();
Y compris la page de destruction de session...
bernard26000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2007, 15h47   #6
Membre à l'essai
 
Inscription : avril 2006
Messages : 55
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 55
Points : 20
Points : 20
Envoyer un message via MSN à Appwal
Ok merci pour ce renseignement.

Mais dans ce cas on se retrouve avec des warnings qui nous indiquent que la session à déjà été ouverte à tel endroit. (je n'ai pas le message exact sous les yeux.)

On peut donc négliger ces messages?

Bonne fin de journée
Appwal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2007, 00h52   #7
Invité régulier
 
Inscription : décembre 2007
Messages : 6
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 6
Points : 6
Points : 6
Envoyer un message via ICQ à Goelano Envoyer un message via Yahoo à Goelano
Par défaut Même problème

Moi aussi j'ai ce message avec session_destroy(), et voici mon texte "deconnexion.php" :
Code :
1
2
3
4
5
6
7
8
 
<?php
session_start();
session_unset();
session_write_close();
session_destroy();
header ("location:index.php");
?>
Voilà les messages d'erreur qui m'arrivent :
Warning: session_destroy() [function.session-destroy]: Trying to destroy uninitialized session in .../deconnexion.php on line 5

Warning: Cannot modify header information - headers already sent by (output started at .../deconnexion.php:5) in .../deconnexion.php on line 6

Je ne comprends pas que la déconnexion fonctionne sans problème en local (EasyPHP 2.0 avec Windows Vista), et que ces messages apparaissent lorsque les pages sont disponibles "en vrai" chez Free (FileZilla).
Au secours !
Goelano est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2007, 07h42   #8
Membre régulier
 
Inscription : août 2007
Messages : 147
Détails du profil
Informations personnelles :
Localisation : France, Drôme (Rhône Alpes)

Informations forums :
Inscription : août 2007
Messages : 147
Points : 90
Points : 90
hello

en haut de vos pages, index.php .... vous avez aussi session_start(); ?
bernard26000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2008, 19h39   #9
Invité régulier
 
Inscription : décembre 2007
Messages : 6
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 6
Points : 6
Points : 6
Envoyer un message via ICQ à Goelano Envoyer un message via Yahoo à Goelano
Par défaut J'ai résolu mon problème !

Voici ma page "deconnexion.php", qui fonctionne bien (plus de message d'erreurs !) :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<?php
 
//Protection de cette page par "session_start"
session_start();
if (isset($_SESSION["login"])){
     $login=$_SESSION["login"];
     $mdp=$_SESSION["mdp"];}
//Fin de protection
 
session_destroy();
header ("location:index.php");
?>
J'ai compris pourquoi je ne voyais pas de message d'erreur en local : il s'affichait très vite, et était remplacé immédiatement par ma page "index.php" !

Et en haut de ma page "index.php", j'ai bien session_start(); !
Actuellement, je travaille avec MacOS 10.4.11 et MAMP 1.7.1.
Goelano est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h48.


 
 
 
 
Partenaires

Hébergement Web