Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите с фильтрацией пожалуйста.
 
 автор: BlueWolf   (10.04.2013 в 16:44)   письмо автору
 
 

У меня сейчас фильтрация комментариев такая:
$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']);


Вот так у меня происходит фильтрация. Прошу совета как улучшить мой код. Например, при вводе
"Текст"
на сайт выводиться
\"Текст\"

  Ответить  
 
 автор: mister_pipin   (10.04.2013 в 16:56)   письмо автору
 
   для: BlueWolf   (10.04.2013 в 16:44)
 

Комментируйте это

//$text=htmlspecialchars($text);


а во время вывода используйте эту функцию

echo htmlspecialchars($textcom);

  Ответить  
 
 автор: BlueWolf   (10.04.2013 в 17:01)   письмо автору
 
   для: mister_pipin   (10.04.2013 в 16:56)
 

$text=htmlspecialchars($text);

Вставлю перед добавлением в базу чтобы туда не проникли джава скрипты, которые смогут сработать в phpMyAdmin.

  Ответить  
 
 автор: mister_pipin   (10.04.2013 в 17:12)   письмо автору
 
   для: BlueWolf   (10.04.2013 в 17:01)
 

Вы это уже сделали финкцией
mysql_real_escape_string

  Ответить  
 
 автор: psychomc   (10.04.2013 в 17:33)   письмо автору
 
   для: BlueWolf   (10.04.2013 в 17:01)
 

О__о, думаете разработчики phpmyadmin об этом не позаботились?
p.s посмотрите что возвращает get_magic_quotes_gpc, должно быть false

  Ответить  
 
 автор: Jovidon   (10.04.2013 в 18:06)   письмо автору
 
   для: 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);
        }
    }
?>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования