Php会话变量

时间:2011-01-15 13:39:52

标签: php

我在本地服务器(WAMPSERVER)中使用会话变量编写购物车。另一个站点等于我的会话变量$ _SESSION ['cart']。所以我在我的购物车中添加了一个产品,另一个网站也在更新,如果我在另一个网站添加产品,我的购物车也会更新。我怎么解决这个问题。

[编辑] 我的意思是我的两个站点在会话变量名称中是相同的。所以他们发生冲突。

3 个答案:

答案 0 :(得分:0)

如果你想分享会话数据(你的问题听起来很模糊),那么你可以:

  • 将会话数据存储在可从两个服务器访问的数据库中。根据手动管理的cookie ID手动加载$ _SESSION。
  • 设置两台服务器共享的网络文件系统。查找PHP使用http://www.php.net/manual/en/function.session-save-path.php存储会话文件的位置,并使其在两台服务器上都可用。这取决于使用的网络文件系统,但可能不可靠。 (但是OTOH,无论如何你都在使用WAMP ..)

此处列出了一些其他(可能更好)的解决方案:Cross domains sessions - shared shopping cart cross domains

答案 1 :(得分:0)

function:session_save_path([string $ path])也许有帮助。为每个站点使用不同的路径

此问题类似于在一个数据库中安装多个站点的问题,在这种情况下,您应该为表使用prefix_。
像这样你应该在任何你使用session的地方使用PREFIX_。
例如在数据库中我们有这样的东西:
$sql = "SELECT * FROM ".Config::getInstance()->dbprefix."users WHERE ...;"; 在这种情况下,我们需要这样的东西: ".Config::getInstance()->dbprefix."users

答案 2 :(得分:0)

要理解你所说的内容是非常困难的。如果我有点离开,请原谅我。

根据我的理解,你目前有一个网站(example.com)和一个本地网站通过WAMP(可能是localhost)你想要两个$ _SESSION ['cart']变量作为一个变量?

或者更简单一点,您希望localhost购物车与您的在线购物车同步,反之亦然。正确?

如果您完全控制两个站点,我建议通过URL传递加密的会话ID。如:

pseudo code
 temp_var = localhost_cookie
 mydomain.com/page.php?a=temp_var
 mydomain_cookie = gets a
 destroy temp_var

未经测试,这就是我现在所能想到的全部。