为了账号安全,请及时绑定邮箱和手机立即绑定

保留不同域中的会话变量

保留不同域中的会话变量

PHP
绝地无双 2019-09-03 16:54:58
我不确定这是否可行。我公司的主要网站接受信用卡和其他付款信息。他们还有其他网站与我们托管的活动直接相关。例如,我们的主要网站是这样的:http://www.etm124biz.com但是有另一个专门用于年度活动的网站:http://www.etm124annualgala.com我的“活动”网站正在处理注册并保存到我们的数据库,但我们的主站点处理信用卡处理。在主网站上处理当前购买时,会话用于将数据传递到付款/ cc屏幕。无需更改我的支付代码(接受,例如,$ _GET参数),我的$_SESSION变量不应该被遗漏吗?例:$_SESSION['s_address1'] = $_POST['address1'];$_SESSION['s_address2'] = $_POST['address2'];$_SESSION['s_city']     = $_POST['city'];$_SESSION['s_state']    = $_POST['state'];$_SESSION['s_zip']      = $_POST['zip'];header('Location: https://www.etm124biz.com/payment.php?oid=' . $oid . '&src=conf&id=' . $seq);我的payment.php页面查找上面的地址会话变量。
查看完整描述

3 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

跨域会话ID

会话ID默认使用cookie传递。由于您的网站位于不同的域中,因此会话cookie不会转移,因此阻止跨域会话工作是一回事。


让会话ID转移的一种技术是将它们附加到所有请求的查询字符串中(PHP甚至对此有一定程度的内置支持)。但是,这种做事方式有许多缺点 - 最重要的是人们一直复制/粘贴URL,所有这些都意味着揭示有效和重用无效会话ID - 因此不建议这样做。


一种更好的方法是使用Javascript在所有感兴趣的域中进行跨域请求(当然这需要合作)。这样,您就可以根据需要在任意数量的服务器上无缝转移会话ID。


共享会话数据

即使cookie不是问题,您也需要在所有服务器上都可以访问某些存储上的会话数据。默认存储是本地文件系统,因此如果您需要跨域会话,这也需要更改。


解决此问题的一个简单方法是使用自定义会话处理程序将数据存储在数据库或其他全局可访问的存储上。


查看完整回答
反对 回复 2019-09-03
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

no.sessions通常与cookie相关联,并且cookie不能在不同的域之间共享。

查看完整回答
反对 回复 2019-09-03
  • 3 回答
  • 0 关注
  • 351 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信