После авторизации под логином администратора выходит страница с итоговой таблицей с результатами тестирования всех пользователей (admin.php), если вернутся на страницу с профилем (profile.php) и нажать кнопку выйти, и потом опять вернутся на страницу admin.php то таблица все еще будет активной. Как это избежать? Чтобы после выхода из профиля страница admin.php перестала отображаться. Подскажите какие есть способы и методы обойти это? Заранее большое спасибо! Код страницы admin.php: PHP: <?php include_once 'db.php'; $res = $db->query("SELECT * FROM users"); // Удаление файлов предыдущего сеанса if ($handle = opendir('.')) { while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != "..") { if (preg_match('#[\d._]+users.csv#', $entry)) { unlink($entry); } } } closedir($handle); } $fileName = date('d') . "." . date('m') . "." . date('Y') . "_" . time() . "_users.csv"; $users = []; $users[0]['full_name'] = "ФИО"; $users[0]['sex'] = "Пол"; $users[0]['gender'] = "С кем проживаю"; $users[0]['relatives'] = "Братья/Сестры"; $users[0]['performance'] = "Успеваемость"; $users[0]['cat21'] = "Подшкала Депрессия"; $users[0]['cat22'] = "Подшкала Тревога"; $users[0]['cat23'] = "Подшкала Стресс"; $users[0]['cat24'] = "Подшкала Эмоциональные симптомы"; $users[0]['cat25'] = "Подшкала Проблемы поведения"; $users[0]['cat26'] = "Подшкала Гиперактивность"; $users[0]['cat27'] = "Подшкала Проблемы отношений со сверстниками"; $users[0]['cat28'] = "Подшкала Просоциальное поведение"; $users[0]['cat29'] = "Шкала оценки намеренного"; foreach ($res as $key => $row) { $users[$key + 1]['full_name'] = $row['full_name']; $users[$key + 1]['sex'] = $row['sex']; $users[$key + 1]['gender'] = $row['gender']; $users[$key + 1]['relatives'] = $row['relatives']; $users[$key + 1]['performance'] = $row['performance']; $users[$key + 1]['cat21'] = $row['cat21']; $users[$key + 1]['cat22'] = $row['cat22']; $users[$key + 1]['cat23'] = $row['cat23']; $users[$key + 1]['cat24'] = $row['cat24']; $users[$key + 1]['cat25'] = $row['cat25']; $users[$key + 1]['cat26'] = $row['cat26']; $users[$key + 1]['cat27'] = $row['cat27']; $users[$key + 1]['cat28'] = $row['cat28']; $users[$key + 1]['cat29'] = $row['cat29']; } $file = fopen($fileName, 'w'); foreach ($users as $line) { fputcsv($file, $line, ";"); } fclose($file) ?> <!doctype html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Система тестирования</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous"> <link rel="stylesheet" href="assets/css/app.css"> <style> table { border-collapse: collapse;} th, td { padding: 3px; border: 1px solid black; } </style> </head> <body> <div class="container"> <div class="row justify-content-center"> <h1>Все пользователи</h1> <table> <tr> <?php foreach ($users as $user): ?> <td> <?= $user['full_name']; ?> </td> <td> <?= $user['sex']; ?> </td> <td> <?= $user['gender']; ?> </td> <td> <?= $user['relatives']; ?> </td> <td> <?= $user['performance']; ?> </td> <td> <?= $user['cat21']; ?> </td> <td> <?= $user['cat22']; ?> </td> <td> <?= $user['cat23']; ?> </td> <td> <?= $user['cat24']; ?> </td> <td> <?= $user['cat25']; ?> </td> <td> <?= $user['cat26']; ?> </td> <td> <?= $user['cat27']; ?> </td> <td> <?= $user['cat28']; ?> </td> <td> <?= $user['cat29']; ?> </td> </tr> <?php endforeach; ?> </table> <br> <p> <a href="index.php">Назад</a> </p> <a href="<?= $fileName ?>" download=""> <button>Скачать файл</button> </a> </div> </div> <p> <a href="info.html">Связаться со мной</a> </p> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script src="js/app.js"></script> </body> </html> Код страницы profile.php: PHP: <?php session_start(); if (!$_SESSION['user']) { header('Location: /'); } ?> <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Авторизация и регистрация</title> <link rel="stylesheet" href="assets/css/main.css"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> </head> <body> <!-- Профиль --> <form action="test.php?<?php echo $_SESSION['user']['id'] ?>"> <img src="<?= $_SESSION['user']['avatar'] ?>" width="200" alt=""> <h2 style="margin: 10px 0;"><?= $_SESSION['user']['full_name'] ?></h2> <a href="#"><?= $_SESSION['user']['email'] ?></a> <button type="submit" class="btn btn-primary btn-lg" id="user" style="background:#0B5ED7; color:#FFFFFF">Начать тестирование</button> <a href="vendor/logout.php" class="logout" style="color:#B30B00">ВЫХОД</a> </form> </body> </html>
честно говоря в этой помойке совсем не хочется разбираться.... не знаю что у вас там по кнопке - выйти... похоже сессию вы не уничтожаете
При помощи кнопки «Назад» или истории? Это кеширование в браузере. Одна из самых серьезных проблем, когда админка работает на основе обычных страниц. Пробуйте все страницы админки снабжать заголовками, препятствующими кешированию. Иногда помогает Если вводить тот же адрес в адресной строке, проблема может не проявиться. Со ссылками в закладках и с обычными ссылками тоже по-разному бывает. Для ручной борьбы с этим явлением помогает кнопка «Обновить» (иногда после второй попытки). Если это вообще не помогает, то проблема скорее всего в чем-то другом. Т.е. походу не выполнили выход.
PHP: <?php // admin.php session_start(); if (empty($_SESSION['user'])) { echo "Вы не авторизованы для просмотра этой страницы."; exit; } include_once 'db.php'; $res = $db->query("SELECT * FROM users"); ... P.S. PHP: $fileName = date('d.m.Y') . "_" . time() . "_users.csv";