Ein SICHERES Login Script in PHP erstellen | John Morris | Skillshare
Drawer
Suchen

Playback-Geschwindigkeit


  • 0.5x
  • 1x (normal)
  • 1.25x
  • 1.5x
  • 2x

Ein SICHERES Login Script in PHP erstellen

teacher avatar John Morris, I help freelancers get clients.

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

    • 1.

      Willkommen und Einführung

      2:16

    • 2.

      Ein einfaches Login mit der Datenbank erstellen

      25:17

    • 3.

      Ein fortgeschrittenes, Database-Driven erstellen

      29:18

    • 4.

      in eine Erinnerung zu hinzufügen

      24:50

    • 5.

      Sichere Password erstellen

      45:32

    • 6.

      Nächste Schritte

      1:16

  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Jedes Niveau

Von der Community generiert

Das Niveau wird anhand der mehrheitlichen Meinung der Teilnehmer:innen bestimmt, die diesen Kurs bewertet haben. Bis das Feedback von mindestens 5 Teilnehmer:innen eingegangen ist, wird die Empfehlung der Kursleiter:innen angezeigt.

1.184

Teilnehmer:innen

1

Projekte

Über diesen Kurs

Du lernst, wie du ein sicheres, session-based Anmeldesystem in PHP erstellen kannst. Es gibt zwei Versionen: 1) eine einfache non-database Dann 2) werden wir das Programm in vollständige Datenbank umsetzen

  • Sichere, sitzungsbasierte user Zugang
  • Benutzerregistrierung
  • Erinnere mich meine Funktion
  • E-Mail-basierte Passwortreset
  • Kryptographisch sichere Token
  • SQL
  • Skript installieren

Und vieles mehr.

FAIRER WARNUNG

Dies ist ein fortgeschrittener Kurs. Die hier behandelten Themen gehen ein bestimmte Kenntnisse von PHP ein. Es ist ehrlich nur ein kleiner Prozentsatz von Entwicklern in der Welt , die wissen, wie man dies richtig macht. Ich empfehle dir meinen PHP 101 Kurs vor dem Erreichen dieses Kurses Einstieg in diese, wenn du bereit bist, dich selbst herauszufordern und deine PHP zu verbessern.

Im Abschnitt Kursprojekt

Triff deine:n Kursleiter:in

Teacher Profile Image

John Morris

I help freelancers get clients.

Kursleiter:in

Click here to start this class

Vollständiges Profil ansehen

Level: Advanced

Kursbewertung

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen auf Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

Transkripte

