Ich schrieb diesen Code in PHP, aber die Datei userarea.php
manchmal funktioniert und manchmal nicht. Gleiches mit der Funktion logout.php
. Woher weiß ich, ob es korrekt funktioniert oder ob Fehler in meiner Login-Datei vorhanden sind?versuchen, Logout-Funktion schreiben
confing.php:
<?php
$host = "localhost";
$database = "DOD";
$user = "root";
$pass = "";
session_start();
$connection = mysqli_connect($host , $user , $pass , $database);
if(!$connection){
die(mysqli_connect_error());
}
function logeedin(){
if (isset ($_SESSION[('Username')]) && isset($_COOKIE[('Username')]))
return TRUE;
}
?>
login.php:
<?php include('confing.php'); ?>
<html>
<body>
<form action="login.php" method="POST">
Username : <input type="text" name="Username" /><br>
Password : <input type="password" name="Password" /><br>
Remember Me: <input type="checkbox" name="remmberme" /><br>
<input type="submit" name="login" value="login" /><br>
</form>
<?php
if (logeedin() == TRUE){
header("location : userarea.php");
}
if (isset($_POST['Login'])){
$Username = $_POST['Username'];
$Password = $_POST['Password'];
$Remmember = $_POST['Remmember'];
if(!empty($Username) && !empty($Password)){
$sql = "SELECT * FROM USER WHERE Username = '$Username'";
$resulet = mysqli_query($connection,$sql);
while ($row = mysqli_fetch_assoc($resulet)) {
$db_password = $row["Password"];
if($db_password == $Password)
$login = TRUE;
else
$login = FALSE;
}
if ($login == TRUE){
if(isset($Remmember)){
setcookie('Username',$Username,time()+3600);
}
else {
$_SESSION['Username']= $Username;
}
header ("location: userarea.php");
}
else {
echo "Error";
}
}
else{
echo "Error";
}
}
?>
</body>
</html>
logout.php
<?php
session_start();
session_destroy();
setcookie("Username","",time()-6300);
header("location : login.php");
?>
userarea.php
<?php
include('confing.php');
if(!logeedin()){
header("location : login.php");
exit();
}
?>
welcome<br>
<?php echo $_SESSION['Username']; ?>
<a href= "logout.php"> Log out </a>
Warum setzen Sie einen Cookie und eine Sitzung? Warum nicht einfach bei der Sitzung bleiben? – Rasclatt
Überall dort, wo Sie eine 'header (" location: XXX ");' haben, müssen Sie 1) über eine beliebige Browserausgabe nach oben bewegen, 2) danach 'exit;' hinzufügen. – Rasclatt
Setzen Sie auch 'ini_set ('display_errors', 1); error_reporting (E_ALL); 'oben auf Ihren Seiten. Sie sollten anfangen, Fehler/Warnungen zu sehen. – Rasclatt