I have made this simple login script (without accessing the database) but the session remains active (after closing the browser) even if the 'remember me' button is not checked. How do I correct this...
<?php
define('LOGIN_URL', '/ab_batch/login/newlogin.php');
session_start();
$display_user = false;
$loginForm = [
'username' => [
'value' => '',
'error' => false,
'err_msg' => ''
],
];
if ( isset($_POST['submit']) ) {
$username = trim($_POST['username']);
$remember = ( isset($_POST['remember']) && '1' == $_POST['remember'] ) ? true : false ;
if ( empty($username) ) {
$loginForm['username']['error'] = true;
$loginForm['username']['err_msg'] = "required";
}
else {
$loginForm['username']['error'] = false;
$_SESSION['username'] = $username;
if ($remember) {
setcookie('my_cookie', $username, 180+time() , '/');
}
}
}
if ( isset($_GET['action']) && 'logout' == $_GET['action'] ) {
if ( isset($_COOKIE['my_cookie']) && !empty($_COOKIE['my_cookie']) ) {
setcookie('my_cookie' , null , -3600+time() , '/');
}
session_destroy();
header('Location: ' . LOGIN_URL);
exit();
}
$session_user = null;
if ( isset($_COOKIE['my_cookie']) && !empty($_COOKIE['my_cookie']) ) {
$_SESSION['username'] = $_COOKIE['my_cookie'];
}
if ( !$loginForm['username']['error'] && isset($_SESSION['username']) ) {
$session_user = $_SESSION['username'];
$display_user = true;
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login</title>
<style type="text/css">
.reqd {
color: red;
}
.result {
padding: 5px;
background-color: grey;
border: 1px solid black;
}
</style>
</head>
<body>
<?php if(!$display_user): ?>
<form action="" method="post">
<p>
<label for="username">Username: <span class="reqd">* <?php echo
$loginForm['username']['error'] ? $loginForm['username']['err_msg'] : ''; ?></span></label><br />
<input type="text" name="username" />
</p>
<p>
<label for="remember">Remember me </label>
<input type="checkbox" value="1" name="remember" />
</p>
<p>
<input type="submit" name="submit" value="Login" />
</p>
</form>
<?php else: ?>
<div class="result" >
<h3>Welcome <?php echo $session_user; ?> </h3>
<a href="?action=logout">Logout </a>
</div>
<?php endif; ?>
</body>
</html>
Below is the link to the source code