[英]PHP login system help needed for deletion
帮助删除用户:
您好,我正在为我的项目创建一个用户创建系统,我对PHP还是很陌生,我的问题是从MySQL数据库中获取用户,然后删除它,下面将向您展示我的代码:
<?php
require_once("config/db.php");
if ($login->isUserLoggedIn() == true) {
if ($_SESSION['user_perm'] == 1) {
//Create Connection
$db_connection = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
// Check connection
if ($db_connection->connect_error) {
die("Connection failed: " . $db_connection->connect_error);
}
$sql = "SELECT user_name FROM users";
$result = $db_connection->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo $row["user_name"];
$user_name_delete = $row["user_name"];
$_SESSION['user_name_delete'] = $user_name_delete;
echo '<a href="deleteuser.php">Delete User</a><br>';
}
}
}
$db_connection->close(); ?>
在deleteuser.php页面上,我的代码是,请注意,这只是一个测试:
<?php
echo $_SESSION['user_name_delete'];
?>
我的问题是抓住您选择删除的用户,因为它仅输出从数据库中抓住的最后一个用户。
任何帮助深表感谢。
该值:
$_SESSION['user_name_delete']
将仅包含数据中的最后一个用户。 因为您一直在循环中覆盖它:
$_SESSION['user_name_delete'] = $user_name_delete;
简短的答案是...不要为此使用会话状态。 (实际上,除非绝对必要,否则您不应该将会话状态用于任何事情。)要删除的用户的身份应该包含在删除用户的请求中。 在这种情况下,您可以将其添加到链接中。 像这样:
echo '<a href="deleteuser.php?id=' . $row['user_id'] . '">Delete User</a><br>';
(或用于在数据行中标识用户的任何方法。)
然后,在deleteuser.php
您可以从以下位置获取该值:
$_GET['id']
验证输入,验证用户是否有权执行删除,然后在DELETE
查询的WHERE
子句中使用该值。
获取用户ID并将其插入删除查询中。 $id = $db->real_escape_string($_GET['id']);
$sql = "delete from users where id = " . $id;
然后运行查询以从数据库中删除用户。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.