Постраничный вывод и сохранение запроса

Platon_82

Новичок
Проблемы с кириллицей передавая данные методом GET

Как преоборазовывать кирилицу перед отправкой методом GET чтобы она не перекодировалась ?


Не знаю как сделать следующее:
Юзер ввел запрос нашло 1000 записей.
Вывожу страницы постраничного вывода. Как сделать так чтобы выбирая страницу скажем 5 мне передавалась переменная $query
 
добавить её к ссылкам на следующие страницы.
в переменной $query, надеюсь, у тебя не SQL запрос?
 
PHP:
RewriteRule ^search/([0-9]{1,3})/([\S]{1,100})/$ search.php?page=$1&query=$2 [QSA]

$page - номер страницы
$query - сам запрос

Если запрос вводится кирилицей - то при переходе на следующую страницу выводится вместо него абракадабра
 
очередной, блин, гений - поиск на ЧПУ.
сделать толком не может, а туда же. хочет быть святее папы римского.
 
Ну так типа красивее. Но проблема все равно остается что с ЧПУ что обычным способом.
Как с кириллицей быть чтобы она не перекодировалась?
 
вот именно, что остается.
то есть, постраничный вывод здесь не при чём.
как можно задавать не тот вопрос, который стоит на самом деле
 
кирилица, равно как и юникод, не разрешены в урле.
так что вся твоя красота идет лесом.
 
fast2111
http://phpclub.ru/talk/search.php?action=simplesearch&exactname=yes&forumchoice=-1&searchdate=-1&beforeafter=after&sortby=after&sortorder=descending&query=%E7%E0%F7%E5%EC

андестенд?

-~{}~ 11.04.08 12:12:

Platon_82, а это что, по-твоему?
В эксплорере, небось, галочка стоит - кодировать запрос в утф-8
 
все понял.
но потом-то "сам запрос" не передается.

>query - сам запрос
Запрос или параметр запроса?
 
fast2111
попробуй перечитать топик, понять все сам самостоятельно, и не задавать дурацких вопросов
 
PHP:
function unicod($str) {
    $conv=array();
    for($x=128;$x<=143;$x++) $conv[$x+112]=chr(209).chr($x);
    for($x=144;$x<=191;$x++) $conv[$x+48]=chr(208).chr($x);
    $conv[184]=chr(209).chr(145); #ё
    $conv[168]=chr(208).chr(129); #Ё
    $conv[179]=chr(209).chr(150); #і
    $conv[178]=chr(208).chr(134); #І
    $conv[191]=chr(209).chr(151); #ї
    $conv[175]=chr(208).chr(135); #ї
    $conv[186]=chr(209).chr(148); #є
    $conv[170]=chr(208).chr(132); #Є
    $conv[180]=chr(210).chr(145); #ґ
    $conv[165]=chr(210).chr(144); #Ґ
    $conv[184]=chr(209).chr(145); #Ґ
    $ar=str_split($str);
    foreach($ar as $b) if(isset($conv[ord($b)])) $nstr.=$conv[ord($b)]; else $nstr.=$b;
    return $nstr;
} 
function Utf8Win($str,$type="w")
    {
        static $conv='';
        if (!is_array($conv))
        {
            $conv = array();
            for($x=128;$x<=143;$x++)
            {
                $conv['u'][]=chr(209).chr($x);
                $conv['w'][]=chr($x+112);
            }
            for($x=144;$x<=191;$x++)
            {
                $conv['u'][]=chr(208).chr($x);
                $conv['w'][]=chr($x+48);
            }
            $conv['u'][]=chr(208).chr(129); // Ё
            $conv['w'][]=chr(168);
            $conv['u'][]=chr(209).chr(145); // ё
            $conv['w'][]=chr(184);
            $conv['u'][]=chr(208).chr(135); // Ї
            $conv['w'][]=chr(175);
            $conv['u'][]=chr(209).chr(151); // ї
            $conv['w'][]=chr(191);
            $conv['u'][]=chr(208).chr(134); // І
            $conv['w'][]=chr(178);
            $conv['u'][]=chr(209).chr(150); // і
            $conv['w'][]=chr(179);
            $conv['u'][]=chr(210).chr(144); // Ґ
            $conv['w'][]=chr(165);
            $conv['u'][]=chr(210).chr(145); // ґ
            $conv['w'][]=chr(180);
            $conv['u'][]=chr(208).chr(132); // Є
            $conv['w'][]=chr(170);
            $conv['u'][]=chr(209).chr(148); // є
            $conv['w'][]=chr(186);
            $conv['u'][]=chr(226).chr(132).chr(150); // №
            $conv['w'][]=chr(185);
        }
        if ($type == 'w') { return str_replace($conv['u'],$conv['w'],$str); }
        elseif ($type == 'u') { return str_replace($conv['w'], $conv['u'],$str); }
        else { return $str; }
    }
Проблема решилась вроде бы
 
Platon_82 кодировать надо перед формированием ссылки, а не после приема.
 
кодировать в утф а потом при приеме перекодировать в кириллицу, так?
 
Сверху