Ich habe ein ziemlich einfaches Login/Logout-Skript für diese kleine private 'Nische' Website, so dass es nicht viel Sicherheit erfordert.Tage mit einem 'einfachen' Login/Logout stecken PHP-Skript
session_start();
// Array with users and passwords
$lgns = array(
'firstuser' => '5d0a158df212de401a9509a88a8d9f96b060f6c5',
'seconduser' => 'f8a913721596fffbf18a4777e6f163316154e6e5',
'thirduser' => 'f8a913721596fffbf18a4777e6f163316154e6e5',
);
$user = isset($_POST['username']) ? $_POST['username'] : '';
$passu = isset($_POST['password']) ? $_POST['password'] : '';
$pass = sha1($passu);
// Check if credentials are valid
// If not...
if(!isset($lgns[$user]) or $lgns[$user] != $pass)
{
// Check if session is valid
// If not...
if (!(isset($_SESSION['user']) && $_SESSION['user'] != ''))
{
echo "Wrong creds, no session; redirecting...";
}
else
{
// If credentials are not valid but there IS session
echo "Wrong creds, but there IS session, so stay.";
}
}
// If credentials are valid, set session.
else
{
echo "Correct credentials";
$sessionUser = $_POST['username'];
$_SESSION["user"] = $sessionUser;
}
Dies ist das Logout-Skript in einer separaten PHP-Datei:
session_start();
unset($_SESSION["user"]);
session_destroy();
header("Location: ../index.php");
Problem ist: Egal, was ich versuche, halte ich die „Wrong creds bekommen, aber es gibt Sitzung, so bleiben. " Botschaft. Ich weiß nicht, ob ich die Sitzung nicht richtig überprüfe oder ob ich die Sitzung nicht richtig schließe.
Ich habe seit Tagen gesucht und damit zu kämpfen und ich fühle mich dumm. Ich habe diese Arbeit vorher gemacht! Also musste ich fragen. Danke im Voraus.
echo alle Variablen aus ('$ lgns [$ user]', '$ pass' und' $ _SESSION [ 'login']) 'zu stellen Sie sicher, dass sie das sind, was Sie erwarten. Und benutze [das Beispiel] (http://php.net/manual/en/function.session-destroy.php) aus dem Handbuch, um Sessions zu zerstören. –
Ich habe gerade mehr Code für Klarheit hinzugefügt. $ _SESSION ['login'] für $ _SESSION ['user'] geändert, so wie es sein soll, aber das Problem bleibt bestehen. Das Benutzer-Array, das Login-Formular und die Benutzer-/Passwort-Überprüfung funktionieren wie vorgesehen. –
Kannst du eine Fiedel daraus machen? – Sampad