1. Willkommen und Einführung: Hey, John Morris Hier, John Morris Online Dot com. Also möchte ich sehr schnell sein, was Sie in diesem Kurs lernen werden, Also werden Sie lernen, wie man ein Ich würde sagen ziemlich fortgeschrittenes Login-Skript zu bauen. Daher wird dieses Anmeldeskript natürlich von Sitzungen ausgeführt. Sie werden sehen, es hat eine Remember me Funktion hier voll funktionsfähig. Erinnerst du dich an mich. Wenn also jemand dies anschaut und seinen Browser schließt und zurückkommt, wird er sich daran erinnern und er wird immer noch angemeldet sein, obwohl wir Sitzungen verwenden, die den Browser schließen, zerstört die Sitzungen. Wir verwenden Cookies, um sie wieder einloggen zu können. Erinnern Sie sich? Du könntest es hier sehen. Hat eine Registrierung wird darüber sprechen. Es gibt einfache Wege, Zehenspitze, Felder hinzufügen und so weiter. Wir haben das Passwort zurückgesetzt zusammen mit ihm, so dass Sie ah haben können, Passwort per E-Mail. Lassen Sie sie zurücksetzen. Es ist also ein Es ist ein ziemlich voll funktionsfähiges Anmeldeskript, und wir werden durch Art gehen, wie wir das regeln können, all den Code, der all das Zeug sichert, weil wir anfangen, über die Funktion „Remember me“ und eine Funktion zum Zurücksetzen des Passworts zu sprechen . Diese Dinge sind ziemlich sensibel in Bezug auf die Fähigkeit, diese zu sichern. Wir werden darüber reden, sicherzustellen, dass diese Luft kryptographischen Lee sicher ist. Wir werden jetzt darüber reden, all diese Dinge in die Datenbank einfügen, wie man die Datenbank für diese Art von Sache erstellt. Es gibt ein Installationsskript als Teil davon, das einen Blick darauf werfen und einfach alles auseinanderbrechen wird , Ihnen zeigen, wie es geht. Und wie ich schon sagte, das ist eine ziemlich fortgeschrittene Art von Form hier. Das ist also etwas, das Sie lernen können, wie man macht. Und wenn du das wirklich festnagelst, meine ich, das ist nicht etwas, was jeder Coder und da draußen weiß. Ich würde sagen, es sind wahrscheinlich, ich weiß nicht, 10% 20% vielleicht von Leuten da draußen, die wirklich verstehen, wie man das macht, damit man sich wirklich auseinandersetzen kann . Ah, auf eine große Art und Weise mit dem Wissen, wie man das macht. Also nochmal, wir werden uns mit all dem auseinandersetzen. Ich werde Ihnen zeigen, wie man eine Mauer baut, wie man sie sichert. Ah, und wie man alles zum Laufen bringt. Das ist es, was in diesem Kurs ist. Ah, ich bin sicher, es gibt hier irgendwo einen Anmelde-Button oder so was. Also gehen Sie weiter und klicken Sie darauf, und ich freue mich darauf, Sie im Kurs zu sehen. 2. Ein einfaches Login mit der Datenbank erstellen: Hey, da. John Morrissey, John Morris online dot com. Diese Lektion. Ich werde Sie durch die einfache Version dieses Log-Formulars führen. Also das ist Ah, das wäre etwas, das du nicht verteilen wirst. Vielleicht mehr für interne Dinge verwendet. Und, weißt du, du willst einfach nicht haben, dass du dir keine Sorgen um die Datenbank und all diese Dinge machen musst . Sie wollen nur eine einfache Art von Anmeldeskript haben, das dann können Sie einfach Art von Inhalt, den Sie wollen, dort für angemeldete Benutzer einfügen. Möglicherweise sind Sie der einzige angemeldete Benutzer. Vielleicht haben Sie ein paar Leute. Es liegt wirklich an dir. Sie können mehr Benutzer hinzufügen, aber es ist nur eine einfache, nicht datenbasierte Version eines Anmeldeskripts. Also lass mich dir einfach so schnell zeigen. Ich habe ah, Passwort, hübschen Namen und Passwort hier, und eigentlich muss ich etwas ändern. Aber das machen wir, wenn wir hier reinkommen. Wenn wir also auf „Submit“ klicken, können Sie sehen, worauf ich komme. Ein einfacher Bildschirm, der sagt, willkommen John Morris. Und dann ist es so hat es meinen Namen und weiß, wer ich bin und dann hat diesen Klick hier, um Links abzumelden . Das ist, wo Sie könnten ich einfach hier drin haben, aber ich zeige, dass Sie tatsächlich einige Benutzerdaten greifen können. Es weiß also, wer ich bin, und ich bin eingeloggt. Wenn ich diese Seite neu lade,wissen Sie, wissen Sie, es wird immer noch erkennen, dass ich eingeloggt bin, und dann habe ich nur einen einfachen Link zum Abmelden hier. Also, wenn ich hier klicken, um sich ausloggen sagt, dass Sie jetzt ausgeloggt sind und wenn ich hier zurück gehe Ah, das ist eigentlich die Homepage. Das ist also Index Dot PHP und ruft den Login-Bildschirm wieder auf. Ich bin mir sicher, dass Sie alles haben, was funktioniert, aber das ist im Wesentlichen, was das Skript tut. Wenn ich nur ein paar gobbledygook für ah, Name und Pastor und versuche, es einzureichen, können Sie sehen, dass ich nicht eingeloggt bin. Und wenn ich versuche, diese Seite zu aktualisieren, um wieder reinzukommen, kann ich nicht wieder reinkommen. Okay, also ist es hier eine einfache Idee. Nun lasst uns irgendwie überspringen und den ganzen Code dahinter sehen. Wie gesagt, dies ist ein Nicht-Datenbank-Anmeldeskript. Wo wir also tatsächlich die Daten des Benutzers speichern, befindet sich in einer Konfliktdatei. Und so ist das im Wesentlichen habe ich gerade in ah Array und die Art von einem globalen Natan Raum hier namens Benutzer erstellt . Und darin habe ich den Benutzernamen, das Passwort und den Namen. Also nur ein paar einfache Daten. Sie könnten natürlich alle Daten hinzufügen, die Sie wollten, und es ist gut. Sie können auch, wenn ich das einfach kopiere und Einfügen kopiere und lass uns einfach ändern. Fügen wir hier einfach einen neuen Benutzer hinzu. Also, Dawn Juan, wir werden das ganze Jahr betreten und das retten. Und wenn ich hierher und jetzt zurückkomme, melde ich mich mit meinem Don Juan Benutzernamen an und klicke auf „Einreichen“. Jetzt weiß es, dass ich Don eins bin, und ich bin ich eingeloggt, so dass Sie leicht neue Benutzer hinzufügen können, ohne eine Datenbank zu verwenden, und Sie fragen sich vielleicht darüber, diese Benutzernamen und Passwörter in einer PHP-Datei wie dieser zu speichern . Es ist vollkommen in Ordnung, denn wenn sie dort angekommen sind, können sie diese Konfliktdatei nicht direkt dort sehen, oder? Es gibt keine Möglichkeit, das zu tun. Server schützen alle vor solchen Dingen. Denn wenn sie Zugriff auf Ihren Mantel haben, selbst wenn Sie , diese in einer Datenbank speichern und Sie Hashing würden,müssten Sie immer noch Ihren Unsinn und all diese Art von Zeug Zustand in Ihren Dateien speichern. Wenn sie also Zugriff auf Ihren Code erhalten, können sie überall hineinkommen, wo sie wollen. Also, ah, ihn im Klartext zu haben oder hier nicht gehascht zu haben, ist nicht mehr, mehr oder weniger sicher. , Hashem Wenn wir dann versuchen, Hashemhier zu versuchen und all diese Art von Sache zu tun, würde das es nicht sicherer machen, weil sie den Unsinn oder die Salze hätten würde das es nicht sicherer machen, weil sie den Unsinn oder die Salze hätten. Und sie könnten einfach nachbilden. Ah, der Hash sowieso, also ist es völlig in Ordnung, dies für dieses besondere ah Szenario hier zu tun, sie werden nicht in der Lage sein, Zugriff auf diese Datei zu bekommen. Ah, um diese Passwörter sehen zu können und so weiter. Richtig, also das ist die Konfliktdatei. Ich werde das schließen, weil wir das nicht mehr benutzen werden . Unsere Hauptdatei hier ist, dass unsere Handler Index Dot PHP und darin sind. Wir benötigen diesen niedrigen Punkt PHP und so in Last. Ich habe bereits darüber gesprochen, aber ich mag diese Dateien laden, weil ich alle meine Request-Anweisungen in diese Ladedatei und dann in jede Datei einfügen kann, wo ich Zugriff auf diejenigen brauche, die ich nur einmal beim Laden benötigen , und es lädt all das Zeug, das hier drin ist, anstatt all das Zeug zu nehmen und es an die Spitze von hier zu stellen. Das ist im Wesentlichen, was geladen wird, wird unsere Konfliktdatei laden. Ich hab's dir gerade gezeigt. Und dann wird es eine Datei aus unserem Include-Ordner laden, was eigentlich unsere Login-Klasse ist, die wir hier benutzen werden was eigentlich unsere Login-Klasse ist, die wir hier benutzen werden. Also kommen wir in einer Sekunde dazu. Aber das ist, was niedrig tut. Ich versuche nur, durch die zu gehen, die wir irgendwie loswerden können . Also Ah, das ist Low Dot PHP. Ordnung, InOrdnung, also können wir jetzt irgendwie eintauchen und Ihnen den anfänglichen Handler zeigen, also haben wir Low Dot PHP geladen, so dass uns Zugriff auf unsere Konfliktdatei und unsere Login-Klasse gibt. Und dann müssen wir im Grunde zwei Dinge tun. Also zuerst müssen wir überprüfen, ob es irgendeine Art von Anmeldedaten gibt, die übermittelt wurden. Also, wenn wir überprüfen müssen, ob das Anmeldeformular eingereicht wurde Also werden wir überprüfen, ob Post-Daten, wenn die Anforderungsmethode eine Post-Methode ist. Grundsätzlich, wenn ein Formular eingereicht wurde und wenn ja, dann das erste, was wir tun werden, ist, dass wir die Postdaten an diese verifizierende Anmeldemethode in unserer Login-Klasse übergeben werden, und wieder werden wir durchgehen, was das ist. Aber wir müssen in der Lage sein, diese Formular-Einreichung zu behandeln. Das ist also im Wesentlichen, was dieser Block ein Code hier ist. Es kümmert sich um die Loggins. Jetzt bemerken Sie, dass wir nicht umleiten oder so etwas, und ich zeige Ihnen, warum? Weil wir Sessions benutzen werden. Und das ist eine der netten Dinge über die Verwendung von Sitzungen ist, dass wir keine Reihe von Weiterleitungen durchführen müssen und so weiter. Also, wieder, wir haben Loggins behandelt. Wir werden im Grunde überprüfen, ob wir lange damit im Grunde überprüfen, umgehen müssen, und wenn ja, werden wir damit umgehen und dann kommen wir wieder hierher und bei jedem Laden der Seite zurück. Wir werden die Sitzung überprüfen. Im Wesentlichen, was dies tut, ist, dass es die Sitzungsdaten benötigt. Es überprüft, ob es irgendwelche Sitzungsdaten gibt, die sich auf diesen Benutzer beziehen, der protokolliert wird. Mann, wir werden in einer Sekunde darüber reden, was alles hier ist, aber es wird prüfen, ob diese Daten vorhanden sind. Wenn es existiert, wird das es mit dem vergleichen, was wir in unserer Konfliktdatei haben. Stellen Sie sicher, dass es kein wackeliges Ah ist, oder es gibt irgendeine Art von Angriff oder Hack oder so etwas. Es wird prüfen, was wir in unserer Konfliktakte haben. Und wenn es eine Übereinstimmung gibt, dann, wenn der Benutzer wirklich ein Benutzer in unserem System ist, dann wird es weitergehen und zulassen, dass diese Sitzung fortgesetzt wird. Und dann, basierend darauf, wenn wir die Sitzung überprüfen, dann werden wir unsere Homepage einschließen, die diejenige ist, die Willkommen gesagt hat, John. Klicken Sie hier, um sich abzumelden, das ist unsere Homepage. Und dann, wenn der Benutzer nicht verifiziert ist, dann werden wir unser Login in Dot PHP einschließen. Also home dot PHP es sagt, Hey, willkommen Und dann der Benutzername und hat den Klick Toe hier abmelden. Dies ist tatsächlich innerhalb von Index Stop PHP enthalten. Also dieser Index Stop Peach PHP ist eine Art Rapper für das gesamte System, und es ist wirklich ein Handler. Ah, und dann, natürlich, wenn sie nicht authentifiziert sind, dann zeigen wir hier unser Protokoll und Formular an, und das ist es, was das ist. Wir werden das alles in einer Sekunde rauskriegen. Aber was ich möchte, dass Sie über diese bestimmte Seite verstehen, ist, dass es ein Loggins ist, aber es ist wirklich, es ist eine Handler-Seite, also Index dot PHP selbst zeigt nichts an Alles, was es tut. Ist es Zalkind wie ein Punktwächter im Basketball, lenkt er den Verkehr. Und so heißt es, dass es sagt: es ah, Post Emission. Okay, mach das und dann, wenn das fertig ist. Aber wenn wir dann den Benutzer überprüfen und überprüfen, die Benutzer überprüft, dass wir diese Seite laden werden, wenn der Benutzer nicht verifiziert ist. Dann laden wir diese Seite, okay? Und so werden alle tatsächlichen Seiten, die Sie tatsächlich sehen werden, in diesen Index Punkt PHP aufgenommen werden . Nun, eine Sache darüber, der Grund, warum ich all das anspreche, ist, dass , wenn du erstellen wolltest sagen wir, du wolltest Ah erstellen und dann über Seite oder so etwas sagen, und du wolltest ein ganzes Art der neuen Seite direkt hier. Wir machen zu Hause oder loggen uns ein. Okay, das ist also im Grunde die Homepage. Nehmen wir an, Sie wollten eine Info Seite erstellen. Sie würden denselben Handler verwenden. Sie würden den gleichen Code verwenden, vielleicht die Loggins hier loswerden und wenn ah, dieses Protokoll teilweise hier. Aber die Bearbeitung der Anfrage hier, weil ich Ihnen in Form des zweiten Weges zeigen werde. Du könntest das tun, aber ah, du könntest diesen Teil wahrscheinlich loswerden. Aber Sie würden immer noch diesen Teil wollen. Und in diesem Fall, über die Seite zu sagen, wäre es über Dot PHP oder Log and Dot PHP. Okay, also wird jede Seite, die Sie erstellen, die Sitzung überprüfen und dann entweder die Seite angezeigt , die sie sehen sollen, oder die Anmeldeseite anzeigen. Sie könnten auch nicht einen Include von Login hier tun müssen. könntest du tun. Sie könnten tun, ah, Header Umleitung zu einer Anmeldeseite. Also haben Sie Optionen mit all dem Zeug, und es gibt ungefähr 100 verschiedene Wege, um diese Art von Sache zu tun. Aber so habe ich mich dafür entschieden. Also möchte ich nur versuchen, Ihnen das größere Bild hier für eine Sekunde der Möglichkeiten zu geben, wie Sie dies ändern und dies und so weiter verwenden können. Also jede Seite, die du erstellst, wird versuchen, die Verwendung Erde mit zu authentifizieren. Überprüfen Sie diese Prüfsitzungsmethode, und es wird entweder die Seite ihrer verifizierten angezeigt oder es wird angezeigt, anmelden und sie zu einer Anmeldeseite umleiten. Wenn sie nicht verifiziert sind, jede einzelne Seite, die Sie erstellt haben, okay, mit dem aus dem Weg, dann wissen wir, dassdies der Handler ist. Wenn sie nicht verifiziert sind, jede einzelne Seite, die Sie erstellt haben, okay, mit dem aus dem Weg, dann wissen wir, dass Wir wissen, dass wir ein PHP protokollieren. Wir haben home dot PHP Lassen Sie uns voran und schauen Sie sich die eigentliche Logik hinter Verify, loggen Sie sich ein und überprüfen Sie die Sitzung, weil das die beiden wichtigsten Dinge hier sind. Ordnung, also ist das unsere Klassen-Anmeldung. Wir haben dieses Publikum. Ah, Eigenschaft dafür genannt Benutzer. Wir reden hier in nur einer Sekunde darüber. Um und dann haben wir unsere Konstruktormethode in unserem Konstruktor. Was wir tun, ist eine waren Globalisierung. Unsere Benutzer Array von unserem Konfliktdateimitglied, weil es im globalen Bereich erstellt wurde. Und jetzt sind wir in einer Funktion. Wir müssen es hier globalisieren. Und dann, was wir hier unten tun, ist im Grunde zu erfassen, so dass wir nicht in jeder anderen Funktion globalisieren müssen. Wir fangen es als diese Eigenschaft ein. Uh, diese Eigenschaft namens Benutzer, so dass es uns erlaubt, diese Eigenschaft dann während der Rest unserer Klasse zu verwenden. Die andere Sache, die wir tun, ist, unsere Sitzung zu starten, denn jedes Mal, wenn Sie Sitzungenverwenden möchten , wenn Sie Sitzungen , müssen Sie die Sitzung am höchsten Punkt starten. Wirklich? Und in diesem Fall ist das ziemlich hoch oben in unserem System. Verschieben, Denken Sie daran, von unserem Low-Punkt-PHP, wir schließen die äh, die Konfliktdatei, und dann fügen wir dieses Protokoll in der Klasse. Dieser Abschnitt beginnt also im Grunde direkt bei, weil er in der Konstruktormethode ist. Es beginnt im Grunde direkt nach der Konfliktdatei, was in Ordnung ist. Es muss nur gestartet werden, bevor es eine tatsächliche Ausgabe gibt. Nun, es wird keine Ausgabe in der Konfliktdatei geben, also funktioniert das gut. So bekommen wir unsere Benutzer von Schienenset für uns in der Lage, diese wieder nutzen zu können. Denken Sie daran, dies sind unsere tatsächlichen Benutzernamen und Passwörter aus unserer Konfliktdatei. Wir beginnen unsere Sitzung. Das ist, was wir in unserem Konstruktor tun. Und wir sind in Haltung, singen eine Instanz davon am Ende dieser Akte. Also im Grunde, jede Seite, die dies in Sie enthalten ist, wird eine Instanz dieser Klasse essen und dann werden Sie Ihre Sitzung starten, Sie werden Ihre Benutzer Rail einrichten. Sie sind also im Grunde grundiert und bereit, damit zu arbeiten, indem Sie es in eine bestimmte Datei einfügen. In Ordnung, also überprüfen Sie Anmelden. Also, was wir getan haben, ist, dass wir in unseren Postdaten übergeben, so dass unsere Postdaten nur ein Benutzername und Passwort sind. Das erste, was wir tun werden, ist, dass wir überprüfen und sehen, ob der Benutzername und das Passwort tatsächlich in diesen Postdaten gesetzt sind. Und deshalb verwenden wir hier eine oder Aussage. Wenn also dieser ist, wenn der Benutzername nicht gesetzt ist oder das Passwort nicht gesagt hat, dass entweder nicht gesetzt ist, werden wir einfach zurückkehren. Falsch. Und unsere Sitzung, unsere Sitzungsdaten werden nicht erstellt, und deshalb werden sie nicht sein. Sie werden nicht als angemeldet autorisiert und können nicht auf geschützte Inhalte zugreifen. Also, ähm, alles, was außerhalb dieser Sitzung hier ist, im Wesentlichen erstellt wird, wird es ihnen nicht erlauben, sich anzumelden. Also, uh, Zurückgeben von false erscheint macht es, so dass sie sich nicht anmelden können. Das nächste, was wir tun werden, ist, dass wir hier eine Art benutzerdefinierte Methode haben , und im Wesentlichen,was das tut. Es ist genau so, als wäre es ähnlich wie die in-Array-Funktion in PHP. Außer, was es tut, ist, dass es tatsächlich eine Ebene tiefer geht wegen der Art, wie unsere Reyes eingerichtet. Aber im Wesentlichen, was diese Methode tut, ist es, den Benutzernamen zu überprüfen, der übergeben wurde, und es durchläuft unser Benutzer-Array aus unserer Konfliktdatei, um zu sehen, ob dieser Benutzername in unserer Konfliktdatei existiert. Das ist, was diese Methode tut. Sie können hier unten schauen, um zu sehen, wie es geht, aber ich meine, solange Ihre Benutzer oder ein aussieht wie derjenige, den ich in der Konfliktdatei diese funktionale Arbeit habe , finden Sie einfach. Im Grunde geht es nur darum, das Array zuerst durchzulaufen und dann im Array auf den Elementen innerhalb des Arrays ausgeführt zu werden. Also schauen wir uns unsere Konfliktdatei an, weil es ein mehrdimensionaler Strahl ist. Sie haben dieses Array. Es ist eine Schleife durch jedes dieser Bedürfnisse. Einer davon ist ein Array. Dann überprüft es dieses einzelne Array direkt hier, um zu sehen, ob dieser Benutzername existiert. Das ist im Wesentlichen, was diese Methode genau hier macht. Und dann wird es, wenn es existiert, wird das eigentliche Element zurückgeben. Also wird es alles zurückgeben, um dieses Array genau hier zurückzugeben, oder wenn es diesem entspricht. Es wird , das zurückgeben, und natürlich, wenn es nicht übereinstimmt, wird es zurückkehren. Falsch. So ist das, wie wir Das ist im Wesentlichen, wie wir aus in Kato Login. Wir nehmen den Benutzernamen, der übergeben wurde. Wenn dieser Benutzername existiert, greifen wir diese bestimmte ah, Benutzerdaten, die Array von Daten hier und dann, was wir als nächstes tun, ist, so dass wir das von diesem zurückgegeben haben . Das ist also unser Array von Daten. Der Benutzername ist vorhanden. Das ist also unser Strahl über diesen bestimmten Benutzer. Und so haben wir das als dieser Benutzer jetzt gespeichert, also ist dies, dass ein Ray-Daten aus der Konfliktdatei? Und wenn das nicht falsch ist, weil, ah, diese Methode false zurückgibt, wenn der Benutzername nicht gefunden wurde. Also, wenn es nicht falsch ist, wir wissen, dass wir verwendet haben, dass Benutzername existiert. Und jetzt werden wir das Passwort aus unseren Postdaten mit dem Passwort des jeweiligen Benutzers in unserer Konfliktdatei überprüfen . Also überprüfen wir nur, ob die Passwörter übereinstimmen, was natürlich sinnvoll ist. Wenn die Passwörter übereinstimmen, dann, was wir tun werden, ist eine Sitzung sehr krank Aufruf Variable namens Benutzername setzen , gleich dem Benutzernamen, den wir aus unserer Konfliktdatei erhalten haben. Das ist das, was wir sind. Das ist die große Sache, die wir hier suchen. Grundsätzlich, wenn der Benutzername was? Was? Alles, was wir bis zu diesem Punkt tun, ist zu überprüfen, ob der Benutzername in unserer Konfliktdatei in unserem Benutzer-Array existiert . Und wenn das Passwort, das im Formular eingereicht wurde, mit dem Passwort übereinstimmt, das wir in unserer Konfliktdatei für diesen Benutzer haben Also nochmal, das ist, was Sie sich vorstellen würden, dass Sie tun würden, wenn es existiert. Und wenn alles übereinstimmt, dann setzen wir diese Sitzungsvariable so, dass wir jetzt überprüfen können, ob diese Sitzungsvariable existiert. Wenn wir unsere Sitzung hier unten überprüfen, weil wir das Passwort jetzt überprüft haben, wollen wir nicht, dass sie sich auf jeder Seite anmelden müssen, richtig, weil ich offensichtlich wirklich ärgerlich wäre. Also, was wir tun, ist, dass wir den Benutzernamen speichern, ist eine Sitzung, und dann überprüfen wir nur, dass in Zukunft. Und dann, natürlich, waren Training True, für den Fall, dass wir etwas von diesem für die Anzeige von Nachrichten und Selbst laufen wollen und Natürlich , wenn nichts davon, wenn dies scheitert, bei einigen Punkt, wir werden einfach zurückkehren. Falsch. Also nochmal, überprüfen. Loggen Sie sich ein. Es wird überprüft, ob der Benutzername existiert. Es wird überprüft, ob das Kennwort für diesen Benutzer übereinstimmt. Und wenn ja, wird eine Sitzungsvariable namens Benutzername festgelegt, die dem Benutzernamen entspricht, der gesendet wurde, und der sich in der Konfliktdatei befindet. In Ordnung, das ist also verifizieren. Melden Sie sich jetzt an, dass, wenn wir zurück zum Index gehen, das ist, warum hier alles, was wir tun müssen, ist bedeuten, t verifizieren. Das Anmelden wird ausgeführt, und wir müssen keine anderen ausführen . If else Anweisungen von diesem, entweder. Wenn diese Überprüfung Anmeldung ausgeführt wird, wird entweder diese Sitzungsvariable erstellt oder nicht. Und dann von dort, na ja, es ist das gleiche wie bei jedem Laden der Seite. Dann überprüfen wir nur, ob diese Sitzungsvariable existiert oder nicht. Und wir fügen dann die richtige ah Template-Datei. Davon ausgehend. Umgang mit Loggins ist also der springende Punkt, nur diese Sitzungsvariable zu erstellen. Okay, dann müssen wir die Sitzung überprüfen. Also, was wir bei der Überprüfung der Sitzung tun, wird wieder ziemlich einfach sein. Was wir also tun, ist, dass wir diese Sitzungsvariable greifen. Die, die wir gerade hier erstellt Session Benutzername. Also haben wir das geschnappt. Nun, natürlich, wenn wir versuchen, das zu packen und es existiert nicht, als all der Rest wird scheitern, Okay, also, aber wir schnappen uns das Ah, selbst wir wollen nicht nur überprüfen, ob diese Sitzung Variable iss setzen wir jede Seite laden wir wollen überprüfen und stellen Sie sicher, dass es einem Benutzer entspricht, der in unserer in unserer Konfliktdatei ist , weil es möglich ist, dass jemand einfach einen Weg finden könnte, den Sitzungsbenutzernamen auf true zu setzen und dann ableto dort 's Möglichkeiten, wie Menschen das jetzt irgendwie umgehen können. Session-Variablen, Es ist ein wenig. Es ist ein bisschen schwieriger, aber wir wollen hier nur eine zusätzliche Sicherheitsebene hinzufügen. Was wir also tun, ist, dass wir diesen Sitzungsbenutzernamen packen und dann werden wir es in einem Strahl durch das zurückführen . Sind die gleiche Methode von hier unten und überprüfen Sie, ob der Benutzername, der in dieser Sitzung ist Ah, Variable übereinstimmt, was in unserer Konfliktdatei ist? Also jedes Laden der Seite nehmen wir diese Sitzungsvariable und wir überprüfen sie mit dem, was in unserer Konfliktdatei ist, so dass wir sicherstellen, dass es übereinstimmt und jemand sich nicht bei seinem Konto anmeldet und dann versucht, irgendwie hacken das, wenn Sie das nicht tun. Also nochmal, wir überprüfen nur auf jeder Seite laden, um sicherzustellen, dass der Benutzer, von dem wir denken, eingeloggt ist derjenige ist, der tatsächlich in der vorhandenen, ah, unsere Konfliktdatei eingeloggt ist ah, . Und wir gehen nicht. Wir werden nur ihre Daten anzeigen. Okay, Also, wenn wir die Sitzung überprüfen und dieser Benutzername existiert in unserer Konfliktdatei, also wenn das nicht gleich Zehe falsch hier ist, dann werden wir diesem Benutzer die Eigenschaft des Benutzers gleich dem Benutzer setzen, den wir gerade gezogen aus unserer Konfliktdatei. Also nochmal, das wird all diese Schlachtdaten haben und dann werden wir zurückkehren. True, wenn dies die Sitzung überprüft und falsch ist. Wenn nicht jetzt, ist dies hier wichtig, weil dies ist, was uns Zugriff auf unsere Daten gibt, weil wir dies auf die Eigenschaft für diese Klasse gesetzt haben . Wenn wir zurück zu Index kommen, können Sie sehen, dass wir hier setzen, Benutzer gleich dieser Eigenschaft aus unserer Login-Klasse wieder. Denken Sie daran, dass wir in einer Instanz davon hier unten stehen und wir setzen, dass, um sich anzumelden. Wenn Sie das tun, können Sie auf diese Weise direkt hier auf Klasseneigenschaften zugreifen. Und was wir getan haben, ist, dass wir das auch festgelegt haben. Was stammt aus den Daten, die wir in unserer Konfliktdatei haben, nachdem wir die Sitzung überprüft haben? Also überprüfen wir die Sitzung. Im Wesentlichen ein großes Bild weise. Wir überprüfen die Sitzung und stellen sicher, dass der Benutzername gültig ist. Und dann greifen wir die Daten über diesen Benutzer, und wir speichern sie in dieser Benutzervariable direkt hier, so dass wir hier auf diesen Seiten darauf zugreifen können . Okay, also, also, wenn wir jetzt zu Home Dot PHP kommen und wir eingeloggt sind, können Sie sehen, dass wir diese Benutzervariable direkt hier verwenden, um den Namen anzuzeigen. Das ist also was? Wenn wir diesen Namen direkt hier anzeigen. Das ist, was das ist all das Zeug, die Daten zu erfassen, die Sitzung zu verifizieren und sie dann direkt hier wiederzugeben, OK, und dann nicht zuletzt, wir haben hier ein paar Vorlagen-Sachen eingeschlossen. Das ist wirklich, wirklich einfache Art von Template-Zeug, also würde ich nicht zu eingewickelt werden. Sie können, ganz buchstäblich der Grund, warum ich das so geschrieben habe, wie ich es mit der Indexdatei getan habe. Und das ist der Handler und die Verwendung umfasst all diese Dinge. Der Grund, warum ich das getan habe, ist, dass, wenn Sie diese Seiten hier bauen, die Anmeldeseite , äh, die Homepage hier. Sie können diese ziemlich wie, nur normale Vorlagendateien erstellen, die Sie gesehen haben, dass ich Tutorials tun, bevor Sie es gewohnt sind, zu bedeuten, dass Sie einen Header einschließen können. Sie können eine vier Fußzeile einfügen. Und Sie könnten Bootstrap in all das einbinden. Sie müssen sich keine Sorgen um das eigentliche Anmeldesystem in Bezug auf all das machen, wenn es darum geht, wie Sie dies vorlegen. Also wieder, ich habe eine Kopfzeile und eine Fußzeile. Wir können uns diese sehr schnell ansehen. Ich habe ihn einfach einfach gemacht. Ich habe gerade den Doc-Typ der H-Geruchsetiketten, das Head-Tag, grundlegende Head-Tag-Zeug. Und wieder, wenn Sie eines meiner Vorlagen ing Videos gesehen haben all das Zeug, über das ich dort in Bezug auf, wie man über Template ing geht, würde Ah gelten, auch hier. Footer ist wirklich einfach, nur die Tags zu schließen, die wir zu Stil gehen. Nur ein wirklich grundlegendes Styling hier. Ähm, meine Empfehlung ist, wenn du reingehen und das wirklich vorlegen willst, würde ich einfach dieses CSS loswerden und das CSS irgendwie von Grund auf neu schreiben. Wie Sie wollen und wieder Wegen der Art, wie dies gemacht wird, können Sie alles, was Sie wollen, in diese Header-Dateien einfügen. Sie müssen sich keine Sorgen um das Login in einem Teil davon machen. Das ist es, was diesen Teil davon irgendwie wichtig macht. Und praktisch ist, dass Sie nicht all dieses Zeug in Ihre Vorlagendateien injizieren müssen. Sie haben die Login-Logik wirklich von der Template-ing-Logik getrennt, und Sie könnten nur eine Vorlage erstellen, wie Sie möchten, und dann haben Sie Zugriff darauf in diesen Dateien. Hier, diese Vorlagendateien, haben Sie Zugriff auf diese Benutzervariable, die die wichtigste ist, die Sie benötigen Zugriff für die Anzeige von Benutzerdaten. Und Sie könnten natürlich so weit erweitern, diese Benutzerdaten natürlich so weit erweitern,wie Sie möchten. In Ordnung, also das ist Ah ah ah. Einfach. Richten Sie hier ein, um dies zu verwenden, wenn Sie erneut hinzufügen möchten. Wenn Sie diesem Benutzer hinzufügen möchten, würden Sie dies erneut tun. Das ist etwas, das du nicht auf andere Menschen verteilen würdest. Das wäre etwas, das du für den internen Gebrauch verwendest, das Onley Du wirst den Code sehen, auf dem du das nicht anderen Leuten gibst. Oder wenn Sie es anderen Leuten geben, Ihre Es ist wie ein Freund von Ihnen und Ihr Löschen dieses Benutzer-Array und dann Benutzernamen und Passwörter vor Ihnen. Sie geben es ihnen, damit sie nicht wissen, was Ihre Benutzernamen und Passwörter sind. In Ordnung. Also Ah, das wird es für diese Lektion tun. Danke fürs Zuschauen. Sprechen Sie das nächste Mal mit Ihnen 3. Ein fortgeschrittenes, Database-Driven erstellen: Hey, da. John Morrissey, John Morris online dot com. Diese Lektion. Ich werde Ihnen zeigen, wie Sie ein wenig mehr von einem erweiterten Login-Skript erstellen, und das könnte derjenige sein, an dem Sie ein bisschen mehr interessiert sind. Das wäre etwas, das du umverteilen könntest. Dabei handelt es sich um eine Datenbankart mehr von dem fortgeschrittenen, komplexen, komplexen, modernen Typ-Log und -Skript, das Sie sich vorstellen können, wenn Sie jemanden das Anmeldeskript sagen hören. Also, was ich tun werde, ist, dass ich die Dinge durchgehe, die ich hier geändert habe, weil ich was ich getan habe , nur damit du weißt, ich diesen Ordner für den einfachen genommen habe, und ich habe ihn einfach komplett in die alle Dateien über in diese erweiterte . Und dann musste ich nur ein paar Dinge ändern. Zum Beispiel möchte ich Ihnen zeigen, dass wir das letzte Mal viel über die Indexdatei gesprochen haben. Nun, die Indexdatei hier hat sich nicht geändert. Und das war einer der Gründe, warum es so funktioniert, ist wirklich gut, weil wir nur Methoden aufrufen. Und Aiken, weißt du, ich kann die Anmeldung überprüfen und die Sitzung überprüfen, aber wollen, dass sich das nicht ändern wird. Ob ich also ah, Textdatei verwende oder eine Datenbank verwende, ändert sich nichts von diesem Zeug. Es gibt also eine Menge Sachen, die wir hier nicht ändern mussten. Also werde ich das Zeug durchmachen, das sich geändert hat. Nun ist die erste Art von großer, die sich geändert haben wird, die Konfliktdatei. Und das liegt daran, dass wir hier nicht mehr das Erstellen unseres Benutzer-Arrays einfügen und unsere Benutzernamen und Passwörter in der Konfliktdatei speichern . Wir werden sie in einer Datenbank speichern. Hier ist dies wahrscheinlich eher wie eine reguläre Konfliktdatei, die Sie sehen könnten. Wo hat die Datenbankdetails hier. Wir haben also den Benutzernamen, das Passwort, den Datenbanknamen, den Datenbank-Host und dann den Zeichensatz. Und dann werde ich das schließen, weil wir wirklich nicht mehr zu viel darüber reden werden . Ähm, habe auch diese Ladedatei, und darin habe ich Konflikte PHP, und jetzt habe ich eine neue, um db dot PHP zu Klasse und dann Dot PHP einzuloggen. Also hatten wir zuversichtlich, sich vorher einloggen. Jetzt haben wir diesen db dot PHP hinzugefügt, weil wir mit der Datenbank interagieren , die hier Klassen gibt. Dies ist eine PDO-basierte Datenbankklasse, die ich tatsächlich geschrieben habe. Ich habe Tutorials gemacht und geschrieben und so weiter in anderen Kursen und so weiter. Du wirst das offensichtlich mit dem Quellcode bekommen, den du bekommst. Ich werde diese Datenbank nicht ausführlich durchlaufen, hauptsächlich weil sie für das, was wir hier tun, nicht wirklich notwendig ist. Diese Datenbankklasse funktioniert einfach. Ich zeige Ihnen, wie Sie die Datenbankklasse verwenden oder wie wir sie im gesamten Anmeldeskript verwenden . Aber ich habe volle andere Tutorials, in denen ich darüber spreche, tatsächlich ein Datenbankskript zu schreiben. Also, wenn Sie daran interessiert sind, würde ich mir die ansehen. Also ah, wieder, Klasse dash db dot PHP Wieder, ich werde das schließen, weil wir nicht wirklich viel darüber reden werden. Wie ich sagte confit, die DB-Klasse, die Login-Klasse. Also werde ich das schließen, weil wir nicht mehr viel darüber reden werden, und so fangen wir an, auf ein paar Dinge zu kommen. Ah, hier links. Also die beiden wichtigsten Dinge, die wir unsere diese Überprüfung geändert haben, melden Sie sich in dieser Verifiz-Sitzungsmethode . Und dann haben wir hinzugefügt, Ah, Register Methode hier. Also hüpfen wir rüber nach vorne und zeigen dir das ganz schnell. Also habe ich nicht alle Benutzer durchgemacht und gelöscht. Ich habe ein paar Tests gemacht. Es gibt momentan keine Benutzer in der Datenbank . Ich kann dir das sehr schnell zeigen. Wir gehen zu Benutzern. Hier ist nichts drin. Okay, also wären wir offensichtlich nicht in der Lage, sich hier einzuloggen. Also habe ich diesen Link auf der Login-Seite hinzugefügt, die hier registriert ist und der uns zu dieser auf PHP Seite führt . Und so gehen Sie einfach vor und geben Sie meine Daten hier, und wir tun das Passwort ist Morris und wird Zement treffen. So sagt Count erfolgreich erstellt. Niemand kann sich hier einloggen und wird John und Morris tun. Und Sie können sehen, dass wir hier eingeloggt sind. Und wenn wir jetzt zur Datenbank gehen, gehen wir zu Benutzern. Sie können sehen, dass wir einen Benutzer haben. Ah, Benutzer namens John Das Passwort. Das Passwort ist gehasht wir haben unseren Namen. Also besorgen wir hier Aufzeichnungen. Nun, wenn ich mich hier abmelde und mich erneut registrieren und den gleichen Benutzernamen verwenden und mich registrieren lassen , heißt es, dass der Benutzername dies bereits tun. Also haben wir einige grundlegende Überprüfung Teoh, sehen, ob Benutzernamen bereits vorhanden sind. Wir haben das Hinzufügen von Datensätzen zu einer Datenbank, die erlaubt ist, sich anzumelden, dann mit diesen Informationen, Hashing Passwörter, all diese Art von Sache. Also, das werde ich Ihnen hier im Grunde zeigen. In Ordnung? Also, wie ich sagte, die wichtigsten Dinge, die wir unsere Überprüfung geändert Login und überprüfen Sitzung. Aber um zu diesem Punkt zu kommen, müssen wir eine Art von etwas Rückarbeit machen. Also das erste, was wir tun müssen, ist eigentlich hier drüben in PHP mein Admin, das war, unsere Datenbank zu erstellen. Also, wenn wir hier zurück gehen und wir gehen, um einfach nach Hause zu gehen und wir klicken auf Datenbanken jetzt, wenn Sie sind, wenn Sie dies auf ah, Remote-Web-Server, müssen Sie wahrscheinlich in gehen, siehe Panel. Und es gibt einen Weg, dies in C-Panel zu tun, können Sie natürlich das natürlich tun. Ähm, aber Sie können es auch von hier in PHP in meinem Admin machen. Aber Sie können hier unter Datenbanken sehen. Es heißt Datenbank erstellen. Also habe ich gerade eingeloggt. Ich setze die Kollatierung ein. Teoh ut utf acht MB vier Unterstrich. Wurden? Ich glaube es. Waas Ja, genau hier. Dies ist jetzt, Ab der Zeit, die ich aufnehme, das ist die Art der empfohlenen generischen. , Aber die Zeit,in der ich das mache, hat sich diese Art von Sache tendenziell geändert. Je nachdem, wann Sie das sehen, würde ich einfach gehen und irgendwie Google, was die Art von Standardsortierung sein sollte. Davon gibt es Ausnahmen. Du merkst,dass es hier verschiedene merkst, Sprachen und so gibt. Also, wenn Sie in erster Linie mit einer bestimmten Sprache verwenden, die Sie vielleicht in Erwägung ziehen würden, Ah zu verwenden, einige davon. Aber nochmal, ich würde es einfach nachsehen. Ich zögere, Ihnen zu sagen, dass Sie eine bestimmte verwenden, einfach, weil ich nach meiner Erfahrung gesehen habe, diese Art von schwanken und ändern und so weiter, so würde ich einfach nachschlagen. Aber in jedem Fall geben Sie einfach den Namen der Datenbank ein und klicken Sie auf create. Und so, sobald Sie die Datenbank haben, dann ist das, wenn Sie zu Ihrer Konfliktdatei gehen und Sie können in den Namen der Datenbank und dann auf einem Remote-Server setzen , Sie haben ah, Benutzernamen und Passwort, die Sie erstellen, wenn Sie das auch tun. So können Sie diese Informationen hier einfügen, sobald Sie das getan haben, dann habe ich erstellt Sie brauchen Sie haben die Datenbank, aber ich muss die Tabelle mit den Feldern erstellen und so weiter. Und so habe ich hier ein Installationsskript erstellt. Sobald Sie also Ihre Datenbankdetails in Ihrer Konfliktdatei festgelegt haben, werden wir die Konfliktdatei in die Datenbankklasse aufnehmen. Und Sie könnten einfach diese Seite laden, so dass Sie einfach zum Schrägstrich installieren Punkt PHP gehen und diese Seite laden können, und es wird voran gehen und die Tabelle für Sie erstellen. Kurs. Wenn Sie es manuell erstellen möchten, hier alle Informationen. Sie können das innerhalb von PHP tun. Mein Admin. Sobald Sie in eine Datenbank gehen, um, dann können Sie gehen und Tabellen erstellen, so erstellen Sie Tabelle hier setzen Sie den Namen der Tabelle, die Anzahl der Spalten, die es geht, und es hätte Sie alle diese Informationen eingeben können und Sie haben bekam alle Daten hier. Also ich d der Name dieses hier ist I d. Es ist ein int unsigned auto. Es sagt Ihnen also alle Informationen direkt hier für jeden, wenn Sie es manuell erstellen möchten . Auf jeden Fall, Ah, wenn wir einmal gehen, ist alles erledigt. Wenn wir bei PHP installiert gehen, so dass es nur wird geschaffen fit nicht existiert. Wir können hier zurück. Das ist es, was zurückkehren wird. Es wird diese Tabelle beschreiben, die Benutzer Tabelle, die wir gerade erstellt haben. Sie werden also wissen, wenn Sie zu diesem Installationsskript gehen, ob es tatsächlich erstellt wurde oder nicht. In Ordnung, also wenn Sie es installiert haben, wenn Sie diese Art von Fernbedienung verwenden oder was auch immer, dann würde ich gehen und dieses Installationsskript loswerden. Es wird nicht unbedingt irgendetwas verletzen,weil verletzen, wir keine Benutzereingaben übernehmen. Und, ähm, wissen Sie, wir erstellen die Tabelle nur, wenn sie noch nicht existiert. Aber Sie stellen Ihre Datenbankstruktur irgendwie da draußen, damit alle sehen können. Und ich bin auch der Meinung. Geben Sie den Leuten so wenig Informationen wie möglich über meine Sachen. Also, um, wieder, würde ich dieses Angebot dort löschen. In Ordnung, also mit dem gesagt, wir das loswerden. Und jetzt haben wir also jetzt eine Datenbank erstellt. Wir haben unsere Tische. Alles, was wir wirklich tun müssen, sind wir. Zuerst müssen wir den Leuten erlauben, sich zu registrieren, und dann müssen wir die Art und Weise ändern, wie wir unsere Loggins und unsere Sitzungen verifizieren, damit sie dem entsprechen, was wir in der Datenbank haben. Also gehen Sie zu registrierten PHP. Wir haben hier eine ziemlich Standardform, würde ich sagen. Wir setzen hier unsere Ladedatei ein. So haben wir Zugriff auf alle unsere Konfliktdatei in unserer Datenbankklasse und unsere Login-Klasse . Und dann machen wir das Gleiche, was wir vorher gemacht haben und haben Loggins hier. Dies sollte gehandhabt werden. Hey, kann sehen. Ich habe es gerade über Handle-Registrierungen kopiert, Registrierung. Und dann ändern wir dies, um den Status zu registrieren. Aber wir rufen nur das Methoden-Login-Register auf. Also, bevor wir auf der Anmeldeseite verwendet wurden, verwenden wir. Ah, der gut, eigentlich, auf der Indexseite Woche. Genau hier haben wir „Verify Log in“ verwendet. Im Grunde habe ich das hier drüben kopiert und es geändert, um sich zu registrieren. Also werden wir diese Registermethode aufrufen, die wir zu unserer Log in Klasse hinzufügen. Das kommen wir in einer Sekunde. Ah, wir haben unseren Header enthalten. Die Form ist ziemlich Standard. Das Einzige, was wirklich anders ist, ist die Aktion. Anstatt an den Index zu senden, stoppen Sie PHP, weil Index Punkt PHP ist, was Handles Loggins sind. Wir werden uns das unterwerfen. Also lassen wir die Aktion einfach leer in diesem formalen Einreichen an sich selbst und dann werden wir die Post-Methode verwenden. Ah, wir haben eine Art Ah, Statusmeldung hier wird irgendwie in einer Sekunde dazu kommen. Es ergibt keinen Sinn, bis Sie verstehen, was in der Klasse neu ist. Aber das Feld A, soweit das Formular, sind die Felder alle ziemlich gleich. Außer, dass wir dieses Feld für den vollständigen Namen seit der Registrierung hinzugefügt haben. Und das ist eines der Felder, die wir sammeln wollen. Also, wo ist vorher auf dem Protokoll? Informieren Sie, dass Sie nur nach dem Benutzernamen und Passwort fragen, denn das ist alles, was Sie brauchen, um sie bei der Registrierung hier anzumelden . Wir bitten auch um ihren vollständigen Namen, damit wir diese Daten haben. Nun, natürlich, je mehr Daten, die Sie sammeln und in der Lage sein, in Ihrer Art von Mitgliederbereich Ihre Anzeige Maneri oder dort sind Sie in Bereich angemeldet. Je mehr Sie hier nach Informationen fragen, und Sie müssen Ihre natürlich ändern, Ihre Datenbank, um diese Daten speichern zu können und so weiter. Aber ich denke, Sie haben die Idee hier. Dieses Formular ist wirklich ziemlich das gleiche wie das Login-Formular. Und dann haben wir hier unten einen Link zum Protokoll und Formular hinzugefügt. Wenn also jemand dieses Formular absendet, wird es dies passieren, wenn Block hier auslösen, weil die Anforderungsmethode posten wurde und die Postdaten an diese Registermethode übergeben wird , die wir über hier in unserem ah, loggen Sie sich in der Klasse ein. In Ordnung, also lassen Sie uns voran und werfen einen Blick auf diese Registermethode. Also, was wir mit den Registermethoden machen, waren unsere Übergabe in unseren Postdaten . Das erste, was wir tun werden, ist, dass wir überprüfen und sehen, ob der Benutzername, auf einem Registrierungsformular übergeben wurde, bereits existiert, weil wir nicht wirklich etwas tun können, wenn es bereits existiert. Also habe ich diese Hilfsfunktion erstellt oder helfen, ihre Methode namens user existiert. Und wenn wir hier runterkommen, nun, und darin würden wir den Benutzernamen übergeben, der in unseren Postdaten eingereicht wurde. Also, was wir hier unten tun, ist, dass wir nur eine einfache Abfrage an unsere Datenbank ausführen, und wir werden alle Informationen aus unserer Benutzertabelle auswählen, wo der Benutzername dem Benutzernamen entspricht, der übergeben wurde. Nun, diese Get-Ergebnis-Methode hier ist spezifisch für diese Datenbankklasse, die ich geschrieben habe , und es erlaubt Ihnen, vorbereitete Anweisungen zu verwenden, ohne tatsächlich ah, Richtig. All die Bindung und die Ausführung und die Vorbereitung und all das Zeug selbst. Die Datenbank-Clip-Klasse behandelt all das. Und im Grunde, was Sie in die datumsbasierte Klasse übergeben, ist Ihre Abfrage mit Ihrem Platzhalter darin. Das ist also genau hier und dann das eigentliche Array von Daten, in das man passt. Das verwendete also dieses Element. Benutzername stimmt mit diesem Platzhalter überein, und er wird diese Daten übergeben. Verwendung vorbereiteter Anweisungen wird es korrekt und all das binden. So wirklich praktisch macht dies viel einfacher, vorbereitete Anweisungen auszuführen. Anfragen auf diese Weise helfen, das von tatsächlich in diesem Protokoll in der Klasse zu abstrahieren. Also, was uns das zurückgeben wird, ist, dass die Ergebnisse davon sein werden, Ah, es wird, ah, ein Array mit Sind Sie alle unsere Benutzerdaten? Es wird also sein, dass wir zu den Benutzern gehen. Es wird ein Array mit diesen Daten sein, das i d. Der Benutzername, das Passwort und der Name. Und da wir diese Abfrage bereits ausführen, anstatt nur tour false zurückzugeben, wo wir tatsächlich unsere Datenbankklasse machen werden, schauen wir uns die Get-Ergebnis-Methode an. Wenn es Ergebnisse gibt, wird Ergebnisse zurückgeben. Aber wenn es nicht gibt, wird es einfach zurückkehren. Falsch. Also, was wir hier überprüfen werden, ist sicherzustellen, dass false nicht das ist, was von dieser Abfrage zurückgegeben wurde. Dann überspringen wir diesen Block im Wesentlichen, und wir werden hier unten falsch zurückgeben. jedoch Wenn esjedochnicht falsch war, dann werden wir den Benutzer zurückgeben. Und das ist eine kleine Eigenart davon, weil dies die Get Results Methode ist. Es setzt tatsächlich die Ergebnisse in ein indiziertes Array. Nun, in diesem Fall wird es nur ein Element geben, weil es nur einen Benutzer gibt, dessen Benutzername mit diesem Benutzernamen übereinstimmt. Es gibt also nur ein Element im Array. Also müssen wir das Element bei Null Index zurückgeben. Es ist also ein bisschen eine Eigenart, aber es ist hier nicht wirklich eine große Sache. Also werden wir diese Benutzerdaten mit diesem Benutzer existiert Block zurückgeben. Also, weil wir die Abfrage bereits ausführen, werden wir uns einfach ein bisschen Leistung sparen und die Daten nur schotten , weil wir sie trotzdem brauchen werden, Ähm, und das ist, was wir hier tun. Also wieder, dies gibt false zurück. Wenn der Benutzer ah nicht existiert Also, wenn der Benutzer nicht ah, wenn es, wenn es tut, Wenn der Benutzer nicht gleich falsch bedeutet, dass im Grunde die, wenn der Benutzer existiert, die bereits existiert, dann werden wir dieses Array zurückgeben mit dem Status Null, was bedeutet, im Grunde ist für false und sagen, dass dieser Benutzername bereits existiert. Ich zeige Ihnen, wo wir diese Nachrichten hier in einer Sekunde verwenden werden. Aber bei dieser speziellen Methode, anstatt nur zu ihr zurückzukehren falsch, weil wir mehrere Dinge haben, die passieren könnten, könnte der Benutzername bereits existieren. Die Zählung könnte erfolgreich erstellt werden oder es könnte eine Art unbekannter Luft geben. Weil wir mehrere Dinge haben und das nicht tun, wissen wir nicht genau, welches. Wir können nicht wirklich einfach zu ihr zurückkehren falsch Wenn wir nützliche Statusmeldungen anzeigen wollen und insbesondere diese hier, wollen wir in der Lage sein, ihnen zu sagen, dass Sie Ihren Namen bereits existiert. Also wollten wir zurückkehren und sagten, nur falsch zurückgegeben. Wir werden ein Array zurückgeben, das sagt, Hey, es hat nicht funktioniert und dann eine Nachricht gibt, die wir verwenden können, richtig? Also, wenn der Benutzername existiert, werden wir das zurückgeben. jedoch Wenn esjedochnicht existiert, werden wir hier weitermachen und wir werden diesen Benutzer in die Datenbank einfügen . Also verwenden wir die Insert-Methode aus der Datenbankklasse. Wir werden es in die Tabelle des Benutzers einfügen, in der wir uns befinden. Fügen Sie den in das Feld Benutzername ein. Wir werden die Postdaten aus dem Benutzernamen einfügen. Nun wieder, Denken Sie daran, diese Datenbankklassenmethoden, die Datenbankklasse macht die vorbereiteten Anweisungen für Sie. Also bin ich nicht, ich bin nicht in eine neue entkommene un vorbereitete Daten hier vielleicht so aussehen weil ich nichts tue, ähm, ähm, Übergabe von Postbenutzernamen direkt in diese Methode. Aber diese Methode macht all das vierte in Ordnung, so dass sie die Übergabe des Benutzernamens in das Benutzernamenfeld einfügen können. Das Kennwort wurde mit dem Kennwort-Hash ausgeführt. Also dieses Passwort hat sind die Hashes der eingebauten PHP-Funktion, die wir jetzt haben, die wirklich, wirklich gut funktioniert wirklich, . Ich empfehle Ihnen dringend, es über alles zu verwenden, was Sie jemals in der Vergangenheit gesehen haben, mich oder jemand anderes zu tun. Dies ist die neueste und beste Möglichkeit, Hash-Passwörter zu patchen. Und weil es eine eingebaute PHP-Funktion ist. PHP, wie es aktualisiert und aktualisiert, wird weiterhin alle notwendigen Dinge tun. Toe hash dies richtig, damit wir uns keine Sorgen darüber machen müssen. Und so geben wir das Passwort ein, das der Benutzer eingegeben hat, als er das Registrierungsformular eingereicht hat , und wir verwenden diesen Algorithmus Passwort Standard. Ich möchte dir wirklich empfehlen, es sei denn, du hast wirklich einen guten Grund. Solide Vernunft. Weißt du, warum genau? Ich möchte empfehlen, dass Sie Passwort-Standard verwenden, da Passwort-Standard den neuesten und größten Algorithmus PHP wieder verwenden wird, da es Upgrades den besten verfügbaren Algorithmus verwenden wird. Dies wird also im Grunde sicherstellen, dass Sie immer den besten Algorithmus Toe-Hash verwenden, ein Passwort, anstatt es herauszufinden. Du kannst sie einfach damit umgehen lassen, also benutze Passwort-Standard, der das Passwort für uns hash wird, und dann werden wir unseren Namen von unserem Post hier auch weitergeben. Also müssen wir Benutzername oder Passwort oder Name. Alle werden mit unserer Datenbank-Klasse in unsere Datenbank eingefügt werden. Also, wenn das zurückgegeben hat, dass diese ah-Methode aus den Datenbankklassen nur zurückgegeben wird, true oder false. Es wurde entweder eingefügt oder war es nicht. Und wenn es wahr ist, dann werden wir zurückkehren. Ah, Statusmeldung von einem. Und dass der Graf oder ein Status von einem? Eine Meldung der Anzahl wurde erfolgreich erstellt. Wenn dies nicht der Fall ist, wird dieser Block übersprungen und er wird auf diese Rückkehr zurückkommen und Null zurückgeben. Und da war eine Art unbekannter Luft aufgetreten. Wir wissen nicht wirklich, was der Fehler ist. Das ist etwas, das ziemlich selten ist. Wenn es wahrscheinlich etwas mit Ihrer Datenbank zu tun hat, habe ich meine, du wirst größere Probleme haben, denke ich, ist das, was ich sagen würde, wenn das ausgelöst wird. In Ordnung. Also, dass Registerformular, dann, sind diese Register-Methode wird den Benutzer in die Datenbank einfügen, wenn sie sind, dass der Benutzername eindeutig ist, und es wird uns eine Statusmeldung, mit der wir arbeiten können, zurückgeben. Wenn wir also hierher kommen, um sich zu registrieren, schwächt der Registerstatus auf das, was auch immer die Registermethode zurückgegeben wird, so dass der Registerstatus auf dieses Array gesetzt wird, das mit dem Status und dann die Nachricht abhängig davon, ob der Benutzername existierte, ob korrekt eingefügt wurde, usw. Das wird uns zurückgeben. Aus diesem Grund können wir dann hier entsprechende Meldungen anzeigen. Also, zuerst werden wir prüfen und sehen, ob der Registerstatus richtig eingestellt ist? Denn wenn, wenn dies gerade war, denn wenn es keine Postdaten eingereicht wurden, wird es nicht gesetzt werden. Also brauchen wir nichts zu zeigen und dann, wenn es eingestellt war, wurden eine Tour in Eri hier laufen. Und im Grunde, was diese , äh, Turn-Bereiche überprüfen, ist, wenn der Status gleich wahr ist, welcher , wenn Sie nicht drei gleich hier verwenden, wenn Sie nicht strikte verwenden, ist das gleiche ist wahr, aber es wird . Das wird es. Ah, es wird machen, dass dies für diese Statusmeldung von einem wahr ist. Dies wird also, wenn dieser Status auf eins gesetzt ist, als dies wahr sein wird. Und in diesem Fall wird die Klasse diese Klassenvariable auf Erfolg setzen. Und wenn es nicht der Fall ist, wenn die Statusmeldungen nicht wahr sind, dann wird es diese Klasse, äh, diese Klasse Variable Toe Fehler setzen äh, . Also hier unten ist, wo wir dann Echo, was auch immer diese Klasse ist. Das ist also für unsere Botschaft. Also das im Grunde Augen, so dass wir das richtige CSS für eine Luftnachricht oder für, ah, Erfolgsmeldung geben können ah, . Das erlaubt uns, diese Klasse basierend auf dem, was wir von unserer Datenbankabfrage zurückbekommen haben, zu ändern. Dann hier unten statt Hand harte Beschichtung eine Statusmeldung, wir nur Echo nur die Statusmeldungen, die wir von unserem Login-Skript zurück bekommen . So wird es gehen. Es wird eine dieser Botschaften hier sein. Verwenden Sie den Namen bereits vorhanden. Anzahl erfolgreich erstellt, oder eine unbekannte Luft tritt auf, je nachdem, welche dieser zufällig wahr ist. Richtig? So behandeln wir unsere Luftbotschaften. Und einfach ganz schnell. Wenn wir in die Kasse gehen und es an John Morris ist, sollte das schon existieren. Ja , so bekommen wir diesen Benutzernamen. Ah, genau hier. Oder das. Luftbotschaft hier. Okay, das zeigt dir den Registrierungs-Teil davon. jetzt überlegen, Lassen Sie unsjetzt überlegen,wie wir das überprüfen. Also wieder, wir interagieren jetzt mit einer Datenbank hier, also müssen wir ändern, überprüfen, überprüfen, einloggen und überprüfen Sitzung nur ein wenig. Nun, wir haben bereits eine Methode hier unten, die es uns erlaubt zu überprüfen, ob ein Benutzername existiert und wenn ja, gibt uns die Daten für diesen Benutzer zurück. Nun, das ist wirklich, was wir für beide Szenarien schon brauchen. also unter Verifizieren an. Aber Sie können sehen, dass wir das immer noch tun, dass wir das vorher getan haben. So posten Sie Benutzername und Post Passwörter. Wir überprüfen, ob es gesagt, wenn sie nicht eingestellt sind, können wir sowieso nichts tun. Und dann rennen wir. Dieser Benutzer existiert Methode und wir übergeben den Benutzernamen. Also die Verwendung, die vom Formular eingereicht wurde, und so werden wir das einfach durch den Benutzer laufen, existiert, und wenn es existiert, werden wir Benutzerdaten zurückbekommen. Wenn nicht, werden wir falsch zurück, damit wir das gleiche laufen können, wenn Block falsch und es ist hier streng weil wir wollen. Stellen Sie sicher, dass es streng falsch ist, weil es das ist, was es gibt. Wenn es falsch ist. Ah, wenn Benutzer falsch sind oder wenn es nicht falsch ist, dann machen wir alles innerhalb dieses Blocks. Wenn nicht, wenn ah, wenn der Benutzer falsch ist, werden wir hier falsch zurückgeben. Okay, wenn der Benutzer existiert, als das, was wir tun werden, wird das Passwort verifizieren. Also werden wir Passwort Verify verwenden. Dies ist also eine weitere eingebaute PHP-Funktion für Passwörter. Also hatten sie Passwort-Hash und heraus, und dann hatten sie auch Passwort-Überprüfung hinzugefügt. Es macht es wirklich, wirklich einfach, Passwörter zu hash und überprüfen, um zu sehen Überprüfen Sie diese Passwörter. Wir müssen kein schweres Heben machen. Also alles, was wir tun müssen, ist das Passwort zu nehmen, das vom Benutzer eingereicht wurde, was wird es sein Klartext-Version. Und wir nehmen das Passwort, das wir aus unserer Datenbank haben, die Hash-Version ist. Und wir geben diese in Passwort, Verifizierung und Passwort. Verifizieren wird das Paint-Nur-Text-Passwort grundsätzlich auf die gleiche Weise wiederhash, wie es ursprünglich gehasht wurde, bevor es in der Datenbank gespeichert wurde, wenn sie sich registriert haben, und es wird überprüfen, ob sie übereinstimmen. Also wird diese Methode all das für uns tun. Du hast in den Sachen gesehen, die ich in der Vergangenheit gemacht habe, bevor das mit Passwörtern herauskam, die du früher alles tun musstest. Jetzt musst du nichts davon tun. Alles, was Sie tun müssen, ist das Passwort, das in das Formular eingegeben wurde, und den Passwort-Hash , den Sie in Ihrer Datenbank gespeichert haben, in Bastard zu übergeben . Verifizieren Sie und es wird alles für Sie überprüfen. Wenn das Passwort verifiziert, dann können wir tun, was wir getan haben, bevor wir Sitzungsbenutzername auf, ah, den Benutzernamen setzen können ah, . Und das ist, wie wir dann das ist, was wir für die Verifizierung Sitzung hier unten verwenden und wir werden hier wahr zurückgeben. So überprüfen wir Login. Und letztendlich, was wir suchen ist, wenn die Anmeldung gut ist, wir diesen Sitzungsbenutzernamen festlegen und dann werden wir diesen hier verwenden und die Sitzung überprüfen , und wir werden es wieder tun. Wir schnappen uns den Benutzernamen, wir werden ihn schnappen. Ah, der Sitzungsbenutzername und wir werden wieder diesen Benutzernamen über Benutzer ausführen existiert, um zu sehen , ob dieser Benutzer existiert. Denn denken Sie daran, dass wir das vorher getan haben. Der einzige Unterschied ist, dass wir zu unserer Konfliktdatei in unserem Benutzer-Array gehen, um zu sehen, ob der Benutzer dort existiert. Hier. Wir erwerben unsere Datenbank wieder. Jedes Mal, wenn die Seite geladen wird, wo Sie diese Prüfsitzungsmethode ausführen, wird sie nach einem Benutzernamen suchen, wobei dieser Benutzernamenblock in der Sitzungsvariablen festgelegt wird. Und es wird überprüfen, was ihre gegen das, was in der Datenbank ist, gesetzt und sehen, ob dieser Benutzer tatsächlich in der Datenbank existiert. Also, wenn dieser Benutzer existiert, werden wir speichern, erinnern, Benutzer existieren, dieser Benutzer existiert. Methode gibt den Benutzer, alle Benutzerdaten, wenn dieser Benutzer existiert. Und so werden wir das als diese Benutzervariable wieder speichern, wir werden überprüfen, ob, ähm, ähm, das war falsch oder nicht. Also, wenn der Benutzer existiert, dann werden wir diesen Benutzer gleich dem Benutzer setzen, genau wie wir es vorher getan haben und wurden wahr. Andernfalls werden wir falsch zurückgeben. Also hoffentlich treffen Sie, was Sie von allen gesehen haben, dass ich das alles durchmache. Ist das der Unterschied aus einer großen Bilderperspektive? Der Unterschied zwischen dem Anmelden und der Überprüfung dieser Anmeldung zwischen einer Textdatei und dem Ausführen in der Datenbank ist nicht ganz so verschieden. Der einzige wirkliche Unterschied ist, dass Sie die Register-Sache haben müssen. Und technisch gesehen brauchst du das nicht mal zu haben. Sie könnten diese Informationen manuell eingeben, obwohl das Hashing in diesem Sinne problematisch wäre. Aber diese Methoden hier sind wirklich nicht so verschieden. Alles, was Sie tun, ist, nur die Daten aus der Datenbank zu greifen, anstatt sie aus der Konfliktdatei zu greifen und ziemlich sehr, sehr ähnliche Prüfungen auszuführen und sehr, sehr ähnliche Dinge zu tun . Wenn wir das „Advanced“ nennen, ist es eigentlich nicht so viel komplizierter als das, was wir vorher getan haben. Und aus einer großen Bilderperspektive. Wir haben uns wirklich nicht viel verändert, und das ist ziemlich wörtlich. Wenn wir zur Indexseite gehen, hat sich hier nichts geändert. Es ist also auf Lee Internal Sachen, die sich wirklich verändert haben, also ist die Idee die gleiche. Sie möchten das Log in den Loggins korrekt überprüfen? Sie möchten die Sitzungsvariable erstellen und dann jede Seite laden, die Sie geschützt haben möchten . Sie werden diese Sitzungsvariable überprüfen, um zu sehen, ob vorhanden. Wenn es im Session-Array vorhanden ist und dann der darin enthaltene Benutzername tatsächlich in Ihrer Datenbank vorhanden ist. Es ist ein verifizierter Benutzer. Und dann oben drauf, wenn Sie das Basis-Zeug an Ort und Stelle haben, könnten Sie alle möglichen Dinge tun. Sie könnten mehr Daten für jeden Benutzer abrufen, damit Sie diese anzeigen können. Ich meine, so haben Sie keine E-Commerce-Websites, die nein, All die verschiedenen Aufträge, die Sie gemacht haben oder Sie wissen, Sie melden sich in Schlepptau. Ich weiß nicht, PlayStation-Website, und es hat all diese Informationen über Ihre Microsoft-Website. Es hat alle Bestellungen und Sachen, die Sie gekauft haben, und all diese Informationen, all das basiert auf dieser sehr grundlegenden Sache, Loggins zu verifizieren und Benutzer zu verifizieren. Also ah, zu lernen, wie man dies macht, ist eine grundlegende Sache, die es Ihnen ermöglicht, dann von dort zu expandieren . Das war's also. Ich meine, dass es wirklich gibt, äh eigentlich gibt es? Nun, nein, wir haben uns tatsächlich in der anderen abgemeldet. Also ist das Abmelden hier gleich. Du zerstörst einfach die Sitzung. Ähm, und das ist es so ziemlich. Das ist also ziemlich unkompliziert. Eine andere Sache, die ich erwähnen sollte, ich wollte die letzte erwähnen. Und dann glaube ich, dass ich es nicht getan habe. Ich hatte erwähnt, wie wir es sehen. Wenn wir unser Passwort in den Passwortblock eingeben, sehen wir sie tatsächlich. Das liegt daran, dass ich diesen Typ auf Text gesetzt hatte. Sie möchten tatsächlich dieses Typ-2-Kennwort festlegen. Und ich habe das hier drüben im Log in eins geändert. Deshalb sehen Sie, wenn wir hierher kommen und diesen Block jetzt eingeben, die Punkte statt der Wörter. Also in Ordnung, die Beute für diese Lektion braucht Zuschauen. Nächstes Mal reden wir mit. 4. in eine Erinnerung zu hinzufügen: Hallo, John Morse. Hier. John Morris online dot com. Diese Lektion werden wir in das Hinzufügen einer Remember me Funktionalität zu Ihrem Protokoll erhalten, informieren Sie Ihre lange und Skript hier. Nun, ich werde all das vorangehen, indem ich sage, dass, wenn du das tust, du bist, auf eine Art und Weise, eine Hintertür in dein System zu schaffen. Jetzt gehen wir durch, wie Sie das sichern. Und wahrscheinlich ist das meiste, was wir hier tun, der sichere Teil davon. Weil die eigentliche tun die Remember me-Funktionalität ziemlich einfach und unkompliziert ist . Es ist, was wirklich der komplexeste Teil ist es tatsächlich zu sichern. So könnten Sie für Ihre Anwendung finden, dass das Remember me Ding nicht so groß ist. Und so wäre es dir gut, meiner Meinung nach, das nicht in dein Drehbuch hinzuzufügen, wenn du nicht so eine Hintertür haben willst, okay, du wirst sehen, was ich damit meine, wenn wir da reinkommen. Aber was ich denke, was ich erreichen möchte, ist, dass Sie das nicht haben müssen und dann für einige Anwendungen, zum Beispiel, ah, Bankanwendungen wären ein wirklich offensichtliches Beispiel. Das ist etwas, das du wirklich nicht dio-wollen würdest, denn wieder, es ist irgendwie eine Hintertür in unser System. Also mit dieser Art von Vorbehalt, lassen Sie uns weiter gehen und dann einen Blick darauf werfen, wie Sie das tun würden, wenn Sie es tun wollen. Das erste, was wir tun müssen, ist, dass ich denke, der wahrscheinlich offensichtlichste Teil ist, dass wir unserem Formular eine neue Eingabe hinzufügen müssen. Also, wenn wir uns unser Skript hier ansehen, haben wir dieses neue erinnern mich Art von Kontrollkästchen hier, und wir tun nur Eingabe. Ich habe es in ah, Absatz Tag. Nur weil wir das haben, erinnern Sie mich Text und ein wenig mehr Ah, Raum hier zwischen dem eigentlichen Zementknopf und dem Remember me Block nur für Ästhetik in erster Linie zu schaffen Raum hier zwischen dem eigentlichen Zementknopf und dem Remember me Block nur für Ästhetik . Also haben wir Eingabetyp von Checkbox. Der Name ist Erinnerst du dich an mich? Wer ist das? Der Wert toe eins. Wenn es also überprüft wird, wird im Wesentlichen der Wert, der sich in unserem Post-Array befindet, eins sein. Und dann haben wir unseren Erinnerungstext hier, so ziemlich unkompliziert darauf. Was das im Grunde tut, ist wieder, wenn das erstere eingereicht hat, wird es ein neues Element im Ray-Array mit dem Schlüssel der Erinnerung an mich und dem Wert geben, der auf eins gesetzt ist. Wirklich? Der Wert spielt keine Rolle zu viel, weil wir nur im Grunde, wenn es nicht ist, wenn dies nicht überprüft wird, dies sowieso nicht im Array sein. Ah, dieses Ding, dieses Element wird insgesamt nicht da sein, also, aber so machen wir es hier. Also, das heißt, was wir hier tun werden, ist, dass wir als einige Funktionen zu unserem Verifizierung-Anmelden hinzufügen , weil dies unser Login-Formular ist. Wir tun dies bei unserem Login, also müssen wir ein wenig dazu hinzufügen. Also ist alles gleich bis zu diesem Punkt genau hier. Also im Wesentlichen dieser kleine Block hier, wir überprüfen nur, ob die erinnern mich Element Augen im Wesentlichen gesetzt. Und so funktioniert das im Grunde, um zu sehen, ob es auf eins gesetzt ist. Es wird also überprüft, ob dieses Kontrollkästchen aktiviert wurde. Und wenn ja, nennen wir diese neue Methode, die wir erstellt haben, mit dem Namen Remember me und wir werden unsere Benutzerdaten, die wir hier bereits zur Verfügung haben, übergeben , weil wir sie brauchen werden. Und ich erinnere mich an Funktionalität. Und wir haben es bereits hier, also keine Notwendigkeit, die Datenbank erneut abzufragen. Also gehen wir weiter und geben das in das, erinnerst du dich an mich? Methode. Richtig. Das hat also im Grunde zwei Teile. Also, sobald wir ah, sobald wir irgendwie unser Formular überprüft haben, dann im Wesentlichen, was wir tun werden, ist, dass wir ein Wir werden Token erstellen . Wir werden sie in der Datenbank speichern. Also, wenn wir hinübergehen und uns die Datenbank ansehen, haben wir eine neue Tabelle, die Token und in Off Token abruft. Das Format ist würde hier auf die Struktur kommen, und wir haben ein I d. Das ist ein int. Wir haben einen Selektor, wir haben ein Token, wir haben einen Benutzernamen, und dann haben wir eine Zeit, zu der es abläuft. Und wenn wir hierher kommen und uns unser Installationsskript ansehen, habe ich dies dem Installationsskript hier hinzugefügt. So könntest du es. Alles, was Sie tun müssen, ist, einfach Ihr Installationsskript erneut zu besuchen, und es wird diese Datenbank nicht erstellen, da diese bereits existiert, und es wird diese neue für Sie erstellen, da diese nicht existiert. Also alles, was Sie tun müssen, ist, besuchen Sie einfach diese Installationsseite erneut. Es wird diese Tabelle automatisch für Sie erstellen. Aber auch hier werden wir unsere Authentifizierungstoken speichern, die es uns ermöglichen, sich an Menschen zu erinnern. Im Wesentlichen. Das ist also, was das alles hier macht. Also im Grunde, wir werden die Token speichern, und dann, ah, wenn jemand eine Seite besucht, werden wir die Daten ziehen und wir werden sie gegen Ah überprüfen, Cookie. Das erste, was wir hier tun müssen, ist, dass wir diese Selektoren erstellen müssen und diese diesen Authentifikator authentifizieren. Im Wesentlichen ist dies die Erstellung eines öffentlichen und privaten Schlüssels, würde ich sagen, ist im Allgemeinen, was wir hier tun. Also der Selektor, den Sie hier sehen werden, werden wir den Selektor im Grunde weit offen in unserem Cookie speichern, und dann unser Authentifikator, wir werden einige ein wenig Codierung zu tun und dann verwenden wir zufällige Bytes waren unter Verwendung der Codierung hier. Grundsätzlich generieren wir nur ah. Ah, Zufallszahlen hier, um das zu tun. Also ich meine, es ist wahrscheinlich nicht genau das, aber ich sehe es irgendwie wie einen öffentlichen und privaten Schlüssel an. Und was wir hier tun, ist, sobald wir die generiert haben,werden wir einen Cookie setzen. Und was wir hier tun, ist, sobald wir die generiert haben, Der Name des Cookies wird mich erinnern? Und eigentlich ist es gut. Und legen Sie das hier hin. Der Wert des Cookies. Die Daten, die tatsächlich im Cookie gespeichert werden, sind der Selektorpunkt. Und dann basieren wir 64 Code wieder den Authentifikator. Oder in diesem Fall ist das das erste Mal für den Authenticator. Dies erzeugt also einen Cookie, der im Wesentlichen diese Daten, den Selektor und diesen Authentifikator darin hat , sagten wir, Ah, Zeit hier. Ah, als wir verfallen wollten, ist das Ah, es ist wie 10 Tage in der Zukunft. Ah, das ist der Pfad der Domäne. Wenn es leer ist, wird es einfach die aktuelle Domain auswählen. Und dann ist das für ah, glaube, es ist nur https. Und dann TLS nur so etwas. Das sind also, wenn wir Francisco ansehen und uns das Set Cookie ansehen. Also ja, sicher. Und dann http, nur das ist im Grunde, ähm, es wird nur tun, wenn es eine https-Verbindung ist, also müssen Sie darauf achten. Abhängig davon, wo Sie dies installieren, müssen Sie möglicherweise festlegen, dass der falsche und dann HC TP nur bedeutet, dass auf ihn nicht über Sprachen wie Javascript zugegriffen werden kann , was wichtig ist. Sie wollten also nur, dass dies wieder über Http zugegriffen werden kann. Das ist alles Teil der Art, wie wir das sichern. Okay, also werden wir diesen Cookie setzen, und wenn wir diesen Cookie setzen, das heißt, das ist, was zu den Cookies gehen, die sich im Browser des Benutzers befinden. Wenn sie also sagen, dass sie ihren Browser schließen, wird dieser Cookie nicht gelöscht. Und das nächste Mal, wenn sie ihre weil wieder mit Sitzungen öffnen, jedes Mal, wenn sie ihren Browser schließen, im Wesentlichen, das wird die Sitzung beenden, so dass sie im Grunde automatisch ausgeloggt werden. Dies ermöglicht es uns, Loggins über ah, Browser-Sitzungen zu bestehen . Also, dass Cookie, wenn sie den Browser schließen, wird immer noch da sein. Also, wenn sie ihren Browser wieder öffnen und sie kommen, um unsere Seite zu besuchen, wenn sie darauf geklickt haben, erinnern Sie sich an mich? Kontrollkästchen. Dann werden wir im Wesentlichen automatisch loggen sie wieder in ist wirklich das, was das ist. Also, was waren wieder? Wir haben den Keks gesetzt. Hier haben wir unseren Selektor. Wir haben unseren Authentifikator, und das ist, was wir für Sie brauchen, dann für unser Token hier. Also dieser Teil hier ist im Wesentlichen, dass wir die alten Token aufräumen. Wenn Sie sich also mit diesem System einloggen und das Kästchen merken, wird es ein Token erstellen, das in der Datenbank gespeichert wird. Und dann, wenn Sie tatsächlich auf den Abmelde-Button klicken, werden wir das Cookie aus Ihrem Browser löschen, weil Sie im Wesentlichen, wenn Sie abgemeldet und wieder klicken, können Sie die Art und Weise ändern, wie das Verhalten dieser wie immer Sie wollen. Aber meiner Meinung nach, wenn Sie auf Abmelden klicken, sagen Sie im Grunde, dass ich nicht mehr in Erinnerung bleiben möchte. Ich möchte beim nächsten Mal nicht automatisch angemeldet sein. Ich kann nicht zurückkommen. Sonst meine ich, warum würden Sie sich abmelden klicken? Also löschen wir Ah, den Keks. Nun, was passiert, wenn Sie den Cookie löschen, ist, dass, wenn sie auf die Seite zurückkommen und sie auf das Erinnerungsfeld klicken, wir ein weiteres Token generieren werden und dass der Selektor und die authentische Luft anders. Und so wird es ein neues, grundsätzlich neues Token innerhalb der Datenbank für diesen Benutzer erstellen. also im Wesentlichenpassieren würde, im Wesentlichen Wasalso im Wesentlichenpassieren würde,wäre, wenn wir keine Bereinigung durchführen würden, hätten Sie, wissen Sie, mehrere Token in der Datenbank für denselben Benutzer. Und dann, je nachdem, wie viele Benutzer Sie sind, Sie haben würden Sie jeder von ihnen, jeder, der verwendet, könnte mehrere Token haben. 10 15 Im Laufe der Zeit könnten es 100 200 sein. Damit ein solcher Tisch riesig wird und du eine Menge von diesen Token da draußen haben wirst , was einfach nie eine gute Idee für irgendetwas im Zusammenhang mit Sicherheit ist. Also im Wesentlichen, was wir hier tun, ist, wenn sie, wenn wir sie einloggen und dies mich erinnern, Kontrollkästchen aktiviert und wir laufen diese erinnern mich Methode hier. Wir gehen davon aus, dass all die alten Tokens Luft im Grunde ungültig wäre? Das ist also im Wesentlichen, was das jetzt tut. Das einzige, das sie jemals nur ein Token in der Datenbank in der Tabelle haben sollten. Ähm, weil wir sie löschen, während sie neue erstellen. Aber wenn es aus irgendeinem Grund eine Reihe von ihnen gab oder was auch immer, wird dies tatsächlich jedes einzelne Token in der Datenbank löschen, das für diesen bestimmten Benutzer , der sich in diesem Moment angemeldet hat. Also, wenn sie 10 hätten und es würde alle 10 löschen Also das ist, was das hier tut . Dann von dort. Was wir tun möchten, ist, dass wir das neue Token einfügen möchten. Jetzt, da wir unseren Cookie gesagt haben, haben wir alle unsere alten Token aufgeräumt. Jetzt möchten wir dieses neue Token in die Datenbank einfügen, so dass wir es verwenden können, wenn wir unsere Sitzung überprüfen. Also tun wir es. Ah, fügen Sie in ihre Datenbank ein, wo Vorfall- und Off-Token wir Selektor, Token-Benutzernamen und abläuft, die auf unserem Selektor übergeben. Gerade nach oben sind wir Hash Authenticator im Grunde der Grund, wie ich es verstehe und wieder einige von diesem Zeug, wenn Sie in diese wirklich schwere Sicherheit in der Kryptografie einsteigen und all das Zeug einen Leck bekommt, es ist ein wenig verwirrend, auch für mich. Aber im Grunde ist die Idee hier, diesen Authentifikator zu hashen. Selbst wenn jemand Zugriff auf unsere Datenbank hat und den Selektor und den Authentifikator erhält, müsste er es trotzdem tun. Ach, arbeite daran, dieses Zeichen ungeschlüpft zu sein. Also und es ist bedeutend, und genug, dass es eine Weile dauern würde, um das zu tun. Deshalb hash wir das. Und dann verknüpfen wir es mit dem Benutzernamen. Weil natürlich natürlich Token zu einem Benutzer gehört, und dann setzen wir dort ein, wenn es abläuft, falls wir das jemals irgendwann verwenden möchten. Obwohl, wirklich, was zählt, ist die Zeit, die wir hier für dieses Cookie abläuft. Okay, also mit dem, was wir enden, nur um jemanden zusammenzufassen, klickt auf die Erinnerungsbox. Wir führen dies erinnern mich Methode. Und was diese Methode tut, ist, dass sie einen im Grunde einen öffentlichen und privaten Schlüssel erstellt. So speichern wir in unserem Cookie, und wir speichern auch in unserer Datenbank. Okay, es ist wieder, es ist ein Cookie auf ihrem Browser. Und wir haben auch in unserer Datenbank in dieser Off Token begonnen, uh, diese off Tokens Tabelle. So wie Sie, wenn Sie lange fallen, könnten Sie anfangen, dort zu sehen. Was das erlaubt, was uns erlauben wird, ist, wenn sie auf die Website zurückkehren, in der Lage sein, den Cookie zu greifen und zu sagen, OK, Sie haben dieses Cookie. Lassen Sie uns die Datenbank überprüfen, um zu sehen, ob dies ein gültiges Autorisierungstoken ist. Und wenn ja, dann werden wir in der Lage sein, sie automatisch anzumelden und dass dieser Teil davon im Wesentlichen das ist, was wir hier machen. Also das ist all das neue Zeug hier, bevor wir den Benutzernamen machen, war Ah do Session Benutzername und all das Zeug war hier vorher. Das ist also dieser Codeblock, richtig? Hier ist, was wir hinzugefügt haben. Also im Grunde, was wir tun, ist, dass wir überprüfen, ob der Sitzungsbenutzername gesetzt ist, weil wir in diesem Szenario wieder davon ausgehen, dass sie ihren Browser geschlossen haben. Und so wird die Sitzung beendet sein. Und so, wenn sie zurückkommen Sitzung Benutzername wird nicht gesetzt werden. Also werden wir überprüfen und sehen, ob das gesagt wird, wenn es leer ist, wenn es leer ist, wenn es leer ist und es ein Cookie für diese Website mit dem Namen Remember me gesetzt ist, das im Grunde sagt uns, dass wir das Szenario haben, das wir wollen, das ist, dass sie keine aktive Sitzung haben und sie das Remember me Cookie haben. Das bedeutet, dass wir sie automatisch einloggen. Also, was wir tun, ist, dass wir diese Lift-Liste benutzen und ah, wir explodieren unser Cookie. Also erinnere ich mich, als wir unseren Cookie Ah sagten, haben wir eine Zeichenfolge mit einem Doppelpunkt in ihm erstellt. Und dann haben wir Selektor auf der einen Seite und Authentifikator auf der anderen Seite. Also im Wesentlichen, wenn wir es explodieren, was wir am Ende mit einem Array enden. Ein Element ist der Selektor, und ein Element ist der Authentifikator, und dann laufen wir. Wir führen diese durch Liste, die im Grunde das Element nimmt, das der Selektor ist, und setzt, dass gleich dem Variablenselektor und dem Element, das der Authentifikator ist, und setzt das gleich der Authentifikatorvariable hier. Also sind wir am Ende mit, ähm, ähm,der eigentliche Selektor aus unserem Cookie-Set, um den Selektor wertvoll und die tatsächlichen Authentifizierungsdaten von unserem Cookie zum Authentifikator zu salzen , was wir wollen, Im Grunde. Alles klar, was wir dann tun werden, ist, wenn eine Abfrage, unsere Datenbank, und wir werden die Daten aus der Off-Token-Datenbank auswählen, wo der Selektor gleich ist. Letztendlich machen wir vorbereitete Aussage, aber letztendlich, wo es R-Selektoren entspricht. Also nehmen wir den Selektor von unserem Cookie und verwenden das, um eine queere Datenbank zu finden und diesen Selektor in unserer Off-Tokens-Tabelle zu finden. Wenn es nicht existiert, dann bedeutet das, dass etwas nicht stimmt. Wenn es nicht existiert, Und so werden wir nicht sagen, dass wir nichts von diesem Zeug machen werden, okay? Wir werden die Sitzung nicht verifizieren. Im Wesentlichen sind wir Was im Grunde passieren würde, ist, wenn wir hierher kommen, um den Hash auszuführen, der gleich ist, dass es scheitern würde . Daher würden wir die Sitzung hier nicht festlegen, und so würden wir hier unten fortsetzen und letztendlich falsch zurückgegeben, so dass wir die Sitzung nie überprüfen würden. Okay, das ist, was wir hier tun, ist zu sehen, ob dieser Selektor existiert. Wenn dieser Selektor existiert, werden wir im Grunde all diese Token-Daten abgreifen. Das ist also wieder. Es wird ah, die i dhaben, die i d den Selektor, den Token, den Benutzernamen und wenn es abläuft, und so greifen wir all diese Off Token Daten, und dann, was wir tun werden, ist Wir werden diesen Hash gleich ah, Funktion hier verwenden. Also, im Grunde wird Hash equals das das The Token, das wir von unserer Datenbank haben, gegen den Authentifikator überprüfen , den wir von unserem Cookie haben, wird sehen, ob sie einander gleich sind und Sie Hash gleich verwenden, weil wieder Das wird kompliziert. Aber es gibt ein Timing-Problem, bei dem, ähm, wenn Sie keine Hash-Gleichheiten verwenden, es tatsächlich für jemanden einfacher machen könnte, rohe Gewalt zu versuchen, weil sie den bestimmten ersten Teil von, ah, der Token. Sie ändern den Brief, es wird tatsächlich schneller laufen. Ich meine, wieder, es wird wirklich, wirklich tief in das. Ähm, ich weiß nicht, dass das notwendigerweise 100% wissen muss. Die Notwendigkeit zu wissen ist, dass Sie den Shash gleich ausführen müssen. Und so übergeben wir unser Token, das wiederum, das wiederum, dieses Token ist, wo wir unseren Authentifikator gespeichert haben. Wir pash vorbei, dass in und dann haben wir in unserem Authentifikator übergeben, den wir tatsächlich von unserem Cookie bekommen haben . Also unser Authentifikator, den wir von unserer Datenbank erhalten haben, vergleicht es mit unserem Authentifikator, den wir von unserem Cookie erhalten haben. Und so wird es sehen, ob sie einander gleich sind, wenn sie dio. Also, wenn das wahr ist. Dann werden wir uns daran erinnern, dass der Benutzername hier leer ist. Also das erste, was und wir brauchen einen Benutzernamen hier unten, wenn wir eine echte Authentifizierung machen wollen . Also müssen wir den Benutzernamen gleich dem Benutzernamen setzen, den wir jetzt aus unserer Datenbank von unserem Login hier bekommen haben . Also tun wir das zuerst, und dann müssen wir auch unsere Sitzungsvariable setzen. Also wird der Keks im Grunde fast eine einmalige Umgehung sein. Also wird es im Wesentlichen nur die Standardprüfung für die Sitzung umgehen und das Aus-Token und all dieses Zeug überprüfen. Und wenn das alles gut ist, dann wird es die Sitzung einstellen und dann wird von jeder Seitenüberprüfung von da an auf dieser Sitzung basieren, weil diese Sitzung jetzt nicht leer sein wird. Also dieses Zeug dieser if Block wird nie auslösen, okay, und dann, wenn wir unseren Benutzernamen und unsere Sitzungen eingestellt haben, und dann können wir wieder in unsere regulären Coaches gehen, wie wir vorher hatten wo wir die Benutzerdaten, damit wir diese auf unseren Seiten anzeigen können. Wie Sie sehen können, sehe ich deshalb, dass dies eine Art Hintertür ist, in dem Sinne, dass Sie ein Cookie verwenden, umIhre Art von Sitzungsauthentifizierung zu umgehen. Wie Sie sehen können, sehe ich deshalb, dass dies eine Art Hintertür ist, in dem Sinne, dass Sie ein Cookie verwenden, um Jetzt bindest du es direkt wieder hinein. Aber das ist eine sexuelle im Wesentlichen, was dies Ihnen erlaubt, zu tun. Und so machst du es. Ah, erinnerst du dich an mich? Funktionalität. Jetzt ein Paar. Ich würde Vorbehalte hier aufrufen, je nachdem, welche Version von PHP Sie ausführen. Möglicherweise haben Sie diese zufällige Byte-Funktion nicht, und Sie haben möglicherweise nicht die Hash-equals-Funktion hier. Also, was ich getan habe, ist, dass ich eine Klasse namens Random Compact aufgenommen habe, die diese zufällige Byte-Funktion verfügbar macht. Wenn es bis zum Herbst in PHP nicht verfügbar ist. Und dieser Hack entspricht Klasse, die Hash gleich zur Verfügung stellt, wenn es standardmäßig in PHP nicht verfügbar ist, beide überprüft, um zu sehen, ob diese Funktionen bereits vorhanden sind, bevor tatsächlich etwas getan wird . Also, wenn sie bereits existieren, werden sie nur die eingebauten PHP verwenden. Aber wenn sie nicht existieren, werden sie diejenigen verwenden, die sie in diesen Klassen erstellt haben, die im Grunde dasselbe tun . Also eine Sache, die Sie in unserer ah Load bemerken werden und ich würde in unserem Low Dot PHP öffnen, ist jetzt, dass wir diesen zufälligen Comm pat einschließen, und dieser Hash ist auch hier gleich. Also, wenn du willst, willst du sie vielleicht nicht einbeziehen. Was Sie tun könnten, ist hierher zu kommen und Sie könnten diese auskommentieren und dann einfach versuchen sich anzumelden. Wenn Sie keine Erben haben, die eine Anmeldung ausführen, können Sie diesen zufälligen kompakten Ordner in dieser Hash-equals-Datei sicher entfernen, und dies erfordert genau hier. Und weil Sie das haben, was Sie brauchen, um für PHP eingebaut. Also, ähm, wenn in ihrer Funktion keine Fehler existieren. Also, wenn Sie nicht haben, was Sie brauchen, versuchen Sie einfach, ein Protokoll zu machen, und es wird auf Luft werfen und Sie werden es sofort wissen. So können Sie es wieder beruhigen. Diejenigen, die draußen sind, sehen, ob es funktioniert und ob es so ist, und Sie sollten gut gehen, Ordnung. Also mit all dem, was gesagt hat, können wir uns das irgendwie ansehen. Lassen Sie mich voran und loggen Sie sich ein, und ich werde den Remember me Block treffen und drücken Sie Submit und das meldet mich ein und wir können hier rüber zu den Off Token kommen und Sie können sehen, dass hier ein neues Off Token erstellt wurde. Ah, für mich zu benutzen. Und wenn wir hierher kommen, dann gehen wir zu unseren Einstellungen und es dauert eine Sekunde, um hierher zu kommen. Ah, Video auf Content-Einstellungen, Cookies und sehen Sie dann alle Cookies und unten. Und natürlich, je nachdem, welcher Browser verwendet wurde, anders sein. Ich habe einen Typ der Domain, auf der ich mich befinde. Und dann, wenn wir in unseren Cookies hier schauen, haben wir diese Remember me und hier ist unser Inhalt unseres Cookies hier. Also haben wir den Keks. Nun, wenn ich diesen Browser schließen und wieder in ihn springen würde Ah, und die Sitzung wäre beendet, aber ich würde in der Lage sein, sich mit nur dem Cookie wieder einzuloggen. Jetzt wirst du hier sehen. Wenn ich hier klicke, um mich abzumelden, dann gehe ich hier, um hier zu klicken, um mich wieder anzumelden, was mich nur zur Indexseite führt. Siehst du, die Log-Information kommt wieder auf. Das ist, weil, wenn wir uns unsere ausloggen, dass Punkt PHP. Dies zerstört im Wesentlichen diesen Cookie. Die Art, wie Sie einen Cookie zerstören, ist, dass Sie es gesagt haben. Sie setzen den Cookie und Sie sagten, dass er auf eine Zeit in der Vergangenheit ablaufen soll. Das ist es, was wir hier machen. Deshalb haben wir Minus, was auch immer die Zeit ist minus 3600 Sekunden. Also das tötet den Cookie und das im Wesentlichen, ich meine, du könntest wahrscheinlich Pol Ich hasse es zu sagen, dass du nicht kannst. Wahrscheinlich finden Hacker wahrscheinlich einen Weg, all diese Informationen und diesen Cookie zu täuschen und ihn laden zu können und holen Sie es wieder rein. Aber das wäre, ich meine, sehr, sehr schwer zu tun. Und im Grunde, sobald Sie sich abmelden, wird dieses Token im Wesentlichen ungültig, weil das nächste Mal, wenn Sie sich anmelden und drücken, erinnern Sie sich an mich. Es wird ein ganz neues Token erstellen. Es wird den anderen überschreiben, und Sie haben diesen Cookie nicht mehr in Ihrem Browser. Also im Grunde macht es es so, dass Sie sich nicht mehr auf diese Weise einloggen können. Sie müssen sich wieder einloggen und Sie müssen den Remember me Block verwenden. Und natürlich, wenn du nicht überprüfst, erinnere dich an mich, Block. Es wird nichts von dem Cookie-Zeug machen. Nur macht nichts davon, weil es alles darauf basiert, ob diese Kontrollkästchen aktiviert oder nicht. Alles klar, so das ist, wie man hinzufügt. Erinnern Sie sich an mich, Funktionalität zu Ihrem Anmeldeskript. Danke fürs Zuschauen. Nächstes Mal reden wir mit dir. 5. Sichere Password erstellen: Hallo, John Morse. Hier. John Morris online dot com. Diese Lektion. Ich werde Ihnen zeigen, wie Sie Ihrem Login-Skript eine Passwort-Reset-Funktion hinzufügen können. Das wird also, ah, eine E-Mail-Passwort-Funktion sein ah, . Und so müssen wir ein paar Sachen aktualisieren, die wir bis zu diesem Punkt gemacht haben, damit wir Ah, eine E-Mail haben . Und der Grund, warum es ein E-Mail-Passwort-Zurücksetzen ist, ist im Grunde , in den meisten Fällen, das wird der sicherste Weg für Sie sein, es zu tun. Denn damit jemand jede Art davon wieder hacken kann, wird diese Art von Sache im Wesentlichen eine Hintertür in unser System sein. Wir wollen also sehr vorsichtig damit sein. So einige ah Hacker müssten nicht nur die E-Mail-Adresse kennen und alles, was nicht nur unser System hacken , sondern sie müssten das E-Mail-Konto des Benutzers gehackt haben. Und so ah, wieder, wenn Sie zu diesem Punkt kommen, hat diese Person wahrscheinlich mehr Probleme als das, was mit Ihrem System vor sich geht. Es ist also viel besser, als etwas auf Ihrer Website zu haben, wo sie vielleichteinige, ah, Sicherheitsfragen oder Dinge dieser Art eingebenwürden einige, ah, Sicherheitsfragen oder Dinge dieser Art eingeben ah, . Ach, einfach, weil du das alles darstellst. Die gesamte Sicherheit auf Sie und Ihr System. Ah, und du wirst es wieder sein. Es wird dein System sein. Das ist ein Ziel für Hackerangriffe. Wohingegen, wenn du es per E-Mail machst, wird es Gmail oder Yahoo sein. Also, im Allgemeinen, im Allgemeinen, meisten Situationen ist der empfohlene Weg, dies zu tun, mit einem E-Mail-Reset. Also werde ich dir so schnell zeigen. Du wirst sehen, dass wir genau hier haben. Wir haben dieses Reset-Passwort. Also gehen wir weiter und klicken in das, und ich werde meine E-Mail-Adresse eingeben. Nun, wenn ich zuerst etwas eingebe, das nicht existiert, werden wir einen Fehler bekommen. Diese E-Mail existiert einfach nicht in unseren Aufzeichnungen. Also gibt es das. Und dann, wenn ich ah, richtige E-Mail-Adresse eingeben, richtige E-Mail-Adresse eingeben, dann werden wir diese Erfolgsnachricht erhalten, die besagt, Überprüfen Sie Ihre E-Mail für den Link zum Zurücksetzen des Passworts. Und wenn ich hierher zu meinem E-Mail-Programm komme, ziehe ich das hier runter. Sie können hier sehen. Ah, was ich am Ende habe, ist diese Ah undicht, dass meine E-Mail hier, die ich verwenden kann. Wir gehen weiter und klicken Sie darauf und das wird uns zu dieser Seite zum Zurücksetzen des Passworts hier führen . Und dann werde ich mein Passwort zurücksetzen, damit ich mich nicht mehr erinnere, was es zuletzt war . Ich sagte, es geht voran und drücken Reset, Hit, Senden und es sagt, Passwort aktualisiert. Erfolgreich getroffen. Loggen Sie sich hier ein und wir geben die neue E-Mail hier ein. Dann sind wir alle eingeloggt. Okay, das ist es, was es uns erlaubt zu tun. Ah, und so ist es ziemlich unkompliziert. Nun, wenn wir zurückkommen und mich einfach wieder in mein E-Mail-Programm springen lassen, und ich versuche , das gleiche Reset erneut zu verwenden und ich versuche, meine E-Mail zurückzusetzen, werden Sie sehen, dass ich einen Fehlercode bekomme. Okay, also konnten sie das nicht verarbeiten. Und das ist es, was wir wollen. Denn jetzt, sobald dieses Token verwendet wird, wollen wir nicht, dass es wieder verwendet wird. Okay, ich werde dir zeigen, wie wir das alles gemacht haben. Das ist also die Grundidee. Es gibt also einige Dinge, die wir hier gemacht haben, die durchgehen müssen. Zuerst geht es hier zum Installationsskript. Es gibt ein paar Änderungen hier, und, ah, einige davon kommt, dass einige davon nur aufgeräumt werden und nur von weiteren Tests auf, ah, einer Reihe von verschiedenen Servern kommt auf, ah, ah, . Also habe ich nur versucht, sicherzustellen, dass auf allen Arten von verschiedenen Servern das immer noch funktionieren würde. Es gibt also einige Veränderungen, die wir eines dieser Jahre hier aufräumen mussten. Sie werden feststellen, dass ich hier in Datenbankdetails hinzugefügt und eine eindeutige Verbindung direkt über PDO mit der Datenbank erstellt habe. Und der Grund, warum ich das getan habe, ist ah, unsere Datenbankklasse, die wir verwenden, ist in erster Linie für die Postinstallation gedacht, also könnte ich durchgehen, und ich könnte die Datenbankklasse dafür aktualisieren. Aber ich wollte wirklich nicht in, dass mit diesem speziellen Kurs bekommen, weil ich mich auf das Protokoll in Teil s konzentrieren möchte. Also, was ich hier getan habe, ist nur ich erstellt ah, eine weitere Verbindung zur Datenbank der zentristischen separaten von dem, das wir im Rest des Skripts verwenden, und Dies ist auf Lee auf der Installationsseite, so dass Sie irgendwie durchschauen können, aber am Ende des Tages, ist es nicht wirklich wichtig. Ah, die Sache, die hier unten zählt, ist, dass wir eine neue Tabelle namens Password Reset erstellt haben, und wir haben d Feld und E-Mail-Feld ah, Selektorfeld, ein Token-Feld und ein Ablauffeld. Wenn Sie also schauen, ist es fast identisch mit unseren Off-Token, außer dass wir jetzt E-Mail anstelle des Benutzernamens verwenden. Und das liegt nur daran, dass für Sitzungen, die wir benötigen, der Benutzer mit dem Namen unter ist, was wir für das Zurücksetzen von Kennwörtern verwenden . Die E-Mail ist, was wir verwenden. Das ist also der einzige Grund, dass sich die Dinge geändert haben. Sie bemerken auch, dass ich hier ein weiteres Feld namens E-Mail zur Benutzertabelle hinzugefügt habe, da wir diese Daten jetzt sammeln müssen, damit wir das Passwort zurücksetzen können. Was Sie tun können, ist, wenn Sie einfach in Ihre meine Fortsetzungs-Datenbank gehen und Sie zu Benutzern gehen und Sie zu Operationen gehen, können Sie hierher kommen und die Tabelle löschen. Löschen Sie einfach die Tabelle. Ich nehme an, Sie befinden sich in einer Testumgebung. Offensichtlich, wenn du das schon benutzt hast, dann ist das wahrscheinlich nicht nötig. Etwas, das du tun willst. Aber er löscht die Tabelle, und dann können Sie zurückgehen und das Installationsskript erneut besuchen. Besuchen Sie install dot PHP und es wird es mit dem neuen Feld dort neu installieren. Oder du könntest gehen, wenn du in meine Fortsetzung willst. Ah, und du könntest an seine Struktur denken und dann könntest du ein Feld hinzufügen und so Ah, gehen. Es ist hier unten. Du bist in der Lage Zehenspitze. Fügen Sie noch weitere Felder hinzu. Ah, Fügen Sie hier eine Spalte hinzu, damit Sie eine neue Spalte hinzufügen können, wenn Sie wollten, und ah, an diesem E-Mail-Feld, also je nachdem, welche Art und Weise Sie es tun möchten. Aber alle Informationen darüber, wie es geschaffen wird, sind genau hier. Es ist ein ah ah ah var Diagramm 55. Alles klar, das ist so etwas von der ersten Einrichtung dort oben. Dann wir auch auf einem Anmeldeformular. Wir haben hier ein Feld für E-Mail hinzugefügt. Also haben wir eine E-Mail hinzugefügt. Ach, Feld hier. Wir könnten tatsächlich diesen Typ zwei E-Mail setzen. Also wird die kleine HTM Island fünf tatsächlich für uns verifizieren. Das ist eine Sache, die wir dort tun können. Klasse ist noch auf Tech gesetzt, weil wir alle unsere Standard-Styling haben, die darauf basiert, ist es. Technisch gesehen ist es immer noch eine Art von Textfeld ist nur eine spezielle Art von Textfeld Name auf E-Mail gesetzt . Und dann, wenn wir zu unserem Login-Skript gehen hier drüben und wir schauen uns unsere Register-Funktion hier , Also haben wir ah Satz von Pflichtfeldern, Benutzername, Passwort und E-Mail. Das werden Pflichtfelder sein. Ah, das ist nur ein kurzer Scheck. Im Grunde genommen, was Sie tun, ist, dass Sie dieses erforderliche Array durchlaufen und dann überprüfen Sie, ob der Schlüssel in den übermittelten Postdaten leer ist oder nicht. Wenn es leer ist, wenn jemand leer ist, die 1. 1, die leer ist, werden wir eine Statusmeldung von Null Ah zurückgeben, Status Null. In einer Nachricht von bitte geben Sie Ihre und dann was auch immer. Der Schlüssel ist so Benutzername, Passwort , E-Mail usw. So dass Griffe sicherstellen, dass wir Pflichtfelder erhalten. Zu diesem Zweck machen wir es auch auf dem Formular. Und wenn wir uns Registrar PHP ansehen. Wir tun hier gefordert, aber du willst immer. Sie möchten sich nicht auf das HTML fünf Zeug verlassen. Sie werden nicht immer Ihren eigenen Rücken und Skript haben, der diese Prüfungen auch durchführt. Alles klar, das sind Pflichtfelder. Und dann ging ich da rüber, weil es eine neue Sache ist, die ich hier hinzugefügt habe, ich glaube nicht, dass ich das vorher drin hatte. Wir haben unsere Standardprüfung, um zu sehen, ob sie verwendeten Namen bereits existiert. Und dann alles, was wir getan haben, war, diese Zeile direkt hier hinzuzufügen , die jetzt die E-Mail von den Post Data nehmen und sie in unsere Datenbank einfügen. Und so ist das wirklich das Einzige, was sich außerhalb dieser hier oben geändert hat, in Bezug auf das Einfügen der Daten in unsere Datenbank. Das ist also ziemlich unkompliziert. Also lasst uns die Registerseite. Wenn sich jetzt jemand registriert, werden sie ihren Namen, ihre E-Mail, ihren Benutzernamen und ihr Passwort eingeben und geschwächt. Wenn wir gehen, um sich anzumelden, klicken Sie hier, um sich abzumelden, dann werden wir gehen, um sich hier zu registrieren. Sie geben nun Namen, E-Mail-Adresse, Adresse, Adresse, Benutzername und Passwort ein. Alles klar, damit wir jetzt fertig sind. Wir haben unsere E-Mail. Ah, das wir sammeln. Wir können das jetzt für unser Passwort verwenden. Zurücksetzen Wir haben unser Installationsskript. Ah, viele von diesem Zeug hat sich nicht wirklich geändert, Index. Und diese Art von Zeug hat sich nicht verändert, äh, hier einloggen? Das einzige, was hier hinzugefügt wurde, war der Link zum Reset-Passwort. Also, wenn wir zurück zu unserem Protokoll zu informieren, alles, was wir hier hinzugefügt haben, war dieser Link zum Zurücksetzen des Passworts. Das ist also alles, was sich dort geändert hat. Unsere Konfliktakte. Wir haben ein paar Dinge hinzugefügt. Also, weil wir eine E-Mail senden, brauchen wir jetzt noch ein paar Dinge. Also brauchen wir die URL der Website, weil wir einen Link zu wem senden werden? Sie, die zurück zu unserer Website. Also ah, wir brauchen, dass wir Ihr l brauchen, anstatt es im gesamten Skript hart zu codieren. Denn wenn ich das tat, müssten Sie hineingehen und jede Instanz davon ändern. Ich habe hier gerade Ah Konstante geschaffen. Und Sie können dies für Ihre l ändern, wo Sie diese installiert haben. Es ist der Ordner was auch immer. Was auch immer Ordner Sie haben dieses Skript ah hochgeladen in Das ist, was das Öl Sie hier wieder setzen würden , weil wir E-Mails senden. Wir benötigen auch einen Namen und eine E-Mail-Adresse, damit Sie den Namen und die E-Mail-Adresse hier festlegen können. Kurs. Sie möchten auch die Datenbankdetails für die Datenbank festlegen, die Sie dafür erstellen. Ah, und dann sagten wir ein Standarddatum. Standardzeitzone. Ich habe es gerade zu UTC gesagt. Du kannst natürlich einstellen, es natürlich einstellen,was immer du willst. Aber viele Server heutzutage, wenn Sie das nicht setzen, wird es eine Art Fehler werfen. Also habe ich das einfach da reingesteckt, das, äh, und das könnte in jeder Datei gesetzt werden. Also einige Server, wenn es in irgendeiner Datei gesetzt ist, dann werden Sie diese Luft nicht sehen. Aber ich habe es in den Code gelegt, nur damit Sie nicht mit diesen Fehlern umgehen müssen. Also und es ist so eingestellt, UTC zu verwenden, was für unser Skript Ah ist, das ist in Ordnung. Die Daten wurden an dieser Stelle nicht wirklich wirklich angezeigt, wir verwenden sie nur für Ablaufzeiten, für unser Passwort Reset und für unsere automatische Anmeldung. Also erinnern wir uns an mich. Es ist also nicht etwas, das in Bezug auf die Anzeige eine Bedeutung hat. Richtig? So haben wir unsere Konfliktdatei geändert. Und dann haben wir unsere Datenbankklasse nur ein wenig geändert. Grundsätzlich wird die, die wir diesen Benutzer ändern, existieren Methode. Ich möchte dies abdecken, weil dies tatsächlich eine gute Lektion ist, nur um Funktionen oder Methoden zu aktualisieren. Also, wenn Sie sich erinnern, bevor dies nur einen Parameter akzeptiert und dieser Parameter wurde standardmäßig auf Benutzernamen gesetzt Nun, wir können. Es wäre schön, in der Lage zu sein, zu überprüfen, ob der Benutzer existiert von mehr als nur der Benutzer I d oder der Benutzername in der Lage sein, es durch irgendetwas zu überprüfen. Die E-Mail und insbesondere, hilfreich bei dem, was wir mit unserem, ähm, was wir mit unserem Passwort zurücksetzen, weil wir mit der E-Mail arbeiten werden . Es ist also schön, den Benutzer per E-Mail überprüfen zu können. Und das ist es, was uns diese Änderung ermöglicht. Also, wenn Sie sich erinnern, bevor es einen Parameter hatte und Sie würden ah ah setzen. Im Wesentlichen was? Sie, wie der Wert des Benutzernamens war, so dass Sie den Benutzernamen übergeben, den Sie überprüfen wollten , um zu sehen, ob es existiert. Also, was ich tat, ist, dass ich gegangen bin. Dieser erste Parameter benötigt immer noch dasselbe. Aber dann habe ich ein zweites Feld namens Wear Field hinzugefügt, und ich habe es standardmäßig auf Benutzername gesetzt. Was das tut, ist es, dass jeder der anderen Orte, an denen ich Benutzer verwendet habe, bereits existiert, und es war dafür, wie es auf die alte Weise konstruiert wurde. Die gehen immer noch zur Arbeit, und das ist wichtig, weil wir es nicht unbedingt tun. Es ist nicht unbedingt einfach, durch ein Update alle Instanzen zurückzugehen, in denen wir aufgerufen Benutzer existiert. Und so habe ich die Funktion aktualisiert, so dass sie abwärtskompatibel mit den Methoden ist, wie wir sie bereits in unserem Code verwendet haben , weil dieser erste Parameter immer noch dasselbe ist. Und dann, weil dieser einen Standardwert hat. Wenn der Parameter nicht ist, dass dieser zweite Primer nicht übergeben wird, wird er einfach diesen Benutzernamen hier verwenden. Daher akzeptiert es standardmäßig einen Benutzernamen und verwendet den Benutzernamen für Feldfeld, um zu überprüfen, ob der Benutzer existiert. jedoch etwas anderes übergeben, Jetzt können wirjedoch etwas anderes übergeben,das wir in die E-Mail-Adresse setzen könnten und das Verschleißfeld auf E-Mail gesetzt werden . Und so wird es jetzt alle Benutzer auswählen. Unsere Auswahl aller Benutzer. Wo die E-Mail Weil das ist, was wir gesagt haben, ist das, wo Feld Ah gleich ist und das ist unser Platz. Halterreferenzierung sind Platzhalter und letztlich unser Verschleißwert. Also, wo die E-Mail gleich dieser E-Mail-Adresse ist oder wenn es die Standardeinstellung ist, wo dieser Benutzername gleich ist, wo der Benutzername gleich den eingegebenen Benutzernamen ist, rechts. Also, das ist ein Update, das wir an unserer Datenbankklasse gemacht haben, und jetzt kommen wir irgendwie zu dem, was hier übrig ist. Wir haben also drei neue Seiten. Wir haben das Passwort dot PHP reset dot PHP und Reset Prozess dot PHP verloren. Die Seite zum verlorenen Passwort ist also, wo wir eigentlich sind, wenn jemand anfragen möchte und sagen , dass er sein Passwort verloren hat und eine E-Mail zurücksetzen möchte. Das ist diese Seite. Diese Seite, in Bezug auf das, was sie ist, ist eigentlich ziemlich unkompliziert. Es ist ah, es ist eine Form. Also haben wir hier unser Formular, das sich selbst einreicht, und das einzige Feld akzeptiert ist die E-Mail-Adresse. So kommen wir wieder her Hier gehen wir zum Zurücksetzen des Passworts. Es ist ein Formular mit einem Feld und es außer der E-Mail-Adresse. Und dann, wenn das für Miss eingereicht wird, wird es die Informationen an Los Password weiterleiten. Okay? Und ich gehe von dem großen konzeptionellen Überblick über das, was wir getan haben, und dann tauchen wir in die Details ein. Aber es wird es an diese letzte Pot Lost Passwort-Methode in unserer Log In-Skript-Klasse übergeben und verarbeiten und ich werde Ihnen zeigen, was wir damit in einer Sekunde machen. Die nächste Seite ist die eigentliche Reset-Seite. Dies ist, was die Seiten gehen, wenn sie auf den Link in der E-Mail klicken. Und so ist dieser ein bisschen mehr involviert. Das erste, was wir tun müssen, ist, dass Sie bemerken, dass, wo wir irgendwie unsere Aufnahme hier oben haben , und wir sind irgendwie das ein bisschen anders ist als diese Art von Form, wo wir all unsere Include-Sachen hier unten haben. All unsere PHP-Logik hier oben, richtig? Es ist irgendwie sauber getrennt. Dieser ist ein wenig anders, denn wenn sie versuchen, diese Seite direkt zu besuchen und sie nicht die richtigen Abfrageparameter in der URL haben . Dann müssen wir hier unten eine Luftmeldung anzeigen, die besagt, dass es ein Problem gab, und so ist das ein wenig gelangweilt miteinander gemischt. Aber was wir letztendlich tun, ist, dass wir überprüfen, ob diese Abfrageparameter existieren. Es gibt also einen Selektor und einen Validator. Und in der verlorenen Passwort-Methode hier drüben, was ist, wo wir tatsächlich erstellen und die E-Mail senden. Wir setzen diese Parameter in die U. R. L. Also der Link in der E-Mail wird diese Parameter bereits haben. Also im Grunde hilft dies, mit jedem umzugehen, der versucht, direkt darauf zu gehen und herumschwebt. Sie müssen die richtigen Abfrageparameter Abfrageparameter haben. Also haben wir überprüft, ob diese Karriere-Parameter existieren, und dann haben wir überprüft, ob sie Hexi Decimal sind, weil du wieder sehen wirst, wenn wir die verlorene Passwort-Methode bekommen , können wir erstellen, ähm, wir erstellen im Grunde eine Nonce oder wir erstellen ein Token, und wir haben in Hexi Decimal konvertiert. Und wenn wir es sind, wenn jemand auf diesen Link klickt, sollten die Abfrageparameter beide Hexi dezimal sein, und so können wir überprüfen, ob es sich um Hexi Decimal handelt. Das hilft uns im Wesentlichen, mit allem umzugehen. Oder jemand könnte versuchen, diese Seite zu besuchen und den Selektor gleich einem zufälligen Java-Skript oder einem SQL-String oder so etwas zu setzen . Es wird nicht als Hexi Decimal validieren. Daher diese Kontrollen fehlschlagen. Okay, das ist also nur ein bisschen Eingabefilterung hier. Also werden wir überprüfen, ob sie Hexi Decimal sind. Wenn sie nicht Hexi Decimal sind, werden wir diese Luft werfen. Und wenn sie nicht existieren, wird das übrigens auch auf Luft werfen . Also, ähm, das überprüft beide, ob es existiert, und wenn es Hexi Dezimal ist und wenn es diese beiden Bedingungen nicht erfüllt, dann werden wir da reinwerfen , erfüllt diese beiden Bedingungen. Dann erstellen wir zwei versteckte Felder genau hier, wo wir den Selektor und den Validator einfügen werden. Das muss das Token validieren, wenn ah, dieses Formular gesendet wird. Und dann das Passwort hier, das ah, die Person, das neue Passwort, das die Person setzen will. Okay. Also werden sie dieses Formular senden und dann wird das Verarbeitungsskript dafür prüfen und sehen, ob die Token, die sie übergeben haben, gültig sind. Okay, das ist es, was diese Form hier macht. Und dann übergibt es diese Informationen, um Prozesspunkt PHP zurückzusetzen. Nun der Grund, und Sie bemerken die meisten der anderen Formulare, die sie sich selbst einreichen. Der Grund, warum ich dies an ein anderes PHP-Skript einreichen habe, ist zweifach eins, um Ihnen zu zeigen, wie man das wieder gibt. Und das wollen sie mit all dem Zeug klarstellen. Ich schreibe diesen Code in erster Linie als Trainingshilfe, und deshalb warne ich Leute immer davor, dies in der Produktion zu verwenden. Das ist wirklich mehr für Sie, wenn Sie davon lernen, als für Sie, es zu benutzen. Und ich bezahle es nicht wirklich. Zwangsläufig zu hart darauf konzentriert, sicherzustellen, dass alles konsistent ist. Ich kann etwas auf eine Weise in einem Bereich und auf eine andere Weise in einem anderen Bereich tun, damit ich Ihnen beide Dinge zeigen kann . Also wieder, das ist Primärtraining, aber ein, damit ich Ihnen das zeigen kann. Aber wenn Sie versuchen, die get-Variablen zu mischen und nach diesen zu suchen und dann auch nach der Post-Variable zu suchen, bekommt es eine kleine Art von bekommt ein wenig verrückt Ah und kompliziert. Und das denke ich unnötig. Also machen wir einfach, ich bekomme Schecks hier, und dann werden wir es übergeben, um Prozess Dot PHP zurückzusetzen. Und das ist, wo wir einfach alle unsere Posten auf uns abwickeln können. Es hilft also, diese beiden Dinge zu trennen. Wenn wir also hierher kommen, um Prozesspunkt PHP zurückzusetzen, könnten Sie jetzt sehen, dass dies auf normaler zurückschaut. Wir prüfen, ob es sich um einen Beitrag Post Daten übermittelt wurden, und wenn ja, werden wir verarbeiten. Wir werden das senden, um das Passwort zurückzusetzen. Wenn kein Poststatus an diese Seite gesendet wird, gibt es keinen Grund, dass sie sich auf dieser Seite zum Zurücksetzen befinden sollten, es sei denn, sie stammen von diesem Formular. Also, wenn sie das direkt besuchen, gibt es nichts, was wir für sie tun können. Und das ist, warum wir sonst nicht sofort blockieren, wenn Post an es eingereicht wurde, und wir werfen nur einen Fehler. Es gibt also keinen anderen Grund für sie, auf dieser Seite zu sein. Also dann führen wir diese Ah, Reset Passwort-Methode wird in die Details davon zu bekommen. Wir setzen den Status hier und dann unten entsprechend ein, wir zeigen grundsätzlich nur den Datenstatus an. Entweder erhalten sie diese Luftmeldung, sie erhalten eine Luftnachricht, die von Reset Password generiert wird, oder sie erhalten eine Erfolgsmeldung, die durch Reset Password generiert wird. Und das zeigen wir hier unten an. In Ordnung, das ist also irgendwie der große Überblick. Nun, lassen Sie uns gehen in sind tatsächliche Login in Klasse. Und so wieder haben wir das Passwort hier verloren. Ah, das ist eine unserer Hauptmethoden und wir haben das Passwort hier zurückgesetzt. Das sind also zwei Hauptmethoden, die wir brauchen. Sieh durch. Also lassen Sie uns zuerst durch Verlust Passwort suchen. Also, wenn wir hier rauf kommen, gibt es ein Passwort zurücksetzen, und jetzt haben wir viel Passwort verloren. Also mit verlorenem Passwort, das größte, was mit diesen Token ist, dass wir nur sicherstellen müssen, dass sie kryptographische Lee sicher sind, so dass sie nicht wirklich, wirklich einfach Toe-Hack jetzt sind. Offensichtlich, wenn jemand sie direkt aus der E-Mail der Person bekommt, wird er in der Lage sein, sie zu benutzen. Aber wir wollen, dass wir es schaffen wollen. Es ist also schwierig für Hacker, einfach zu versuchen, zu einem Reset-Formular zu gehen und zu versuchen sie zu erraten. Und so wird das der größte Teil dieses Codes sein. Aber für unsere verlorene Passwort-Methode, nimmt es den Beitrag heraus, dass wieder eingereicht wurde. Denken Sie daran, dass Post Data ist , ah, wird einfach die E-Mail-Adresse hier sein. Das ist alles, was eingereicht wird. Und deshalb werden wir die Daten nehmen, die wir verifizieren werden, um sicherzustellen, dass Post E-Mail gesendet wurde . Und deshalb werden wir die Daten nehmen, die wir verifizieren werden, um sicherzustellen, dass Post E-Mail gesendet wurde Wenn nicht, werden wir auf Luft werfen. Dann überprüfen wir unsere Datenbank, um zu sehen, ob dieser Benutzer existiert. Und das ist wir Teil davon, wo wir benutzten Benutzer existiert, und wir überprüfen per E-Mail. diesem Grund haben wir diese Methode auf der Basis von Daten aktualisiert. Wenn der Benutzer nicht existiert, werden wir auf Sendung werfen, weil wir kein Passwort für eine E-Mail oder Benutzer zurücksetzen können, die nicht existiert. Wenn ja, werden wir hier weitermachen. Und zuerst erstellen wir unseren Selektor. Wir werden zufällige Bytes seiner Länge von acht verwenden, und wir tun Zehe Hexi-Dezimalstellen. Also schaffen wir ah, Hexi Dezimal. Grundsätzlich ist die Zeichenfolge hier, die wir verwenden werden, unser Selektor und weil es jedes Mal zufällig ist, dass diese Methode ausgeführt wird, wird es etwas anderes sein. Jetzt werden wir es so speichern, dass wir so alles zusammenpassen. Aber das ist wichtig, dass nicht dasselbe erstellt wird und die Art und Weise, wie zufällige Bytes funktioniert, wissen Sie, es schafft etwas, das kryptografisch Lee für diese Zwecke sicher ist. Wir machen dasselbe für Token, außer dass wir einen erstellen, der länger ist. Ah, und wir machen hier nicht Ah, den Binda Hex. Obwohl wir hier in einer Sekunde. Das schafft also unsere, die im Wesentlichen zwei Token schafft, die wir brauchen. Und wie ich schon sagte, das ist etwas wie ein öffentlicher und privater Schlüssel. Obwohl du in unserem Fall beide schicken wirst. Ah, beide an den Benutzer. Aber diese beiden verschiedenen Schlüssel hilft bei Timing-Problemen und macht es schwieriger für jemanden zu versuchen und zu kommen und das jetzt zu erraten, haben sie auch eine Vermutung , und ihn richtig zu machen und es viel mehr, viel länger als die andere und so weiter. Sobald wir also diese beiden Token haben, müssen wir rul erstellen, die wir an den Benutzer senden, um seine Passwörter zurückzusetzen . Also benutzen wir Sprint. Die Hälfte haben wir zwei Platzhalter. Dieser Prozentsatz s ist hier unsere Seiten zurücksetzen Punkt PHP. Also, das war wieder diese Reset-Seite hier oben, die wir gerade angeschaut haben. Das ist der, auf dem sie tatsächlich landen, wenn sie auf den Link in der E-Mail klicken. Das ist also, wo wir hineingehen. Denken Sie daran, dass ich in unserer Konfliktdatei sagte, wir spezifizierten unsere u R l für wo dieses Skript installiert ist. Also hier ist, wo wir das benutzen. Das ist ABS. Sie sind l Also das geht, um dies so zu machen, dass, wenn Sie diese Konfliktdatei aktualisieren und diesen Link gesendet, es an die richtige Stelle gesendet wird und es wird gehen, um Punkt PHP zurückzusetzen. Dann werden wir HT TB Build Abfrage verwenden. Dies ist im Grunde bauen unsere Abfrageparameter für uns. Und so ah, wir gehen in unseren Selektor, den wir hier geschaffen hatten. Wir haben unseren Validator weitergegeben und wir laufen es durch Hex-gewesen, um hier eine Hexi-Dezimalstelle zu erstellen und unser Token zu übergeben. Jetzt ist es wichtig, dies zu wissen, weil beide letztendlich durch „Been to Hex“ laufen , aber Sie werden hier unten feststellen, dass es etwas gibt, das ich Ihnen zeigen möchte. Wenn wir dies in die Datenbank einfügen, wurden Token verwendet, das hier oben ist, das nicht zu hex durchlaufen war. Also, was wir in die Datenbank einreichen, ist eigentlich nicht in Hex durchlaufen, sondern hat einen Hash durchlaufen, also hash wir es. Aber wenn wir ihm eine E-Mail schicken, führen wir sie durch. War zum Teufel. Also im Grunde, was in die E-Mail geht, wird durch zu hex gesendet. Aber was in der Datenbank passiert, wird gehasht, so dass der Wert, der an die E-Mail-Adresse gesendet wird, und der Wert, der in der Datenbank gespeichert ist, tatsächlich unterschiedlich sind . Okay, also nochmal, das ist wichtig zu verstehen. Also du willst nicht, dass du sichergehen willst, dass dein ah, du eine Sache bist, die ich versucht war, zu tun, war nur zu Hex hier oben gesagt Token gleich Hex-Zufallsbytes gewesen. Aber das würde eigentlich nicht funktionieren wegen dem, was wir hier unten machen. Wir verwenden Token direkt. Okay, also nur etwas zu beachten, das ein wenig später hier auftauchen wird. So dass dies im Wesentlichen all dies. Was es tut, ist es baut rul mit unserer Domain, einem Reset Dot PHP und dann unsere Abfrageparameter, die wir setzen müssen, um Selektor und unseren Validator. Das gibt uns also unser u r l. Nächstes, was wir brauchen, ist, dass wir unser Ablaufdatum dafür brauchen. Also machen wir neuen Tag, Datum Zeit. Jetzt machen wir ein Tagesintervall, das im Grunde eine Stunde hinzufügt . Also dieses Token ist ist wird für eine Stunde aktiv sein. Natürlich können Sie das ändern, wenn Sie möchten, richtig, richtig, Sie können hier reinkommen und die Anzahl der Stunden ändern, für die Sie wollen, dass dies aktiv ist, aber ich würde es nicht zu viel setzen. Und ich würde in den meisten Fällen sagen, wenn jemand sein Passwort zurücksetzt, tun sie es wahrscheinlich genau dann und da. Eine Stunde macht wahrscheinlich Sinn. Alles klar, wenn wir das haben, haben wir irgendwie alles, was wir brauchen. Das nächste, was wir tun werden, ist, bevor wir irgendwelche neuen Token erstellen, die irgendjemanden verbergen würden , der zufällig schon da drin ist. Wenn also jemand das Passwort zurücksetzen auswählt und dann wissen Sie, dass er zwei Stunden lang nicht darauf ankommt und dann versucht er, auf den Link zu klicken. Sie sehen einen Fehler, wenn sie versuchen, ihre Passwörter zurückzusetzen, damit sie gehen und sie es erneut zurücksetzen. Sie erstellen ein neues Reset-Passwort. Und was wir tun wollen, ist, wenn sie das tun, wir wollen zurück und völlig alle alten, die sie in der Datenbank haben, um sicherzustellen, dass wir das aufgeräumt halten. Wir haben nicht alle diese Toking-Token da draußen laufen, also löschen Sie diese. Und dann, was wir tun werden, ist, dass wir zuerst die Daten in unsere Datenbank einfügen , die Sie Tabelle sind, die wir erstellt haben. Und so werden wir die E-Mail einfügen. Der Selektor, den wir gehen, hash das Token und fügen es ein. Und dann sind wir für die Ablaufzeiten. Wurden gerade das Datum im UNIX-Format eingefügt. Also ein UNIX-Zeitstempel könnten Sie Datumszeit machen. Aber in diesem speziellen Fall wieder gibt es keine Anzeige der Daten. Ich habe das Gefühl, dass es einfacher ist, damit zu arbeiten, meiner Meinung nach hier. Aber ich habe mit dem alten A mit dem Remember me Feature gemacht, das ich dir gezeigt habe, wie man es mit regulärer Datumszeit macht. So könntest du das auch absolut tun. Aber ich habe es gerade getan. Sie machen das nächste Mal Stempel auf diesem einen, um Ihnen zu zeigen, wie das funktionieren würde. Alles klar, was wir dann enden, wenn wir das tun, ist, dass wir mit einem, ah, einem nen Baum in unserem Passwort enden ah, . Reset-Daten sind Kennwortrücksetz-Tabelle, die das Token und alle für diesen bestimmten Benutzer durch ihre E-Mail hat . Es ist gehasht und wie wenn es abläuft. So setzt es uns irgendwie so ein, dass wir umgehen können, wenn sie auf den Link klicken und unsere Formulare einreichen . Das Letzte, was wir dann , tun werden, ist, dass wir die E-Mail senden. Also werden wir überprüfen, um sicherzustellen, dass das in die Datenbank eingefügt wurde, weil es keinen Sinn macht, die E-Mail zu senden, wenn wir nicht tatsächlich in der Datenbank gespeichert haben, weil sie den Link in der E-Mail nicht verwenden können. Also das erste, was wir unseren Empfänger, der zwei ist, setzen Sie einfach die beiden gleich, um Ihre E-Mail zu verwenden, die Betreff zu Ihrem Passwort zurücksetzen Link können Sie all dies ändern, wenn Sie wollen . Die Nachricht besagt, dass wir ein Passwort erhalten haben. Verknüpfte Anforderungen zurücksetzen. Dein Passwort ist blasen. Äh, etcetera, etc. Hier ist Ihr Passwort zurücksetzen Link. Und dann ist hier, wo wir tatsächlich in das Leck gehen. Und das tun wir auch. Ah! Ah, ein Draft-Etikett. Wir geben hier die URL ein, und wir zeigen auch nur die Sie sind alle nackt hier. könntest du vielleicht hier ändern. Aber ich bin ein Fan der Anzeige der Mädchen roh, nur weil einige E-Mail-Programme, der Clink kann sie nicht anklickbar sein. Ich habe textbasiert, und wenn Sie also den Link roh anzeigen, können sie ihn einfach kopieren, wenn sie es benötigen und einfügen. Also, ah, das haben wir hier. Und dann haben wir das denkt. Und so ist das alles nur die Erstellung dieser Nachricht, die in unserer E-Mail gesendet wird. Sie können dies entsprechend bearbeiten. Unsere Header haben wir unsere von diesem ist, wo wir Admin-Namen und Admin-E-Mail haben. Wir haben unsere Antwort auf Admin Uh, Oops. Eigentlich haben Sie eine Art von dort E-Mail. Also haben wir das auf Admin-E-Mail gesetzt, und dann haben wir unseren Inhaltstyp im Grunde auf HTML gesetzt, weil wir diese Absatz-Tags verwenden , so dass es es so macht, dass es zeigt, wie wir erwartet zu erscheinen. Und dann hier werden wir die E-Mail senden und so werden wir die männliche Funktion gut ausführen. Und wenn die männliche Funktion richtig läuft, wenn sie gesendet wird, überprüfen wir, ob sie gesendet wird. Wir werden die Sitzung zerstören, wenn sie eine haben, jede Sitzung, in der sie sind. Und der Grund, warum ist im Grunde das, was das gewöhnliche Haar sagt. Wenn sie ihr Passwort zurücksetzen, bedeutet das, dass es die aktuelle Sitzung klopft, das Passwort, mit dem ihr Protokoll gewinnt, ist kurz davor ungültig. Also werden wir diese Sitzung zerstören und ihn dazu bringen, sich wieder anzumelden. Also denke ich, das ist wichtig, weil Sie keine wonky nous da haben wollen, in Bezug dass sie als eins über ein Passwort eingeloggt sind. Aber sie haben gerade ihr Passwort geändert, das ein wenig wackelig werden könnte. Sie sind also, dass wir die Sitzung zerstören und sie wieder einloggen lassen, und dann werden wir den Status eins oder wahr zurückgeben und unsere Nachricht hier und dann wissen Sie , wenn irgendwas von diesem Zeug auf dem Weg scheitert, Es wird Failover auf diese Statusmeldung von false mit dieser Nachricht hier. Und wir geben hier nicht zu viele Informationen, da dies ein Passwort zurückgesetzt ist. Also wollen wir wirklich nicht zu viele Informationen für jemanden zur Verfügung stellen, der versuchen könnte, das zu hacken. Also halten wir diese Luftbotschaften hier vage. Also, wenn wir gehen zurück und schauen Sie sich dies an, wenn wir dieses Formular für Los Word-Passwort einreichen, es geht, um die E-Mail-Adresse zu nehmen wird, um zu überprüfen, ob dieser Benutzer existiert. Wenn dieser Benutzer existiert, wird ein Siri erstellen wird eine Reihe von Reset-Token in unserer Tabelle Toe erstellen. Behandeln Sie das, und dann wird es eine E-Mail an den Benutzer mit dem Link senden, den er benötigt. Das hat die richtigen Token, damit sie klicken und dann zur Zurücksetzungsseite gehen und ihre Passwörter zurücksetzen können . Das ist also, was all das bewirkt. In Ordnung. Als nächstes sind dann die tatsächlichen Reset Passwörter. Also wieder, ah, nun, wir haben nicht den Link hier, aber dass dies die Seite hier ist, wo sie tatsächlich den Selektor im Validator vom Earl greifen . Wir übergeben es in versteckten Feldern und wir verarbeiten tatsächlich das Zurücksetzen des Passworts. Also, wenn wir uns das ansehen, bekommen wir unsere Post-Daten hier, und wir sind wieder Pflichtfelder sind Pflichtfelder. Überprüfen Sie, ob ej es Selektor, Validator und das Passwort Weil wir alle drei benötigen. Und wenn nicht, wir gehen in einer Luft und Sie werden hier feststellen, dass ich etwas hinzugefügt, das Sie in Betracht ziehen können hinzufügen Wenn Sie so etwas haben, wo Sie wirklich wissen wollen, wo es eine Luft war Wenn der Benutzer jemand kontaktieren Sie über den Support sagte, Hey, ich kann mein Passwort nicht alle diese Lüfte zurücksetzen, weil wir nicht versuchen, zu viele Informationen zu jemandem, der versuchen könnte, dies zu hacken. All diese Lüfte Luft die gleiche, die wir den Entwickler vielleicht wissen wollen. Nun, was an welchem Punkt ist es gescheitert? Also sehen Sie, ich veracode 123 und vier, also wenn jemand sagt, Hey, ich kann mein Passwort nicht zurücksetzen, könnte man sagen, Hey, was war der Luftcode, den es zeigte wenn Sie, wenn Sie ein Problem hatten. Nun, es war ein WRKO. Es hieß, Flugcode drei. Und jetzt bist du ein Entwickler. Nein, das ist genau hier, wo Sie irgendeine Art von Problem hatten, also könnte ich wichtig für die Fehlerbehebung sein . Und das könntest du tun. Vielleicht nur für die Produktion. Oder du könntest das Leben für Ah lassen, ich meine für Entwicklung. Oder Sie könnten es live lassen, wenn Sie weitermachen, Ihr Leben ist über Ihrem Produktionsserver. Alles klar, wenn also alle Felder dort lüften und im Formular eingereicht werden, werden wir sie extrahieren. Also wieder, Extrakt verwandelt die Schlüssel dieses Arrays in Variablen und setzt den Wert dieser Variablen auf den Wert dieses Schlüssels. Also im Grunde, was wir hier enden, wenn wir extrahieren, ist, dass wir unseren Post-Datensatz haben, um das Validator-Passwort zu wählen . Also Selektoren setzen auf was auch immer der Selektor geschätzt wird, es Führer setzen die eines Validators ist etcetera. Macht es nur ein bisschen einfacher, mit uns zu arbeiten. Wir gehen hier durch. Alles klar, das nächste, was wir tun werden, wenn wir das haben, ist, dass wir es überprüfen werden. Wir werden unsere Passwort-Reset-Tabelle abfragen und sehen, ob wir das haben. Wenn dieser Selektor, der übergeben wurde, in unserer Reset-Tabelle existiert , so dass wir hier keine haben, haben wir keine hier drin, aber hier werden wir diese Daten gespeichert haben. Und so werden wir dies überprüfen, um zu sehen, ob wir eine haben, die mit dem übereinstimmt, was über unser Formular eingereicht wurde , das von der Seite vorher kam, die von ah kam, die letztendlich aus der E-Mail kam. In Ordnung, also werden wir überprüfen und sehen, ob dieser Selektor existiert und ob er nicht abgelaufen ist. Also, wenn die im Ablaufblock festgelegte Zeit größer oder gleich der Zeit jetzt ist. So gibt time einen UNIX-Zeitstempel der aktuellen Zeit zurück und wir haben in unsere Datenbank einen UNIX-Zeitstempel eingefügt , wenn er abläuft. Also vergleichen wir im Grunde die Zeit jetzt mit der Ablaufzeit und sehen, ob jetzt, wenn die Ablaufzeit noch größer ist als die Zeit jetzt, das bedeutet, dass Token immer noch gültig ist. Also werden wir wählen und sehen, ob wir einen finden. Wenn wir es nicht tun. Wenn die Ergebnisse leer sind. Wenn wir keine finden, dass wir im Gegenzug eine Statusmeldung. Es gibt eine Luftverarbeitung Ihre Quest, Eric Ho auch, weil diese Token nicht gültig. Jetzt werden wir ihnen nicht sagen, dass diese Token nicht gültig sind, weil wir nicht wollen, dass ein Hacker wissen lassen , dass das alles, was hinter den Kulissen los ist? Wir werden ihnen nur diese Art von Decke Aussage geben. Aber wir kennen den Grund, warum das passiert wäre, weil ihr Code in Ordnung ist. jedoch Wenn dasjedochexistiert, dann werden wir es wieder tun. Diese Ergebnisse erhalten gibt Honore mit einem Element darin. Also müssen wir das erste Element in diesem Strahl greifen. Dort existieren tatsäc 6. Nächste Schritte: Ich bin ehrlich, dass es nicht mehr gibt. Also online.com, so wenig Hauswirtschaft, um diesen Kurs zu beenden. Wenn Sie es noch nicht getan haben, sollten Sie unbedingt zum Klassenbereich gehen. Es gibt einen Unterrichtsabschnitt für einige, einige Schritte, die Sie für diesen Kurs durchlaufen können. Stellen Sie also sicher, dass es sich unter der Diskussion auf der Registerkarte Projekte befindet, die Sie auf dem Kurs sehen werden. Außerdem, wenn Sie zu meinem Profil gehen, stellen Sie sicher, dass Sie mir ein Follow in meinem Profil hier geben , damit Sie benachrichtigt werden, wenn ich neue Kurse veröffentliche. Und ich habe auch eine laufende Art von wöchentlichen Podcast-Style-Kurs namens Let's Talk freiberuflich. Also, wenn Sie gerne Zugang zu laufenden Schulungen in Bezug auf Freiberufler und Online-Geschäft und so weiter haben möchten. Achten Sie darauf, das zu überprüfen. Lassen Sie uns auch freischaffende Kurse sprechen. Und schließlich habe ich einen täglichen Tipps-Newsletter auf meiner Website bei John Morris online.com. Wenn du dort drüben gehst, kannst du dich für diese Mailingliste anmelden. Sie werden auch in meine eigene, meine ganz eigene mobile App, oder Sie erhalten Zugriff auf über 78 Stunden kostenlose Inhalte zum Zeitpunkt dieser Aufnahme in Bezug auf freiberufliche und so weiter. Also, wenn Sie daran interessiert sind, BD sicher, dass auch überprüfen. Wieder, das ist John Morris online.com. In Ordnung. Danke, dass Sie den Kurs genommen haben. Wenn es dir gefallen hat, schätze ich dich für dich. Hinterlassen Sie mir eine Rezension und wir sehen uns im nächsten Kurs.