嘗試使用複選框刪除多行。起初,我用複選框列生成目錄。然後發佈數據到php方面。問題是,PHP方面返回到當前頁面。這意味着所有成功完成並返回頁面的用戶返回。但沒有成功。在PHP日誌和MySQL問題中沒有錯誤。我在$delete=$_POST['delete'];
後試過print_r ($_POST['checkbox']); die();
。它給了我這樣的結果Array ([0] => on [1] => on)
我的代碼有什麼問題?使用複選框從表格刪除多個記錄(行)
我的HTML標記看起來像
<?php
$result = $db->query("SELECT id, name, showinmenu FROM menu") ;
$num=$result->num_rows;
if ($num>0) {
?>
<form method="post" action="processor/dbdel.php">
<div style="overflow-y: auto; overflow-x: hidden; height:500px">
<table id="list" class="features-table">
<thead>
<tr>
<th>#</th>
<th style="min-width:80px;" class="name">Ad (menyuda işlənən)</th>
<th>Sil</th>
</tr>
</thead>
<tbody>
<?
while ($row = $result->fetch_object()) {
echo '<tr>
<td>'.$row->id.'</td>
<td><a href="'.$wsurl.'admin/?page=edit&id='.$row->id.'">'.$row->name.'</a></td>
<td><input type="checkbox" name="checkbox[]" method="post" value"'.$row->id.'" id="checkbox[]" "/></td>
</tr>';
}
// when the loop is complete, close off the list.
echo "</tbody> <tr id='noresults'>
<td style='text-align:center' colspan='9'>Nəticə yoxdur</td>
</tr></table>
</div>
<p style='text-align:center;'>
<input id='delete' type='submit' name='delete' value='Seçilənləri sil'/> </p>
</form>";
}
?>
這裏是我的PHP代碼
<?php
require '../../core/includes/common.php';
$delete=$_POST['delete'];
if($delete) // from button name="delete"
{
if (is_array($_POST['checkbox']))
foreach($_POST['checkbox'] as $del_id) {
$del_id = (int)$del_id;
$result=$db->query ("DELETE FROM menu WHERE id = '$del_id'") or die($db->error);
$result2=$db->query ("DELETE FROM pages WHERE id = '$del_id'") or die($db->error);
}
if($result2)
{
header("location:".$wsurl."admin/?page=db");
}
else
{
echo "Error: ".$db->error;
}
}
?>
並且在您閱讀了SQL注入攻擊之後,請閱讀此內容,看看您是否瞭解它:http://imgs.xkcd.com/comics/exploits_of_a_mom.png – Icarus
謝謝。我們可以繼續通過Skype進行討論嗎?我有幾個問題 – demonoid
@Marc我修復了。仍然沒有成功 – demonoid