if (!isset($_SESSION)
session_start();
Но не советую так делать. Бестолковая проверка
Вообще сначала надо присвоить сессии значение, например после авторизации
if (isset($_POST['auth'])) {
if($func->checkPassword($_POST['login'], $_POST['password'])) {
$_SESSION[name] = $_POST['login'];
header("Location: cp.php");
}
else
$msg = "Не верный логин или пароль";
}
Тут у меня функция проверки пароля через password_verify
if($func->checkPassword($_POST['login'], $_POST['password'])) {
Соответственно после авторизации создастся сессия в которую записан login человека который ввел в форму свое имя
далее допустим создадим файл cp.php
И нам не надо чтобы без авторизации он зашел туда т.е. ставим проверку
if(!isset($_SESSION['name']) {
//Любые манипуляции если он не залогинен
//например кинем на login.php
header('Location: login.php')
}
isset - проверка на установленное значение переменной т.е. если ее не существует, то код в скобках работает
если все ок то можем дальше делать что хотим
У тебя проблема в том, что ты проверяешь массив $_SESSION хотя если ты не авторизован его нет + ты его не заполнил как заполнил я (name)