Ich mache ein Login-System, aber ich möchte, dass sie in der Lage sein, sich abzumelden, dies hatte mich ein großes Problem auftreten, der Cookie ich möchte nicht entfernt werden nein Egal, was ich versuche, ich habe versucht, es auf viele Arten zu entfernen.PHP-Browser löscht keine Cookies
--- login.php
<!DOCTYPE html>
<html>
<head>
<title>Website</title>
<link rel="stylesheet" type="text/css" href="../css/style.css"/>
</head>
<body>
<header><p> Lost Story </p></header>
<div id="nav">
<ul>
<li><a href="../index.php">Home</a></li>
<li><a href="register.php">Register</a></li>
<li><a href="../downloads.html">Downloads</a></li>
<li><a href="../forums.html">Forums</a></li>
<li><a href="../donate.html">Donate</a></li>
<li><a href="../vote.html">Vote</a></li>
<div id="right">
<?php
if(isset($_COOKIE['LoggedIn']) && !empty($_COOKIE['LoggedIn'])) {
echo "<li><a href=\"logout.php\">Log Out</a></li>";
} else {
echo "<li><a href=\"login.php\">Log in</a></li>";
}
?>
</div>
</ul>
</div>
<div id="content">
<?php
echo var_dump($_COOKIE['LoggedIn']);
if(isset($_COOKIE['LoggedIn']) && !empty($_COOKIE['LoggedIn'])) {
echo "<label> You are already logged in, you do not need to again. </label>";
} else {
echo "<div id=\"form\">
<form action=\"login.php\" method=\"POST\">
<label>
<br>Username:<br>
<input type=\"text\" name=\"name\">
</label>
<label>
<br>Password:<br>
<input type=\"password\" name=\"pass\">
</label>
<label>
<br>
<input type=\"submit\" name=\"submit\">
</label>
</form>
</div>";
}
$LoggedIn = false;
ERROR_REPORTING(E_ALL);
include_once('dbconnection.php');
if($_SERVER['REQUEST_METHOD'] == "POST") {
$user = htmlspecialchars($_POST['name']);
$pass = htmlspecialchars($_POST['pass']);
$once = false;
if(!isset($user) || !isset($pass)) {
echo "<p> Please insert all the data </p>";
} else {
$sql = "SELECT * FROM persons";
$result = mysqli_query($mysqli, $sql);
if(mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
if($row["username"] === $user && $row["pass"] === md5($pass)) {
echo "<br><label> Logged into " .$user . "</label>";
$once = true;
$LoggedIn = true;
setcookie("LoggedIn", $LoggedIn == true ? $user : "", time() + (86400 * 30), "/");
}
}
if($once == false) {
echo "<br><label>No data found, please insert correct data</label>";
$once = true;
}
$once = false;
} else {
echo "No results found";
}
}
}
?>
</div>
</div>
<footer> Website copyright etc </footer>
</body>
Und für meine logout.php hatte ich das
<?php
if(isset($_COOKIE['LoggedIn']) && !empty($_COOKIE['LoggedIn'])) {
setcookie('LoggedIn', '', time()-3600, '/');
header("Location: ../index.php");
} else {
echo "no";
}
?>
Ich bin nicht wirklich sicher, warum es nicht entfernen will die Kekse, also hoffe ich, dass du mir helfen kannst.
1: Sie brauchen nicht auf die var_dump Echo. 2: Sie haben keinen Code, um den Cookie zu löschen. – MikeVelazco
@MikeVelazco Jeder stackoverflow-Post, den ich ging, sagte mir, dass ich den Cookie in der Vergangenheit setzen sollte, um ihn zu deaktivieren. –