anonymous@RULINUX.NET~# Last login: 2024-12-25 22:40:17
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

перекодировка данных в POST-запросе (apache)

Строка "тест" в POST запросе выглядит как:

    %D1%82%D0%B5%D1%81%D1%82
Нужно привести все это в удобоваримый вид для select'а типа:
  1.  SELECT * FROM SomeTeable
  2.  WHERE SomeColumn LIKE '%тест%'
  3.  
Это решаемо штатными средствами apache + mysql? Или таки городить свой перекодировщик?

xenom(*) (2009-11-01 14:48:00)

Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.1.4) Gecko/20091028 Ubuntu/9.10 (karmic) Firefox/3.5.4

[Ответить на это сообщение]
[#] [Добавить метку] [Редактировать] Ответ на: перекодировка данных в POST-запросе (apache) от xenom 2009-11-01 14:48:00
avatar
Скрыть

Re: перекодировка данных в POST-запросе (apache)

В POST запросе где? Тебе библиотека какая-то отдаёт значение юникодной строки в таком виде?

> для select'а типа:
Про селекты такого типа тебе Тюксоид теперь много чего может рассказать :о)

HEBECTb_KTO(*)(2009-11-01 15:21:22)

[#] [Добавить метку] [Редактировать] Ответ на: Re: перекодировка данных в POST-запросе (apache) от HEBECTb_KTO 2009-11-01 15:21:22
avatar
Скрыть

Re: перекодировка данных в POST-запросе (apache)

>В POST запросе где?
Из уеб формы

xenom(*)(2009-11-01 15:40:28)

Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.1.4) Gecko/20091028 Ubuntu/9.10 (karmic) Firefox/3.5.4
[#] [Добавить метку] [Редактировать] Ответ на: перекодировка данных в POST-запросе (apache) от xenom 2009-11-01 14:48:00
avatar
Скрыть

Re: перекодировка данных в POST-запросе (apache)

Отбой. Нашелся штатный перекодировщик в cgicc. form_urldecode(const std::string& src) Предполагаю, что в похапэ подобный трабл фиксится, подобной же функцией,да?

xenom(*)(2009-11-01 16:37:02)

Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.1.4) Gecko/20091028 Ubuntu/9.10 (karmic) Firefox/3.5.4
avatar
Скрыть

Re: перекодировка данных в POST-запросе (apache)

Чота ты пиздишь :)

    posttest.php
  1.  <?php
  2.   header('Content-Type: text/html; charset="UTF-8"');
  3.  ?>
  4.  <html><body>
  5.  
  6.  <?php
  7.   # are values presented as normal strings?
  8.   if($_POST["inpText"] === 'тест') print 'inpText === "тест"<br/>';
  9.   if($_POST["inpArea"] === 'тест') print 'inpArea === "тест"<br/>';
  10.   # dump strings to see is there characters like %D1%82%D0%B5%D1%81%D1%82 or not
  11.   file_put_contents('dump.txt', "> ".$_POST['inpText']." ". $_POST['inpArea']."\n" , FILE_APPEND);
  12.  ?>
  13.  
  14.  <form method="POST" action="posttest.php">
  15.  <input type="text" value="<?php print($_POST["inpText"]) ?>" name="inpText" />
  16.  <textarea name="inpArea"><?php print($_POST["inpArea"]) ?></textarea>
  17.  <input type="submit" />
  18.  </form>
  19.  
  20.  </body></html>
  21.  

HEBECTb_KTO(*)(2009-11-01 17:01:09)

[#] [Добавить метку] [Редактировать] Ответ на: Re: перекодировка данных в POST-запросе (apache) от HEBECTb_KTO 2009-11-01 17:01:09
avatar
Скрыть

Re: перекодировка данных в POST-запросе (apache)

Вобщем, выше, я имел в виду, что у меня строка "текст" в пыхе появляется в форме нормальной строки, тестовый пример приведён. То, что тебе приходится применять какие-то конверторы - это странно и говорит как минимум о том, что условия возникновения проблема недостаточно чётко определены.

HEBECTb_KTO(*)(2009-11-02 03:58:48)

[#] [Добавить метку] [Редактировать] Ответ на: Re: перекодировка данных в POST-запросе (apache) от HEBECTb_KTO 2009-11-02 03:58:48
avatar
Скрыть

Re: перекодировка данных в POST-запросе (apache)

Подозреваю что тот самый, некий, конвертер и вызывается из file_put_contents, описание:  http://php.net/manual/en/function.file-put-contents.php, как бы намекает...

"FILE_TEXT data is written in text mode. If unicode semantics are enabled, the default encoding is UTF-8."

xenom(*)(2009-11-02 15:41:47)

Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.1.4) Gecko/20091028 Ubuntu/9.10 (karmic) Firefox/3.5.4
avatar
Скрыть

Re: перекодировка данных в POST-запросе (apache)

Так и "%D1%82%D0%B5%D1%81%D1%82" и "тест" - это строки. Если в переменной у тебя написано "%D1%82%D0%B5%D1%81%D1%82" - то в файл оно и запишется. Строка же. При том, что в ASCII, что в UTF-8 выглядеть у тебя эта строка будет одинаково, поскольку символы латинские.

Если сравнения у тебя срабатывают и/или в файл пишется "тест" - смотри что у тебя неправильно между базой и пыхом. А может твоя смотрелка базы не умеет юникод и показывает такую херню?

HEBECTb_KTO(*)(2009-11-02 16:28:06)

[#] [Добавить метку] [Редактировать] Ответ на: Re: перекодировка данных в POST-запросе (apache) от HEBECTb_KTO 2009-11-02 16:28:06
avatar
Скрыть

Re: перекодировка данных в POST-запросе (apache)

>Если сравнения у тебя срабатывают и/или в файл пишется "тест" - смотри что у тебя неправильно между базой и пыхом.
Нет, не пишется - строки разные же, причем, что на выходе из бровзера, что после обработки конвертором вызываемом из file_put_contents.

>А может твоя смотрелка базы не умеет юникод и показывает такую херню?
Уже умеет ). Просто разница в том, что в твоем примере вызов декодера по дефолту, а моем случае нужно явно прогонять строку через функцию. Tnx, за прояснение ситуации.

xenom(*)(2009-11-02 19:07:32)

Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.1.4) Gecko/20091028 Ubuntu/9.10 (karmic) Firefox/3.5.4
Этот тред читают 2 пользователя:
Анонимных: 2
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!