php - 从数据库中删除用户 - GET 方法更改为 POST 方法

标签 php mysql post get

我的问题是如何在用户列表页面上的删除按钮上单击操作后将 GET 方法更改为 POST 方法。

在页面 users.php 顶部使用 POST 删除后必须是消息“用户 $name 已删除!”

用户.php

<!DOCTYPE html>

<html>
<head>
    <meta charset="UTF-8"/>
    <title>Users</title>
</head>

<body>
<h1>Users List</h1>

<?php
include('db_connect.php');

$db_conn = @new mysqli($host, $db_user, $db_password, $db_name);


if($result=$db_conn->query("SELECT * FROM user ORDER BY id")){
    if($result->num_rows > 0){


        echo "<table border='1' cellpadding='10'>";
        echo "<tr><th>ID</th><th>Name</th></tr>";


        while($row=$result->fetch_object()){
            echo "<tr>";
            echo "<td>".$row->id."</td>";
            echo "<td>".$row->name."</td>";
            echo "<td><a href='delete.php?id=" . $row->id . "'>Delete</a></td>";
            echo "</tr>";
        }

        echo "</table>";

    }else{
        echo "No records";
    }
}else{
    echo "error: ". $db_conn->error;
}

$db_conn->close();

?>

<br><a href="add.php">Add user</a>

</body>
</html>

删除.php

<?php

require_once 'db_connect.php';


$db_conn = @new mysqli($host, $db_user, $db_password, $db_name);

if (isset($_GET['id']) && is_numeric($_GET['id']))
{

    $id = $_GET['id'];


    if ($stmt = $db_conn->prepare("DELETE FROM user WHERE id = ? LIMIT 1"))
    {
        $stmt->bind_param("i",$id);
        $stmt->execute();
        $stmt->close();
    }
    else
    {
        echo "ERROR: could not prepare SQL statement.";
    }
    $db_conn->close();


    header("Location: users.php");
}
else

{
    header("Location: users.php");
}

求助! :)

最佳答案

使用带有隐藏输入和提交按钮而不是链接的 form:

改变:

        echo "<td><a href='delete.php?id=" . $row->id . "'>Delete</a></td>";

与:

        echo '<td><form action="delete.php" method="POST"><input type="hidden" name="id" value="' . $row->id . '"><input type="submit" name="submit" value="Delete"></form></td>';

& 当然这应该用 PHP 处理:

改变:

if (isset($_GET['id']) && is_numeric($_GET['id']))
{
    $id = $_GET['id'];

收件人:

if (isset($_POST['id']) && is_numeric($_POST['id']))
{
    $id = $_POST['id'];

关于php - 从数据库中删除用户 - GET 方法更改为 POST 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43780208/

相关文章:

php - 开源投票系统

java - 如何在 php 中使用 SOAP 进行 wsdl 请求响应?

Mysql 在两个表之间的简单查询上太慢

python - 使用 Python 调用 REST 服务

asp.net - jquery $post 帖子页面,但 Request.Form 为 null

php - 以 JSON 格式返回 MySQL 数据

php - 是否可以从输入类型的结果中选择列

mysql - COUNT(*) 返回多行而不是一行

mysql - 根据开始日期和日期连接两个表

python - Django Rest中的字符串相关字段