2 回答
TA贡献2051条经验 获得超10个赞
要在数据库中切换用户类型,您需要获取用户 ID 和用户的当前角色。然后您必须将这些信息发送到 php 脚本以切换数据库中的用户角色。
假设我们有一个名为 toggleUser.php 的 php 文件,它使用 get 方法接收用户 ID 和当前角色,那么你的 url 将如下所示:
<a class="btn btn-danger" href="toggleUser.php?userid=<?php echo $row['userid']?>&role=<?php echo $row['role']?>">Toggle Admin</a>
创建文件 toggleUser.php 并添加以下代码:
<?php
$userid = $_GET['userid'];
$role = $_GET['role'];
$role = ($role==1)?0:1;
$stmt = mysqli_prepare($conn, "update accounts set IsAdmin=? where username=?");
mysqli_stmt_bind_param($stmt, 'ss', $role,$userid);
mysqli_stmt_execute($stmt);
header("location:showusers.php");
?>
TA贡献1851条经验 获得超4个赞
您实际上也可以使用 PHP 解决问题。
我假设“用户名”字段是唯一的。我通过将“Toggle Admin”放入由同一文件处理的表单中修改了您的代码的某些部分。单击按钮后,将执行添加到 PHP 块的代码。该代码从表单接收用户名和当前角色,然后相应地切换数据库中的“IsAdmin”。这是我的解决方案:
<b><?php
echo $row['username'];
?></b>
<form action="" method="post">
<input type="hidden" name="username" value="{$row['username']}">
<input type="hidden" name="role" value="{$row['IsAdmin']}">
<input type="submit" name="toggle_admin" class="btn btn-danger" value="Toggle Admin">
</form>
我还按如下方式更新了您的 PHP 块:
<?PHP
include("auth.php");
require_once "config.php";
$result = mysqli_query($conn, "SELECT * FROM accounts");
// Execute this code if the 'Toggle Admin' button is clicked
if (isset($_POST['toggle_admin']))
{
if (isset($_POST['username']) && !empty($_POST['username']) && isset($_POST['role']) && !empty($_POST['role']))
{
// Retrieve necessary inputs
$username = htmlentities($_POST['username']);
$role = htmlentities($_POST['role']);
// Toggle Admin
if ($role == 0)
{
// Set user to be admin if not currently admin
$IsAdmin = 1;
}
else
{
// Set user to be non admin if user is currently admin
$IsAdmin = 0;
}
// Update the database accordingly.
$perform_toggle_admin = mysqli_query($conn, "UPDATE accounts SET IsAdmin = '$IsAdmin' WHERE username = '$username'");
}
}
?>
希望这是有帮助的。
- 2 回答
- 0 关注
- 100 浏览
添加回答
举报