Аутентификация пользователя с использованием сессий с PHP

0

У меня установлен код сеанса, но он, похоже, не работает!

В моем скрипте проверки входа для запроса POST из формы входа в систему мой код следующий.

        if( isset($_POST['email']) && isset($_POST['password']) )
        {
        // Perform Lookup
                $sql = "SELECT * FROM authentication WHERE email='" . $email . "';";
                $query = mysqli_query($conn,$sql);
                $fetch = mysqli_fetch_assoc($query);
                $fetched = $fetch['email'];
            if($fetched == $email)
            {
                // auth okay, setup session
                $_SESSION['user'] = $_POST['email'];
                // redirect to required page
                header( "Location: app.php" );
             } else {
                // didn't auth go back to loginform
                //header( "Location: fail.html" );
                die("Failed to auth.");
             }
         } else {
             // username and password not given so go back to login
             //header( "Location: loginform.html" );
            die("NO Username or Password Given");
         }

        ?>

На моей странице "Безопасный" это наверху..

        <?php
        session_start();
        session_regenerate_id();
        if(!isset($_SESSION['user']))      // if there is no valid session
        {
            header("Location: index.php?message=notauthed");
        }
        require 'includes/header.php';
        $name = $_SESSION['user'];
        ?>

На моем сценарии выхода из системы это на месте.

<?php
session_start();
unset($_SESSION['user']);
session_destroy();
header("Location: index.html");
?>

Woops полностью забыл включить проблемы ха-ха :)

Работа скрипта входа, перенаправление в порядке.

После входа в систему я не могу выполнить echo $ name = $ _SESSION ['user'];

Кроме того, когда я выхожу из системы, я все еще могу получить доступ к странице приложения.

ТАКЖЕ ** Я работаю на PHP 5.3? Я думаю. Не последний, хостинг-сервер php..

Теги:
authentication
session

1 ответ

0

Пытаться:

    <?php
session_start();
session_unset($_SESSION['user']);
header("Location: index.html");
?>

Этот метод не самый лучший, поскольку он очищает содержимое переменной, а не сам сеанс, поэтому, если вы попытаетесь проверить его снова, он все равно будет присутствовать, поэтому вместо этого попробуйте следующее:

<?php
   session_start();
   session_destroy();
   header("Location: index.html");
?>

Надеюсь, поможет.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню