Сессия не создается и продолжает перенаправляться на login.php. На самом деле не понимаю, почему! Мне очень нужна помощь :(Сессия не работает PHP
Вот мой класс Session:
class Session {
private $logged_in=false;
public $user_id;
function __construct() {
session_start();
$this->check_login();
if($this->logged_in) {
// actions to take right away if user is logged in
} else {
// actions to take right away if user is not logged in
}
}
public function is_logged_in() {
return $this->logged_in;
}
public function login($user) {
if($user){
$this->user_id = $_SESSION['user_id'] = $user->id;
$this->logged_in = true;
}
}
public function logout() {
unset($_SESSION['user_id']);
unset($this->user_id);
$this->logged_in = false;
}
private function check_login() {
if(isset($_SESSION['user_id'])) {
$this->user_id = $_SESSION['user_id'];
$this->logged_in = true;
} else {
unset($this->user_id);
$this->logged_in = false;
}
}
}
$session = new Session();
?>
Вот часть моей странице входа:
if (isset($_POST['submit'])) { // Form has been submitted.
$user_name = trim($_POST['user_name']);
$password = trim($_POST['password']);
// Check database to see if username/password exist.
$found_user = User::authenticate($user_name, $password);
if ($found_user) {
$session->login($found_user);
redirect_to("index.php");
} else {
// username/password combo was not found in the database
$message = "Username/password combination incorrect.";
}
} else { // Form has not been submitted.
$user_name = "";
$password = "";
}
А вот часть index.php:
if (!$session->is_logged_in()) { redirect_to("login.php");
То, что я пробовал:
Я попытался поставить session_start(); на старте не повезло. Просмотрели ошибки во всем коде, используемом на этих страницах.
Почему вам нужен класс сеанса? и почему у вас есть 'session_start();' inside '__constract()'? –
Может быть, потому, что я использую локальный сервер WAMP? – user3157444
Nope .. сессия не имеет ничего общего с сервером. Пробовали ли вы отображать значения вашей сессии? Или, по крайней мере, создать отдельный сеанс (без класса), затем вывести значения на другую страницу и посмотреть, действительно ли это не работает? –