Данные сеанса PHP потеряны при первой перезагрузке с помощью jquery load ()

#php #jquery #session

#php #jquery #сеанс

Вопрос:

Я загружаю содержимое в div с помощью функции load () jquery и обновляю этот div каждые 15 секунд (он проверяет статус).

По какой-то причине после первой перезагрузки / обновления div данные сеанса теряются.

Точный код, который я использую, очень длинный, поэтому базовая версия того, что я делаю, такова:

load.php

 <?php
session_start();
$_SESSION['testvalue'] = "TESTVALUE";
?>
<div id="loaddiv"></div>
<script src="js/jquery.js"></script>
<script>
(function($)
{
    $(document).ready(function()
    {
        $.ajaxSetup(
        {
            cache: false,
                    });
        var $container = $("#loaddiv");
        $container.load("load_test.php");
        var refreshId = setInterval(function()
        {
            $container.load('load_test.php');
        }, 10000);
    });
})(jQuery);
</script>
 

load_test.php

 <?php 
session_start();
echo $_SESSION['testvalue'];
?>
 

Отлично работает, когда страница загружается изначально и отображает TESTVALUE, однако после обновления div вывода больше нет.

Кто-нибудь сталкивался с этим раньше и знает, что происходит?

//РЕДАКТИРОВАТЬ

Я на один шаг продвинулся к решению этой проблемы:

На главной странице я выбираю некоторые вещи из моей базы данных mysql и помещаю это в сеанс, на подстранице (той, которую загружает jquery load ()) Я сейчас просто выводю значения сеанса.

На подстранице нет абсолютно ничего, кроме этого:

 <?php
session_start();
echo $_SESSION['test_one'];
echo $_SESSION['test_two'];
?>

<?php echo session_id(); ?>
 

Когда jquery load() запускается во второй раз, значения в
$_SESSION['test_one']; и $_SESSION['test_two']; меняются … (Он снова запускает запрос mysql и добавляет что-то еще в сеанс)

Значения для сеанса устанавливаются на главной странице, так зачем же при обновлении подстраницы снова запускать запрос mysql на главной странице ?!

Комментарии:

1. Первое, что я бы попробовал, это потерять переменную $container и перейти $("#loaddiv").load("load_test.php") к вашим вызовам load.

2. «потеряно»? Вы проверяли session_id() , возвращает ли один и тот же идентификатор для обоих запросов? Если это изменится, значит, у вас проблема с настройкой файлов cookie сеанса, и вы получаете разные сеансы для каждого запроса.

3. Другой способ отладки — использовать консоль браузера и проверить связь. Ищите файлы cookie сеанса.

4. может быть, ваша проблема как-то связана с необходимостью перезагрузки dom, чтобы вернуть его в исходное состояние с точки зрения функциональности.

5. Firebug показывает, что идентификатор сеанса тот же, при первой загрузке Cookie PHPSESSID=43480464d84a90ec77c166e43921194d; при любом обновлении Cookie PHPSESSID=43480464d84a90ec77c166e43921194d; , но переменные исчезли.