删除时需要PHP登录系统帮助

时间:2015-06-07 01:53:45

标签: php login

帮助删除用户:

您好我正在为我的项目创建一个用户创建系统,我仍然是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'];
?>

我的问题是抓住你选择删除的用户,因为它只输出从数据库中抓取的最后一个用户。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

此值:

$_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']

验证输入,验证用户是否有权执行删除,然后在WHERE查询的DELETE子句中使用该值。

答案 1 :(得分:-1)

获取用户ID并将其插入删除查询。 $id = $db->real_escape_string($_GET['id']); $sql = "delete from users where id = " . $id;然后运行查询以从数据库中删除用户。