實現一個完整的記錄刪除功能,包含:數據列表展示、單條刪除鏈接、刪除確認執行、結果反饋。
標題
操作
[刪除]
[修改]
0) {
echo "刪除成功!
";
echo "返回列表";
} else {
echo "刪除失敗:記錄不存在或已被刪除
";
echo "返回列表";
}
mysql_close($link);
?>
// 危險寫法(原代碼)
$del = "DELETE FROM test WHERE id in ($tid)"; // $tid 直接來自用戶輸入
// 安全寫法:intval 強制轉換
$id = intval($_GET['id']);
// 最佳寫法:預處理語句(需升級到 MySQLi/PDO)
$stmt = $mysqli->prepare("DELETE FROM news WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
// 列表頁生成 Token
$_SESSION['csrf_token'] = bin2hex(random_bytes(32));
// 刪除鏈接攜帶 Token
// del.php 驗證
if (!hash_equals($_SESSION['csrf_token'], $_GET['token'])) {
die("CSRF 驗證失敗");
}
// 檢查用戶是否有權刪除該記錄
function canDelete($userId, $recordId) {
// 管理員可刪除所有
if (isAdmin()) return true;
// 普通用戶只能刪除自己的
$sql = "SELECT COUNT(*) FROM news WHERE id = $recordId AND author_id = $userId";
return mysql_result(mysql_query($sql), 0) > 0;
}
';
while($row = mysql_fetch_array($res)) {
echo "";
echo " ";
echo "{$row['title']} ";
echo " ";
}
echo '';
echo '';
?>
deleted_at 時間戳)而非物理刪除