【问题标题】:Does a php function which gets executed on Ajax call have access to the session variables?在 Ajax 调用上执行的 php 函数是否可以访问会话变量?
【发布时间】:2017-09-06 10:36:10
【问题描述】:

网站上有一个事件列表。事件的日期和时间在数据库中采用 UTC。每当用户访问该网站时,我们将他的时间偏移量存储在 php 会话中,然后在他的时区向他显示事件的时间和日期。有一个支付网关可以预订活动,我正在尝试在付款后立即发送电子邮件。我有两种方法可以做到。

  1. 当用户支付金额时,如果支付成功,支付网关用数据访问我的webhook,然后我更新数据库。收到付款数据后,我可以在这里调用我的电子邮件功能。但在电子邮件中,我想根据用户时区显示日期和时间。所以我想知道支付网关何时用数据访问我的 webhook,它是否能够访问用户访问网站时设置的 php 会话变量。

  2. 另一种方法是在付款后我将用户发送到另一个页面并检查是否确认付款。一旦确认,我可以调用一个将电子邮件发送给用户的 ajax 函数。在这里我想知道,当我调用 ajax 函数时,我应该将用户时间偏移量作为数据发送,还是在调用 ajax 函数时执行的 php 函数可以访问 php 会话。我的困惑是,当一个 ajax 函数运行并执行 php 页面时,php 页面是否作为服务器中的守护程序脚本执行。

TIA

【问题讨论】:

  • 对标题中问题的快速回答(我没有阅读问题正文):AJAX 只是一种无需在浏览器中重新加载页面即可向服务器发送请求的机制。除了请求标头中的几个值之外,在服务器端,一切的工作方式与常规 HTTP 请求的工作方式相同。
  • 好的。因此,如果在用户点击浏览器运行 ajax 函数时设置了 php 会话变量,那么 ajax 函数请求的页面是否可以访问已设置的 php 会话变量?
  • 试试看它是否有效。

标签: php ajax session session-variables


【解决方案1】:

正确的答案很简单,是的。您的浏览器像所有其他请求一样将 cookie 发送到网络服务器。因此,您的 Session Cookie 将与页面重新加载完全相同。

【讨论】:

    猜你喜欢
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-18
    • 1970-01-01
    • 2018-08-16
    相关资源
    最近更新 更多