使用按钮和设置配置文件页面PDO删除用户

时间:2017-04-19 01:37:52

标签: php html pdo

现在开始学习一个小PDO之后,在网站上提出一些建议,从有用的用户那里查看。 我还是很新鲜,所以我不想要完整的解决方案,但是正确的方向是一个点,因为我对输入内容有点不清楚。

我有两个问题,我一直试图在这里弄清楚。 一直在搜索谷歌,观看视频和在这里阅读大量的帖子,看看我是否能找到解决方案。但是由于有很多方法可以设置所有东西,所以它只是在我的头脑中得到了一些不同的解决方案和不同的意见。

好。回到正轨。

    <div class="row">
    <div class="col-xs-12 col-md-12 user_group">
    <h2 class="text-center">Aktive brukere:</h2>
        <?php 
                $stmt = $DB_con->query('SELECT * FROM users ');
                $stmt->execute();


                echo "<table id='user' class='table table-bordered table-striped'>
                    <tr>
                    <th>Bruker-ID</th>
                    <th>Brukernavn</th>
                    <th>E-post</th>
                    <th>Fornavn</th>
                    <th>Etternavn</th>
                    <th>Rolle</th>
                    <th>Banna</th>
                    <th>Deaktivert</th>
                    <th>Profil</th>
                    <th>Slett</th>
                    </tr>";


                while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
                {

                    $userID = $row['user_id'];
                    $username = $row['user_name'];
                    $email = $row['user_email'];
                    $firstname = $row['user_fname'];
                    $lastname = $row['user_lname'];
                    $role = $row['user_role'];
                    $banned = $row['user_banned'];
                    $deactivated = $row['user_deactivated'];


                    {
                        echo "<tr>
                                <td>$userID</td>
                                <td>$username</td>
                                <td>$email</td>
                                <td>$firstname</td>
                                <td>$lastname</td>
                                <td>$role</td>
                                <td>$banned</td>
                                <td>$deactivated</td>
                                <td><button class='btn btn-block btn-primary'><a href='../inc/profile.php'></a>Profil</button></td>
                                <td><button class='btn btn-block btn-danger'><a href='process.php?userID=". $userID ."'></a>Slett</button></td>";
                    }

                }
            ?>

    </div>
</div>

这是我在网站上的活跃用户列表。我刚刚在这里创建了一些测试用户来测试所有内容。

我有两个按钮。个人资料和删除。 我想我必须创建另外两个名为profile.php和delete.php的文件,但是我在这些文件中应该拥有的东西是有点非常不清楚的。

我需要从按钮所在的用户那里获取ID,但这是我的问题。我似乎无法得到我想要的用户。

几次尝试我给了我列表中的每个用户或只是我登录用户。 看起来我在这些文件中不需要太多代码来获取用户ID并删除正确的用户。

如果我能得到一个关于我如何用我的按钮删除用户的指针,我可以弄清楚配​​置文件部分,因为它从用户点击获取ID似乎是问题。

对不起我的英文和长篇文章。

PS:这是我的user.php类脚本,如果有帮助的话:

    class USER
{
    private $db;

    function __construct($DB_con)
    {
        $this->db = $DB_con;
    }

    public function register($fname, $lname, $uname, $umail, $upass)
    {
        try
        {
            $new_password = password_hash($upass, PASSWORD_DEFAULT);

            $stmt = $this->db->prepare("INSERT INTO users(user_name,user_email,user_pass,user_fname,user_lname) VALUES(:uname, :umail, :upass, :fname, :lname)");

            $stmt->bindparam(":uname", $uname);
            $stmt->bindparam(":umail", $umail);
            $stmt->bindparam(":upass", $new_password);
            $stmt->bindparam(":fname", $fname);
            $stmt->bindparam(":lname", $lname);
            $stmt->execute();

            return $stmt;
        }
        catch(PDOException $e)
        {
            echo $e->getMessage();
        }
    }

2 个答案:

答案 0 :(得分:0)

我使用以下代码,它总是适合我。

$sql="SELECT * FROM users";
foreach($conn->query($sql) as $row){
    echo '<a href="delete-user.php?id='.$row['user_id'].'">delete</a>';
}

然后在delete-user.php页面

$query=$conn->prepare("DELETE FROM users WHERE id=:id");
$query->execute(array(':id'=>$_GET['id']));

答案 1 :(得分:0)

既然你不想要一个完整的解决方案,我完全尊重它。这是最好的学习方式。我会给你一些线索。

如果要删除用户,则需要创建类似

的链接
<a href='process.php?userID=". $userID ."'></a>

但将process.php更改为将负责删除用户的不同文件。在该文件中,您需要以与在user.php中执行INSERT查询相同的方式执行DELETE查询,您只需要一个参数“id”