За последние 24 часа нас посетили 87493 программиста и 4641 робот. Сейчас ищут 2022 программиста ...

Помощь с авторизацией на сайте

Тема в разделе "PHP для новичков", создана пользователем 2nt0n, 18 июл 2018.

  1. 2nt0n

    2nt0n Новичок

    С нами с:
    18 июл 2018
    Сообщения:
    1
    Симпатии:
    0
    Проблема вот в чем: кто-нибудь авторизуется на сайте ,и если все успешно,то его перекидывает на site.ru/main ,где содержится основная информация.Сама форма авторизации лежит в site.ru так вот,если убрать "/main" , то перекинет на страницу с авторизацией.
    Как сделать так,если пользователь авторизован,то при переходе на site.ru ,его перекидывало обратно на site.ru/main ?Если можно,то подробно опишите.
     
  2. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    После авторизации/регистрации создаешь сессию. При переходе на сайт site.ru проверяешь есть ли сессия если она существует редиректишь его на site.ru/main иначе оставляешь на site.ru
     
    Почтальон нравится это.
  3. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    Как то ковырялся в кукисах, и обратил внимание, что одни сайты вешают PHPSESSID, другие нет. Но при всем при этом в обоих случаях не приходится вводить логин и пароль каждый раз. Получается аутентификация происходит немного по разному. В любом соучае в какойто куке вист метка которая сравнивается с той которая в БД и если всё совпадает так как нужно пользователь авторизован?
     
  4. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Насколько я знаю там не только куки сравнивают а еще несколько параметров типо браузера и еще что то.
     
    AlexandrS нравится это.
  5. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    Т.е. при регистрации для безопасности можно в БД сохранить IP / UserAgent / сессиию / доп. id для куки, и если хоть один из параметров не верный можно отказать в авторизации. Всё верно?
     
  6. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Да где то так. Ну там еще куки формируют с солью. я думаю если погглить то пару статей на эту тему на хабре найдешь. что бы не изобретать велосипед
     
    AlexandrS нравится это.
  7. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    656
    Парни, вопрос не про это был.

    И заканчивайте с вашими «можно в БД сохранить IP / UserAgent». На дворе XXI век, причем уже давно.
     
  8. Kvandaik

    Kvandaik Новичок

    С нами с:
    5 июл 2018
    Сообщения:
    121
    Симпатии:
    1
    https://php.ru/forum/threads/cookies-avtorizacija.71699/
     
  9. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    Ну так и договаривал бы тогда, что не так. Это вроде раздел форума "для новичков" Если есть то, что мы не видим/не знаем/не понимаем, подскажи, поделись инфой. Будем благодарны!
     
  10. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    656
    Я думал, вы просто отвлеклись. Что надо ТСу, он в своем стартовом посте написал ;)

    А по сабжу мне писать лень новорегу. Если проявит себя еще как-нибудь, тогда посмотрим.
     
  11. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    Всё верно, отвлеклись, кажется ему по сути ответили сразу то что ему нужно. Поэтому я и спросил в чем подкол в "И заканчивайте с вашими «можно в БД сохранить IP / UserAgent». На дворе XXI век, причем уже давно."
    Как правильно пройти аутентификацию с последующей авторизацией? Достаточно открыть сессию при успешной аутентификации и всё?
     
  12. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    656
    Сомневаюсь, ну да ладно.

    Сразу бы процитировал только это, получил бы более адекватный ответ. Нынче такое время, что у одного и того же пользователя в соседних запросах могут быть разные IP / UserAgent.

    Я штатным механизмом сессий практически не пользуюсь. Видимо, да, открыть сессию и создать какую-нибудь сессионную переменную. Механизм ведь и создавался для упрощения жизни тем, кому не нужны особые изыски.
     
  13. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    Это как? Ни разу не слышал о таком.
     
  14. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    656
    Вот прям так. Не там слушал. Да и пустое это. Лучше логи поизучай.
     
  15. johovich

    johovich Активный пользователь

    С нами с:
    24 авг 2016
    Сообщения:
    146
    Симпатии:
    17
    +2 к харизме
     
  16. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.129
    Симпатии:
    1.223
    Адрес:
    там-сям
    Не путать авторизацию с аутентификацией. Когда будешь различать эти два понятия, поймёшь что в каком случае делать.
    Схематично так:
    PHP:
    1. if ( ! авторизован_на_это_действие() ) {
    2.     throw new исключение_403; // обработчик исключения решит что с этим делать
    3. }
    4. // до сюда дойдет только если исключения не было. ЭТО называется авторизацией ;)
    5. полезный код страницы
    функция авторизован_на_это_действие() может проверять что-то в сессии, если хочешь.
    а обработчик ошибки доступа может делать редирект на страницу аутентификации. этот код легко сопровождать.

    Да, вот так просто!
     
    mahmuzar нравится это.