Вторая сессия PHP, начинающаяся с вызова AJAX при первой загрузке

В настоящее время я пытаюсь настроить свой первый веб-сайт, и у меня возникла проблема с сессиями PHP. Когда я впервые загружаю страницу в браузере, я включаю файл .php в, а затем вызываю другую через ajax. Моя проблема в том, что php-файл, вызываемый через AJAX, запускает второй сеанс с другим session_id. Оба файла php находятся в каталоге над каталогом public_html, в котором находится файл index.php. Если я обновлю страницу с помощью Ctrl + F5, проблем не возникнет, оба файла вернут один и тот же номер сеанса. Я разобрал весь свой код до предела и исчерпал идеи по решению этой проблемы. Любые идеи очень приветствуются.

Редактировать: мне просто пришло в голову, что я вызываю файл file1.php в public_html с помощью AJAX, который затем вызывает file1.php в каталоге выше, так как я не мог найти другого способа вызвать последний файл php через AJAX. Может ли это быть причиной проблемы? file1.php в public_html это просто:

<?php
include('../file1.php');
?>

Вот код:

Index.php (html-файл домашней страницы, содержащий php):

<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

Решение

Сессия должна начинаться в самом начале, до вывода любых символов. В вашем коде сначала делается вывод <head>, а потом уже сессия.

В общем проблема может быть и не из-за этого, но лучше начинать сессию в самом верху. Помимо этого проблема может быть в настройках сессий. У меня была похожая проблема, когда я вручную держал сессию в файлах

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]