我在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();
答案 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);