기본적으로 데이터베이스의 범주 목록을 채우는 코드를 코딩 한 다음 삭제할 항목을 선택할 수 있습니다.Isset expression error
나는 인해 오류로 작동하지 않는 삭제 코드에 문제가 있습니다
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
라인의 원인이 있습니다 :
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
(210)<?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';
}
}
?>
당신의 코드가 SQL 인젝션에 취약 수 있어야한다는 것입니다. [mysql_real_escape_string'은 값이 MySQL 문자열 리터럴에서 사용되는 경우에만 작동합니다.] (http : //security.stackexchange.com/a/35718/539) – Gumbo
'isset()'과' ! empty()'를 동시에 사용하십시오. 입력이 정의되어 있지 않으면'empty'도 작동합니다 : https://stackoverflow.com/questions/4559925/why-check-both-isset-and-empty – Adam