在php中的同一个域上有1个会话(id)

时间:2017-02-18 18:14:51

标签: php ajax session

我在debian 8服务器上运行PHP7。我在这台服务器上托管了2个域名。我想要的是每个域1个session_id。我在php文件中的ajax / php调用中更改会话信息时遇到问题,因为session_id不同。

setup.php ,它包含在两个文件顶部的 index.php calledByAjax.php 中。在 setup.php 中,我运行SESSION_START()

下面解释了代码中的问题。

domain.com/helpers/ Setup.php

session_start();

domain.com/的的index.php

include("helpers/settings.php" );
echo session_id(); // output: c4eapvno37vg027aba4pk2gl06

<script>
ajax.open("POST", "http://www.domain.com/calls/calledByAjax.php.php", true);
// response output: asdf98asdfahasdfl
</script>

domain.com/的 calledByAjax.php

echo session_id();

2 个答案:

答案 0 :(得分:0)

会话是域名所特有的,因为Cookie是。但是,您可以在多个子域上共享会话cookie,前提是主域强制执行www子域,并且如果您在cookie名称前加上一个点:

http://php.net/manual/en/function.session-set-cookie-params.php

  

$domain

     

Cookie域,例如“www.php.net”。要在所有子域上显示cookie,域必须以“.php.net”之类的点为前缀。

答案 1 :(得分:0)

问题在于ajax调用。我打电话给http:// www .domain.com / ---来自http://domain.com/----

ajax.open("POST", "http://domain.com/calls/calledByAjax.php.php", true);