|
|
|
| У меня сейчас фильтрация комментариев такая:
$text - это то, что написал пользователь
$text = mysql_real_escape_string(trim($_POST['text']));
|
Этим кодом я убрал пробелы вначале и в конце и обезопасил себя от инъекций
Теперь отфильтрую теги если пользователь их вставил
$text=htmlspecialchars($text);
|
Теперь переносим $text в базу данных
$sql_add=@mysql_query("INSERT INTO `comment` (text) VALUES ('$text')");
|
Теперь выводим комментарий на странице сайта.
$sql=mysql_query("SELECT * FROM `comment`");
while ($rowcom = mysql_fetch_assoc($sql)) {
$textcom=nl2br($rowcom['text']);
|
Вот так у меня происходит фильтрация. Прошу совета как улучшить мой код. Например, при вводе на сайт выводиться | |
|
|
|
|
|
|
|
для: BlueWolf
(10.04.2013 в 16:44)
| | Комментируйте это
//$text=htmlspecialchars($text);
|
а во время вывода используйте эту функцию
echo htmlspecialchars($textcom);
|
| |
|
|
|
|
|
|
|
для: mister_pipin
(10.04.2013 в 16:56)
| |
$text=htmlspecialchars($text);
|
Вставлю перед добавлением в базу чтобы туда не проникли джава скрипты, которые смогут сработать в phpMyAdmin. | |
|
|
|
|
|
|
|
для: BlueWolf
(10.04.2013 в 17:01)
| | Вы это уже сделали финкцией | |
|
|
|
|
|
|
|
для: BlueWolf
(10.04.2013 в 17:01)
| | О__о, думаете разработчики phpmyadmin об этом не позаботились?
p.s посмотрите что возвращает get_magic_quotes_gpc, должно быть false | |
|
|
|
|
|
|
|
для: BlueWolf
(10.04.2013 в 16:44)
| | я делаю так
<?php
$text = strip_tags($text);
// переносим в бд
$sql = "INSERT INTO `table`
VALUES('".mysql_escape_string($text)."')";
mysql_query($sql) or die(mysql_error());
// выводим комментарий
$sql = "SELECT *
FROM `table`";
$res = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($res) > 0)
{
while($com = mysql_fetch_array($res))
{
echo htmlspecialchars(stripslashes($com['text']), ENT_QUOTES);
}
}
?>
|
| |
|
|
|