URL кодировать входящий URL с помощью CI - PullRequest
1 голос
/ 26 декабря 2011

У меня есть контроллер, который принимает URL в качестве параметра.URL имеет косую черту и строку запроса, это выглядит примерно так:

http://example.com/foo?bar=baz&bar2=baz2

Проблема в том, что URL-адрес приходит в незашифрованном виде, и я никак не могуизмените это. (забыл упомянуть, что я МОГУ фактически кодировать URL-адрес перед этим, что, безусловно, меняет дело)

Я хочу кодировать URL-адрес до того, как он попадет на мой контроллер, а затемЯ хочу отобразить этот URL на странице.

Есть ли у codeigniter какие-либо встроенные методы или какое правило .htaccess мне нужно установить для обработки этого?

1 Ответ

1 голос
/ 26 декабря 2011

немного взломали и разобрались:

Что вы делаете, это кодируете URL как base64

base64_encode($uri);

и если вы получаете запрещенные символыв сообщении URI перейдите на application/config/config.php и установите $config['permitted_uri_chars'] для принятия проблемных символов.В моем случае мне нужно было включить = для моего параметра.

Конечный параметр конфигурации выглядит следующим образом:

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-='; //added = sign to permit to enable base64 encode

на стороне контроллера у меня просто есть echo base64_decode($url);

Таким образом, я могу передать практически любую строку в сегмент URL, и она работает.

Сегмент URL будет закодирован серией цифр и букв, переводимых в строку, в которой есть код URI..

:)

(PS Happy Hanukkah & Marry xMAS)


Благодаря этому вопросу за помощь

воспламенитель кода:: отправить URL как параметр?

...