#1 RX pharmacy affiliate program!

CodeIgniter - точка в строке запроса

января 13, 2009 on 6:49 пп | In php кодинг |

На протяжении нескольких проектов которые я программирую с помощью CI у меня приключалась одна и таже беда – я передаю через адресную строку что-то с точкой (например, file.zip) , а в переменную мне приходит что-то с подчеркиванием (т.е. file_zip). Это очень плохо, т.к. не во всех случаях можно произвести корректную обратную замену – например если я послал file_1.zip, то получу file_1_zip, заменяем “_” на “.” и получаем file.1.zip – очень плохо

Сегодня я решил окончательно взяться за эту проблему. Все это время я думал что проблема в CI, однако оказалось что никакой “не логичности” нет. В своих приложениях я использую .htaccess такого вида:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [L]

Т.е. CI видит всю строку запроса как 1 переменную массива $_GET без значения (как единственный ключ массива $_GET), плох тот момент что все точки и пробелы в ключах массива $_GET PHP заменяет на нижнее подчеркивание. Отсюда и такой печальный эффект. Исправить ситуацию можно если в config.php проекта сменить параметр uri_protocol:

$config['uri_protocol'] = “REQUEST_URI”;

Однако я встречал такие хостинги, где данный метод получения URI не работает, а нам ведь нужны универсальные решения – не так ли? Истина где-то рядом…

No Comments yet »

RSS лента комментариев к этой записи. TrackBack URI

Оставить комментарий

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by WordPress with design by Dreamaker.
Entries and comments feeds. Valid XHTML and CSS. ^Top^