我在大学里做了一个小的web应用程序,在数据访问方面遇到了一些问题。
有3个用户帐户可以登录,之后所有用户都可以创建自己的讲座。
问题:每一位老师都应该只看他自己创造的讲座,而不是其他两位老师创造的讲座。此刻,每一位老师都看到了每一节课。
我不知道我应该在这里发布哪一个代码,但我非常感谢任何形式的帮助!
非常感谢!
编辑:谢谢你的回答。我试了几个小时,但我不知道该怎么办了。
这是我将讲座保存到数据库中的代码。$_SESSION似乎有问题。
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)-讲座:每个讲座都应该包括一个数据来识别你的老师:它的唯一登录名或id。
然后,您将能够使用当前连接的教师来过滤您的讲座,例如,您应该将其存储为会话值。
登录脚本:
- 检查教师是否使用其登录名+密码在数据库中,并获得其唯一登录名或id。然后将其存储到会话值中:
$_SESSION['teacher']=$the_tacher_id
-
创建讲座时,将教师id与讲座的其他数据一起存储到数据库中:插入讲座(教师,其他_体系结构数据)值('$_SESSION[tear]',其他_结构数据值);
-
当你列出所有可用的讲座时,使用当前连接的教师唯一登录名或id:进行筛选
从讲座中选择*,其中教师='$_SESSION[tear]';
你的演讲表应该是这样的:
id | lecture_name | teacher_id
------------------------------
1 | lecture 1 | 1
2 | lecutre 2 | 2
您的查询应该如下所示:
select * from lecture where teacher_id = 1; // or another teacher id