【问题标题】:Passing PHP SESSION Variables Between Server Side Scripts在服务器端脚本之间传递 PHP SESSION 变量
【发布时间】:2018-12-11 06:10:20
【问题描述】:

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

我的想法是,我构建了很多 PHP 脚本,用于使用 API,其中有多个文件通常需要以某种顺序运行。我不想通过 MySQL 数据库更新和选择将信息从一个脚本传递到下一个脚本,而是使用更轻量级且看似更方便的 SESSION 变量方法。

【问题讨论】:

  • 通过 cron 执行的 CLI 脚本不使用会话。您需要在发布问题之前进行研究。

标签: php session server


【解决方案1】:

会话变量不用于在脚本之间传递数据。它们由服务器存储,因此执行 cron 运行的 php 脚本的 cli 根本没有会话。会话对于在两个进程之间传递数据/状态/无论您在谈论什么是毫无意义的。如果你想要 IPC,那么你需要使用线程或其他语言。 PHP 传统上使用某种数据库在进程之间共享数据。这是有原因的。

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

您可以设置和获取 cli 脚本的环境变量以传递数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-06
    • 2018-04-01
    • 1970-01-01
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    相关资源
    最近更新 更多