我目前正在尝试建立我的第一个网站,但我遇到了PHP会话的问题。当我第一次在浏览器中加载页面时,我在其中包含一个.php文件,然后通过ajax调用另一个文件。我的问题是通过AJAX调用的php文件正在使用不同的session_id启动第二个会话。两个php文件都在public_html目录上面的目录中,这是index.php文件所在的目录。如果我用ctrl + F5刷新页面,没有问题,这两个文件返回相同的会话号。我已经将我的所有代码都删除了,并且已经没有解决这个问题的想法了。任何想法都将不胜感激。
编辑:我刚刚想到我用AJAX调用public_html中的file1.php文件,然后在上面的目录中调用file1.php,因为我看不到通过AJAX调用后一个php文件的任何其他方法。这可能是问题的原因吗? public_html中的file1.php只是:
<?php
include('../file1.php');
?>
以下是代码:
Index.php(包含php的主页的html文件):
<head>
<?php
include("../file1.php");
?>
<script type="text/javascript" language="javascript">
if(window.XMLHttpRequest){
xmlfile2=new XMLHttpRequest();
}
else{
xmlfile2=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlgetfile2.onreadystatechange=function(){
if(xmlfile2.readyState ==4 && xmlfile2.status==200){
var response = xmlfile2.responseText;
alert(response);
document.getElementById("userID").innerHTML= response;
}
}
xmlfile2.open("GET","file2.php",true);
xmlfile2.send();
</script>
</head>
file1.php:
<?php
session_start();
echo "session_id file1: " . session_id();
?>
file2.php:
<?php
session_start();
echo "session_id file2: " . session_id();
?>
答案 0 :(得分:0)
会话必须在开始时开始,到任何符号的结束。在您的代码中,首先有一个结论<head>
,然后已经是会话。
一般来说,问题可能而不是因为它,但最好是在顶部启动会话。此外,问题可能出在会话设置中。当我在文件中手动保存会话时,我遇到了类似的问题