Admin Benutzername / Passwort funktioniert nicht für PHP

8

Also mache ich gerade einen Kurs in PHP-Programmierung und bin schließlich in die Kunst der Authentifizierung und Autorisierung gekommen.

Im Buch haben wir damit begonnen, die Seite zu beschränken, die Zugriff auf alle Konten gewährt, in denen Sie alle aktualisieren und löschen können. Wir haben mit der Definition der Konstanten begonnen:

%Vor%

Um es mir leicht zu machen, lege ich sie einfach als leere Saiten.

Alles läuft reibungslos, der Dialog, der nach dem Benutzernamen und dem Passwort fragt, erscheint. Wenn ich jedoch die leeren Zeichenfolgen einfüge, erscheint die Dialogbox immer wieder, als ob das Passwort falsch wäre, oder es hat das Passwort überhaupt nicht übernommen. Dies passiert auch, wenn ich den Benutzernamen und das Passwort mit echten Zeichenfolgen definiere.

Hier ist mein Code für diesen Teil:

%Vor%

Wenn Sie sich fragen, warum ich die exit () - Funktion nicht verwendet habe, um zu verhindern, dass Benutzer auf "Abbrechen" klicken, um die Authentifizierung zu umgehen und zur Aktualisierungsseite zu gelangen. Ich habe das getan, damit mein Lehrer diese Seite bewerten kann, die ich zuletzt erstellt habe.

Wie habe ich es geschafft, Fehler zu beheben:

Ich habe getestet, ob ich die gültigen Benutzernamen und Passwörter richtig definiert habe, indem ich die Echofunktionen verwendet habe.

%Vor%

Und es erscheint genau so, wie ich es definiert habe. In der Theorie denke ich, dass ich es richtig definiert habe.

Ich habe versucht, die Define-Funktion mit einfachen Anführungszeichen, doppelten Anführungszeichen und ohne Anführungszeichen zu schreiben. Das Buch möchte, dass ich die Funktion so schreibe:

%Vor%

Dies führt jedoch zu einem Fehler, dass ich eine undefinierte Konstante verwende, als ich versuchte, sie genau dort zu definieren.

var_dump($_SERVER); Ergebnisse:

%Vor%

Ich habe es zu diesem Zeitpunkt ziemlich genau aus dem Buch kopiert. Was mache ich falsch?

Wenn Sie es selbst ausprobieren möchten, hier ist Link zu meiner Seite .

    
Lalien-Miles Lamar Coleman 25.11.2013, 22:00
quelle

6 Antworten

0

Verwenden Sie den folgenden Code für das beste Ergebnis wie

definieren (VALID_USERNAME, "admin"); definiere (VALID_PASSWORD, "Passwort");

if (($ _SERVER ['PHP_AUTH_USER']! = VALID_USERNAME) ||     ($ _SERVER ['PHP_AUTH_PW']! = VALID_PASSWORD)) {

%Vor%

beenden;     }

    
Softbharatrawal 28.11.2013 13:59
quelle
0

Versuchen Sie es

%Vor%     
Rads 23.12.2013 09:34
quelle
0

diese Art von globalen Variablen Benutzernamen und Login-Status ist in Sitzung gespeichert, so dass Sie können global, ich lieber in der Sitzung speichern als das Definieren dieser als Konstanten

    
user3146706 30.01.2014 09:11
quelle
0

Ich weiß, dass ich kein Experte bin oder gut darin bin, Dinge klar zu erklären, aber soweit ich weiß, liegt das Problem darin, wie man die Basisauthentifizierung verwendet und wo die Header der Standardauthentifizierung abgelegt werden (für mich einfach nicht redundant.):

Hier ist ein Code, mit dem Sie mit der Standardauthentifizierung spielen können:

Enthält Anmeldeinformationen wie Benutzername und Kennwort. Ich werde nicht vorschlagen, define () zu Sicherheitszwecken zu verwenden.

%Vor%

Das ist alles und viel Spaß beim Lernen!

    
Jimvirle 06.08.2014 11:59
quelle
-1

vielleicht, weil Sie mit OR suchen. Sie sagen, wenn der Benutzername nicht gültig ist oder das Passwort nicht gültig ist, dann zeigen Sie eine 401. Versuchen Sie, es zu einem & amp; & amp; stattdessen? Auf diese Weise müssen sie den genauen Benutzernamen und das Passwort haben.

%Vor%     
John Ezell 25.11.2013 22:08
quelle
-2

Das ist einfach: Wenn Sie einen Benutzernamen und ein Passwort programmgesteuert festlegen, versuchen Sie dies (wenn Sie eine Login-Seite verwenden!)

%Vor%     
user2985446 25.11.2013 22:06
quelle

Tags und Links