PHP Fat Free Framework: сбой, когда параметры GET содержат URL-адрес

Я использую Fat Free Framework и хочу обработать входящий запрос, например: http://example.com/api/method/?user_id=1&url=http://newsite.com

Я использую метод F3::route для обработки запросов GET к этому методу, но получаю следующую ошибку:

parse_url(/method?user_id=1&url=http://newsite.com): Unable to parse URL

Я думаю, что отследил проблему с функцией PHP parse_url(), которая отказывается относительные URL-адреса.

Любые идеи, как я могу заставить F3 правильно обрабатывать URL-адреса в параметрах запроса GET?


person lubar    schedule 06.12.2012    source источник
comment
URL-адрес должен быть закодирован, то есть http:// должен быть http:%2F%2F.   -  person Marc B    schedule 07.12.2012


Ответы (2)


Я уже сталкивался с этой проблемой. Если у вас нет контроля над входящим URL-адресом, который не кодируется в URL-адресе, вы можете сделать это как грязный хак перед запуском F3, чтобы избавиться от косых черт в аргументе:

$_SERVER['REQUEST_URI'] = str_replace('http://', 'http:', $_SERVER['REQUEST_URI']);
person Nate    schedule 06.12.2012
comment
это грязный хак... но я возьму его! - person lubar; 07.12.2012

почему бы не упростить и не использовать urlencode('http://www.google.com');???

person Mauricio Wolff    schedule 18.03.2013