Как создать кнопку для закрытия активного сеанса в Joomla 2.5 - PullRequest
2 голосов
/ 12 марта 2012

Мне нужно создать кнопку для выхода из 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 ?>

Как заставить эту кнопку закрывать сеанс joomla 2.5, я проверил страницу API, но не нашел ее.

Ответы [ 8 ]

7 голосов
/ 13 ноября 2012

Чтобы создать кнопку выхода из системы, вы можете создать ссылку с классом «кнопка».

В Joomla> 1.7 (также 2.5.x) вам нужна часть JUtility :: getToken () для успешного входа в систему: используйте дополнительную часть «return» для перенаправления пользователя обратно на страницу, на которой он находился при нажатии. кнопка

<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>
4 голосов
/ 20 июля 2012

правильная ссылка на самом деле

JRoute::_('index.php?option=com_users&task=user.logout&'. JUtility::getToken() .'=1');
1 голос
/ 23 января 2014

вы можете попробовать это также для 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>

хорошо работает для меня

1 голос
/ 04 августа 2013

Это также работает для Joomla 2.5.Я поменял JURI :: current () на $ _SERVER ['REQUEST_URI'] из кода @Beatniak

<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>
0 голосов
/ 17 мая 2013

В Joomla 2.5 вам нужно создать новый пункт меню под названием Выход из системы и выбрать тип меню, который будет «Менеджер пользователей - Форма входа».

Делая это, если пользователь вошел в систему, он переместится на страницу с кнопкой выхода из системы вместо формы входа в систему.

Также, если вы установите права доступа, чтобы отображать этот пункт меню выхода только для зарегистрированных пользователей.

Это было очень простое решение без всякого знания кодирования. Действительно должен быть пункт меню для менеджера пользователей - выход из системы.

0 голосов
/ 07 февраля 2013

см. Эту ссылку http://codefresh.wordpress.com/2011/10/22/log-out-link-in-joomla/. вы получите URL для выхода из системы текущего пользователя.

0 голосов
/ 13 марта 2012

Используйте эту ссылку -

http://www.domain.com/index.php?index.php?option=com_user&task=user.logout&token=<?php echo JUtility::getToken(); ?>
0 голосов
/ 12 марта 2012

Ссылка на страницу 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

?>

Пользователь вышел из системы иперенаправлено на страницу приветствия

...