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 27/08/2007, 22h12   #1
Membre habitué
 
Avatar de xenos
 
Inscription : septembre 2005
Messages : 402
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 402
Points : 140
Points : 140
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 :
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 :
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 :

Citation:
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
xenos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2007, 23h19   #2
Membre habitué
 
Avatar de reno_tidus
 
Inscription : août 2007
Messages : 132
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : août 2007
Messages : 132
Points : 108
Points : 108
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
reno_tidus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2007, 23h21   #3
Membre habitué
 
Avatar de xenos
 
Inscription : septembre 2005
Messages : 402
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 402
Points : 140
Points : 140
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 ...
xenos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2007, 23h25   #4
Membre habitué
 
Avatar de reno_tidus
 
Inscription : août 2007
Messages : 132
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : août 2007
Messages : 132
Points : 108
Points : 108
Essai donc de faire un session_start() dès le début car il faut une session avant de la détruire
reno_tidus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2007, 23h32   #5
Membre habitué
 
Avatar de xenos
 
Inscription : septembre 2005
Messages : 402
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 402
Points : 140
Points : 140
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 :

Citation:
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 :
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 :
http://localhost/index.php?page=membres/deconnexion
xenos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2007, 23h37   #6
Membre habitué
 
Avatar de reno_tidus
 
Inscription : août 2007
Messages : 132
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : août 2007
Messages : 132
Points : 108
Points : 108
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
reno_tidus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2007, 23h42   #7
Membre habitué
 
Avatar de xenos
 
Inscription : septembre 2005
Messages : 402
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 402
Points : 140
Points : 140
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 ...
xenos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 00h29   #8
Membre habitué
 
Avatar de reno_tidus
 
Inscription : août 2007
Messages : 132
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : août 2007
Messages : 132
Points : 108
Points : 108
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?
reno_tidus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 00h34   #9
Membre habitué
 
Avatar de xenos
 
Inscription : septembre 2005
Messages : 402
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 402
Points : 140
Points : 140
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 :
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.
xenos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2007, 21h39   #10
Membre habitué
 
Avatar de xenos
 
Inscription : septembre 2005
Messages : 402
Détails du profil
Informations personnelles :
Localisation : Belgique

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

Code :
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 ?
xenos 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 11h21.


 
 
 
 
Partenaires

Hébergement Web