Posez votre question Signaler

Se delogger [Résolu]

pontarose 150Messages postés 10 août 2007Date d'inscription 23 avril 2010Dernière intervention - Dernière réponse le 17 oct. 2007 à 10:15
Bonjour, je sécurise l'accès a mon interface web par login et mot de passe.
Ma première page j'entre mon mot de passe et login
(si j'ai perdu mon mot de passe ou pour m'identifierpour la première fois cela m'ouvre d'autre onglets)
Une fois que je suis loggé j'ai accès a une page qui me dis que je me suis bien loggé, puis je click sur un bouton qui m'envoie vers la première page de mon interface. Sur cette première page de mon interface, je peux me délogger via un bouton logout.
Quand je clique sur logout je reviens donc a ma page d'accès login/mot de passe, mais si mes autres onglet sont ouvert cela ne les ferme pas et donc si quelqu'un vient il peux entrer dans mon interface.
en fait je ne sais pas comment faire.
Faudrait peutêtre que ma fonction logout soit interprété par les autres fenêtre???
On peut m'aider svp
Lire la suite 

Se delogger »

21 réponses
Réponse
+0
moins plus
Bonjour,

Comment est faite ta fonction logoout ? Ferme-t-elle la session en cours, ou se contente-t-elle de te rediriger vers la première page ?

Xavier
Ajouter un commentaire
Réponse
+0
moins plus
Ma fonction logout ferme la session en cours et me redirige vers la page ou j'entre mon mot de passe et login.

Je viens de me rendre compte qu'apparement ma session n'est pas ouverte car
une fois que je me suis bien loggé j'ouvre une session et je conserve le login soit, session start(); $_SESSION['login']=$login; exit();
puis dans ma page suivante donc j'ai:
>?php
session start();
print("vous êtes loggé sous :$login")
if(!isset($_SESSION['login']))
{
print("PBE");
}
else
{
print("GOOD");
}
?>

J'obtiens vous êtes loggé sous:
GOOD
Ajouter un commentaire
Réponse
+0
moins plus
salut,

on est loin du compte, là !
-;o)

je te conseille de beaucoup lire sur les sessions, ce n'est pas forcement très compliqué mais c'est une composante vitale d'un site dynamique donc autant ne pas passer à côté.

je te conseille en particulier ce tuto.
Ajouter un commentaire
Réponse
+0
moins plus
pour se délogger c'est simple fait une recherche sur session_destroy();
Ajouter un commentaire
Réponse
+0
moins plus
Mon problème est que quand je clique sur logout OK je retourne a ma page d'accès login/mot de passe; cependant si d'autres onglet de mon interface sont ouvert; je peux toujours effectuer des choses sur ces pages. Alors que j'aimerais ne plus pouvoir faire de choses sur ces pages vue que je me suis delogué.

Voiçi ma fonction logout.php

<?php
session star();
$_SESSION=array();
session_destroy=();
header("Location:formulaire.htm");

?>
Ajouter un commentaire
Réponse
+0
moins plus
Salut


le soucis ne viendrait pas du fait que tu fais ouvrir plusieurs cessions (la même ) mais dans plusieurs pages ?

ta redirection est faites avec _blank non ?

Ajouter un commentaire
Réponse
+0
moins plus
Oui j'ouvre la même session dans plusieus pages.

Je ne comprend pas ta question"ta redirection est faites avec _blank non ? "
Ccela ne m'ouvre pas un nouvel onglet quand je clique sur logout sur la même page je retombe sur ma page d'accès login/mot de passe
Ajouter un commentaire
Réponse
+0
moins plus
Non ma question n a pas d interet au niveau de la réponse recherché , je ne connais absolument pas le php et js , il me faudrais 150 ans pour que je sache ecrire une ligne

Ce que je souligne c est qu il est normal que tu es le pb , car tu ouvre plusieurs cession pour le même compte en ouvrant plusieurs pages


le _blank = ouvrir dans une nouvelle page

C est sur ce point que j interroge , pourquoi ouvrir plusieurs pages.
1pages = 1 cession


si tu mets plutot _parent , ou _self en cible , ça marche pas mieux ?

Voir rien , par défaut ça va écraser ta premier page

Dalida - 12 oct. 2007 à 14:07
salut Warlix,

non justement, en php les sessions permettent d'avoir une seule variable entre plusieurs accès du même utilisateur.
que ce soit la même page entre deux appels au serveur ou de deux pages du même site tout cela dans un seul navigateur bien sûr !

