Фактически же вы предлагаете метод "как бы сохранения" сессиий, а точнее их кусочка в БД. То есть по сути из мемкеша вы обеспечиваете частичную копию сессии =)
почему же, можно, но если хранить сессии в мемкеш, то нужно обеспечить их сохранность. Как это делать - это уже другой разговор - дампами или еще репликацией - это не суть. Суть нашего спора не в мемкеше, а в сессиях =)
не согласен с первой фразой. При высоких нагрузках делается балансировка между несколькими серверами. А хранение сессий в памяти делает невозможной такую балансировку.
Собсно неверность первой фразы позволяет не рассматривать дальнейшие =)
Ну вот я и говорю - хранения сессий в БД, как уже было сказано - практика, проверенная на ХайЛоад проектах, но это лишь проблема сториджа, а не принципа. Если все данные хранятся в БД, то никаких проблем с вашим примером не наблюдается =)
Ну статью по ссылке я читал.
Переубедить действительно не можете, потому что ни одного конкретного факта, почему именно сессия не может быть долгой, за исключением постоянной аппеляции к переводу слова session.
И сессии - это в данном случае не топор, а именно молоток. А ваша "система автоматической аутентификации на основе кука" - это камень.
Зачем брать камень и им наживлять гвоздь, если молотком можно и наживить и забить.
Если вам необходимо отметить факт того, что пользователь давно не был на сайте - можно хранить в ней время последнего посещения. Пришел пользователь - вы увидели, что его не было к примеру 24 часа, отметили этот факт. Ну если вам так хочется создать новую сессию - перегенерите id уже готовой сессии - будет вам "новая", хотя я никак не пойму, зачем вам это нужно, а обьяснять вы не хотите =)
Ну а факт закрытия браузера фиксировать - это паранойя в чистом виде =)
Вы утверждаете, что это неправильно, но не говорите почему именно. Вот мне лично не ясно.
Поясню почему я не вижу ничего в страшного и неправильного в этом - никакого принципиального отличия от вашего предложения: В вашем случае вы хотите хранить соответствие некоего ключа и номера пользователя в базе, а я храню то же самое в файле сессии. При этом я с легкостью могу хранить там неограниченное количество параметров, а вам нужно либо ввобдить поле для сериализованных параметров (считай заново писать phpшные сессии, но уже не на си, а на php =) ), либо для каждого параметра делать отдельное поле.
Если сделать хандлер для хранения сессии в БД - то различий нет вообще.
Хотя есть одно принципиальное отличие - реализация. Вы хотите потратить время на написание кода, который фактически будет выполнять функции уже реализованные на уровне, с позволения сказать, ядра php.
И еще - сессия НЕ обязана жить до закрытия браузера.
И еще - в PEAR::Auth классе используются именно сессии. И они не рвутся по закрытию браузера.
Вот как раз я и говорю, что принципиально это одно и то же. Если использовать сессии для авторизации - то именно по сессии система узнаёт пользователя и понимает, что он авторизован.
Это и есть пример того, что вы называете "просто любые данные, которые нельзя терять между двумя открытиями страницы"
Не совсем согласен. Если сессии используются для аутентификации, то как раз "автоматическая аутентификация без ввода логина и пароля" - это и есть "сохранение информации между двумя открытиями страниц". Просто таймаут между этими открытиями несколько больший, чем при использовании сессий для незареганных пользователей.
эм... куки - это лишь часть механизма сессий...
секьюрити кей - это, я так понимаю, ключ для логина через куку...
Это все используется при любой авторизации, а "запомнить меня" - это лишь увеличение жизни сессии, ну или куки, если используется самописный механизм "как бы сессий"
Я не говорил, что это великое открытие. Просто полезная информация по проблеме, с которой я столкнулся и в сети ответа не нашел.
А мануал по сессиям я прочел, но вот там есть такая хитрая страничка с перечислением директив php.ini, и именно в ней указан этот аспект. Более нигде об этом не сказано. Не удивительно, что я, как и многие, это упустил из вида.
Собсно неверность первой фразы позволяет не рассматривать дальнейшие =)
Переубедить действительно не можете, потому что ни одного конкретного факта, почему именно сессия не может быть долгой, за исключением постоянной аппеляции к переводу слова session.
И сессии - это в данном случае не топор, а именно молоток. А ваша "система автоматической аутентификации на основе кука" - это камень.
Зачем брать камень и им наживлять гвоздь, если молотком можно и наживить и забить.
Если вам необходимо отметить факт того, что пользователь давно не был на сайте - можно хранить в ней время последнего посещения. Пришел пользователь - вы увидели, что его не было к примеру 24 часа, отметили этот факт. Ну если вам так хочется создать новую сессию - перегенерите id уже готовой сессии - будет вам "новая", хотя я никак не пойму, зачем вам это нужно, а обьяснять вы не хотите =)
Ну а факт закрытия браузера фиксировать - это паранойя в чистом виде =)
Поясню почему я не вижу ничего в страшного и неправильного в этом - никакого принципиального отличия от вашего предложения: В вашем случае вы хотите хранить соответствие некоего ключа и номера пользователя в базе, а я храню то же самое в файле сессии. При этом я с легкостью могу хранить там неограниченное количество параметров, а вам нужно либо ввобдить поле для сериализованных параметров (считай заново писать phpшные сессии, но уже не на си, а на php =) ), либо для каждого параметра делать отдельное поле.
Если сделать хандлер для хранения сессии в БД - то различий нет вообще.
Хотя есть одно принципиальное отличие - реализация. Вы хотите потратить время на написание кода, который фактически будет выполнять функции уже реализованные на уровне, с позволения сказать, ядра php.
И еще - сессия НЕ обязана жить до закрытия браузера.
И еще - в PEAR::Auth классе используются именно сессии. И они не рвутся по закрытию браузера.
Это и есть пример того, что вы называете "просто любые данные, которые нельзя терять между двумя открытиями страницы"
Кстати я потратил не пол дня, а два \смущенно трёт ножкой\
секьюрити кей - это, я так понимаю, ключ для логина через куку...
Это все используется при любой авторизации, а "запомнить меня" - это лишь увеличение жизни сессии, ну или куки, если используется самописный механизм "как бы сессий"
Рекомендации и укор - это разные вещи.
п.с. я никому пока карму не трогал =)
А мануал по сессиям я прочел, но вот там есть такая хитрая страничка с перечислением директив php.ini, и именно в ней указан этот аспект. Более нигде об этом не сказано. Не удивительно, что я, как и многие, это упустил из вида.