在服务器端脚本之间传递PHP SESSION变量

时间:2018-07-03 02:39:08

标签: php session server

是否有可能同时运行两个脚本(例如cron作业)并将SESSION变量从Script1.php传递到Script2.php?我知道SESSION变量最常见的用法是为用户通过浏览器访问网站并从页面到页面携带有关该用户的信息创建典型的唯一ID cookie。如果我在服务器端执行的脚本中设置SESSION变量,然后运行另一个脚本尝试并提取特定变量,将会发生什么情况?服务器会为它自己生成一个唯一的ID,该ID可能会在默认的1440秒后过期吗?

我的想法是,我为使用诸如消耗API之类的东西构建了许多PHP脚本,在这些API中,通常需要按某种顺序运行多个文件。与其通过MySQL数据库更新和选择将信息从一个脚本传递到下一个脚本,我不希望使用更轻量级,似乎更方便的SESSION变量方法。

1 个答案:

答案 0 :(得分:0)

会话变量不适用于在脚本之间传递数据。它们由服务器存储,因此执行cron运行的php脚本的cli根本没有会话。会话并不是在两个进程之间传递数据/状态/所用的东西上最没有意义的东西。如果需要IPC,则需要使用线程或其他语言。 PHP传统上使用某种数据库在进程之间共享数据。这是有原因的。

您的原始问题的简短答案:“如果我在服务器端执行的脚本中设置SESSION变量,然后运行另一个变量尝试并提取特定变量,将会发生什么?”就是说,如果脚本是由CLI执行的,则在尝试访问不存在的内容时会出现错误。例如,如果要通过由Apache执行的脚本访问它,则将数据放入属于浏览URI的客户端的会话中。除非它是同一客户端,否则下一个脚本将无法访问该脚本。

您可以设置并获取cli脚本的环境变量,以传递我认为的数据。