我正在使用Joomla! 3.3,我的实际网址是这样的:
my_domain.com/component/newsletter/unsubscribe/email-domain.com/25
我的Component的router.php:
function newsletterBuildRoute(&$query) {
$segments = array();
$segments[] = $query['method'];
$segments[] = $query['email'];
$segments[] = $query['id'];
unset($query['method']);
unset($query['email']);
unset($query['contact_id']);
return $segments;
}
function newsletterParseRoute($segments) {
$vars = array();
$vars['method'] = $segments[0];
$vars['email'] = $segments[1];
$vars['contact_id'] = $segments[2];
return $vars;
}
但是当我尝试这个时:
echo JFactory::getApplication()->input->get('email');
我明白了:
emaildomain.com // '@' is stripped
此外,当我在网址中添加 任何 非英语字符时,它也会被删除。
为什么会发生这种情况?
P.S :我在全局配置中将unicode别名设置为yes
答案 0 :(得分:1)
如果您参考JInput的Joomla文档,您将看到有一些过滤器被添加为参数:
http://docs.joomla.org/Retrieving_request_data_using_JInput
所以您可以尝试以下内容:
echo JFactory::getApplication()->input->get('email', null, 'RAW');
我使用null
作为第二个参数,它应该是默认值。