Стоит задача передавать данные между php скриптами одного сайта, но
- Почему иногда записываешь данные в глобальный массив а они исчезают от туда?
- А если сессию используешь, записал данные и сессия держится открытая, а между тем пока данные пригодятся, CMS движек же сам может создавать сессии и закрывать их - выходит ты ему мешаешь тем, что открыл сессию и в конце закрыл.
- Можно же и в БД записывать, но это нужно стерилизовать массив переменный как то - что то мудрено.
PHP
Почему говорят про глобальный массив $GLOBALS в то же время данные передают через сессии?
1. Массив $GLOBALS содержит ВСЕ переменные, которые существуют ВНЕ функций и классов. И если ты в своём коде написал $i = 25, то в $GLOBALS появится элемент $GLOBALS['i'] равный 25. Содержимое $GLOBALS существует только во время выполнения скрипта.
2. Массив $_SESSION содержит данные, которые автоматически сохраняются при выходе из PHP-скрипта и восстанавливаются при заходе на сайт из ТОГО ЖЕ БРАУЗЕРА.
3. Идентификатор сессии либо автоматически сохраняется в куках браузера, либо (при отключении кук) автоматически же дописывается к адресам ссылок. Потому предложение записывать данные вручную в куки выглядит по меньшей мере странно: никаких дополнительных возможностей (кроме доступа к данным из браузера) это не даёт, но объём хранимых для одного сайта кук сильно ограничен.
4. Таким образом, сессия привязана к конкретному экземпляру браузера. Заходя на тот же сайт из другого браузера, ты получишь новую сессию, которая никаким образом не сможет получить данные других сессий.
5. ЗАЧЕМ закрывать сессию? Всё, что тебе нужно - вызвать session_start(). Всё остальное PHP сделает автоматически. Ручные создания / закрытия / удаления сессий нужны для очень специфичных задач, с которыми ты, скорее всего, никогда не столкнёшься.
6. Что тебе мешает найти в коде своей CMS вызовы функций session_* и самому посмотреть, что и как она делает с сессиями?
2. Массив $_SESSION содержит данные, которые автоматически сохраняются при выходе из PHP-скрипта и восстанавливаются при заходе на сайт из ТОГО ЖЕ БРАУЗЕРА.
3. Идентификатор сессии либо автоматически сохраняется в куках браузера, либо (при отключении кук) автоматически же дописывается к адресам ссылок. Потому предложение записывать данные вручную в куки выглядит по меньшей мере странно: никаких дополнительных возможностей (кроме доступа к данным из браузера) это не даёт, но объём хранимых для одного сайта кук сильно ограничен.
4. Таким образом, сессия привязана к конкретному экземпляру браузера. Заходя на тот же сайт из другого браузера, ты получишь новую сессию, которая никаким образом не сможет получить данные других сессий.
5. ЗАЧЕМ закрывать сессию? Всё, что тебе нужно - вызвать session_start(). Всё остальное PHP сделает автоматически. Ручные создания / закрытия / удаления сессий нужны для очень специфичных задач, с которыми ты, скорее всего, никогда не столкнёшься.
6. Что тебе мешает найти в коде своей CMS вызовы функций session_* и самому посмотреть, что и как она делает с сессиями?
у каждого клиента при связи с сервером создается отдельное подключение и там своя глобальная область на стороне сервера
Инвестиционная Компания
А если вот клиент А заходит на сайт, инициирует выполнение скрипта который создает сессию, потом в процессе другие скрипты тоже ее создают, это же все относится к 1 клиенту?
Да не думаю что у тебя там такая супер задача с кучей межсегментных подключений и с каким то массивом
гигантским массовом потому лучше через файл я так делаю очень надёжно. Сессии у тебя теряются сорей всего потопу что подключающийся сторона не
забывает передать ключ сессии потому скрипт открывает новые сессии проверь заголовки ответа
⚤
гигантским массовом потому лучше через файл я так делаю очень надёжно. Сессии у тебя теряются сорей всего потопу что подключающийся сторона не
забывает передать ключ сессии потому скрипт открывает новые сессии проверь заголовки ответа
⚤
Простейшее решение -- самое лучшее. Можно сохранять в файл (serialize) или передавать через куки.
Сессии, насколько я помню, каждый скрипт может открывать свои, как они могут мешать друг другу?
Сессии, насколько я помню, каждый скрипт может открывать свои, как они могут мешать друг другу?
Инвестиционная Компания
Насчет сессии - если я открыл сессию session_start () я же вообще не задаю какие то ID "handler как бы". Откуда оно вообще знает в другом скрипте что это нужная сессия? Ведь между тем как я открыл и закрыл сессию, другой файл тоже может открыть ее и закрыть
Похожие вопросы
- Объясните мне почему для программиста важна математика. Просто я в свое время этим занимался, пришлось по учебе и работе
- Есть тут гуру PHP которые знают толк в переборах массивов? (вопрос внутри)
- Вопрос по сессиям php
- PHP. Почему нельзя применять функцию count() к строкам? Ведь строка это тот же массив
- Нужна помощь c запросами и базой данных, PHP, MySQL
- Как проще, лучше и быстрее из бд получить данные и поместить сразу в переменную или поместить в цикл и оттуда извлекать
- вывод данных из базы данных по нажатию кнопки
- Отправка текста в базу данных PHP + MySQL! Помогите ((
- как сделать чтобы полученные из формы данные записывались в базу данных?
- PHP не видит данных POST запроса