如何在一个db php

时间:2017-09-27 11:41:01

标签: php sql

我有2个用户级别,一个用于admin_tbl,另一个用于cashier_tbl,它们具有相同的数据库。我的问题是我是退出收银员还是管理员,当我刷新页面时,另一个也退出了。我不知道问题是什么,我使用了不同的表,但它同时注销了它们两个?请帮我解决这个问题,给我一些错误的想法。谢谢!

更新:这是我的cashier_tbl和admin_tbl的退出代码

这是我的cashier_tbl代码

 <?php



session_start();



$_SESSION = array();



if (ini_get("session.use_cookies")){

        $params = session_get_cookie_params();

        setcookie(session_name(), '', time() - 42000,

            $params["path"], $params["domain"],

            $params["secure"], $params["httponly"]

    );

}



session_destroy();

header("Location: index.php");

?>

这是我的admin_tbl

    <?php

session_start();

$_SESSION = array();

if (ini_get("session.use_cookies")){
        $params = session_get_cookie_params();
        setcookie(session_name(), '', time() - 42000,
            $params["path"], $params["domain"],
            $params["secure"], $params["httponly"]
    );
}

session_destroy();
header("Location: index.php");
?>

1 个答案:

答案 0 :(得分:0)

你在这一行的问题:

if (isset($_SESSION['user_id']))
 {
    header("Location: user_maintenance.php");
    }

即使$ _SESSION为空,它也会将您重定向到user_maintenance.php。并在:

if (isset($_SESSION['user_id']))
 {
    header("Location: order.php");
    }

与。相同。

这是其他正确方法。

我认为您从未在注销方法中设置session_unset()session_destroy()

在上面代码的第一行中删除session_unset()session_start();,这不是必需的。

检查用户登录方法,如上面的代码,在文件order.php和user_maintenance.php中,启动会话。它会是这样的:

<?php
 session_start();

 // check if the user was login or not
 if($_SESSION['login'] == false){
  header('Location: user-is-not-login.php');
 }
?>

// this area can be access if session is true.

在会话设置的位置创建注销方法。像这样的东西:

<?php
 session_start();

 session_destroy();
 session_unset();

 header('Location: login.php');
?>

您需要在设置新会话之前销毁会话。

希望这些帮助。