php - PHP函数中的 session

标签 php function session

我是 php 的新手,我从登录我的 session 的地方创建了一个函数,现在我想多次使用这个函数,比如管理员登录,我如何在多个 session 中使用这个函数。我按照 PacMan 的说明更新了我的答案。现在我是这样做的:

用户和管理员登录代码:

//Check Wheather User Logged in or Not

if (isset($_SESSION['LoggedID']) && !empty($_SESSION['LoggedID'])){
  $tableName = "prd_rgistration";
  $id = $_SESSION['UserLogin'];
}else{
  $tableName = "user_register";
  $id = $_SESSION['AdminID'];
}
    //Check Wheather User Logged in or Not
    function Logged(){
        if(LoggedIn()){
            global $conn;
            return $conn->query(sprintf('SELECT * FROM ' + $tableName + ' WHERE id = \'%d\'',$id))->fetchObject();
        }else{
            return (object)array();
        }
    } 
    function LoggedIn(){
        return isset($id) && intval($id);
    }
    function redirect($Location){
        header(sprintf('Location: %s',$Location),true,301);
        exit;
    }

    if(LoggedIn()){
        $User = Logged();
    }

管理员登录页面代码

if($email_err == "" && $password_err == ""){
        $Code = 0;
        try{
            $get_data = $conn->query("SELECT * FROM `user_register` WHERE `reg_email` = '$email' AND `reg_pass` = '$password' LIMIT 1");
            if($get_data->rowCount() > 0){
                $_SESSION['AdminID'] = $get_data->fetchObject()->id;    
                 redirect('/domain.com/temp/admin/index.php');
            }else{
                $error = '<div class="alert alert-info">Invalid Email/Password</div>';
            }
        }catch(PDOException $E){
            $Code = $E->getCode();
        }
    }

用户登录页面代码

if($email_err == '' && $user_pass_err == ''){
        $Code = 0;
        try{
            $get_data = $conn->query("SELECT * FROM `prd_rgistration` WHERE `email_db` = '$email' AND `password_db` = '$user_pass' LIMIT 1");
            if($get_data->rowCount() > 0){
                $_SESSION['UserLogin'] = $get_data->fetchObject()->id;  
                 redirect('/domain.com/temp/index.php');
                //redirect('/domain.com/index.php');
            }else{
                $error = '<div class="alert alert-info">Invalid Email/Password</div>';
            }
        }catch(PDOException $E){
            $Code = $E->getCode();
        }
    }

现在它给出错误 Undefined AdminID 并且也没有登录用户。

最佳答案

我可以建议您按照此过程进行操作,它可能会有所帮助,方法是将表名更改为变量

if (isset($_SESSION['LoggedID']) && !empty($_SESSION['LoggedID'])){
  $tableName = "prd_rgistration";
  $id = $_SESSION['LoggedID'];
}else if(isset($_SESSION['adminID']) && !empty($_SESSION['adminID'])){
  $tableName = "admin";
  $id = $_SESSION['adminID']
}
//Check Wheather User Logged in or Not

function Logged(){
    if(LoggedIn()){
        global $conn;
        return $conn->query(sprintf('SELECT * FROM '$tableName' WHERE id = \'%d\'',$id))->fetchObject();
    }else{
        return (object)array();
    }
} 

这里是您只为用户管理员和用户登录设置了一个函数参数

关于php - PHP函数中的 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38131308/

相关文章:

php echo 如果查询为空

c++ - C++中Python中有没有类似于help()的函数

java - jsp:如何从 session 中获取值?

javascript - 获取搜索结果然后填充页面而不刷新

php - Ajax 在 for 循环中同时执行所有操作

php - 查找多个插入查询的 auto_increment 值

.net - 我可以从 HttpModule 实例中放弃 InProc ASP.NET session 吗

sql - 当多个函数使用它时如何改变复合类型?

python - 如何仅重试函数中产生错误的行

java - 在javascript中读取 session 变量?