Удаление записи Qq из базы данных с помощью ajax

#javascript #php #jquery #html

#javascript #php #jquery #HTML

Вопрос:

У меня проблема с удалением записей из базы данных с использованием ajax и jquery. Если я нажму на кнопку, ничего не произойдет. существует мой css :

 <button class='delete_p' id_p='<?php echo $post_id; ?>'>x</button>"
<script type="text/javascript" src="jquery-1.11.1.js"></script>
<script src="delete_post.js"></script>
  

и есть ajax то, что я использую:

 $(document).ready(function(){
$('.delete_p').click(function(){
var del_id = $(this).attr('id_p');
$.ajax({
  type:'POST',
  url:'delete_post.php',
  data:'delete_id=' del_id,
  });
 });
});
  

и есть delete_post.php то, что я использую:

 <?php
include 'esas/core/database/connect.php';
$id = $_POST['delete_id'];
$query = "DELETE FROM `status` WHERE `id` = '$id'";
?>
  

Комментарии:

1. Вы широко открыты для внедрения SQL .

2. Вам нужно еще немного устранить неполадки. Например, задается ли del_id даже в вашем JS? (используйте предупреждение, чтобы узнать)

3. @EdCottrell Он защищен от SQL-инъекций, потому что его SQL-запрос никогда не выполняется.

4. @blex Нет, это не так. Если злоумышленник отправляет значение для delete_id like 1' OR '1' = '1 to delete_post.php , это SQL-инъекция. Тот факт, что его вызов AJAX в настоящее время заблокирован, не меняет того факта, что серверная часть очень уязвима.

5. Я знаю, что у меня есть sql-инъекция. и я это исправлю. 😉

Ответ №1:

data должна быть не строка, а объект JavaScript:

 $.ajax({
  type: 'POST',
  url: 'delete_post.php',
  data: {
     delete_id: del_id
  }
});
  

Комментарии:

1. @user3722203 в дополнение к этому попробуйте удалить одинарные кавычки $id в вашем SQL-запросе, потому что я предполагаю, что это целые числа, а не строки. О, и в опубликованном вами вопросе вы задаете строку запроса $, но вы никогда не выполняете ее, поэтому ничего не удаляется.

2. Отлично! И да, если вы планируете сделать это общедоступным, позаботьтесь о внедрении SQL.