У меня установлен код сеанса, но он, похоже, не работает!
В моем скрипте проверки входа для запроса 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..
Пытаться:
<?php
session_start();
session_unset($_SESSION['user']);
header("Location: index.html");
?>
Этот метод не самый лучший, поскольку он очищает содержимое переменной, а не сам сеанс, поэтому, если вы попытаетесь проверить его снова, он все равно будет присутствовать, поэтому вместо этого попробуйте следующее:
<?php
session_start();
session_destroy();
header("Location: index.html");
?>
Надеюсь, поможет.