php - session 管理 : PHP+MySQL

标签 php mysql session

我正在用 PHP + MySQL 开发一个知识管理系统,我将员工和学生保存在不同的表中。现在我在 session 管理方面遇到了一些问题。

如果以学生身份登录,我可以访问 student_profile.php?id=1,但是如果我将 url 更改为 staff_profile.php?id=1,我将以员工身份登录!

我该如何解决这个问题?

还有,我可以把学生和教职工放在同一张 table 上吗?有什么问题吗?

最佳答案

当用户登录成功时,您可以为 session key 设置不同的值(身份)。

在 login.php 中

<?php
 session_start();

 if(user_is_student()) {
      $_SESSION["usertype"]="student";
      ...
 }
 else 
 if(user_is_staff()) {
      $_SESSION["usertype"]="staff";
      ...
 }
?>

在教职员工和学生个人资料页面中,验证 usertype 键的值。

员工.php

<?php
  session_start();
  $validUser=false;
  if(isset($_SESSION["usertype"]))
   {
     if($_SESSION["usertype"]=="staff")
       {
          $validUser=true;
        }
   }
 if(!$validUser) {
     header("Location: login.php");
 }
?>

关于php - session 管理 : PHP+MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8652669/

相关文章:

php - 使用php从HTML生成pdf

php - PHP 中的静态变量

mysql - 在 Lucene 中搜索确切的短语

php - 在自定义 SessionHandlerInterface 实现中确保 session 严格模式

node.js - TypeError : req. session.destroy 不是函数 - Express.js

php - 需要帮助返回数据库表中所有内容的数组 PHP/PDO

php - bbCode,添加笑脸?

PHP PDO MySQL 以及它如何真正处理 MySQL 事务?

php - 使用 mysql 和 php 创建 xml 文件。想要添加自定义行

session - 为什么 GITkit.idToken 应该被 Session Token 取代?