зацикливание в Chrome при редиректе (PHP - JS)

233
14 марта 2017, 12:28

Проблема: периодически появляется зацикливание в СHROME. Есть страница поиска на сайте. При вводе пользователем символов на латинице идет их транслитация, т.е перевод на русс-укр символы. В portoble CHROME идет зацикливание и иногда в обычном Chrome. В FF IE работает нормально. В чем может быть причина? Код: (файл - html, кодировка 1251)

<?php 
preg_match_all("/[a-zA-Z]/",$search_sp, $out);
if( (count($out[0]) > 0) && (strlen($search_sp) > 3)   ){
    $trans_sph = translitSph(strtolower($search_sp), $lng);
    echo '<script> window.location.href = "' . SITEURL . '/search/?search=' . urlencode($trans_sph) . '" </script>';
}
?>
/// html html .................
<?php
function translitSph($search_sp,$lng){
    if($lng == 1){
    $translit = array(
                    "q"=>"й", "w"=>"ц", "e"=>"у", "r"=>"к", 
                    "t"=>"е", "y"=>"н", "u"=>"г", "i"=>"ш", "o"=>"щ", 
                    "p"=>"з", "["=>"х", "]"=>"ъ", "a"=>"ф", "s"=>"ы", 
                    "d"=>"в", "f"=>"а", "g"=>"п", "h"=>"р", "j"=>"о", 
                    "k"=>"л", "l"=>"д", ";"=>"ж", "'"=>"э", "z"=>"я", 
                    "x"=>"ч", "c"=>"с", "v"=>"м", "b"=>"и", "n"=>"т", 
                    "m"=>"ь", ","=>"б", "."=>"ю"
                    );
    }else {
    $translit = array(
                    "q"=>"й", "w"=>"ц", "e"=>"у", "r"=>"к", 
                    "t"=>"е", "y"=>"н", "u"=>"г", "i"=>"ш", "o"=>"щ", 
                    "p"=>"з", "["=>"х", "]"=>"ї", "a"=>"ф", "s"=>"і", 
                    "d"=>"в", "f"=>"а", "g"=>"п", "h"=>"р", "j"=>"о", 
                    "k"=>"л", "l"=>"д", ";"=>"ж", "'"=>"є", "z"=>"я", 
                    "x"=>"ч", "c"=>"с", "v"=>"м", "b"=>"и", "n"=>"т", 
                    "m"=>"ь", ","=>"б", "."=>"ю", "\\"=>"ґ"
                    );
    }
    $word = strtr($search_sp, $translit);
    //return $word = iconv('UTF-8', 'windows-1251',$word);
    return $word ;
}
?>

Итог: Входящий результат : ghbdtn;Ожидаемый: привет; Результат : привет (IE, Opera, FF, Chrome) Результат в portable Chrome : зацикливание; While trying to retrieve the URL: test.com/search/?search=%2525252525252525252525252525252525.‌​..........

READ ALSO
Резиновая шапка с помощью flexbox

Резиновая шапка с помощью flexbox

Нужно сделать шапку, чтобы при любом разрешении экрана расстояние между элементами было одинаковымЯ решил делать с помощью flex (Может есть...

237
C# WinForms. Бесконечный длинны компонент

C# WinForms. Бесконечный длинны компонент

Опишу идею: Допустим есть RichTextBoxТуда можно писать сколько угодно строк, и по мере роста строк, будет расти ScrollBar компонента

295
Генерация ссылки ASP.NET MVC

Генерация ссылки ASP.NET MVC

Добрый вечер

351