| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Для профи > session_write_close |
| Автор: animegirl 31.8.2012, 03:53 | ||
| Такой технический вопрос. Прочитала в мануале следующие:
И задумалась, блокировка начинается после session_start(); или после первого изменения в супермасиве $_SESSION? Добавлено через 3 минуты и 10 секунд И если после старта, имеет ли смысл закрывать сразу сессию, и открывать её заного в одном скрипте? Или как вариант открывать, копировать массив, закрывать, а в конце скрипта, ещё раз скидывать обратно обновления? |
| Автор: Sanchezzz 31.8.2012, 06:26 | ||
| Это механизм работает так Открыли сессию создался пустой файл или считался и получили глобальный массив $_SESSION после того как что то сделали и скрипт завершил выполнения данные записываются если вызвать session_destroy то данные удаляются. Механизм сессии и хранения данных можно изменять фактически он меняется при 2 случаях с ростом проекта и когда нужно организовать сессии на несколько машинах одни и теже.
Вообще правильное использование сессии в высоконадежных проектах где используются сессии под только авторизацию. Должны стартовать только когда пользователь авторизовался. Чего мы добиваемся таким методом мы экономим ресурсы и наделаем лишнии действия Пока не забыл хранения сессии можно организовать где угодно файле(стандартный механизм) оператива (memcache) БД, и другие кеш системы которых более 5+. |
| Автор: animegirl 31.8.2012, 13:04 |
| На данный момент оставляю файловые сессии, вопрос в другом, имеет смысл их закрывать в ручную, или забить на это? Я в них храню ещё некоторые данные часто используемые, как например тот же ИД юзера, зачем каждый раз базу напрягать такими вопросами. |
| Автор: animegirl 31.8.2012, 16:48 |
| Я сейчас заметила интересную вещь, не смотря на то, что закрыла сессию, всё равно могу туда записи делать. В чём тогда смысл? |
| Автор: Sanchezzz 1.9.2012, 19:20 | ||||
Нужно смотреть конкретный пример в моем случаи работает как надо
1 запуск выдаст пустой массив 2 запуск вернет только ['test1'] =1; Причем если что то добавленное было $_SESSION то оно там хранится до тех пор пока его не удалят например тем же unset Было бы интресно посмотреть на ваш пример. |
| Автор: animegirl 1.9.2012, 22:58 |
| Сейчас глянула, всё-таки я профукала, не записывается, там видимо когда проверяла, была старая запись, я решила, что всё равно работает Добавлено через 1 минуту и 14 секунд Но кстати, на данный момент, я всё же решила закрывать запись, так как у меня больше чтения в коде, нежели записей. |