Я сталкиваюсь с этой странной проблемой. У меня есть страница PHP, где я устанавливаю переменную сеанса. Затем я загружаю другую страницу в тег DIV этой страницы, используя $ (''). Load (URL); Но загружаемая страница не сохраняет сеанс и уничтожает текущий, как только он будет загружен. Но на той же странице сохраняется сессия, если она хранится в том же каталоге вместе с главной страницей.Сессия PHP не работает в подкаталогах
Я видел аналогичный вопрос here. Но это не дает никакого решения.
Вот мой код Главная: sample.php
<?php
session_start();
echo session_id();
echo "<br>";
$_SESSION['test'] = "hello";
var_dump($_SESSION);
echo "<br>";
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?php
echo $_SESSION["test"];
?>
<div id="samedir" style="border: 1px solid #000;">
</div>
<br>
<div id="subdir" style="border: 1px solid #000;">
</div>
<input type="button" value="hello" id="hellobtn"/>
<script type="text/javascript" src="js/jquery-1.11.0.js"></script>
<script>
$('#hellobtn').click(function() {
$('#samedir').load("sample1.php");
$('#subdir').load("forms/sample1.php");
});
</script>
</body>
</html>
Вторая страница: sample1.php
<?php
ob_start();
if(!isset($_SESSION))
session_start();
echo session_id();
echo "<br>";
var_dump($_SESSION);
ob_flush();
?>
Вы можете увидеть здесь у меня есть 2 вызова нагрузки в главной странице $ ('#samedir') нагрузки ("sample1.php"). это один груз из той же директории и отвалов выход
array(1) { ["test"]=> string(5) "hello" }
В то время как второй вызов $('#subdir').load("forms/sample1.php");
отвалы это:
array(0) { }
Но все прекрасно работает в моем локальном хосте (MAMP), но не в моем хостинг-сервере. Спасибо, ребята.
, что если вы просто выполняете оператор if + echo $ _session ['test'] на sample1.php? – Julo0sS
Некоторые пробелы/новые строки перед открытием тега php?Вы должны включить отображение ошибок и проверить возвращаемое значение 'session_start()'. Кроме того, ваш результат не соответствует сценарию, где идентификатор сеанса? – jeroen
'sample1.php':' session_start(); 'в любом условии .. не только' if (! Isset ($ _ SESSION)) '.. –