Я пытаюсь создать простую систему входа в систему на PHP.Это тестируется с использованием WAMP и открывается в веб-браузере Chrome.
Проблема, с которой я сталкиваюсь, заключается в том, что я могу создать сеанс и файл cookie, и даже удалить файл cookie в сценарии выхода из системы на любой странице.посещение из того же домена после запуска сценария выхода автоматически восстанавливает оба куки.Это кажется действительно странным, так как большинство других ответов, которые я видел, сталкиваются с противоположной проблемой смерти куки.
Мне кажется, это может быть проблема с запоминанием браузера, как будто я удаляю куки из хрома, обновление не воссоздаеткуки, но я не уверен, как смягчить это поведение.В его нынешнем виде это означает, что пользователи не могут по-настоящему выйти из системы.
Кроме того, я ценю, что это небезопасно, и md5 не является подходящим решением для пароля, но я просто пытаюсь создать простую функциональность перед добавлением этихin.
login.php:
session_start();
require_once('connect.php');// connects to DB
// check database username and password.
if (isset($_POST['username']) & !empty($_POST)){
$username = mysqli_real_escape_string($connection, $_POST['username']);
$password = md5($_POST['password']);
// query login details to database
$sql = "SELECT * FROM `database1` WHERE username='$username' AND password='$password'";
$result = mysqli_query($connection, $sql);
$count = mysqli_num_rows($result);
// if logged in tell them.
if(isset($_SESSION['username'])){
$errors[] = "</strong> already logged in, please logout to switch user";
}
//only if username and password correct test other factors
if($count == 1){
// create new cookie with data //look up sql
$cookie_name = 'Cookie';
setcookie($cookie_name, test, 0, "/", "");
// create session
$_SESSION['username'] = $username;
$smsg = "user is logged in.";
location.href = "memberpage.html";
} else{
$errors[] = "invalid username or password";
}
}
?>
<html>
<head>
</head>
<body>
<div class="container">
<?php if(isset($smsg)&& !empty($smsg)){ ?><div class="alert alert-success" role="alert"> <?php echo $smsg; ?> </div><?php } ?>
<?php if(isset($errors)){
foreach ($errors as $error) {
?>
<div class="alert alert-danger" role="alert"> <?php echo $error; ?> </div>
<?php } } ?>
<form class="form-signin" method="POST">
<h2 class="form-signin-heading">Please Log in</h2>
<div class="input-group">
<input type="text" name="username" class="form-control" placeholder="Username" value="<?php if(isset($username) & !empty($username)){ echo $username; } ?>" required>
</div>
<label for="inputPassword" class="sr-only">Password</label>
<input type="password" name="password" id="inputPassword" class="form-control" placeholder="Password" required>
<button class="btn btn-lg btn-primary btn-block" type="submit">Login</button>
<a class="btn btn-lg btn-primary btn-block" href="register.php">Register</a>
</form>
</div>
</body>
</html>
logout.php
<?php
session_start();
$_SESSION = array();
$cookie_name = 'Cookie';
setcookie( $cookie_name , '' , time() - 3600);
session_destroy();
if (!isset($_cookie[$cookie_name])){
// header('location: login.php');
}
?>