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?
2 ответа
Решение
Я столкнулся с этой проблемой раньше. Если у вас нет контроля над входящим URL-адресом, который не кодируется в URL-адресе, вы можете сделать это как грязный хак до запуска F3, чтобы избавиться от косых черт в аргументе:
$_SERVER['REQUEST_URI'] = str_replace('http://', 'http:', $_SERVER['REQUEST_URI']);
Почему бы не упростить и не использовать urlencode('http://www.google.com');
???