|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
gcvoiron WRInaute impliqué

Inscrit le: 19 Oct 2005 Messages: 491
|
Posté le : Lun Avr 24, 2006 12:45 Sujet du message: Comment déconnecter une session membre |
|
|
| Bonjour, je possède un site avec des membres. Faut-il faire un fichier spécial pour la déconnection des membres? Merci. |
|
| |
|
 |
Delapouite WRInaute occasionnel

Inscrit le: 09 Jan 2005 Messages: 201 Localisation: Nantes
|
Posté le : Lun Avr 24, 2006 13:21 Sujet du message: Comment déconnecter une session membre |
|
|
| Un utilisateur doit etre en mesure de se déconnecter à tout instant, sans pour cela attendre que son temps de session se termine. Donc oui, il est important de créer ce genre de fonctionnalité. |
|
| |
|
 |
gcvoiron WRInaute impliqué

Inscrit le: 19 Oct 2005 Messages: 491
|
Posté le : Lun Avr 24, 2006 13:29 Sujet du message: Comment déconnecter une session membre |
|
|
| Et comment créer ce fichier svp? Que dois-je mettre dedans? Merci. |
|
| |
|
 |
petit-ourson WRInaute passionné

Inscrit le: 31 Mai 2004 Messages: 783 Localisation: Paris
|
Posté le : Lun Avr 24, 2006 13:34 Sujet du message: Comment déconnecter une session membre |
|
|
Dans ton fichier tu mets un unset($_SESSION) ou/et unset($_COOKIE) suivant la façon dont tes sessions sont gérées.
N'oublies pas d'ouvrir ta session avant de la supprimer. |
|
| |
|
 |
Toutou-Fr WRInaute passionné

Inscrit le: 22 Aoû 2005 Messages: 642
|
Posté le : Lun Avr 24, 2006 13:36 Sujet du message: Comment déconnecter une session membre |
|
|
| Pour cela il faut utiliser la commande session_destroy() (si tu développes en PHP bien évidemment) |
|
| |
|
 |
gcvoiron WRInaute impliqué

Inscrit le: 19 Oct 2005 Messages: 491
|
Posté le : Lun Avr 24, 2006 13:43 Sujet du message: Comment déconnecter une session membre |
|
|
| Citation: |
| Dans ton fichier tu mets un unset($_SESSION) ou/et unset($_COOKIE) suivant la façon dont tes sessions sont gérées. |
Voilà le code du fichier de login pour rentrer dans les sessions :
| Code: |
<?php
include("var.inc.php");
$conn = @mysql_connect($dbserver,$dbuser,$dbpass);
if (!$conn)
{
die("Sorry, database not found !");
}
mysql_select_db($dbname,$conn);
{
$ip = $email;
$zeit = time ();
$nichtmehrgueltig = $zeit-$stehenlassen;
$query = "DELETE FROM demo_a_iptest WHERE timefeld <= ".$nichtmehrgueltig;
mysql_query($query,$conn);
$query = "SELECT * FROM demo_a_iptest WHERE ip = '".$ip."'";
$result = mysql_query($query,$conn);
$rows = mysql_num_rows($result);
if ($rows >= 1)
{
require('./prepend.inc.php');
if($email && $password)
loginb();
}
else
{
require('./prepend.inc.php');
if($email && $password)
login();
$query = "INSERT INTO demo_a_iptest VALUES (\"$ip\", $zeit)";
mysql_query($query,$conn);
}
}
mysql_close($conn);
?> |
[/quote] |
|
| |
|
 |
gcvoiron WRInaute impliqué

Inscrit le: 19 Oct 2005 Messages: 491
|
Posté le : Lun Avr 24, 2006 14:06 Sujet du message: Comment déconnecter une session membre |
|
|
| Est-ce que CODE dont vous avez besoin pour me dire la façon dont mes sessions sont gérés? Merci. |
|
| |
|
 |
reglysse WRInaute occasionnel

Inscrit le: 19 Avr 2006 Messages: 137 Localisation: Paris
|
Posté le : Lun Avr 24, 2006 14:20 Sujet du message: Comment déconnecter une session membre |
|
|
Pour déconnecter l'utilisateur il te suffit de faire une page php qui détruit les sessions comme te le conseil petit-ourson.
Contenu du fichier deconnexion.php :
| Code: |
<?php
session_start();
unset($_SESSION);
unset($_COOKIE);
session_destroy();
header ('Location: /index.php');
?>
|
Lien sur lequel l'utilisateur doit cliquer pour se déconnecter :
| Code: |
| <a href="deconnexion.php">Déconnexion</a> |
|
|
| |
|
 |
gcvoiron WRInaute impliqué

