Передача переменных PHP SESSION между серверными сценариями - PullRequest
0 голосов
/ 03 июля 2018

Возможно ли иметь два сценария, которые оба выполняются, скажем, в заданиях cron, и передавать переменную SESSION из Script1.php в Script2.php? Я понимаю, что наиболее распространенное использование переменных SESSION - это создание типичного файла cookie с уникальным идентификатором для пользователей, которые обращаются к сайту через браузер и переносят информацию об этом пользователе со страницы на страницу. Что произойдет, если я установлю переменную SESSION в скрипте, который выполнялся на стороне сервера, а затем запусту другую, чтобы попытаться подобрать конкретную переменную? Будет ли сервер генерировать для себя уникальный идентификатор, срок действия которого истечет после вероятного значения по умолчанию 1440 секунд?

Я думаю, что я создаю множество PHP-скриптов для таких вещей, как использование API, где есть несколько файлов, которые часто нужно запускать в какой-то последовательности. Вместо того, чтобы передавать информацию от одного сценария к следующему через обновления и выборки базы данных MySQL, я бы хотел использовать более легкий и, казалось бы, более удобный метод переменных SESSION.

1 Ответ

0 голосов
/ 03 июля 2018

Переменные сеанса не предназначены для передачи данных между скриптами. Они хранятся на сервере, поэтому у cli, который выполняет php-скрипты, запускаемые cron, вообще не будет сессии. Сессии - это не то, что имеет смысл использовать для передачи данных / состояния / того, о чем вы говорите, между двумя процессами. Если вы хотите IPC, вам нужно использовать потоки или другой язык. PHP традиционно использует некоторые базы данных для обмена данными между процессами. Для этого есть причина.

Краткий ответ на ваш первоначальный вопрос: «Что произойдет, если я установлю переменную SESSION в скрипте, который выполнялся на стороне сервера, а затем запущу другую, чтобы попытаться подобрать конкретную переменную?» Если сценарий был выполнен CLI, вы получите ошибку при попытке получить доступ к чему-то, чего там не было. Если бы вы обращались к нему через скрипт, выполняемый, например, Apache, вы бы поместили данные в сеанс, принадлежащий клиенту, который просматривал URI. Следующий скрипт не сможет получить к нему доступ, если это не тот же клиент.

Вы можете установить и получить переменные окружения для сценариев cli для передачи данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...