在我的网站上,我需要一种方法来共享两个域之间的会话数据(一个使用共享SSL证书,另一个使用普通的http),以便在登录后将用户从安全域重定向到正常域in,同时保留会话数据。
所以这就是我想出来的:
用户在安全登录页面输入其凭据并提交表单。
提交表单后,页面会刷新。刷新后,将对用户进行身份验证,启动会话并设置会话变量。然后,安全域上的用户的SID作为GET数据发送到非安全域上的页面,其中安全SID被设置为会话变量。
用户被重定向到主非安全页面,会话启动,读取安全SID,最后,使用安全SID重新启动非安全域上的会话。这样,跨域保留相同的会话。
这种方法只有一个问题,一旦代码到达重定向头,我生成的file_get_contents()就会被取消。在代码中:
//The following line never completes
file_get_contents('http://nonsecuresite.com/cookie.php?sid=session_id()');
header('Location: http://nonsecuresite.com');
当然SID是加密的,但为了清楚起见,我省略了它。
有没有办法让脚本等待请求完成后再转到下一页,一个同步的file_get_contents函数?