Можно ли создать автоматический выход из системы, когда посетитель закрывает или покидает страницу?Я знаю, что код, который я использовал, не очень хороший, но мне нужно что-то без базы данных.Во всяком случае, я использую 2 файла, login.php и index.php.Я только начал писать PHP, поэтому «простое» объяснение было бы очень полезно;)
Код для входа, который я сейчас использую:
login.php
<?php defined('DS') OR die('No direct access allowed.');
$users = array(
"admin" => "admin"
);
if(isset($_GET['logout'])) {
$_SESSION['username'] = '';
header('Location: ' . $_SERVER['PHP_SELF']);
}
if(isset($_POST['username'])) {
if($users[$_POST['username']] !== NULL && $users[$_POST['username']] == $_POST['password']) {
$_SESSION['username'] = $_POST['username'];
header('Location: ' . $_SERVER['PHP_SELF']);
}else {
//invalid login
echo "<p>Username and/or password is incorrect!</p>";
}
}
echo '<form method="post" action="'.SELF.'">
<h2>Login</h2>
<p><label for="username">Username</label> <input type="text" id="username" name="username" value="" /></p>
<p><label for="password">Password</label> <input type="password" id="password" name="password" value="" /></p>
<p><input type="submit" name="submit" value="Login" class="button"/></p>
</form>';
exit;
?>
index.php
<?php
session_start();
define('DS', TRUE);
define('USERNAME', $_SESSION['username']);
define('SELF', $_SERVER['PHP_SELF'] );
if (!USERNAME or isset($_GET['logout']))
include('login.php');
?>