猿问

保留不同域中的会话变量

我不确定这是否可行。


我公司的主要网站接受信用卡和其他付款信息。他们还有其他网站与我们托管的活动直接相关。例如,我们的主要网站是这样的:


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页面查找上面的地址会话变量。


绝地无双
浏览 352回答 3
3回答

撒科打诨

跨域会话ID会话ID默认使用cookie传递。由于您的网站位于不同的域中,因此会话cookie不会转移,因此阻止跨域会话工作是一回事。让会话ID转移的一种技术是将它们附加到所有请求的查询字符串中(PHP甚至对此有一定程度的内置支持)。但是,这种做事方式有许多缺点 - 最重要的是人们一直复制/粘贴URL,所有这些都意味着揭示有效和重用无效会话ID - 因此不建议这样做。一种更好的方法是使用Javascript在所有感兴趣的域中进行跨域请求(当然这需要合作)。这样,您就可以根据需要在任意数量的服务器上无缝转移会话ID。共享会话数据即使cookie不是问题,您也需要在所有服务器上都可以访问某些存储上的会话数据。默认存储是本地文件系统,因此如果您需要跨域会话,这也需要更改。解决此问题的一个简单方法是使用自定义会话处理程序将数据存储在数据库或其他全局可访问的存储上。

紫衣仙女

no.sessions通常与cookie相关联,并且cookie不能在不同的域之间共享。
随时随地看视频慕课网APP
我要回答