Как экранировать sql запрос внутри texarea?

Ссылка скопирована
PHP
1 ответ

Подскажите пожалуйста с помощью чего реализуется экранирование sql запросов внутри input.
Немного подробнее для понимая, чего происходит и какая хочется итог.
Написан веб справочник, простая форма с input заголовка документа и textarea - содержимым. Для удобного ввода информации в textarea и редактирования я использую tinymce. Проблема заключается в том, что когда я хочу сохранить в заметку пример какого либо запроса, запрос который сохраняет всю эту заметку ломается и форма перестает работать. Происходит это от того, что мой пример запроса встраивается в запрос по сохранению формы и все идет по бороде. Каким образом можно сохранить такое содержимое не избавляясь от от него? Буду благодарен за пинок в правильном направлении.

Дополнительно:

Это очень просто сделать.
Надо всего лишь освоить подготовленные выражения.
Например, почитав вот тут https://habr.com/ru/articles/662523/

И все запросы, в которых участвуют переменные, выполнять только таким образом.
А texarea там, или tinymce - это уже без разницы.

  • Большое спасибо!

Подготовленные выражения PDO и MySQLi.

  • Большое спасибо!
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Елена Вебер Ответ

Для того чтобы экранировать SQL запрос внутри textarea, нужно использовать функцию addslashes() или mysqli_real_escape_string() в зависимости от того, как вы работаете с базой данных.

Вот пример использования функции addslashes():

// Получаем данные из textarea
$query = $_POST['query'];
 
// Экранируем SQL запрос
$escaped_query = addslashes($query);
 
// Используем экранированный запрос для выполнения в базе данных

// Получаем данные из textarea $query = $_POST['query']; // Экранируем SQL запрос $escaped_query = addslashes($query); // Используем экранированный запрос для выполнения в базе данных

Если вы используете mysqli для работы с базой данных, то лучше использовать mysqli_real_escape_string():

// Получаем данные из textarea
$query = $_POST['query'];
 
// Подключаемся к базе данных
$mysqli = new mysqli("localhost", "username", "password", "database");
 
// Экранируем SQL запрос
$escaped_query = $mysqli->real_escape_string($query);
 
// Используем экранированный запрос для выполнения в базе данных

// Получаем данные из textarea $query = $_POST['query']; // Подключаемся к базе данных $mysqli = new mysqli("localhost", "username", "password", "database"); // Экранируем SQL запрос $escaped_query = $mysqli->real_escape_string($query); // Используем экранированный запрос для выполнения в базе данных

Важно помнить, что экранирование SQL запросов не является идеальным способом защиты от SQL инъекций. Лучшим решением будет использование подготовленных запросов (prepared statements) или ORM (Object-Relational Mapping) для работы с базой данных.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно