Urlencode, символ "%3f" (вопрос) и формирование $_GET

ivankin

Новичок
Urlencode, символ "%3f" (вопрос) и формирование $_GET

URL на проекте формируется так: site.com/folder/name?id=X. В name идет urlencode(name).

В результате для name, которое содержит "?" получается следующий URL: site.com/folder/Example%3fname?id=X.
В этом случае в массиве $_GET наблюдается Array ([name] =>).

Как бороться с тем, чтобы PHP при формировании $_GET пропускало %3f и начинало с "правильного" вопроса?
 

DiMA

php.spb.ru
Команда форума
если ты не хочешь, чтобы URL (часть "name?id") не кодировалась.... (барабанная дробь).... НЕ КОДИРУЙ ЕЕ!

а кодируй только "Х"
 

Фанат

oncle terrible
Команда форума
не. тут, как я понял, нужно двойное кодирование.
тупые стандарты.

-~{}~ 10.06.09 16:52:

но вообще, вопросы в name - это жесть.
 

ivankin

Новичок
Автор оригинала: *****

но вообще, вопросы в name - это жесть.
Предположим, что там название песни или фильма. Вопрос в названии вполне возможен.

-~{}~ 10.06.09 16:59:

Автор оригинала: DiMA
если ты не хочешь, чтобы URL (часть "name?id") не кодировалась.... (барабанная дробь).... НЕ КОДИРУЙ ЕЕ!

а кодируй только "Х"
Ну будет у меня /folder/example?name?id=200, конечно $_GET будет формироваться неправильно.
 

dimagolov

Новичок
*****, не уверен на счет двойного кодирования, но есть мысль, что там еще и mod_rewrite прикладывает руку к формированию окончательной ссылки, которая до PHP долетает.
 

Фанат

oncle terrible
Команда форума
ну, по аналогии с &
по стандартам ведь надо & писать вроде
 

ivankin

Новичок
Автор оригинала: dimagolov
*****, не уверен на счет двойного кодирования, но есть мысль, что там еще и mod_rewrite прикладывает руку к формированию окончательной ссылки, которая до PHP долетает.
mod_rewrite точно есть

RewriteEngine on
RewriteRule ^$ - [L]

RewriteCond %{REQUEST_URI} ^/([^\/]+)
RewriteCond %{DOCUMENT_ROOT}/%1.php -f
RewriteRule ^(.*)$ /%1.php/$1 [L]

/folder/ - это folder.php и есть.
 
Сверху