![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| flashaa |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 796 Регистрация: 7.3.2006 Репутация: 19 Всего: 25 |
Привет снова.
Такая проблема: у меня на сайте есть готовый движок , он находится в корневом каталоге сайта. Так же я написал свой движок для других целей, он находится в подкаталоге сайт/папка. Время жизнии сессии своего движка я устанавливаю вот так:
Т.е. при каждом открытии страницы сессия должна продлеваться на сутки. У меня был другой проект, сессии в котором работали абсолютно так же. И ведь работали. А сейчас у меня почему-то постоянно сбрасываются сессии моего под-проекта примерно каждые 5-10 минут. Я предположил, что возможно в сессиях основного движка сайта есть аналогичные переменные сессии, либо просто сами сессии "перебиваются". Что скажите об этом и о моем коде? Пс схожие темы были, но там про время сессий - имхо моя проблема - немного другое. Это сообщение отредактировал(а) flashaa - 13.7.2007, 10:04 |
|||
|
||||
| Golda |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 26.3.2007 Где: Ариель, Израиль Репутация: 20 Всего: 42 |
Попробуйте, если есть возможность, вынести свой подпроект в другую папку, которая не лежит под основным сайтом, и посмотрите, будут ли перебиваться сессии. Если да, ищите, что делает с сессиями основной движок. Для начала посмотрите, не изменена ли session.cookie_lifetime в основном файле в .htaccess. В любом случае, если пользователь получает сессионные куки из кода основного движка, Ваши настройки не сработают. А возможно, там еще и session_destroy() где-то есть.
-------------------- "For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics |
|||
|
||||
| flashaa |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 796 Регистрация: 7.3.2006 Репутация: 19 Всего: 25 |
Cессии действительно конфликтовали. Логаут на сайте приводил к потере данных в движке.
Тогда другой вопрос: ведь могут же нормально существовать отдельно движок сайта в корне и движок форума(например IPB) в папке сайт/форум/ не знаете, как там реализовано "разделение" сессий? Это сообщение отредактировал(а) flashaa - 14.7.2007, 11:47 |
|||
|
||||
| Golda |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 26.3.2007 Где: Ариель, Израиль Репутация: 20 Всего: 42 |
Можно. Нужно только использовать разные имена сессий. Используйте в своем подпроекте session_name('your_unique_session_name');
Только учтите, что вызывать эту фкнкцию нужно до session_start() и в каждом скрипте, который использует Вашу сессию. Убадитесь также, что в php.ini отключен session.auto_start -------------------- "For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics |
|||
|
||||
| Glory |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 18.7.2007 Репутация: нет Всего: нет |
А как можно посмотреть время создания сессии (тоесть необходимо запомнить время когда пользователь зашел на сайт и помнить до того момента, пока он его не закроет)?
|
|||
|
||||
| Golda |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 26.3.2007 Где: Ариель, Израиль Репутация: 20 Всего: 42 |
Запоминайте его в самой сессии.
Добавлено через 1 минуту и 12 секунд
-------------------- "For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics |
|||
|
||||
| Glory |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 18.7.2007 Репутация: нет Всего: нет |
Большое спасибо, работает!
|
|||
|
||||
| Glory |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 18.7.2007 Репутация: нет Всего: нет |
можно еще вопрос по этой теме?
пользователь может выбрать на сайте город и этот город должен сохраняться при перемещении пользователя по сайту и еще пару недель после этого (без регистрации). как мне сохранить этот параметр в куки, а потом его оттуда доставать? |
|||
|
||||
| Golda |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 26.3.2007 Где: Ариель, Израиль Репутация: 20 Всего: 42 |
До этого обсуждались не собственно куки, а сессии. Сессии, конечно, чаще всего хранят идентификатор в куках (хотя и необязательно), но сами целевые данные заданной сессии хранятся на сервере (на этом безопасность сессий и основана).
Сами сессии как правило используются для хранения информации о пользователе в течении одного сеанса его работы с броузером и удаляются после того, как пользователь закрыл броузер (обячно не сразу, но принципиально это ничего не меняет). Есть возможность изменить время хранения сессии через настройки php.ini (session.gc_maxlifetime и session.cookie_lifetime). Правда, я никогда не пробовала задать максимальное время жизни сессии в 2 недели. Можно хранить данные не на сервере в сессии пользователя, а непосредственно в броузере в куках. Поставить куки на заданное время несложно.
Вопрос, что Вам на самом деле нужно, куки или сессия в данном случае. Если все, что нужно знать о пользователе, пока он ходит по сайту, - это выбранный город и безопасность не пострадает, если пользователь подменит информацию в куках и пришлет Вам не то, что Вы ставили, можно вообще не завязываться с сессией, а просто ставить куки. Если нужно хранить разные данные и важно, чтобы пользователь не смог их подменить или просто принципиально, чтобы скрипт корректно работал и для броузера, в котором отключены куки, храните все в сессии. Ее идентификатор можно передавать и через GET или POST (правда, не представляю себе ситуации, когда для всех страниц сайта удобно передавать данные пользователя через POST). Если часть данных должна храниться только пока открыт броузер, а другая, некритичная к подмене, - гораздо дольше, используйте смешанный вариант Это сообщение отредактировал(а) Golda - 18.7.2007, 17:10 -------------------- "For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics |
|||
|
||||
| Glory |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 18.7.2007 Репутация: нет Всего: нет |
Большое спасибо за детальное объяснение. Реализация была немного отложилась, но сегодня заняла не более часа (вместе с поиском, привязаным к городу). Я выбрал запись в куки, так как запоминается только город. Все остальные параметры только для зарегистрированных пользователей - их записываю в базу. Еще раз спасибо, так как до этого как-то даже не задумывался о разнице между куками и сессией (хотя до этого я их и не использовал).
|
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |