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 адресът трябва да бъде 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