Место для вас

Борьба с кавычками и защита сайта от SQL инъекций на PHP

Кавычки в программировании это проблема для новичков. Иногда они могут так сильно напакастить, что приведет к необратимым последствиям.

К примеру, вы выводите текст, в котором текст обрамлен кавычками. На выходе вы увидите обрезанный текст. Либо тоже самое при добавлении записи в Базу Данных. Часть инфы запишется, а остальное отбросится. Очень забавно, когда вы работаете с формами. Подставив такой текст в value и проверя затем html код, то вы сильно удивитесь, заметив что ваша форма имеет некий не стандартный вид.

Но все решается очень быстро и легко. Не нужно писать никаких функций-обработчиков текста. Все уже написано до нас и для нас =)


<strong>htmlspecialchars</strong> - преобразует спецсимволы в HTML сущности

$a = ' Что за "хрень" ';
echo htmlspecialchars($a); // вывод: Что за '&quot;хрень'&quot;

А это пример, как победить кавычки в MySQL, чтоб информация корректно записывалась в вашу БД и заодно избавиться от sql-инъекции. Что это такое и как оно может сказаться на работу сайта почитайте в интернете. Информации очень много. Одно скажу - это ОЧЕНЬ ОПАСНАЯ штука, которая может убить ваш сайт или украсть информацию с вашего сайта. Так что к этому нужно очень внимательно относиться. А я просто приведу пример:


$sql_insrt = "INSERT INTO table (`id`, `name`, `age`, `price`) VALUES (NULL, '%s', '%d', '%f')";
$sql_insrt_injection = sprintf($sql_insrt,
      mysql_real_escape_string($name),
      mysql_real_escape_string($age),
      mysql_real_escape_string($price)
      );
mysql_query($sql_insrt_injection);
echo mysql_errno() . ": " . mysql_error();

А вот пример борьбы с кавычками прямо SQL коде:


$query = "SELECT name, id, price FROM table WHERE name = '".mysql_real_escape_string($name)."' AND publish = '1'";

Место для вас

Добавить коментарий

кликните на картинку,
чтоб обновить код

Что за сайт

Этот сайт представляет унифицированную базу, где инфа собрана в единое целое, а не разбросанна по многочисленным сайтам, записям на листах бумаги или головам людей; а так же доступна круглосуточно не зависимо от кого-либо или чего-либо.

Будь в курсе

Интересненько

Вверх