JFactory :: getApplication() - > redirect()转换&到&

时间:2016-08-05 23:09:41

标签: joomla3.0

当使用var date = PropertiesService.getScriptProperties().getProperty('startTime'); var dateObj = new Date(date); // create the Date Object var event = CalendarApp.getCalendarById('xxxxxo@group.calendar.google.com'); var event2 = event.createAllDayEvent(title, dateObj); JFactory::getApplication()->redirect()的路由以及返回参数时,我在Joomla 3.6.2中遇到了问题。

代码看起来像这样。

index.php?option=com_users&view=login

$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=。添加了2个空格,因此不会在堆栈中进行转换 这导致我的页面无法加载。

有什么想法吗?

由于

2 个答案:

答案 0 :(得分:2)

如果您使用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:)

中找到

问候

答案 1 :(得分:0)

更改此

$uri = urlencode(base64_encode(JURI::getInstance()->toString()));

$uri = base64_encode(JURI::getInstance()->toString());

不要使用urlencode