Перед созданием новой темы, пожалуйста, ознакомьтесь с FAQ по LinkorCMS

Нужна правка для функции UFU, Help me

Супер пользователь
Сообщений: 125
В самом начале Index фала у меня вызов UfuInit(), в принципе как и оригинале было...

Вот функция

<?
function UfuInit( $Path ){<br />
    $_GET = false;<br />
    $Rules = UfuGetRules();<br />
    $search = array();<br />
    $replace = array();<br />
    foreach($Rules as $Rule){<br />
        if(preg_match_all('/^'.$Rule['pattern'].'$/u', $Path, $matches)){<br />
            foreach($matches as $i => $m){<br />
                $search[] = '$'.$i;<br />
                $replace[] = $m[0];<br />
            }<br />
            parse_str(str_replace($search, $replace, $Ru
le['params']), $Params);<br />
            $_GET = $Params;<br />
            break;<br />
        }<br />
    }<br />
}
?>
тут все просто, небольшие изменения от оригинала.
При запросе

<?
?ufu=plug/out/aHR0cDovL3d3dy5nbG9iYWxuYXBpLmNvbQ % 3D % 3D/ <- бробелы спец! поставил. форум заменяет на знак равно !
?>

$_GET остается со со значение false, хотя правило существует и вполне корректно!
Дело в = и подобных символах которые заменяются на %...
Че делать ?)

-- Изменено "Fort": 15.03.2016 23:54 --

-- Изменено "Fort": 15.03.2016 23:55 --
Супер пользователь
Сообщений: 125
Так. дело в самом патерне... Как делать правку ? разрешать все символы (.*) или только добавить % ?
Разработчик
Сообщений: 286
Что приходит в ufu и какой паттерн?
Супер пользователь
Сообщений: 125
Агний:
Что приходит в ufu и какой паттерн?

паттерны оригиналы

<?
([\pL_\-\.\ 0-9]+)
?>
.
приходят ссылки в base64, имеют знаки пунктуации , а именно знак процента, равно.
Нужен более расширенный вариант паттерна.
Что думаете по поводу

<?
([\w.[: punct:]]+)
?>


-- Изменено "Fort": 16.03.2016 23:25 --

-- Изменено "Fort": 16.03.2016 23:27 --

-- Изменено "Fort": 17.03.2016 00:12 --
Супер пользователь
Сообщений: 125
Я думаю нужно расширить диапазон сивволов для {str}, {ustr} И добавить еще типа "(.*), но что то исключить".
Вот я думаю чем максимально и безопасно можно расширить и что исключить в дополнительном.
Разработчик
Сообщений: 286
В base64 нет процента. И процентов там быть не должно, если они явно не были закодированы в ссылке, т.к. php декодирует url encoded параметры перед записью их в $_GET.

Сделайте так:
var_dump($_GET);
// ЧПУ
UfuInit();

-- Изменено "Агний": 18.03.2016 07:01 --
Супер пользователь
Сообщений: 125
Вы явно не понимаете о сем я говорю! Вопрос я уже решил переписав ЧПУ более гибко. А сейчас паттерн не допускает =.
Да и вообще нужно допускать больше сивволов таких как +%

П.с а процент он был в кодированной ссылке, там гет уже получал равно, тут я лишнее написал про него))
Гости не могут отвечать на темы. Войдите или Зарегистрируйтесь.
Здесь присутствуют
(пользователей: 0, гостей: 1)
Быстрый переход: