PHP - Хранение текста в MySQL Database

Вам нужно изменить свое регулярное выражение, чтобы включить дополнительные пробелы перед This и <, тогда вы можете использовать атрибут groups:

some_match = re.match(r"\s*\#?\s*\w*\s*(\<)+\s*(?P<method>\w+)\s*(\>)+\w*", "# This <foo> truc")

some_match.groups()
('<', 'foo', '>')

some_match.groups(1)
'foo'
6
задан Tom 4 April 2009 в 06:42
поделиться

5 ответов

Вы не были должны HTML - кодировать данные при записи этого в datastorage - тот способ, которым Вы могли использовать свои данные также для чего-то еще (например, электронные письма, документы в формате PDF и так далее). Как Assaf, уже сказанный: это обязательно для предотвращения Внедрений SQL путем выхода из входа или использования параметризованных запросов на вставку.

Вы должны, нет, скажем, должен однако, HTML - кодирует Ваши данные при показе его на странице HTML! Это представит опасный HTML или код JavaScript, бесполезный, поскольку HTML-тэги, существующие в данных, не будут больше распознаваться как HTML-тэги браузером.

Процесс немного более сложен, когда Вы позволите пользователям отправлять данные с HTML-тэгами внутри. Затем необходимо пропустить выходное кодирование в пользу очистки входа, которая может быть произвольным комплексом в зависимости от потребностей (позволенный теги, например).

4
ответ дан 8 December 2019 в 14:47
поделиться

Используйте mysql_real_escape_string ():

$safetext = mysql_real_escape_string($_POST['text']);
$query = "INSERT INTO my_table (`my_field`) VALUES ('$safetext')";
mysql_query($query);

Это должно работать.

5
ответ дан 8 December 2019 в 14:47
поделиться

Следующее должно работать:

if (get_magic_quotes_gpc()) {
  $content = stripslashes($content);
}
$content = mysql_real_escape_string($content);

Если Ваш столбец является utf8, у Вас не должно быть проблем со специальными символами. После того как Вы отформатировали содержание правильно, можно подать его к mysql использование стандартных методов вставки.

3
ответ дан 8 December 2019 в 14:47
поделиться

Вы не должны кодировать его для хранения его в mysql.

Убедитесь, что Вы используете параметризованную команду вставки, для предотвращения Внедрения SQL.

3
ответ дан 8 December 2019 в 14:47
поделиться

Чтобы правильно сохранить пользовательский текст в дополнение к форматированию, все, что вам нужно сделать, это преобразовать все символы новой строки в разрывы с помощью nl2br ($ inputtext) . Сделайте это после фильтрации ввода.

1
ответ дан 8 December 2019 в 14:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: