За последние 24 часа нас посетили 53385 программистов и 1717 роботов. Сейчас ищут 864 программиста ...

Доступ к произвольной сессии (не хакинг)

Тема в разделе "Прочие вопросы по PHP", создана пользователем engager, 4 июн 2010.

  1. engager

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

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    Ситуация.
    Юзер логинится на сайте, при авторизации ему в сессию прописывается, что у него не заполнен профиль. По этому признаку приложение показывает пользователю предупреждение, что де, профиль у вас не заполнен.
    Далее юзер замечает этот ворнинг, идет, заполняет профиль, но после сабмита профиль отправляется на модерацию.
    Модер смотрит на все это дело, и решает одобртить. Нажимает эппрув, и...
    Тут по задумке нужно в сессии одобренного пользователя вздернуть флаг, что мол, профиль уже заполнен и отмодерирован.
    Реально ли вообще такое? Можно ли найти сессию, например, по известному параметру (login_id), и кое-что в ней изменить?
    Можно, конечно, это реализовать и другими извращениями, например, каждый раз читать из базы состояние профиля, но это лишний селект, либо держать какой-нить файлик, если он существует, значит профиль еще не заполнен и не отмодерирован, ну и тд.
     
  2. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а зачем?

    что мешает слазить в бд?
     
  3. engager

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

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    это нужно будет делать с каждым http-запросом.
    не хотелось бы.
    да и просто интересно, возможно ли такое. что-то подсказывает, что нет.
     
  4. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну почему? насколько я знаю, сессии - файлики, в них можно залезть при большом желании. но может я и ошибаюсь.

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

    а что плохого в лазанье в бд? бд быстрая и умная штука. у нее кэш есть. один и тот же запрос ее не напряжет. или у вас бешенная посещяемость?
     
  5. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    memcache?
    Redis?
     
  6. engager

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

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    MySQL
    )

    да, про файлики я в курсе. но хотелось бы так сказать штатными средствами.
    про
    я тоже думал - это пока наиболее разумное решение.
    архитектура приложения такова, что размодерировать нельзя, так что способ нормальный.
    посещаемость пока не дикая, но ведь проектировать лучше с учетом перспектив.
     
  7. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    не. а почему редис не годится то? оО или не свой сервер?
     
  8. engager

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

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    да я ж не сказал, что он не годится. просто двиг написан под мускуль, что ж его, ради этой фичи переделывать? )
     
  9. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Это был не вопрос что есть, это было предложение использовать. =)))
    Ну как бэ... инкапсулируй это дело в функцию или метод типа getProfileStatus или там isProfileGood.
     
  10. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    прикольненько. в редисе наверное хорошо хранить всякие пользовательские права/привелегии?