Вы пропустили session_start () в верхней части вашего dologin.php
.Требуется в верхней части каждой страницы перед началом любого вывода.
Без session_start();
у вас не будет доступа для создания или обновления переменной сеанса (в вашем случае $ _SESSION ['user'])
session_start()
: http://php.net/manual/en/function.session-start.php
Также - еще один полезный совет:
Я заметил, что вы неполучил exit();
после вашего header();
Это понадобится вам, чтобы, если пользователь обновит login.php после входа в систему, браузер не будет повторно отправлять опубликованные данные в dologin.php
Также -Еще один полезный совет:
У вас есть
<?php if(!empty($_SESSION['user'])) { ?>
Вы, вероятно, хотите
<?php if(empty($_SESSION['user'])) { ?> // No `!`
Вы захотите показать форму входа, если нет $ _SESSION ['user']
Итак, ваш окончательный код будет выглядеть так:
<!-- login.php -->
<?php
session_start();
?>
<?php if(empty($_SESSION['user'])) { ?>
<form>
<input type="text" name="username" />
<input type = "password" name = "password" />
<input type="submit" value = "login" />
<input type="hidden" name="token" value="KdasS2wFgw24F7hh" />
</form>
<?php } else { ?>
You are already logged in.
<? } ?>
<!-- dologin.php -->
<?php
session_start();
$allowed = //sql checking db
if($allowed > 0) {
$_SESSION['user'] = $row['user_id'];
}
header("Location: login.php");
exit();
?>