Возврат на главную после личного кабинета

#
Возврат на главную после личного кабинета
Добрый день!
может кто подскажет как сделать так, чтобы после выхода из личного кабинета сразу возвращалось на главную страницу. Предполагаю,что это где-то в динамических страницах,но не могу никак найти. Заранее благодарствую
#
Re: Возврат на главную после личного кабинета
1. В момент выхода передать get-параметр, означающий выход
2. В настройках динамической страницы, на которую у вас сейчас происходит выход, прописать проверку передачи этого параметра, и если он передан то вызвать переход на нужную вам вам страницу командой
Заказов не беру. Консультирую редко.
#
Re: Возврат на главную после личного кабинета
Переходит на страницу авторизации.Вот динамическая страницу.Куда мне все это прописать?

<?php
$error='';

$SiteUsers = & singleton('SiteUsers');

/* XSL шаблон для отображения списка элементов информационной системы */
$xsl_chamber = to_str($GLOBALS['LA']['xsl_chamber']);

/* Получаем идентификатор текущего пользователя */
$user_id = $SiteUsers->GetCurrentSiteUser();

/* Переходим в кабинет пользователя, если user авторизирован */
if ($user_id > 0)
{
   if (isset($_POST['apply']))
   {
      $path = './?rand='.rand(0, 99999);
      
      // Путь ниже может быть заменен на путь форума
      $user_path = $path;
      
      $bIsForum = false;

      /* Если user логинился с форума, то вернется на ту же страницу с которой логинился,
      в противном случае попадёт в кабинет пользователя */
      $forums_conference_id = to_int($_POST['conference_id']);
      if ($forums_conference_id > 0)
      {
         $forum = new Forums();
         $path = $forum->GetConferencePath($forums_conference_id);

         $forums_id = to_int($_POST['forums_id']);
         if ($forums_id > 0)
         {
            $bIsForum = true;
            
            $path .= "$forums_id/";

            $current_page = to_int($_POST['current_page']);
            if ($current_page > 1)
            {
               $path .=  "page-$current_page/";
            }

            $theme_id = to_int($_POST['theme_id']);
            if ($theme_id > 0)
            {
               $path .= "$theme_id/";

               $current_page_message = to_int($_POST['current_page_message']);
               if ($current_page_message > 1)
               {
                  $path .= "page-$current_page_message/";
               }
            }
         }
      }

      ?>
      <p style="text">Добро пожаловать!</p>
      <p>Вы можете продолжить работу в <b><a href='<?php echo $user_path?>'>кабинете пользователя</a></b><?php if ($bIsForum){echo " или вернуться в <b><a href='$path'>форум</a></b>";}?>.
      <br>
      Если Ваш браузер поддерживает автоматическое перенаправление через 5 секунд Вы <?php if ($bIsForum) {echo "вернетесь в форум";} else {echo "перейдете в кабинет пользователя";}?>.
      
      Если Вы не хотите ждать перейдите по соответствующей ссылке.</p>
      
      <script language="JavaScript" type="text/javascript">
      <!--
      function set_location()
      {
         location="<?php echo $path;?>";
      }
      setTimeout('set_location()', 5000);
      //-->
      </script>
      <?php
   }
   else
   {
      /* Формируем список меню кабинета */
      $external_propertys[$i = 0]['xml_name']='link';
      $external_propertys[$i]['value']=array(
      0 => array('xml_name' => 'link_address',
      'value' =>'registration/'),
      1 => array('xml_name' => 'link_name',
      'value' =>'Личная информация'),
      2 => array('xml_name' => 'link_url_image',
      'value' =>''));

      if (class_exists("Maillist"))
      {
         $external_propertys[++$i]['xml_name']='link';
         $external_propertys[$i]['value']=array(
         0 => array('xml_name' => 'link_address',
         'value' =>'maillist/'),
         1 => array('xml_name' => 'link_name',
         'value' =>'Почтовые рассылки'),
         2 => array('xml_name' => 'link_url_image',
         'value' =>''));
      }

      if (class_exists('shop'))
      {
         $external_propertys[++$i]['xml_name']='link';
         $external_propertys[$i]['value']=array(
         0 => array('xml_name' => 'link_address',
         'value' =>'order/'),
         1 => array('xml_name' => 'link_name',
         'value' =>'Мои заказы'),
         2 => array('xml_name' => 'link_url_image',
         'value' =>''));

         $affiliate = new affiliate();

         // Получим идентификаторы групп пользователей, в которой состоит текущий пользователь
         $site_users_groups_row = $SiteUsers->GetGroupsForUser($user_id);

         // Проверим, есть ли для текущей группы пользователей сайта доступные партнерские программы
         $affiliate_res = $affiliate->GetAllAffiliatePlans($site_users_groups_row);

         if ($affiliate_res && mysql_num_rows($affiliate_res) > 0)
         {
            $external_propertys[++$i]['xml_name']='link';
            $external_propertys[$i]['value']=array(
            0 => array('xml_name' => 'link_address',
            'value' =>'affiliats/'),
            1 => array('xml_name' => 'link_name',
            'value' =>'Партнерские программы'),
            2 => array('xml_name' => 'link_url_image',
            'value' =>'/images/partner_program.gif'));
         }
      }

      if (class_exists('SiteUsers'))
      {
         $external_propertys[++$i]['xml_name']='link';
         $external_propertys[$i]['value']=array(
         0 => array('xml_name' => 'link_address',
         'value' =>'account/'),
         1 => array('xml_name' => 'link_name',
         'value' =>'Лицевой счет'),
         2 => array('xml_name' => 'link_url_image',
         'value' =>''));
      }

      

      $external_propertys[++$i]['xml_name']='link';
      $external_propertys[$i]['value']=array(
      0 => array('xml_name' => 'link_address',
      'value' =>'?action=exit'),
      1 => array('xml_name' => 'link_name',
      'value' =>'Выход'),
      2 => array('xml_name' => 'link_url_image',
      'value' =>''));

      /* Получаем данные о пользователе */
      $user_row = $SiteUsers->GetListPrimaryProperties($user_id);

      if ($user_row)
      {
         /* Отображает кабинет пользователя */
         $SiteUsers->ShowUserOffice($xsl_chamber, $external_propertys);

         /* Применяем изменения подписки почтовых рассылок */
         if (isset($_POST['renewmaillist']))
         {
            $maillist = new Maillist();
            $maillist->RenewMaillist($user_id, $_POST);
         }
      }
      else
      {
         echo "Пользователь не найден!";
      }
   }
}
// Нажали кнопку войти
elseif (isset($_POST['apply']))
{
   $site_user_login = to_str($_POST['site_user_login']);

   // Получаем информацию о пользователе по логину
   $site_user_row = $SiteUsers->GetSiteUserByLogin($site_user_login);

   // Пользователь ранее не регистрировался
   if (!$site_user_row || $site_user_row['site_users_confirmation'] == 1)
   {
      $error = 'Пользователь с такими параметрами не зарегистрирован.';
   }
   // Пользователь ранее регистрировался, но его регистрация не подтверждена
   else
   {
      $error = 'Внимание! Регистрация Ваших данных не подтверждена.
      В Ваш адрес было отправлено письмо с информацией об активации.';

      $param_registration['site_user_id'] = $site_user_row['site_users_id'];
      $param_registration['xslname'] = 'ПисьмоПодтверждениеРегистрации';
      $param_registration['site_users_password'] = 'пароль, указанный Вами при регистрации';

      // Повторно отправляем пользователю данные для подтверждения регистрации
      $SiteUsers->SendRegistInf($param_registration);
   }
}

if ($user_id <= 0)
{
   ?>
   <h1>Личный кабинет</h1>
   <?php echo !empty($error) ? '<div id="error">'.$error.'</div>' : ''?>
   <form action="/users/" method="post">
   <p>Пользователь:
   <br /><input name="site_user_login" type="text" size="30" class="large_input" />
   </p>
   <p>Пароль:
   <br /><input name="site_user_password" type="password" size="30" class="large_input" />
   </p>
   <p>
   <input name="remember_me" id="remember_me" type="checkbox" /> <label for="remember_me">Запомнить меня на сайте.</label>
   </p>
   <p>
   <input name="apply" type="submit" value="Войти" class="large_input" />
   </p>
   </form>
   
   <p>Первый раз на сайте? &mdash; <a href="/users/registration/">Зарегистрируйтесь</a>!</p>

   <p>Забыли пароль? Мы можем его <a href="/users/restore_password/">восстановить</a>.</p>
   <?php
}
?>
#
Re: Возврат на главную после личного кабинета
Elshan, вы невнимательно читали мое сообщение:
Kotoff001 писал(а):
2. В настройках динамической страницы, на которую у вас сейчас происходит выход, прописать проверку

И еще, приводимый код нужно заключать в bb-тег "code", а то у вас уже какие-то смайлики нарисовались посреди ТДС

По существу:
В настройках ТДС, проверку можно прописать в самом начале, сразу после открывающего тега <?php
Если, например, GET-параметр, определяющий выход, будет у вас называться logout,
(то есть ссылка для выхода имеет вид http://www.yoursite.ru/users/?logout)
то код проверки может быть такой:

<?php
// проверка условия выхода пользователя
if (isset($_GET['logout'])) {
   // если пользователь вышел
   //переходим на главную
   header('Location: http://www.yoursite.ru/');
   // и завершаем скрипт.
   exit();
}

// ну а дальше идет остальной текст ТДС, без изменений.

Заказов не беру. Консультирую редко.
#
Re: Возврат на главную после личного кабинета
эхх..не помогло
после этого вообще хочешь выйти и остаешься на той же странице.
#
Re: Возврат на главную после личного кабинета
Ааа, черт, ступил.
В настройках ТДС "Пользователи сайта" уже есть обработчик выхода пользователя. Поэтому ссылку надо вернуть как было (/users/?action=exit), тот код, который я посоветовал выше - тоже убрать, а изменения внести в самом конце настроек ТДС:


// Пользователь выходит из кабинета
if (isset($_GET['action']) && $_GET['action']=='exit')
{
   // Отменяем авторизацию текущего пользователя
   $SiteUsers->UnsetCurrentSiteUser();
}

// Для страницы авторизации изменим TITLE
if ($SiteUsers->GetCurrentSiteUser() == 0)
{
   //переходим на главную
   header('Location: http://www.yoursite.ru/');

}
?>


Вот, это точно будет работать. Извините, что ввел вас в заблуждение.
Заказов не беру. Консультирую редко.
#
Re: Возврат на главную после личного кабинета
Работает!
Спасибо, Kotoff001!
#
Re: Возврат на главную после личного кабинета
Elshan, всегда пожалуйста
Заказов не беру. Консультирую редко.
#
Re: Возврат на главную после личного кабинета
Простите за офф, подскажите, а как после авторизации остаться на текущей страничке, т.е. на той, с которой логинился?
Безумие - как гравитация, стоит лишь немного подтолкнуть...
Авторизация