M
matibaski
Guest
Moin Leute.
Ich habe da eine Frage, ist zwar ein ganz einfacher Codeteil, doch ergeht irgendwie nicht.
Ich möchte, dass sich ein registrierter User über ein Formular einloggt (wie normal mit Name und Passwort Formular).
Die Datenbank überprüft, ob die Logindaten übereinstimmen und existieren. Wenn es stimmt, wird man von der index.php auf default.php weitergeleitet, zum geschützten Bereich.
Dass die Sessionen wirklich funktionieren, hat mein Sicherheitsschutz gezeigt.
Sieht so aus die Sicherheit (zwar klein, aber fein
):
Eigentlich ganz simpel, ne?
Nun wird auf der default.php geprüft, ob die Session stimmt, dann kann man den Inhalt sehen. Sieht so aus:
Also der Code ist nur kurz gemacht, um zu sehen ob er funzt.
Nun erscheint bei mir, dass die Loginsession (laut der Errormeldung) nicht gültig ist.
Nun frage ich mich, was da falsch ist.
Ich habe doch die Session gesetzt und weitergeleitet mit header();
Aber irgendwie leitet es die Session nicht weiter, was jedoch der Fall sein müsste.
Falls ihr einen Änderungsvorschlag habt, den sehe ich mir gerne an. Habe den Code ca. 15 Mal überprüft und nie einen Fehler gefunden. Vielleicht findet jemand von euch einen?
MfG, matibaski
Ich habe da eine Frage, ist zwar ein ganz einfacher Codeteil, doch ergeht irgendwie nicht.
Ich möchte, dass sich ein registrierter User über ein Formular einloggt (wie normal mit Name und Passwort Formular).
Die Datenbank überprüft, ob die Logindaten übereinstimmen und existieren. Wenn es stimmt, wird man von der index.php auf default.php weitergeleitet, zum geschützten Bereich.
Dass die Sessionen wirklich funktionieren, hat mein Sicherheitsschutz gezeigt.
Sieht so aus die Sicherheit (zwar klein, aber fein

PHP:
$rnd = rand(1, 9999);
$_SESSION['secure'] = $rnd;
// Dann sind noch die Forms hier, mit denen man sich einloggt, möchte aber nicht posten =)
// Dann hats hier ne hidden-form mit der random Zahl drin. Also value="$rnd"
// Das ganze wird auch mit der POST Variable überprüft, wenn es geschickt wurde.
// Also so:
if(isset($_POST['login'])) // Prüft ob submitbutton gedrückt wurde
{
if($_POST['secure'] == $_SESSION['secure']) // Prüft ob Session mit der geschickten Hidden Form übereinstimmt
{
// Nun MySQL verbinden, ect.
// Prüfen ob benutzer stimmt
$_SESSION['login'] = true; // Session setzen
header('Location: default.php'); // Und weiterleiten
}
}
Nun wird auf der default.php geprüft, ob die Session stimmt, dann kann man den Inhalt sehen. Sieht so aus:
PHP:
<?php
if($_SESSION['login'] !== true)
{
echo'Sie sind erfolgreich eingeloggt';
}
else
{
echo'Sie haben sich nicht eingeloggt, oder Ihre Loginsession ist nicht mehr gültig.<br />
Bitte loggen Sie sich <a href="index.php">hier</a> ein, um den geschützten Bereich zu betreten.';
}
?>
Nun erscheint bei mir, dass die Loginsession (laut der Errormeldung) nicht gültig ist.
Nun frage ich mich, was da falsch ist.
Ich habe doch die Session gesetzt und weitergeleitet mit header();
Aber irgendwie leitet es die Session nicht weiter, was jedoch der Fall sein müsste.
Falls ihr einen Änderungsvorschlag habt, den sehe ich mir gerne an. Habe den Code ca. 15 Mal überprüft und nie einen Fehler gefunden. Vielleicht findet jemand von euch einen?
MfG, matibaski