2011-12-01 98 views
4

我需要自定义组件中的方法。我需要做出不同的操作(删除用户和其他信息),然后以编程方式注销用户(不带按钮链接),我该如何实现这一目标?用joomla以编程方式注销

我试过在方法结束做到这一点:

$return = JRoute::_('index.php?option=com_users&task=user.logout', true); 
$this->setRedirect($return,$msg); 

但是,这给出了一个无效的令牌消息。

谢谢

+0

根据https://api.joomla.org/cms-3/classes/JApplication.html#method_logout,注销函数从4.0开始已被弃用。它仍然可用吗?如果没有,是否有人有替代解决方案? –

回答

13

什么Joomla版本你工作?如果是的Joomla 1.7,你可以在你的代码做到这一点:

$app = JFactory::getApplication(); 
$app->logout($user_id); 

其中$ user_id是要注销该用户的ID。如果您将其保留为空或不设置,则会注销正在执行请求的用户。 为Joomla 1.5,你可以用同样的方式,但在的Joomla 1.5有一个全局变量名为$主机保存应用程序的一个实例,所以你可以做:

global $mainframe; 
$mainframe->logout($user_id); 

我希望它帮助!

+0

完美,这是我正在寻找的解决方案,谢谢 – user1075778

+0

不赞成使用4.0 ... –

3
$app = JFactory::getApplication(); 
$app->logout(); 
-1

如果是Joomla 2.5您可以使用Joomla的默认登录模块(它也有一个注销按钮)。转到扩展>>模块管理器>>新建>>登录>>正确配置并保存。

+0

不能看到用户通过编程方式询问'不是通过按钮单击? –

+0

当然“不是通过按钮点击”,我指的配置页面提供了一种如何配置此事件的方式(因为用户希望注销删除用户)。 –

相关问题