【发布时间】:2012-08-04 04:21:07
【问题描述】:
我的 cookie 有问题。
基本上我正在尝试将用户的会话 ID 存储为 cookie,如下所示:
setcookie("CheckoutSessionID",session_id(),time()+3600);
这在我的网站上运行良好,cookie 具有正确的值并且有效时间足够长。但是,我的网站会重定向到 PayPal,因此用户可以确认付款。然后用户被重定向回我的网站。当用户被重定向回我的网站时,所有 cookie 变量都消失了。
如print_r($_COOKIE)、var_dump($_COOKIE) 等没有值。这仅在被定向到 PayPal 后才会发生。
关于为什么会发生这种情况的任何想法?
提前感谢所有帮助,我很难过!
【问题讨论】:
-
session_id()返回的函数是什么? -
当你回显时,使用
echo $_COOKIE["CheckoutSessionId"] -
session_id() 正在返回正确的会话 ID,并且在我设置 cookie 后,我能够在我的所有页面上输出 $_COOKIE["CheckoutSessionID"] 就好了。但是,一旦用户从 PayPal 重定向,所有 cookie 都消失了。
-
另外,这不仅仅是返回特定页面的问题,如果您取消 PayPal 输入并返回到网站上另一个非常基本的页面,也会发生这种情况。所有的cookies又消失了。
-
请记住 https 和 http 之间存在差异,因为它们是 cookie 的不同域。如果您的结帐页面是 ssl 安全的,则会发生到 paypal 的重定向,并且 paypal 会重定向到非 ssl 安全的页面,这可能是 cookie 丢失的原因。