Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正在重定向时删除Cookie_Php_Cookies - Fatal编程技术网

Php 正在重定向时删除Cookie

Php 正在重定向时删除Cookie,php,cookies,Php,Cookies,我对饼干有意见 基本上,我尝试将用户的会话ID存储为cookie,如下所示: setcookie("CheckoutSessionID",session_id(),time()+3600); 这在我的网站上运行良好,cookie具有正确的值,并且有效期足够长。然而,我的网站重定向到贝宝,这样用户就可以确认付款。然后用户被重定向回我的站点。当用户被重定向回我的站点时,所有cookie变量都消失了 与中一样,print\r($\u COOKIE),var\u dump($\u COOKIE)等没

我对饼干有意见

基本上,我尝试将用户的会话ID存储为cookie,如下所示:

 setcookie("CheckoutSessionID",session_id(),time()+3600);
这在我的网站上运行良好,cookie具有正确的值,并且有效期足够长。然而,我的网站重定向到贝宝,这样用户就可以确认付款。然后用户被重定向回我的站点。当用户被重定向回我的站点时,所有cookie变量都消失了

与中一样,
print\r($\u COOKIE)
var\u dump($\u COOKIE)
等没有值。这只发生在直接与PayPal联系之后

你知道为什么会这样吗


谢谢你的帮助,我很难受

实际上无论发生什么(cookie是空的),逻辑上都是正确的。当您提交页面/发出请求时,浏览器将从客户端计算机发送带有请求的
cookie
,以便您可以在
cookie
变量中找到
cookie

但是,一旦您将用户重定向到另一个外部页面/站点并再次返回到您的页面,您就不应该在
cookie
变量中获得
cookie
,因为(在您的情况下)当用户从
paypal
返回您的站点时,
paypal
没有随请求提交
cookie


在这种情况下,您可以先将数据保存在数据库中,然后再将用户重定向到
paypal
,一旦用户返回您的站点,您就可以从数据库中检索该数据。

好的,我已经深入挖掘,并意识到我之前的一个问题与此相关:

基本上我有问题,因为当我去贝宝和回来的时候,PHP会话被删除了。但是,我相信这实际上是由于会话COOKIE被破坏而不是整个会话造成的

我在这里也找到了这个话题:

有人给出的答案建议使用带有返回URL的GET请求来发送数据,而不是使用cookie或会话

我之所以使用cookie,首先是为了保存用户的会话ID,因为会话无法正常工作,所以基本上我只是将返回URL设置为如下所示:

mydomain.co.uk/mypage.php?SessionID=[session ID goes here],然后获取它,然后将用户的会话ID设置为它

分类!现在。。。我的意思是,由于Cookie/sessions无法正常工作,我可能会再次碰壁


谢谢大家的帮助:)

在从Paypal重定向后,我收到了类似的问题cookies被删除

我花了一段时间才弄清楚哪里出了问题

Samesite=**"Strict"** // Removes cookies after redirect from Paypal.

Samesite=**"Lax"** // does not remove cookies after redirect from Paypal. 

什么函数是
session\u id()
返回的?当您进行回送时,使用
echo$\u COOKIE[“CheckoutSessionId”]
session\u id()返回正确的会话id,我可以在设置COOKIE后在所有页面上输出$\u COOKIE[“CheckoutSessionId”]。然而,一旦用户从PayPal重定向,所有cookie都将消失。此外,这不仅仅是返回到某个特定页面的问题,如果您取消PayPal输入并返回到站点上的另一个非常基本的页面,也会发生这种情况。所有cookie都将再次消失。请记住https和http之间存在差异,正如中所示,它们是cookie的不同域。如果您的签出页面是ssl安全的,则会发生重定向到paypal的情况,并且paypal会重定向到非ssl安全的页面,这可能是cookie丢失的原因。