2017-02-21 58 views
-2

不删除我试图点击图标后删除用户,但没有任何反应,只是刷新页面。从数据库

<?php 
$mysqli = new mysqli("localhost", "root", "root"); 
$mysqli->select_db("maturita"); 

if($_POST && $_POST["del_us"]) 
{ 
    $ask = $mysqli->query("DELETE FROM users WHERE id='".$_GET['id']."'"); 
} 
header("Location: manage_users.php"); 
?> 

编辑:所以,发布完整的代码。也许你会让我的思维失去信心,然后帮助我。

<?php 
$conn = mysqli_connect("localhost", "root", "root", "maturita"); 
?> 
<table> 
<tr> 
    <th>ID</th> 
    <th>Username</th> 
    <th>First Name</th> 
    <th>Last Name</th> 
    <th>Email</th> 
    <th>Rights</th> 
    <th></th> 
</tr> 
<?php 

$sql="SELECT * FROM users"; 
$query=mysqli_query($conn, $sql); 
if(mysqli_num_rows($query)>0) 
{ 

    while ($row=mysqli_fetch_object($query)) 
    { 
?>  
<tr> 
    <td><?php echo $row->id; ?></td> 
    <td><?php echo $row->username; ?></td> 
    <td><?php echo $row->first_name; ?></td> 
    <td><?php echo $row->last_name; ?></td> 
    <td><?php echo $row->email; ?></td> 
    <td><?php echo $row->rights; ?></td> 
    <td><a name="del_us" href="delete_user.php"><i name="del_us" class="fa fa-trash" aria-hidden="true"></i></a></td> 
     </tr> 
<?php 
    } 
}  
?> 
+0

你确定你使用的查询该ID可在数据库中? –

+0

'$ _POST'的内容是什么?你通过'POST'发送表单,但是你从'GET'中取得''id' - 你应该和你的数据处理保持一致。 – Roman

+0

您将执行“POST”或“GET”请求。检查''del_us''是否有'POST'值,但是同时''id'''的'GET'值看起来不合逻辑? – Nanne

回答

0

代码

if($_POST && $_POST["del_us"]) 
{ 
    $ask = $mysqli->query("DELETE FROM users WHERE id='".$_GET['id']."'"); 
} 

看起来有点怪异我

,或者你使用GET方法,所以你如果是错的,那么你必须改变你这样的代码:

if($_GET && $_GET["del_us"]) 
{ 
    $ask = $mysqli->query("DELETE FROM users WHERE id='".$_GET['id']."'"); 
} 

假设“del_us”和“id”是两个不同的变量 或可能您需要更改您的查询:

if($_POST && $_POST["del_us"]) 
{ 
    $ask = $mysqli->query("DELETE FROM users WHERE id='".$_POST['id']."'"); 
} 
+0

支持一个标签的name属性的del_us是按钮的名称整个代码 – Norbert

+0

显示我们的按钮的HTML。 –

+1

邮报“5或ID> 0”为ID介绍了SQL注入AFFAIRE之前,你的代码 –

1

它看起来像你的混合$_POST$_GET。假设你的条件是正确的,你想作为一个id的变量是$_POST["del_us"]然后

<?php 
$mysqli = new mysqli("localhost", "root", "root"); 
$mysqli->select_db("maturita"); 

if($_POST && $_POST["del_us"]) 
{ 
    $id = $mysqli->real_escape_string($_POST["del_us"]); 
    $ask = $mysqli->query("DELETE FROM users WHERE id='".$id."'"); 
} 
header("Location: manage_users.php"); 
?> 

在哪里我也逃过了贴变量,以避免SQL注入。