对能够删除自己的表的指定用户使用登录名


Using login for specified user that are able to delete their own table

这是我的数据库讲师表名称人员

ID FirstName LastName Email
100  alex     alex     -
102  ali      ali      -

这是我的桌子user_subject

ID  Subject
100  AAA
100  BBB
102  AAA
102  CCC

这是我的drop_subject.php

<html>
    <head></head>
    <body>
<?php
$conn = mysql_connect('localhost','root','password');
mysql_select_db('lecturer');
$query = 'SELECT persons.ID , persons.FirstName , user_subject.subject
FROM persons
INNER JOIN user_subject
ON persons.ID = user_subject.ID
ORDER BY persons.ID';
$result = mysql_query($query) or die(mysql_error());
?>
<table width="400" border="0" align="center" cellspacing="1" cellpadding="0">
<tr>
<td><form name="form1" method="post" action="">
<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#FFFFFF">&nbsp;</td>
<td colspan="4" bgcolor="#FFFFFF"><strong>Drop subject</strong> </td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">#</td>
<td align="center" bgcolor="#FFFFFF"><strong>ID</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Subject</strong></td>
</tr>
<?php while($row = mysql_fetch_assoc($result)) { ?>
<tr>
    <td align="center" bgcolor="#FFFFFF"><input type="checkbox" name="data[]" value="<?php echo $row['ID'];?>" /></td>
    <td bgcolor="#FFFFFF"> <?php echo $row['ID']; ?> </td>
    <td bgcolor="#FFFFFF"> <?php echo $row['subject']; ?> </td>
</tr>
<?php } ?>
<tr>
    <td colspan="3" align="left" bgcolor="#FFFFFF"><input type="submit" value="Delete Checked Rows" /></td>
    <td colspan="2" align="right" bgcolor="#FFFFFF"><a href="user_subject.php?pressed=subject">Back</a></td>

</tr>

<?php
if(isset($_POST['data'])) {
$del_query = "DELETE FROM user_subject WHERE No IN (";
foreach($_POST['data'] as $data) {
$del_query .= "'" . (int) $data . "',";
}
$del_query .= "'')";
mysql_query($del_query) or die(mysql_error());
header("Location:" . $_SERVER['PHP_SELF']);
}

mysql_close()

?>
</table>
</form>
</tr>
</table>
</body>
</html>

问题是,如果我以阿里的身份访问,我想删除主题时,我可以删除 alex 的主题。

我想做的是,当 alex 访问drop_subject.php系统只显示他自己的数据,即 ID 100 主题 AAA 和 ID 100 主题 BBB,他只能删除自己的主题

我应该使用什么来限制特定用户访问他们自己的数据库而不是每个人的数据库?

采取的步骤应该是

  1. 能够捕获当前访问页面的用户的用户ID;
  2. 使用 WHERE 语句和 ID: WHERE id = <the id of the user> 筛选结果。