Я знаю, что это дубликат 2/3 других вопросов, но я попробовал предложенные решения, и они не сработали для меня. Я подозреваю, что проблема в файле PHP.ini, или с разрешениями папки сервера.
Страница входа:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
//EDIT: forgot to copy paste this, but it is in my code
session_start();
if (isset($_POST['username']) && isset($_POST['password'])) {
//login function basically checks the posted username and password, then sets some
//session variables accordingly
login($_POST['username'], $_POST['password']);
}
if (isset($_SESSION['valid']) && $_SESSION['valid'] === true) {
header("Location: /HomePage/Home.php");
exit;
}
...
?>
Домашняя страница:
<?php
//EDIT: forgot to copy paste this, but it is in my code
session_start();
ini_set('display_errors', 1);
error_reporting(E_ALL);
if (!isset($_SESSION['valid']) || $_SESSION['valid'] !== true) {
header("Location: /index.php");
exit;
}
...
?>
Теперь вот странная часть. Согласно Firebug, когда я ввожу правильное имя пользователя и пароль, меня перенаправляют на домашнюю страницу (как и предполагалось) , а затем меня перенаправляют обратно на страницу входа . Я делаю var_dump сессии на домашней странице, чтобы проверить, и сессия пуста.
РЕДАКТИРОВАТЬ 2: Когда я заменяю заголовок на
echo "Session is " . session_id() . "<br />";
на странице входа в систему идентификатор сессии пуст. Это проблема? Как мне это исправить?
РЕДАКТИРОВАТЬ: Это была проблема с ini-файлом PHP, спасибо за помощь.