是否可以通过cURL跨域发送PHP会话变量?



如果一个人登录到一个网站(网站a ),这个网站创建会话变量,另一个网站(网站B)是否可以对网站a 上的PHP例程进行cURL调用,该例程将返回给网站B一个json变量与网站a 的会话变量?

如果是,我该如何做到这一点?

这是我心目中的场景:

  1. 用户访问 A网站并登录。这将在网站B
  2. 中创建会话变量
  3. 在同一浏览器会话中,用户访问 B网站
  4. 网站B中的主页对网站a 中的特定例程进行cURL调用,该例程验证会话变量是否存在,如果存在,则将其信息以JSon形式发送回。
  5. 根据JSon变量内容(如果存在),网站B向用户显示不同的内容。

可以通过cURL实现吗?

谢谢。

还没有尝试过,所以我不知道它是否会起作用,但是我最好的猜测是得到类似于你想要的东西如下。

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

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

如果你的网站不在同一台服务器上,那么你需要编辑你的php.ini并将你的会话存储连接到memcache等服务。

例如。

网站:

session_id('test');
$_SESSION['hello'] = "hello worldn";

网站B:

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

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

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

    网站A中的php例程使用header()重定向到网站B。在中请求php的网站A将其URL作为查询字符串的一部分发送,因此网站B知道将其答案发送到哪里。站点B中的接收页面使用session_id()抓取会话ID,并通过自动提交post表单将其发送回站点A现在使用会话ID来自网站B网站A网站B进行cURL调用,返回网站B会话变量的内容。

注释:没有会话ID网站B发送一个空会话变量给网站A

相关内容

  • 没有找到相关文章

最新更新