Inscrit le: 19 Oct 2005 Messages: 491
|
Posté le : Lun Avr 24, 2006 14:32 Sujet du message: Comment déconnecter une session membre |
|
|
C'est fait. Mais dès que je clic qur deconnection, la page de déconnection apparait avec le message suivant :
| Citation: |
Warning: session_start(): open(/var/www/42/b/o/o/boost-trafic.com/www/sessions//.sess_081a30522aa2421babf048c80efa5122, O_RDWR) failed: No such file or directory (2) in deconnection.php on line 288
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /var/www/42/b/o/o/boost-trafic.com/www/deconnection.php:8) in deconnection.php on line 288
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/42/b/o/o/boost-trafic.com/www/deconnection.php:8) in deconnection.php on line 288
Warning: session_destroy(): Session object destruction failed in deconnection.php on line 291
Warning: Cannot modify header information - headers already sent by (output started at /var/www/42/b/o/o/boost-trafic.com/www/deconnection.php:8) in deconnection.php on line 292 |
|
|
| |
|
 |
yann214 WRInaute impliqué

Inscrit le: 17 Nov 2005 Messages: 343
|
Posté le : Lun Avr 24, 2006 15:00 Sujet du message: Comment déconnecter une session membre |
|
|
| puisque c'est une page de deconnexion, il ne doit pas y avoir de session_start() |
|
| |
|
 |
gcvoiron WRInaute impliqué

Inscrit le: 19 Oct 2005 Messages: 491
|
Posté le : Lun Avr 24, 2006 15:05 Sujet du message: Comment déconnecter une session membre |
|
|
J'ai enlevé le session start, ce qui me donne :
| Code: |
<?php
unset($_SESSION);
unset($_COOKIE);
session_destroy();
header ('Location: /index.php');
?> |
Mais le message suivant apparait :
| Citation: |
Warning: session_destroy(): Trying to destroy uninitialized session in deconnection.php on line 10
Warning: Cannot modify header information - headers already sent by (output started at /var/www/42/b/o/o/boost-trafic.com/www/deconnection.php:6) in deconnection.php on line 11 |
|
|
| |
|
 |
reglysse WRInaute occasionnel

Inscrit le: 19 Avr 2006 Messages: 137 Localisation: Paris
|
Posté le : Lun Avr 24, 2006 15:09 Sujet du message: Comment déconnecter une session membre |
|
|
J'ai merdé sur les cookies, tu peux pas effacer les cookies et rediriger tout de suite. Soit tu effaces les cookies et sur la page deconnexion.php tu places un lien vers l'accueil de ton site, soit tu n'effaces pas les cookies et tu rediriges direct sur l'accueil.
Sans effacer les cookies :
| Code: |
<?php
session_start();
unset($_SESSION);
session_destroy();
header ('Location: /index.php');
?>
|
En effaçant les cookies :
| Code: |
<?php
session_start();
unset($_SESSION);
unset($_COOKIE);
session_destroy();
?>
<html>
<head></head>
<body>
<a href="/">Retour à l'accueil</a>
</body>
</html>
|
Et moi sur mon site j'ai un session_start(); sur ma page de deconnexion... |
|
| |
|
 |
Toutou-Fr WRInaute passionné

Inscrit le: 22 Aoû 2005 Messages: 642
|
Posté le : Lun Avr 24, 2006 15:10 Sujet du message: Comment déconnecter une session membre |
|
|
le session_start() est obligatoire, deconnexion ou pas.
| Code: |
open(/var/www/42/b/o/o/boost-trafic.com/www/sessions//.sess_081a30522aa2421babf048c80efa5122, O_RDWR) failed: No such file or directory (2) in deconnection.php on line 288
|
^^ on line 288 ??? peux tu nous montrer le contenu exact de ce fichier ?
il y a en fait une seule erreur dans ton code, mais celle ci provoque des messages en chaine, c'est normal lorsque l'on tente d'envoyer des headers. |
|
| |
|
 |
gcvoiron WRInaute impliqué

Inscrit le: 19 Oct 2005 Messages: 491
|
Posté le : Lun Avr 24, 2006 15:10 Sujet du message: Comment déconnecter une session membre |
|
|
| Je ne sais pas si ça change quelquechose mais lorsque le membre veut se déconnecter, il est dans -http://www.monsite.com/membre. Et la page de déconnection est dans -http://www.monsite.com/deconnection.php (pas dans le répertoire membre). |
|
| |
|
 |
gcvoiron WRInaute impliqué

Inscrit le: 19 Oct 2005 Messages: 491
|
Posté le : Lun Avr 24, 2006 15:14 Sujet du message: Comment déconnecter une session membre |
|
|
Au début j'avais mit le CODE au milieu de ma page, ce qui me donnait les lignes 286 à 294 :
| Code: |
<?php
session_start();
unset($_SESSION);
unset($_COOKIE);
session_destroy();
header ('Location: /index.php');
?> |
Mais il est maintenant juste après <head>, ce qui me donne les lignes 6 à 13 :
| Code: |
<?php
unset($_SESSION);
unset($_COOKIE);
session_destroy();
header ('Location: /index.php');
?> |
|
|
| |
|
 |
| |
|
|