PHP MySQL вводит HTML-теги - PullRequest
       8

PHP MySQL вводит HTML-теги

1 голос
/ 25 августа 2010

У меня есть база данных PHP MySQL, в которой я буду хранить всю свою информацию. У меня есть текстовое поле на странице HTML, к которому пользователь может добавлять данные, а затем при отправке запроса MySQL вставляет эту информацию в базу данных.Довольно стандартные вещи.

Однако сейчас я нахожусь в состоянии, когда я могу прикрепить TinyMCE или FCKEditor к своему текстовому полю (теперь это текстовая область).У меня вопрос: как мне теперь перенести эту информацию в базу данных, учитывая, что теги будут влиять на запрос MySQL, а удаление любых тегов ухудшит отображение указанной информации на другой странице?

Я знаюо strip_tags и аналогичных функциях PHP, но моя проблема не в PHP, а в входе в базу данных с помощью MySQL, любой "или" или; он прервет запрос и удалит эти теги, прежде чем ввод уберет какие-либо улучшения форматапользователь сделал.

Я также предполагаю, что если я использую mysql_real_escape_string, мне нужно будет убрать косые черты, прежде чем я отобразлю данные - и это также уберет все косые черты из тегов закрытия:,и т.д.

Ответы [ 2 ]

1 голос
/ 25 августа 2010

Вам необходимо экранировать значение перед тем, как вставить его в оператор SQL. Если вы используете расширение mysql, вы используете mysql_real_escape_string для этого:

$text = mysql_real_escape_string($_POST['text']);

Он экранирует символы, такие как кавычки, поэтому вы можете безопасно вставить значение в базу данных.

0 голосов
/ 25 августа 2010

Посмотрите на это:

http://php.net/manual/en/function.mysql-real-escape-string.php

// Query
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
            mysql_real_escape_string($user),
            mysql_real_escape_string($password));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...