Что делает файл show.php?

У меня вопрос по одной статье: itmemo.ru/2012/02/ajax-i-php-rabota-s-bazoy-dannyih Подскажите пожалуйста, что происходит в файле show.php? Дело в том, что и в show.php пробуют вывести данные из бд и в index.php Отсюда не понимание, что делает каждый из файлов... У меня была уверенность в том, что в index.php должно было быть подключение ajax(show.php), однако никакого include в index.php почему-то нет. Прошу помочь разобраться до конца, как работает ajax


Ответы (1 шт):

Автор решения: Егор Банин

Примерчик вы конечно выбрали очень невысокого качества. Но давайте разбираться.

Для начала код show.php:

<?php
include "auth.php"; //Подключаем БД
//делаем запрос на товары этой категории
$query = "select * from allcat where Id_parent=".$_REQUEST['idcat']."";
$result = mysql_query($query) or die(mysql_error());
// выводим товары полученные по запросу
while ($row=mysql_fetch_array($result))
{
print $row['Name']."<br>";
}
?>
  1. Подключаем БД. Файл в котором создаётся подключение к базе назван auth.php, -- неудачное название (лучше было бы db.php). Тут всё понятно? include, функции для работы с MySQL (обратите внимание что "этот модуль устарел с версии PHP 5.5.0, и удалён в версии 7.0.0.").

  2. Делаем запрос на товары этой категории. Снова всё просто -- делаем запрос в базу, получаем результат и выводим имена товаров через <br>. Тут автор снова подложил вам свинью и допустил SQL-инъекцию.

Если забить на все косяки этого кода, то в index.php формируется HTML-страничка с js-кодом запроса.

$(document).ready(function(){

$('#idcat').change(function(){
$.ajax({
type: "POST",
url: "show.php",
data: "idcat="+$("#idcat").val(),
success: function(html){
$("#content").html(html);
}
});
return false;
});

});

Этот код использует jQuery (в настоящее время использование jQuery считается плохим тоном) и будет работать только, если вы подключите библиотеку на эту страницу. Суть jQuery-кода в том, что он запрашивает show.php и тот HTML (имена товаров через <br>) добавляет на страницу.

Итого:

  1. В show.php просто выводится список товаров указанной категории через <br>. Можете запросить show.php напрямую и увидите этот список.

  2. Не испоьзуйте этот пример для своего кода. Пример содержит плохой код и критические уязвимости.

Чтобы разобраться с PHP и AJAX разберитесь с ними отдельно. По AJAX хороший учебник на javascript.ru и на MDN.

→ Ссылка