Делаю авторизацию, возникла такая проблема. При нажатии на <a href="logout.php"> Logout </a>
, происходит редирект на login.php, т.е. на форму, но если в соседней вкладке зайти на home.php, то редирект не происходит и пользователь как бы остаётся в системе. Т.е. не происходит разрушение сессии.
Вот код php:
login.php
<?php
session_start();
if (isset($_POST['submit']))
{
include("config.php");
$username=$_POST['username'];
$password=$_POST['password'];
$_SESSION['login_user']=$username;
$query = mysql_query("SELECT username FROM login WHERE username='$username' and password='$password'");
if (mysql_num_rows($query) != 0)
{
echo "<script language='javascript' type='text/javascript'> location.href='home.php' </script>";
}
else
{
echo "<script type='text/javascript'>alert('User Name Or Password Invalid!')</script>";
}
}
?>
home.php
<html>
<head>
<title>Untitled Document</title>
</head>
<body>
<h1>Welcome
<?php
session_start();
$login_session=$_SESSION['login_user'];
echo $login_session;?> </h1>
<a href="logout.php"> Logout </a>
</body>
</html>
logout.php
<?php
session_start();
if(session_destroy())
{
header("Location: login.php");
}
?>
Ну, я уже не помню всех тонкостей с сессиями, но в моем видении это так: при логине создаешь некий ключ в сессии, например:
//login.php
if (mysql_num_rows($query) != 0){
$row = mysql_fetch_assoc($query)
$user_login = $row['username'];
$_SESSION['user_login'] = $user_login;//присваиваем нашему ключу значение
//В нашем случае, логин юзера
if(isset($_GET['requested_url']){
header('Location: '.urldecode($_GET['requested_url']));
}//Если был задан запрашиваемый адрес, то автоматически перенаправляем его туда.
}
Потом, когда к тебе на страницу заходят, первым делом вызываешь скрипт, который проверяет сессию:
//somepage.php
if(!isset($_SESSION['user_login']){
header('Location: login.php?requested_url='.urlencode($_SERVER[REQUEST_URI]));//В идеале, передавая и адрес страницы, на которую изначально хотел зайти пользователь, чтобы потом сразу перенаправить его туда.
}
require_once('content.php');
//logout.php
session_unset();
header('Location: login.php');
Сразу, просьба исключить комментарии про голый mysql вместо PDO и иже с ним, ответ ориентируется на достижение других целей.
Попробуй использовать unset($_SESSION['login_user']);
session_destroy()
не желательно использовать
Используй проверки if(isset($_SESSION['login_user']))
...
Виртуальный выделенный сервер (VDS) становится отличным выбором
Пробую достать данные из 2 столбца таблицы, вроде бы получается, единственное это не могу додумать как вместо пустых ячеек добавить нольИ...
Добрый день, проблема в том, что не открываются изображения, даже если оно лежит в той же папке, что и сам компонент
Есть страница, на которую выводятся порядка 40-50 блочных элементов при помощи append(), что делает страницу очень большойЭлементы отображаются...