Php 如何在浏览器处于关闭状态时关闭会话并重定向到索引页

Php 如何在浏览器处于关闭状态时关闭会话并重定向到索引页,php,session,Php,Session,我想在选项卡关闭时清除会话变量,但到目前为止我找不到任何解决方案。在这里,用户没有登录,他们将进入url dashboard.php,这意味着它将重定向到index.php,这个条件工作正常,现在用户成功登录意味着它将进入dashboard.php页面,用户关闭此选项卡后,他们将再次进入dashboard.php页面,这意味着我想重定向index.php中的页面,如何做到这一点 <?php session_start(); date_default_timezone_set('As

我想在选项卡关闭时清除会话变量,但到目前为止我找不到任何解决方案。在这里,用户没有登录,他们将进入url dashboard.php,这意味着它将重定向到index.php,这个条件工作正常,现在用户成功登录意味着它将进入dashboard.php页面,用户关闭此选项卡后,他们将再次进入dashboard.php页面,这意味着我想重定向index.php中的页面,如何做到这一点

<?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();
 }
 }
?>

首先,您的xyz.php文件在$\u会话数组中设置了一个唯一的变量,该变量将作为用户已在此页面上的标记

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

然后,在任何输出之前,在所有页面上添加以下代码,以检查用户是否来自xyz.php

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

要删除特定会话数据,请尝试以下操作

  if($_SESSION[sessionvaribale] )
  {
   unset($_SESSION[sessionvaribale]);
   }
要销毁所有会话数据,请尝试
session\u destroy()

它已经被Stackoverflow讨论过了


请参阅

谢谢@Pravin Vavadiya先生,请检查我的更新代码,成功登录意味着它将进入dashboard.php页面。然后我刷新页面意味着它将再次进入登录页面,不应该像这样“在所有页面上添加以下代码,然后再输出以检查用户是否来自xyz.php”。。在dashboard.php中,首先在检查电子邮件后添加此代码。。。。