Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
-30 / 13 / 1
Регистрация: 18.12.2018
Сообщений: 422
1

Как сделать выход из сайта

23.04.2022, 17:13. Показов 761. Ответов 5

Author24 — интернет-сервис помощи студентам
Написал простой сайт, где начинается сессия:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php 
header('Content-Type: text/html; charset=utf-8');
session_start();
if(! $_SESSION['admin'])
header('Location: adminavt.php');
 
require_once '../bd.php';
 
// Мой код...
 
<a href="adminpanel.php?click=1">Выйти</a>
<?php
if ($_GET['click'])
{
    session_destroy();
    header('Location: adminavt.php');
}
    ?>
Когда нажимаю на кнопку, то выходит ошибка:

Warning: Cannot modify header information - headers already sent by

Я знаю, что он ругается на заголовок, а почему не знаю
И как это можно исправить тоже не знаю
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.04.2022, 17:13
Ответы с готовыми решениями:

Как сделать проверку на выход с сайта
У меня в базе даных есть login onlaine Worl 0 При заходе на сайт у меня сделана 1...

Как сделать выход из приложения по кнопке выход
Привет! Имеется 3 активити. А1 - запускается при запуске приложения(анимация) А2 - меню ( с...

Как реализовать выход с сайта?
У меня есть админка, как ставить там кнопку, чтобы по нажатии вышли с админки (сессия остановилась)...

как реализовать выход с сайта?
у меня почему то ничего не происходит, вообще. сама кнопка выхода &lt;form action=&quot;exit.php&quot;...

Как отследить выход пользователя из сайта?
Пользователь зашел на сайт, тут же о нем в БД была занесена информация, как отследить его выход?...

5
Заблокирован
23.04.2022, 18:09 2
Лучший ответ Сообщение было отмечено SalavatGood как решение

Решение

Цитата Сообщение от SalavatGood Посмотреть сообщение
И как это можно исправить
Цитата Сообщение от SalavatGood Посмотреть сообщение
if ($_GET['click'])
Этот код поставить вверх страницы. На форуме есть статья об этой проблеме Что означает предупреждение "headers already sent"
0
-30 / 13 / 1
Регистрация: 18.12.2018
Сообщений: 422
24.04.2022, 12:12  [ТС] 3
Цитата Сообщение от Zvo Посмотреть сообщение
Этот код поставить вверх страницы.
Не помогло, вылазят ошибки:
Код
Warning: session_destroy(): Trying to destroy uninitialized session ... on line 4
Warning: Cannot modify header information - headers already sent by ... on line 5
Warning: Cannot modify header information - headers already sent by ... on line 7
Warning: session_start(): Cannot send session cache limiter - headers already sent ... on line 8
Вообще, как можно сделать так, чтобы по нажатию на кнопку, вызывалась функция session_destroy(), и нас перекидывало в окно авторизации?
0
Заблокирован
24.04.2022, 12:19 4
SalavatGood, Вы почитали про ошибку "headers already sent by" ? Я давал ссылку. Сессии не будут устанавливаться и удаляться, если до этого есть какой-либо вывод в браузер. И не только сессии. Читайте внимательно статью. "Лучше день потерять, а потом за час долететь")
Потом покажете свой измененный код, если опять не получится.
0
-30 / 13 / 1
Регистрация: 18.12.2018
Сообщений: 422
24.04.2022, 12:34  [ТС] 5
Zvo, да, прочитал, спасибо большое, просто добавил функцию ob_start() в начале и убрал отступы перед <?php и ?>:
PHP
1
2
3
4
5
<?php
ob_start();
header('Content-Type: text/html; charset=utf-8');
session_start();
// мой код ...
PHP
1
2
3
4
5
6
7
8
    <a href="adminpanel.php?click=1">Выйти</a>
<?php
    if ($_GET['click'])
    {
        session_destroy();
        header('Location: adminavt.php');
    }
?>
0
Заблокирован
24.04.2022, 12:41 6
SalavatGood, пока ты читал, я набросал пример

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
session_start();
 
if (isset($_GET['click']) && $_GET['click']==1)
{
    session_destroy();
    header("Refresh: 1; URL=adminavt.php");
    echo "Удалили сессию<br>";
    die();
}
else if (isset($_GET['click']) && $_GET['click']==2)
{
    $_SESSION['admin']="es";
    header("Refresh: 1; URL=adminavt.php");
    echo "Установили сессию<br>";
    die();
}
 
if(isset($_SESSION['admin']))
echo "Сессия установлена<br>";
else echo "Сессия не установлена<br>";
?>
<a href="adminavt.php?click=2">Войти</a><br>
<a href="adminavt.php?click=1">Выйти</a>
Добавлено через 56 секунд
Цитата Сообщение от SalavatGood Посмотреть сообщение
if ($_GET['click'])
Так не делают. Да и некоторые другие неточности
1
24.04.2022, 12:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.04.2022, 12:41
Помогаю со студенческими работами здесь

Как сделать выход?
Как сделать выход из вложенного цикла во внешний? #include &lt;iostream&gt; #include &lt;algorithm&gt; ...

Как сделать выход из программы?
Как сделать выход из программы?

Как сделать выход по ESC
org 100h old dw 0 jmp start number dw 0 c dw 0 start: xor ax,ax mov es,ax cli

Как сделать токовый выход?
Подскажите как сделать следующую штуку: на вход АЦП прицепляю датчик влажности, пересчитываю...

Как сделать выход из программы
Мне нужно чтобы программа продолжала работать, если я введу 1 и заканчивала, если введу 0 Но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru