JFactory::getApplication()->redirect() 将 & 转换为 &
JFactory::getApplication()->redirect() convert & to &
我在 Joomla 3.6.2 中使用 JFactory::getApplication()->redirect()
和路由 index.php?option=com_users&view=login
以及 return 参数时遇到问题。
代码如下所示。
$uri = urlencode(base64_encode(JURI::getInstance()->toString()));
JFactory::getApplication()->redirect(
JRoute::_('index.php?option=com_users&view=login&return='. $uri),
JText::_("YOU_MUST_BE_LOGGED_IN_TO_ACCESS_THIS_CONTENT", 'com_portail')
);
其中 $uri
会是这样的:
aHR0cDovL2xvY2FsaG9zdC9wb3J0YWlsL2luZGV4LnBocD9vcHRpb249Y29tX3BvcnRhaWw=
用这个方法我被重定向到类似的东西:
http://localhost/portail/index.php/component/users/?view=login& amp;return=aHR0cDovL2xvY2FsaG9zdC9wb3J0YWlsL2luZGV4LnBocD9vcHRpb249Y29tX3BvcnRhaWw=
特别
注意 & amp;
。添加了 2 个空格,因此它不会在堆栈中转换。
这导致我的页面无法加载。
有什么想法吗?
谢谢
改变这个
$uri = urlencode(base64_encode(JURI::getInstance()->toString()));
到
$uri = base64_encode(JURI::getInstance()->toString());
不要使用 urlencode
。
如果您使用 JRoute
,请将第二个参数设置为 false
,它应该可以工作。
所以你的代码应该看起来像这样
JFactory::getApplication()->redirect(
JRoute::_('index.php?option=com_users&view=login&return='. $uri, false),
JText::_("YOU_MUST_BE_LOGGED_IN_TO_ACCESS_THIS_CONTENT", 'com_portail')
);
应在 JRoute-Docs 中找到说明 :)
问候
我在 Joomla 3.6.2 中使用 JFactory::getApplication()->redirect()
和路由 index.php?option=com_users&view=login
以及 return 参数时遇到问题。
代码如下所示。
$uri = urlencode(base64_encode(JURI::getInstance()->toString()));
JFactory::getApplication()->redirect(
JRoute::_('index.php?option=com_users&view=login&return='. $uri),
JText::_("YOU_MUST_BE_LOGGED_IN_TO_ACCESS_THIS_CONTENT", 'com_portail')
);
其中 $uri
会是这样的:
aHR0cDovL2xvY2FsaG9zdC9wb3J0YWlsL2luZGV4LnBocD9vcHRpb249Y29tX3BvcnRhaWw=
用这个方法我被重定向到类似的东西:
http://localhost/portail/index.php/component/users/?view=login& amp;return=aHR0cDovL2xvY2FsaG9zdC9wb3J0YWlsL2luZGV4LnBocD9vcHRpb249Y29tX3BvcnRhaWw=
特别
注意 & amp;
。添加了 2 个空格,因此它不会在堆栈中转换。
这导致我的页面无法加载。
有什么想法吗?
谢谢
改变这个
$uri = urlencode(base64_encode(JURI::getInstance()->toString()));
到
$uri = base64_encode(JURI::getInstance()->toString());
不要使用 urlencode
。
如果您使用 JRoute
,请将第二个参数设置为 false
,它应该可以工作。
所以你的代码应该看起来像这样
JFactory::getApplication()->redirect(
JRoute::_('index.php?option=com_users&view=login&return='. $uri, false),
JText::_("YOU_MUST_BE_LOGGED_IN_TO_ACCESS_THIS_CONTENT", 'com_portail')
);
应在 JRoute-Docs 中找到说明 :)
问候