Php 如何在浏览器处于关闭状态时关闭会话并重定向到索引页
我想在选项卡关闭时清除会话变量,但到目前为止我找不到任何解决方案。在这里,用户没有登录,他们将进入url dashboard.php,这意味着它将重定向到index.php,这个条件工作正常,现在用户成功登录意味着它将进入dashboard.php页面,用户关闭此选项卡后,他们将再次进入dashboard.php页面,这意味着我想重定向index.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
<?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中,首先在检查电子邮件后添加此代码。。。。