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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: помогите в борьбе с краказяблами

Сообщения:  [1-10]    [11-20]  [21-22] 

 
 автор: Trianon   (24.06.2008 в 19:17)   письмо автору
 
   для: m@rchello   (24.06.2008 в 19:05)
 

определить критерий, который бы позволил отличить плохие слова от хороших.

   
 
 автор: m@rchello   (24.06.2008 в 19:05)   письмо автору
 
   для: Trianon   (24.06.2008 в 18:33)
 

>>но если я сам добавляю кракозябры, то само сабой эти же кракозябры и остаются ....
>
>Так а что Вы хотите?
>Вы добавляете слово - оно добавляется. Цензуре эти слова Ваш скрипт не подвергает.

это и так понятно ..... потому то я и спрашиваю как отследить символы!?=(

   
 
 автор: Trianon   (24.06.2008 в 18:33)   письмо автору
 
   для: m@rchello   (24.06.2008 в 14:07)
 

>Да header("Content-type: text/html ; charset=utf-8"); это есть .......
>Отладочный вывод уже делал ...... и когда я сам записи добавляю ...... всё работает норм и русские и английские символы ......

То есть всё работает.

>но если я сам добавляю кракозябры, то само сабой эти же кракозябры и остаются ....

Так а что Вы хотите?
Вы добавляете слово - оно добавляется. Цензуре эти слова Ваш скрипт не подвергает.

   
 
 автор: m@rchello   (24.06.2008 в 14:07)   письмо автору
 
   для: Trianon   (20.06.2008 в 19:51)
 

Да header("Content-type: text/html ; charset=utf-8"); это есть .......
Отладочный вывод уже делал ...... и когда я сам записи добавляю ...... всё работает норм и русские и английские символы ...... но если я сам добавляю кракозябры, то само сабой эти же кракозябры и остаются ....

А возможно ли отследить добавление кракозяблов?
Тоесть допустим разрешить добавление только русских (чистых), латинских символов знака "-" и цифр?

что касается SQL-injection, не досмотрел ...... закрыл mysql_escape_string()

   
 
 автор: Trianon   (20.06.2008 в 19:51)   письмо автору
 
   для: m@rchello   (20.06.2008 в 18:27)
 

Что не конвертируете - правильно.
Методика добавления у Вас крайне тормозная, но без особых ляпов.
Из-за отсутствия экранирования конечно существует нарушение работы на кавычках и обратных слэшах, уязвимость SQL-injection, (как минимум при выключенных magic quotes), но такой эффект, как у Вас, это всё давать не должно.
А если прямо перед добавлением влепить отладочный вывод:
        if (!mysql_num_rows($query)) 
        { 
            echo "New tag: $tag<br>\r\n";
            $sql = "INSERT INTO `m_tags` (`tag`) VALUES ('" . $tag . "')"; 

то в нем тоже кракозябры ползут?


Вы говорите, что страница с формой у Вас в utf-8.
Там стоит header("Content-type: text/html ; charset=utf-8"); ?

   
 
 автор: m@rchello   (20.06.2008 в 18:27)   письмо автору
 
   для: Trianon   (20.06.2008 в 17:42)
 

Конвертировать в utf-8 - нет не конвертирую.......

Страничка с формой в utf-8 ....... там всё в utf-8 ...... в форме поиска ОДНО поле search ....
Форма передаётся методом GET ......

принимаем данные


$search = @$_GET['search'];

$words = explode(' ', $search);

for($i=0;$i<count($words);$i++)
    add_tag($words[$i]);

function add_tag($tag) 


  if (strlen($tag)>=3 && strlen($tag)<=30) 
    { 

        $sql = "SELECT `id` FROM `m_tags` WHERE `tag`='" . $tag . "'"; 
        $query = mysql_query($sql) or die(mysql_error()); 
        if (!mysql_num_rows($query)) 
        { 
            $sql = "INSERT INTO `m_tags` (`tag`) VALUES ('" . $tag . "')"; 
            $query = mysql_query($sql) or die(mysql_error()); 
        } else 
        { 
            $sql = "UPDATE `m_tags` SET `rating`=(`rating`+1) WHERE `tag`='" . $tag . "'"; 
            $query = mysql_query($sql) or die(mysql_error()); 
        } 
    } 
}


вот так вот .....

   
 
 автор: Trianon   (20.06.2008 в 17:42)   письмо автору
 
   для: m@rchello   (20.06.2008 в 17:19)
 

В переменную $_GET['search'] текст попадает из поля формы некоторой страницы.
Эта страница (с формой) в кодировке utf-8?

[поправлено модератором]

   
 
 автор: mihdan   (20.06.2008 в 17:41)   письмо автору
 
   для: m@rchello   (20.06.2008 в 17:19)
 

$search = $_GET['search']; конвертируете в UTF-8???

   
 
 автор: m@rchello   (20.06.2008 в 17:19)   письмо автору
 
   для: Trianon   (19.06.2008 в 19:19)
 

$search = $_GET['search'];

   
 
 автор: Trianon   (19.06.2008 в 19:19)   письмо автору
 
   для: m@rchello   (19.06.2008 в 19:13)
 

а запрос-то откуда берем?

   

Сообщения:  [1-10]    [11-20]  [21-22] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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