en gros la session c'est l'équivalent d'un cookie sur le serveur. si la session existe déjà pour un utilisateur et qu'elle n'a pas expiré elle est réutilisée, ce qui te permet de retrouver les valeurs que tu y as stocké.
Ajouter un commentaire
Réponse
+0
moins plus
salut,

il y a une coquille dans ton code, ça vient peut être de là.
<?php
session_start();
$_SESSION=array();
session_destroy=();
header("Location:formulaire.htm");
?>

cela aurait dû afficher une erreur. si ce n'est pas le cas ton php.ini est mal paramétré.
il faut qu'il contienne :
error_reporting  =  E_ALL
display_errors = On

je crois que ça suffit.
Ajouter un commentaire
Réponse
+0
moins plus
je ne te suit pas.
En fait une fois que je me suis logué tout s'effectue sur une seule page.
Cependant il est possible de cliquer en ouvrant la page sur un nouvel onglet; mais a ce moment là si je me délogue; cette page que j'ai ouvert dans un nouvel onglet est présent OK mais pour une sécurité je ne dois plus pouvoir y réaliser des choeses dessus vue que j'ai mis fin a ma session.
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

J'ai bien session_start();
c'est une erreur de ma part.
Ajouter un commentaire
Réponse
+0
moins plus
Ma table user ,de ma base de donnée, qui contient le login et mot de passe n'est relié a aucune autre table de ma base de donnée.
Le problème peut-il être lié a cela?
Ajouter un commentaire
Réponse
+0
moins plus
salut,

il n'y a rien à voir entre table de bdd et sessions.
comment ouvres-tu ta session, comment y affectes-tu des valeurs et comment testes-tu l'existence de session en début de page ?
Ajouter un commentaire
Réponse
+0
moins plus
* Voilà comment j'ouvre ma session:

session start();
//j'enregistre $login dans une variable de session
$login=$_POST['login'];
$_SESSION['login']=$login;

* Voilà comment je teste l'existence d'une session en début de page:
<?php
session start();
if(isset($_SESSION['login']))
{
$login=$_SESSION['login'];
print("Ouverture de la session<br>");
}
Ajouter un commentaire
Réponse
+0
moins plus
salut,

Mon problème est que quand je clique sur logout OK je retourne a ma page d'accès login/mot de passe; cependant si d'autres onglet de mon interface sont ouvert; je peux toujours effectuer des choses sur ces pages. Alors que j'aimerais ne plus pouvoir faire de choses sur ces pages vue que je me suis delogué.
quand la page est affichée (on va dire que l'on est sur une page qui affiche le contenu d'une base de données : "show_rows.php"), si pendant ce temps dans une autre page tu détruis la session cela ne change rien pour "show_rows.php".
et dans cette page tu as par exemple un lien qui permet de supprimer une entrée de base de donnée qui pointe vers "delete_row.php".

en haut de "delete_row.php" tu dois avoir quelque chose du style :
<?php
session start();
if(isset($_SESSION['login']))
{
$login=$_SESSION['login'];
print("Ouverture de la session<br>");
}
else
{
header("Location:identification.php")
}
?>

comme ça, étant donné que la session a été détruite entre le moment de l'affichage de la page "show_rows.php" et l'appel de "delete_row.php", ton visiteur sera redirigé vers la page d'identification.
Ajouter un commentaire
Réponse
+0
moins plus
Je ne te suis pas a partir de "et dans cette page tu as par exemple un lien qui permet de supprimer une entrée de base de donnée qui pointe vers "delete_row.php". "

je dois mettre ceci dans toutes mes pages.php?

<?php
session start();
if(isset($_SESSION['login']))
{
$login=$_SESSION['login'];
print("Ouverture de la session<br>");
}
else
{
header("Location:identification.php")
}
?>
Ajouter un commentaire
Réponse
+0
moins plus
ben dans toutes celles dont tu veux sécuriser l'accès !
sinon ton script sexecutera avec ou sans identification.
Ajouter un commentaire
Réponse
+0
moins plus
OK merci beaucoup;
Ca marche et j'ai compris.
Ajouter un commentaire
Réponse
+0
moins plus
OK merci ça marche et j'ai compris
Ajouter un commentaire
Réponse
+0
moins plus
Problème résolu
Ajouter un commentaire
Ce document intitulé « se delogger » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook