Как сделать вход в аккаунт юзера из-под админского акка на сайте?

Тема в разделе "Как сделать...", создана пользователем verfaa, 27 сен 2012.

  1. verfaa

    verfaa

    Регистр.:
    29 янв 2007
    Сообщения:
    375
    Симпатии:
    41
    Есть сайт с базой пользователей и админом.
    Нужно сделать для админского акка кнопку "войти в аккаунт юзера", чтобы при при клике по ней осуществлялся вход в аккаунт юзера и в случае, если админ зашёл в другой акк, отображать кнопку "вернутся в админский акк". Как реализовать данный функционал на php? Естественно, для админа есть полный доступ к бд. Я так понимаю, нужно с сессиями колдовать)
    Помогите пожалуйста реализовать подобный функционал на сайте.

    PS. При логине юзера на сайт в таблицу active_sessions добавляется сессия вида 10qomnn3701hdzo85aocibsod0, id этой сессии, ip_address юзера и некоторая другая информация.
     
  2. SiZE

    SiZE Постоялец

    Регистр.:
    31 янв 2010
    Сообщения:
    51
    Симпатии:
    10
    Добавь к сессии пользователя флаг is_admin и admin_id.
     
  3. NDK13

    NDK13 Создатель

    Регистр.:
    31 авг 2012
    Сообщения:
    36
    Симпатии:
    14
    Писать в сессию для админа доп.массив. Например если массив в сессии при авторизации для юзера:
    Код:
    $_SESSION["user_id"]=11;
    $_SESSION["user_login"]="Vasya";
    Для админа:
    Код:
    $_SESSION["user_id"]=1;
    $_SESSION["user_login"]="Admin";
    А для админа когда он входит под этим юзером сделать
    Код:
    $_SESSION["user_id"]=11;
    $_SESSION["user_login"]="Vasya";
     
    $_SESSION["_restore_session"]["user_id"]=1;
    $_SESSION["_restore_session"]["user_login"]="Admin";
    И при если задан массив $_SESSION["_restore_session"] отображать ссылку, при переходе по которой сделать замену
    Код:
    $_SESSION = $_SESSION["_restore_session"];
    Для начала надо сделать
    Код:
    var_dump($_SESSION);
    когда уже произошла авторизация и посмотреть что именно хранится в самой сессии, а не в таблице.
     
  4. verfaa

    verfaa

    Регистр.:
    29 янв 2007
    Сообщения:
    375
    Симпатии:
    41
    Сделал для обычного юзера после входа в акк
    Код:
    var_dump($_SESSION);
    на странице homepage.php вывело только
    Код:
    array(2) {
      ["captcha_keystring"]=>
      string(4) "vtd5"
      ["language_cd"]=>
      int(2)
    }
    авторизацию юзеров сделана как в датинг про 2009