Подскажите по сессиям

Тема в разделе "PHP", создана пользователем barabula, 29 авг 2011.

Модераторы: latteo
  1. barabula

    barabula Нарушитель

    Регистр.:
    21 май 2009
    Сообщения:
    470
    Симпатии:
    77
    Вообщем есть простой скрипт с авторизацией, в нём используются куки и сессии. Сайт построен так, что если юзер заходит на index.php, то его перенаправляет на регистрацию, если нету сессии и куков, а если есть, то он должен перенаправить на последнюю страницу которую посещал юзер.
    Итак, вопрос: Как сделать так, что-б при входе на index.php скрипт перенаправит юзера именно на последнюю страницу которую он посетил( в том случае, если есть куки и(или) сессия.
     
  2. Miraage

    Miraage Angular/Laravel

    Регистр.:
    3 июн 2008
    Сообщения:
    230
    Симпатии:
    51
    1) session_set_cookie_params - выставить большой TTL для cookies
    2) хранить в сессии последнюю страницу, вроде $_SESSION['last_page'] = $_SERVER['REQUEST_URI']
    3) смотреть, если пользователь авторизован, сделать проверку по ключу аля first-hit и сделать редирект на $_SESSION['last_page']
    4) ...
    5) PROFIT
     
    barabula нравится это.
  3. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    Писать пользователю в те же куки адрес последней страницы... или в базе данных в профиле пользователя регистрировать его переходы по страницам...
     
  4. barabula

    barabula Нарушитель

    Регистр.:
    21 май 2009
    Сообщения:
    470
    Симпатии:
    77
    Как вписать в куки адрес последней страницы?
    Касательно БД, тос крпит очень простой для того чтобы подключать БД, да и если это делать, то большая нагрузка на БД будет.

    Добавлено через 2 минуты
    Раскажи о первом методе подробней, я не понял, как TTL используется для возобновления на последную страницу.
    4-ый способ понравился, но реализовать врядли смогу ))))
    3-ий способ нужно реализовывать через 2-ой.
    Про 5-ый способ вообще нчиего не понял.
    Сейчас попробую сделать что-то на подобе 2-ого способа.

    Добавлено через 49 минут
    Получилось всё 2-ым способом.
    В итоге в индексе вот такой код вывел:
    PHP:
    $username $_SESSION['username'];
    $last $_SESSION['last_page'];

    if(
    $username)
        {
            
    header("Location:$last");
        }
    А в отслаьных файлах, что-бы запоминалась сесия написал вот что:
    PHP:
    $_SESSION['last_page'] = $_SERVER['REQUEST_URI'];
    В общем то, что предлагалось во 2-ом варианте.
     
  5. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    пункт 2 в сообщении Miraage (собственно ты уже и реализовал)
    Но записывать адрес последней посещённой пользователем страницы в базу данных предпочтительнее в плане безопасности... Куки без особых проблем можно исправить, а если перенаправить пользователя туда, куда он сам напишет, то можно и без сайта остаться!
    З.Ы.в сообщении Miraage это не 5 вариантов, а 1 просто разбит на подпункты
     
  6. Miraage

    Miraage Angular/Laravel

    Регистр.:
    3 июн 2008
    Сообщения:
    230
    Симпатии:
    51
    использовать HttpOnly в cookies и session_regenerate_id => безопасные куки.

    ТС, если возникают проблемы с реализацией - стукни в личку >> помогу :)

    п.с. насчет 4 и 5 пунктов - http://tinyurl.com/5wx4bzw :)