Если прописать session_start только в одном файле, то данные из сессии не доходят до второго файла. Но если прописать session_start в двух файлах, вылезает ошибка, но все работает корректно.
Ошибка: Warning: session_start(): Cannot send session cache limiter - headers already sent
<?php
$arr = ["testuser" => "testpassword"];
setcookie('authorization', false, time()+3600);
if (isset($_REQUEST['login']) and isset($_REQUEST['password'])){
foreach($arr as $key => $value){
if($_REQUEST['login'] == $key and $_REQUEST['password']==$value){
setcookie('authorization', true, time()+3600);
session_start();
$_SESSION['name'] = $_REQUEST['login'];
echo 'Вы успешно авторизированы,'. $_SESSION['name'] . ' <a href="test.php">Продолжить</a>';
}
else{
echo 'Вы не авторизированы';
}
}
}
?>
<form action="" method="GET">
<input type="text" name="login">
<input type="text" name="password">
<input type="submit">
</form>
<?php
echo 'Страница личного кабинета' . '<br>';
if($_COOKIE['authorization']== true){
session_start();
echo 'Здравсвуйте ' . $_SESSION['name']. '<br>';
echo 'Вы авторизированы';
}
else if($_COOKIE['authorization']==false){
echo 'ВЫ не авторизированы';
}
?>