Самое удивительное здесь в том, что два месяца назад вам, пусть и криво, но
удавалось справиться с этой проблемой.
Ну давайте попробуем ещё раз, заодно сделав этот код чуть более осмысленным
<?php
session_start();
if (isset($_SESSION['user']['id'])) {
header("Location: /profile.php");
exit;
}
require_once __DIR__ . '/scr/connect.php';
$connect = getDB();
- Поскольку само проверяемое значение нигде не используется, а важно только его наличие, то присваивать его переменной нет смысла.
- Поскольку нас интересует наличие значения в сессии, то и проверяем мы именно наличие, с помощью isset.
- Детсадовский пустой if с else переписываем на нормальный, просто инвертировав условие.
- Соединение с БД делаем уже ПОСЛЕ поверки, поскольку при редиректе оно оказывается бессмысленным.
- После ридеректа добавляем принудительный выход, поскольку сам редирект, внезапно, работу скрипта не прекращает (кто бы мог подумать).
Если же нам в дальнейшем коде понадобится переменная (например, в том же profile.php), то тогда имеет смысл присвоить его переменной, используя оператор приведения к null как сокращённую форму проверки и присвоения с помощью isset():
<?php
session_start();
$idUser = $_SESSION['user']['id'] ?? null;
if ($idUser === null) {
header("Location: /login.php");
exit;
}
require_once __DIR__ . '/scr/connect.php';
$connect = getDB();