периоды преобразуются в подчеркивания - PullRequest
2 голосов
/ 18 мая 2011

Товарищи, у меня есть функция в контроллере codeigniter, которая принимает пару параметров, один из которых является адресом электронной почты.это называется вот так:

domain/path/mycontroller/myfunc/email@gmail.com/anotherparam  

то, что получает контроллер: email @ gmail_com

у меня разрешены точки и '@' в моей конфигурации CI:

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-@';  

и мой .htaccess выглядит следующим образом:

RewriteEngine On
RewriteBase /myapp/
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /myapp/index.php?/$1 [L]

Есть мысли о том, как я могу решить эту проблему?

спасибо

Ответы [ 2 ]

0 голосов
/ 27 мая 2011

Вы можете просто зашифровать адрес электронной почты в Base 64, а затем дешифровать, когда вы хотите его использовать:

base64_encode($email_address);
base64_decode($url_segment);

Это будет работать для любого текста, который вы хотите отправить по URL. Безопаснее и не ограничивается адресами электронной почты. Хотя создаст более длинный URL.

0 голосов
/ 18 мая 2011

На форуме CI за 2008 год найдена соответствующая запись:

http://codeigniter.com/forums/viewthread/94091/

Похоже, у некоторых людей была точно такая же проблема, и настройка $config['uri_protocol'] в config.php была решением.

/*
|--------------------------------------------------------------------------
| URI PROTOCOL
|--------------------------------------------------------------------------
|
| This item determines which server global should be used to retrieve the
| URI string.  The default setting of "AUTO" works for most servers.
| If your links do not seem to work, try one of the other delicious flavors:
|
| 'AUTO'            Default - auto detects
| 'PATH_INFO'        Uses the PATH_INFO
| 'QUERY_STRING'    Uses the QUERY_STRING
| 'REQUEST_URI'        Uses the REQUEST_URI
| 'ORIG_PATH_INFO'    Uses the ORIG_PATH_INFO
|
*/
$config['uri_protocol']    = "QUERY_STRING";

По крайней мере один человек сообщил, что значение QUERY_STRING решило их проблему. Если это не сработает, попробуйте один из восхитительных ароматов настроек.

Надеюсь, что это приведет вас на правильный путь к решению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...