防止通过php删除mysql记录

时间:2013-03-26 15:29:06

标签: php html

我制作了一张名为'Gebruikers'的桌子。该表如下所示:

+----------------+------------------+------+-----+---------+----------------+
| Field          | Type             | Null | Key | Default | Extra          |
+----------------+------------------+------+-----+---------+----------------+
| id             | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| gebruikersnaam | varchar(255)     | YES  |     | NULL    |                |
| wachtwoord     | varchar(1024)    | YES  |     | NULL    |                |
| bibliotheekid  | int(10) unsigned | YES  |     | NULL    |                |
| email          | varchar(255)     | YES  |     | NULL    |                |
+----------------+------------------+------+-----+---------+----------------+

此表存储用户和admin的登录ID和密码。 “gebruikersnaam”列定义了登录ID,以及记录是管理员还是用户。

管理员拥有所有用户(甚至是他自己)的列表,并且能够删除它们(包括他自己)。

参见代码:

$sql = "SELECT * FROM Gebruiker";   
$resultaat = mysql_query($sql);
<table>
    <tr>
        <th>id</th>
        <th>gebruikersnaam</th>
        <th>wachtwoord</th>
        <th>bibliotheekid</th>
        <th>email</th>
    </tr>

    <?php
    while(list($id, $gebruikersnaam, $wachtwoord, $bibliotheekid, $email) = mysql_fetch_row($resultaat)){
        ?>
        <tr>
            <td><?php echo $id; ?></td>
            <td><?php echo $gebruikersnaam; ?></td>
            <td><?php echo $wachtwoord; ?></td>
            <td><?php echo $bibliotheekid; ?></td>
            <td><?php echo $email; ?></td>
            <td><?php echo "<a href=\"gebruiker_verwijderen.php?id=$id\">verwijderen</a>"; ?></td>
            <td><?php echo "<a href=\"gebruiker_wijzigen.php?id=$id\">wijzigen</a>"; ?></td>
            <td><?php echo "<a href=\"gebruiker_wijzigen_ww.php?id=$id\">wachtwoord</a>"; ?></td>
        </tr>
        <?php     
    }
    ?>
</table>

如果“$ gebruikersnaam”的值等于“admin”,我想阻止管理员通过在while列表中不提供<a href=\"gebruiker_verwijderen.php?id=$id\">verwijderen</a>来删除自己。我不知道如何正确地做到这一点。

1 个答案:

答案 0 :(得分:1)

您似乎确实回答了自己的问题:

<td><?php
    if ('admin' != $gebruikersnaam) {
        echo "<a href=\"gebruiker_verwijderen.php?id=$id\">verwijderen</a>";
    }
?></td>

如果是管理员,则会打印出空<td>。请注意,这适用于任何管理员(即管理员无法删除其他管理员)。大概你也有一个登录用户的会话标识符,你可以比较它以检查他们是否也是管理员。

您可能还希望在gebruiker_verwijderen.php上添加一个限制,以防止删除管理员/登录用户。