Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: ООП
Войти
Регистрация
Восстановить пароль
 
Red_Max
0 / 0 / 0
Регистрация: 29.10.2017
Сообщений: 5
1

Не работает удаление сессии

13.05.2018, 16:43. Просмотров 370. Ответов 7
Метки нет (Все метки)

Доброго времени суток!
Пишу небольшое веб-приложение и решил сделать авторизацию, но возникла проблемка. Пользователь входит, для него создаётся сессия, а вот выйти уже не получается - сессия никак не уничтожается. Реализуется всё через 2 файла: authorization.php - файл в котором непосредственно создаётся сессия и exit.php - файл, где уничтожается сессия.
Подскажите, что делаю не так?

authorization.php
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
session_start();
include '../connect_db.php';
$usertype = $_POST['usertype'];
$login_st = $_POST['login_st'];
$password_st = $_POST['password_st'];
$login_te = $_POST['login_te'];
$password_te = $_POST['password_te'];
if($usertype == 'student') {
$password_st = MD5($password_st);   
$query = mysqli_query($db,"SELECT login,password FROM students WHERE login = '$login_st' AND password = '$password_st'");
if (mysqli_num_rows($query) != 0)
    {
        $_SESSION['login']  = 'student';
        echo"
        <script type='text/javascript'>
        alert('Вы авторизовались!');
        location.href = '../index.php';
        </script>
        ";
    } else {
        echo"
        <script type='text/javascript'>
        alert('Неверный логин или пароль');
        location.href = '../Auth/auth.php'
        </script>";
        };
} else 
    {
        $password_te = MD5($password_te);   
        $query = mysqli_query($db,"SELECT login,password FROM teachers WHERE login = '$login_te' AND password = '$password_te'");
        if (mysqli_num_rows($query) != 0)
        {
            $_SESSION['login']  = 'teacher';
            echo"
            <script type='text/javascript'>
            alert('Вы авторизовались!');
            location.href = '../admin.php';
            </script>
            ";
        } else {
            echo"
            <script type='text/javascript'>
            alert('Неверный логин или пароль');
            location.href = '../Auth/auth.php'
            </script>";
        };
    };  
?>
exit.php
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
<?php
session_start();
setcookie(session_name(), session_id(), time()-1);
session_unset();
session_destroy();
echo"
    <script type='text/javascript'>
    location.href = '../index.php';
    </script>
    ";
?>
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2018, 16:43
Ответы с готовыми решениями:

Удаление сессии при отсутствии активности
Здравствуйте, делаю сайт на php. У меня появился такой вопрос как удалить сессию пользователя,...

Удаление сессии
Искал в Google, пытался переделывать код, очищать сам (правда не получилось) и в итоге остановился...

Удаление переменных сессии
Добрый день) Подскажите пожалуйста: Все переменные сессии можно удалить как session_unset() или...

Удаление кукисов по окончанию сессии
А как сделать, чтобы кукисы удалялись по окончании сессии, т.е. по закрытию окна? Необходимо,...

Не работает авторизация через сессии
Проверяю, если логин и пароль верны, то делаю $_SESSION = 1; Далее перенаправляет на другую...

7
Slash Mix
14 / 13 / 10
Регистрация: 01.04.2018
Сообщений: 106
13.05.2018, 18:15 2
Попробуйте так:
PHP
1
2
3
4
<?php
session_start();
$_SESSION = array();
session_destroy();
0
Red_Max
0 / 0 / 0
Регистрация: 29.10.2017
Сообщений: 5
13.05.2018, 19:30  [ТС] 3
Цитата Сообщение от Slash Mix Посмотреть сообщение
<?php
session_start();
$_SESSION = array();
session_destroy();
Спасибо за ответ, но к сожалению не работает
0
Slash Mix
14 / 13 / 10
Регистрация: 01.04.2018
Сообщений: 106
14.05.2018, 03:20 4
Red_Max, как вы проверяете, удалена сессия или нет?
0
14.05.2018, 03:20
Red_Max
0 / 0 / 0
Регистрация: 29.10.2017
Сообщений: 5
14.05.2018, 15:00  [ТС] 5
Slash Mix, в index.php, с помощью document.cookie

Javascript
1
alert( document.cookie );
0
Миниатюры
Не работает удаление сессии  
Slash Mix
14 / 13 / 10
Регистрация: 01.04.2018
Сообщений: 106
14.05.2018, 18:45 6
Цитата Сообщение от Red_Max Посмотреть сообщение
с помощью document.cookie
Я что то не пойму, а при чем тут куки? Вы же сессию убить хотите.
Куки хранятся в браузере, а сессия на сервере.
0
Jodah
Эксперт PHP
3130 / 2675 / 1129
Регистрация: 01.08.2012
Сообщений: 9,373
14.05.2018, 20:21 7
Slash Mix, механизм сессий для идентификации пользователей использует куку с названием PHPSESSID.
1
Slash Mix
14 / 13 / 10
Регистрация: 01.04.2018
Сообщений: 106
15.05.2018, 02:41 8
Jodah, выходит, кука должно стираться вмести с сессией?
Red_Max, а сама сессия при этом убита?
0
15.05.2018, 02:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2018, 02:41

PsExec не работает при блокировке сессии
Здравствуйте, пробую утилитку psexec для запуска процессов на удаленной машине... когда...

Не работает удаление пробелов в строке! Подскажите пожалуйста, почему не работает?
Здравствуйте! Скажите пожалуйста, почему не работает данный код; должно брать строку, которую ввёл...

PHP сессии, сортировка массива сессии
Доброе время суток, существует такая ситуация, у меня есть корзина, которая основана на сессиях,...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru