Tôi về cơ bản đã mã hóa một mã chứa danh sách các loại từ cơ sở dữ liệu của tôi, sau đó bạn có thể chọn để xóa.Lỗi biểu thức Isset
Tôi có vấn đề với mã xóa mà dường như không làm việc do lỗi:
Fatal error: Cannot use isset() on the result of an expression (you can use "null !== expression" instead) in F:\xamppnew\htdocs\650032\admin\delete.php on line 6
Dòng gây ra điều này là:
if(isset($_POST['delete_id'] && !empty($_POST['delete_id']))) {
deletecategory.php
<h3>
Delete Category
</h3>
<?php $result = mysql_query("SELECT * FROM category"); ?>
<table>
<?php while($row = mysql_fetch_array($result)) : ?>
<tr id="<?php echo $row['category_id']; ?>">
<td><?php echo $row['category_Name']; ?></td>
<td>
<button class="del_btn" rel="<?php echo $row['id']; ?>">Delete</button>
</td>
</tr>
<?php endwhile; ?>
</table>
<script>
$(document).ready(function(){
$('.del_btn').click(function(){
var del_id = $(this).attr('rel');
$.post('delete.php', {delete_id:del_id}, function(data) {
if(data == 'true') {
$('#'+del_id).remove();
} else {
alert('Could not delete!');
}
});
});
});
</script>
delete.php
<?php
if(isset($_POST['delete_id'] && !empty($_POST['delete_id']))) {
$delete_id = mysql_real_escape_string($_POST['delete_id']);
$result = mysql_query("DELETE FROM category WHERE `id`=".$delete_id);
if($result !== false) {
echo 'true';
}
}
?>
Mã của bạn là dễ bị tổn thương để tiêm SQL. ['mysql_real_escape_string' chỉ hoạt động nếu giá trị được sử dụng trong một chuỗi ký tự MySQL.] (http://security.stackexchange.com/a/35718/539) – Gumbo
Không cần sử dụng' isset() 'và' ! empty() 'cùng một lúc. 'empty' cũng hoạt động nếu đầu vào không được xác định: https://stackoverflow.com/questions/4559925/why-check-both-isset-and-empty – Adam