Не работает header('Location: profile.php')
Всем привет, сделал лёгкую авторизацию по имени, и теперь, когда пользователь авторизовался, попал в profile.php и пытается перейти на login.php, я написал header('Location: profile.php'), так как он уже авторизован и авторизацию ему показывать не надо, но у меня почему то все равно ему показывает авторизацию, и при этом еще и очищается $_SESSION['name'], в чем моя ошибка?
Login.php:
<?php
session_start();
if($_SESSION['name']) {
header('Location: profile.php');
die();
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Сессии и куки</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
</head>
<body>
<main>
<div class="container">
<!-- Выводить если пользователь не указал свое имя -->
<h1 class="dispaly-1 mt-5">Как тебя зовут?</h1>
<div class="row">
<form action="profile.php" method="post">
<div class="mb-3">
<label for="name" class="form-label">Ваше имя</label>
<input name="name" type="text" class="form-control" id="name" placeholder="Иван">
</div>
<button class="btn btn-primary">Сказать</button>
</form>
</div>
</div>
</main>
</body>
</html>
Profile.php:
<?php
session_start();
$_SESSION['name'] = $_POST['name'];
if (!$_SESSION['name']) {
header('Location: login.php');
die();
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Сессии и куки</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
</head>
<body>
<main>
<div class="container">
<!-- Выводить если пользователя сохранен в сессии или куках -->
<h1 class="dispaly-1 mt-5">Привет, <?= $_SESSION['name'] ?>!</h1>
<div class="btn-group">
<a href="logout.php" class="btn btn-danger">Очистить</a>
</div>
</div>
</main>
</body>
</html>
Источник: Stack Overflow на русском