2016-12-03 1 views
1

Ich möchte die Sitzungsvariablen löschen, wenn die Registerkarte geschlossen ist, aber ich konnte bisher keine Lösungen finden. Hier Benutzer ohne Login werden sie die URL-Dashboard.php eingeben bedeutet, dass es auf index.php umleiten wird, diese Bedingung funktioniert gut, jetzt Benutzer erfolgreich Login bedeutet, dass es auf der Seite Dashboard.php gehen wird nach dem Benutzer diese Registerkarte schließen und wieder werden sie dashboard.php Seite eingeben bedeutet ich die Seite in index.php umleiten möchten, wie dies tun könnenWie Sie die Sitzung schließen und zur Indexseite umleiten, wenn der Browser geschlossen ist

<?php 
    session_start(); 
    date_default_timezone_set('Asia/Kolkata'); 
    include('dbconfig.php'); 
    $email=$_POST['email']; 
    $password=$_POST['password']; 
    $password=md5($password); 
    $sql=mysql_query("SELECT id,username,email,password,is_user_type FROM login WHERE email='$email' AND password='$password'"); 
    list($id,$username,$email,$pwd,$is_user_type)=mysql_fetch_row($sql); 
    if($pwd==$password){ 
    $_SESSION['username']=$username; 
    $_SESSION['email']=$email; 
    $_SESSION['is_user_type']=$is_user_type; 
    $_SESSION['current'] = basename($_SERVER['PHP_SELF']); 
    header("Location:dashboard.php"); 
    } 
    else{ 
     echo "error"; 
    } 
    ?> 

dashboard.php 
<?php 
session_start(); 
if(!isset($_SESSION['email']) && empty($_SESSION['email'])) { 
    header("Location:index.php"); 
} 
if (isset($_SESSION['current'])) { 
if (basename($_SERVER['PHP_SELF']) != $_SESSION['current']) { 
    session_destroy(); 
} 
} 
?> 

Antwort

1

Zuerst stellen Sie Ihre xyz.php Datei eine eindeutige Variable in der $ _SESSION-Array, das als ein Zeichen handeln dass der Benutzer auf dieser Seite

$_SESSION['previous'] = basename($_SERVER['PHP_SELF']); 

Dann wurde, den folgenden Code auf allen Seiten hinzufügen, bevor irgendeine Ausgabe zu überprüfen, ob der Benutzer her kommt m xyz.php

if (isset($_SESSION['previous'])) { 
    if (basename($_SERVER['PHP_SELF']) != $_SESSION['previous']) { 
    session_destroy(); 
    unset($_SESSION['previous']); 
    } 
} 
+0

Vielen Dank Herr @ Pravin Vavadiya –

+0

Ich bekam die Antwort genau was ich will .. –

+0

Bitte überprüfen Sie meinen aktualisierten Code, erfolgreich geloggt bedeutet, dass es zu Dashboard.php Seite gehen.dann ich die Seite aktualisieren bedeutet wieder, es wird zur Anmeldeseite kommen, sollte nicht wie folgt kommen –

0

bestimmten Sitzungsdaten zu entfernen, versuchen Sie diese

if($_SESSION[sessionvaribale]) 
    { 
    unset($_SESSION[sessionvaribale]); 
    } 

Um alle Session-Daten zu zerstören - versuchen session_destroy()

Seine bereits diskutiert von Stackoverflow

Session destroy when logout Siehe

Verwandte Themen