2015-10-01 55 views
0

如果一个人登录到网站(网站)及本网站的创建会话变量,可能其他网站(网站B)作出一个PHP程序卷曲呼叫网站会发送回网站B一个json变量与网站A的会话变量?是否可以通过cURL跨域发送PHP会话变量?

如果是这样,我该怎么做到这一点?

这是我心目中的情景:

  1. 用户访问网站在一个和日志这网站B
  2. 创建会话变量在同一个浏览器会话,用户访问网站B
  3. 网站B使得一个特定的常规卷曲呼叫网站是否存在会话变量验证,如果是这样,他们发回的信息作为JSON主页。
  4. 根据JSon变量内容(如果存在),网站B向用户显示不同的内容。

它可以通过卷曲来实现吗?

谢谢。

+1

是的,这是可能的。你试过了吗?有什么问题? – Alfwed

+0

我遇到的问题是会话变量返回空。通过重定向使用相同的解决方案,即标题(位置:...)工作。换句话说,在同一浏览器会话中,cURL给了我空的会话变量,但双重定向(向前和向后)给了我会话变量,因为它们存在。 –

回答

2

没有试过这个,所以我不知道它是否可以正常工作,但是我最好的猜测是想得到类似于你想要的东西的东西,如下所示。

假设两个网站都在同一台服务器上,您可以手动设置session_id()并跟踪此值。然后,您将此ID字符串发送到网站B,并使用相同的ID也呼叫session_id()。

http://php.net/manual/en/function.session-id.php

如果你的网站是不一样的服务器上,那么你就需要修改你的php.ini和你的会话存储连接到内存缓存一样服务。

举例来说。

网站A:

session_id('test'); 
$_SESSION['hello'] = "hello world\n"; 

网站B:

session_id('test'); 
echo $_SESSION['hello']; 

显然,你需要做更多的工作比上面的,因为你需要为每一个用户/请求唯一的ID。

1

由于我的网站是在同一服务器中不,这是我必须做的,使其工作(不内存缓存)。这不是最优雅的解决方案,但这是我如何使它工作,即,如何发送到网站内容网站B的会话变量:

  1. 网站一个PHP程序使用重定向到header()网站B。在网站A请求的PHP发送其URL作为查询字符串的一部分,因此网站B知道在哪里发送其答案。
  2. 网站B接收页面抓住会话ID使用session_id()并将其发送回给网站甲通过自动提交后的形式。
  3. 现在从网站B网站的会话ID一个使得以网站B,它返回网站B的会话变量的内容卷曲电话。

:无会话ID网站B发送一个空的会话变量来网站甲