PHP:用户管理、数据访问

PHP:用户管理、数据访问,php,database,user-management,data-access,Php,Database,User Management,Data Access,我在大学里做了一个小小的web应用程序,在数据访问方面遇到了一些问题 有3个用户帐户可以登录,所有用户都可以在之后创建自己的讲座 问题: 每个老师应该只看他自己创作的讲座,而不是其他两位老师创作的讲座。现在每个老师都看每一节课 我不知道我应该在这里发布哪些代码,但我非常感谢您的帮助 非常感谢 编辑:谢谢你的回答。我在过去的几个小时里试过,但我不知道该怎么做了 这是我的代码,我将讲座保存到数据库中。美元会话似乎有问题 public function save(Vorlesung $vorlesun

我在大学里做了一个小小的web应用程序,在数据访问方面遇到了一些问题

有3个用户帐户可以登录,所有用户都可以在之后创建自己的讲座

问题: 每个老师应该只看他自己创作的讲座,而不是其他两位老师创作的讲座。现在每个老师都看每一节课

我不知道我应该在这里发布哪些代码,但我非常感谢您的帮助

非常感谢

编辑:谢谢你的回答。我在过去的几个小时里试过,但我不知道该怎么做了

这是我的代码,我将讲座保存到数据库中。美元会话似乎有问题

public function save(Vorlesung $vorlesung)
    {

        try {
            $stmt = $this->pdo->prepare('
              INSERT INTO vorlesung
                (name, login_dozent)
              VALUES
                (:name, '$_SESSION[dozent]')
            ');
            $stmt->bindParam(':name', $vorlesung->name);
            $stmt->execute();
        } catch (PDOException $e) {
            echo("Fehler! Bitten wenden Sie sich an den Administrator...<br>" . $e->getMessage() . "<br>");
            die();
        }
        return $vorlesung;
    }
这是我的登录代码:

<?php
require_once("Mapper/DozentManager.php");
require_once("Mapper/Dozent.php");

$login = htmlspecialchars($_POST["login"], ENT_QUOTES, "UTF-8");
$password = htmlspecialchars($_POST["password"], ENT_QUOTES, "UTF-8");

if (!empty($login) && !empty($password)) {
    $DozentManager = new DozentManager();
    $dozent = $DozentManager->findByLogin($login, $password);
    if ($dozent==null) {
        header('Location: login.php');
        die();
    } else {
        session_start();
        $_SESSION ['dozent'] = $dozent;
        $_SESSION ['login'] = "1";
        header('Location: index.php');
        die();
    }
} else {
    echo "Error: Bitte alle Felder ausfüllen!<br/>";
}

您的讲台应如下所示:

id | lecture_name | teacher_id
------------------------------
1  | lecture 1    | 1
2  | lecutre 2    | 2
select * from lecture where teacher_id = 1; // or another teacher id
您的查询应如下所示:

id | lecture_name | teacher_id
------------------------------
1  | lecture 1    | 1
2  | lecutre 2    | 2
select * from lecture where teacher_id = 1; // or another teacher id

它不是很精确,没有代码示例。。。 让我们概括一下: 将以下内容存储到数据库中: -每位教师都可能有一个唯一的登录名或id -讲座:每个讲座都应该包含一个用于识别老师的数据:其唯一的登录名或id

然后,您将能够使用当前连接的教师筛选您的讲座,例如,您应该将其存储为会话值

在登录脚本上:

使用登录名+密码检查教师是否在数据库中,并获取其唯一登录名或id。然后将其存储到会话值中: $\u会话['teacher']=$教师id

创建讲座时,将教师id与讲座的其他数据一起存储到数据库中: 在讲座教师、其他讲座数据值“$”会话[教师]、$其他讲座数据值中插入

列出所有可用讲座时,请使用当前连接的教师唯一登录名或id对其进行筛选:


从教师=“$”会话[教师]所在的讲座中选择*

首先:非常欢迎来到stackoverflow!这似乎是你的家庭作业——这里的人不喜欢做你的事情。欢迎来到SO:为了帮助我们帮助你,你尝试了什么?对于当前的问题,我们只能给出非常一般的解决方案,这可能对您毫无帮助。谢谢您的回答。理论上这听起来不错,但我的代码仍然存在一些问题。我在上面编辑了我的答案。非常感谢!谢谢你的回答!我还是不知道我是怎么把老师的身份证放到讲课桌上的。