如何在joomla 2.5中创建关闭活动会话的按钮


How to create a button to close active session in joomla 2.5

我需要在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,您需要制作一个名为"注销"的新菜单项,并选择菜单类型作为用户管理器-登录表单。

通过这样做,如果用户已经登录,那么这将把他们带到一个带有注销按钮的页面,而不是登录表单

此外,如果您将访问权限设置为仅为注册用户显示此注销菜单项。

这是一个非常简单的解决方案,无需任何编码。实际上,用户管理器应该有一个菜单项选项-注销。