我需要在Joomla中创建一个注销按钮,我的意思是,用户通常会进入会话,但必须按下我创建的按钮才能关闭这个会话,我知道如何检查是否有用户进入了会话,我也知道如何显示按钮,但我不知道如何使该按钮关闭实际的用户会话(注销)。
这是我的基本代码:
<?php $user =& JFactory::getUser(); ?>
<?php if ( ($user->id)==0 ) : ?>
//***code for not opened session***
<?php else : ?>
<form id="form1" name="form1" method="post" action="">
<input type="button" name="button" id="button" value="Close Session" />
</form>
<?php endif ?>
如何制作关闭joomla2.5会话的按钮,我查看了API页面,但没有找到。
要创建注销按钮,可以使用类"button"创建一个链接。
在Joomla>1.7(也是2.5.x)中,您需要JUtility::getToken()部分才能成功登录:使用可选的"返回"部分将用户重定向回单击按钮时用户所在的页面
<a class="button" href="<?php echo JRoute::_('index.php?option=com_users&task=user.logout&'. JUtility::getToken().'=1'); ?>">
Logout
</a>
如果您想重定向回用户单击注销按钮时所在的页面,请添加一个base64编码的返回参数:
<a class="button" href="<?php echo JRoute::_('index.php?option=com_users&task=user.logout&'. JUtility::getToken().'=1&return='.base64_encode(JURI::current())); ?>">
Logout
</a>
正确的链接实际上是
JRoute::_('index.php?option=com_users&task=user.logout&'. JUtility::getToken() .'=1');
这也适用于joomla 2.5。我用@Beatniak代码中的$_SERVER['REQUEST_URI']交换了JURI::current()
<a class="button" href="<?php echo JRoute::_('index.php?option=com_users&task=user.logout&'. JUtility::getToken().'=1&return='.base64_encode($_SERVER['REQUEST_URI'])); ?>">
Logout
</a>
u也可以尝试Joomla 2.5
<a href="index.php?option=com_users&task=user.logout&<?php echo JUtility::getToken(); ?>=1">
<input type="button" name="Submit" class="button" value="Logout">
</a>
对我来说很好
使用此链接-
http://www.domain.com/index.php?index.php?option=com_user&task=user.logout&token=<?php echo JUtility::getToken(); ?>
链接到php页面
<a href="/link.php">Sign Out</a>
在php页面上,只需结束会话,然后重定向到一个新页面。
<?php
session_destroy(); //session is now over
header( 'Location: http://www.yoursite.com/welcomepage.php' ) ; //relink to a page, with user logged out
?>
用户现在已注销,并重定向到欢迎页面
使用Joomla 2.5,您需要制作一个名为"注销"的新菜单项,并选择菜单类型作为用户管理器-登录表单。
通过这样做,如果用户已经登录,那么这将把他们带到一个带有注销按钮的页面,而不是登录表单
此外,如果您将访问权限设置为仅为注册用户显示此注销菜单项。
这是一个非常简单的解决方案,无需任何编码。实际上,用户管理器应该有一个菜单项选项-注销。