2016-03-30 2 views
0

Ich baue eine einfache Website als Hausaufgabe. Es erfordert Login, um den Inhalt zu sehen, aber gerade jetzt, wenn ich zu myserver/welcomepage.php gehe, kann ich den Inhalt sehen. Ich habe den folgenden Code in meinem welcomepage:PHP - Verhindern von Zugriffen für nicht registrierte Benutzer

if (!isset($_SESSION['Username'])) { 
    header('Location:index.php'); 
    exit; 
} 

aber wenn jemand versuchen, mit falscher Login anmelden und dann geht wieder in myserver/welcomepage.php er den Inhalt sehen kann. Ich lese über die Verwendung der IP oder Cookies. Was empfehlen Sie?

+2

Ich würde empfehlen, den Authentifizierungsablauf zu überprüfen. Es scheint mir, dass Ihre Anwendung den '$ _SESSION ['Username']' selbst dann setzt, wenn die Anmeldung fehlschlägt. – frz3993

+0

Ja, das war ein Problem. – Christakitos

Antwort

0

Sie setzen die $_SESSION['Username'] auf fehlgeschlagene Anmeldung. Überprüfen Sie die Funktion, mit der Ihre Anmeldung durchgeführt wird, und legen Sie die Sitzungsvariable nur fest, wenn die Benutzeranmeldung erfolgreich war. Stellen Sie außerdem sicher, dass Sie session_start(); ganz oben einschließen und dass das Code-Snippet vor JEDEM HTML einschließlich des Tags angezeigt wird. Header wird nur funktionieren, wenn es vor dem Senden einer Ausgabe kommt.

+0

Ich denke, das ist der am wenigsten sichere Weg zu gehen, oder? – Christakitos

+0

Ich bin mir nicht sicher, was du meinst. –

+0

Ich meine, sichert die Sitzung meine Anwendungsseite oder ist sie einfach zu umgehen? – Christakitos

Verwandte Themen