>> DOUG LLOYD: Also in unserem Video-on-PHP-Syntax,
wir sprachen viel darüber, wie PHP können in der Befehlszeile verwendet werden
Programme in einer Art und Weise ausgeführt, dass wir sind ziemlich vertraut mit aus C
Aber wie ich auch erwähnt, in diesem Video, PHP
wurde ursprünglich entwickelt implementieren Web-Programmierung, Websites.
Und so in diesem Video sind wir gehen, um darüber, wie wir sprechen
Verwendung von PHP in der Web-Entwicklung Kontext.
>> Wir wissen schon, von unsere Video-on-HTML,
dass Websites integriert sind aus einer Reihe von HTML-Tags
dass semantisch definieren die Struktur einer Webseite.
Aber Websites, die sind mit reinem HTML gebaut
leiden unter einer sehr, sehr ernste Einschränkung.
>> Und um diese Einschränkung zu veranschaulichen, Betrachten wir das folgende.
So, jetzt möchte ich eine Web-Seite zu bauen dass immer dann, wenn der Benutzer besucht sie,
es gibt mir die aktuellen Zeit in Cambridge, Mass.,
Anzeige es auf die neueste Minute.
Wenn ich machte dieses Recht jetzt, Ich könnte so etwas wie dies zu sagen.
Aktuelle Zeit in Cambridge-- so habe ich HTML-Tags, Kopf-Tags, Titel-Tags,
Körper tags-- die aktuelle Zeit in Cambridge ist 14.08 Uhr,
Ausdrucken Militärzeit.
>> Was passiert, wenn es ist jetzt 02.09 Uhr, 14.09 Uhr?
Bisher gut mit HTML, ich habe zu gehen und ändern Sie ihn auf 14.09.
Und dann eine Minute später Ich muss es wieder ändern.
Und wie Sie sich vorstellen können, ist, dass wahrscheinlich der schlimmste Job überhaupt.
Sie sind der Webmaster für eine Web-Seite, und jede Minute, 24 Stunden am Tag,
Sie die aktuelle Zeit aktualisieren müssen manuellen Öffnen time.html und Ändern
nur, dass Code-Snippet, um das sagen, aktuelle Zeit in Stunden und Minuten.
Das ist wahrscheinlich nicht sehr guter Umgang mit unseren Ressourcen,
Mensch und Rechen.
>> Websites, die alle HTML sind sind völlig statisch.
Die einzige Möglichkeit, zu aktualisieren können Inhalte, wie wir gerade gesehen haben,
ist für diejenigen, Quelle manuell öffnen Dateien, bearbeiten und speichern.
Und dann, wenn der Benutzer aktualisiert die Seite,
oder besucht die Seite zum ersten Zeit, werden sie die neuesten Inhalte zu erhalten.
Aber nur, weil wir es manuell bearbeitet.
>> Wenn wir beginnen, einige PHP dort zu mischen, unseren Code bekommen kann viel flexibler.
Und wir können einen Weg für unsere Seiten haben dynamisch zu sein, oder zu aktualisieren, selbst,
ohne unsere armen erfordern Webmaster im vorherigen Beispiel
um manuell aktualisieren Dinge.
Sie können sie automatisch zu tun.
Wir haben nicht zu intervenieren.
Wir können etwas Schlaf zu bekommen.
Das ist wahrscheinlich eine gute Sache, wenn Sie tun eine Menge von Web-Programmierung.
>> So in CS50 IDE, laufen wir ein Web-Server Apache genannt.
Es ist eine sehr häufig verwendete, Open-Source-Web-Server-System.
Dieses System hat den Kapazität zu interpretieren
PHP, die gehen, sinnvoll, wenn zu sein Sie beliebige PHP-Programmierung zu tun.
>> Und in CS50 IDE, einen Befehl müssen wir Dieses sehr einfach zu tun, um sicherzustellen,
apache50 starten.
Und dann, dass Schrägstrich Pfad, Schrägstrich an, Schrägstrich
dir, das ist nur eine wirklich gemeinsame Wege anzeigt, was Sie hier festgelegt haben
ist ein Pfad zu einer bestimmten Verzeichnis, das Sie
wollen die Wurzel sein Website oder die Root-Seite,
oder den Ordner, aus dem Sie Ihre Web-Server wird gestartet, um Dateien zu prüfen und zu dienen
sie bis zum Kunden, die sie verlangen.
Lassen Sie uns also über Pop bis CS50 IDE, nur um zeigen Ihnen, wirklich schnell, wie das funktioniert.
>> Also hier in CS50 IDE, ich bin in einer Verzeichnis namens Week Null Neun.
Und ich habe two-- Ich habe ausgeführt ein LS-Befehl gerade
oben, um Ihnen zu zeigen, dass ich zwei Verzeichnisse in hier, PHP,
dem der Satz von Dateien, die ich früher in ist die PHP-Syntax-Video, und dann PHP-Web,
dem der Satz von Dateien ist, dass ich möchte in diesem Video zu verwenden.
>> Und ich möchte anfangen ein Web-Server-Instanz
mit dem Inhalt der PHP-Web-Ordner da die Dateien werden bis serviert.
Also, was soll ich nur tun?
Ich werde apache50 Raum geben beginnen, Raum PHP, Web-Bindestrich.
Das ist der Pfad zum Verzeichnis von wo ich gerade bin.
Dann traf ich ein.
Es geht um eine zu tun wenig Sachen hier.
Und dann, es wird sagen: Apache wurde erfolgreich gestartet.
Ihre Website ist ab sofort verfügbar und at-- dann gibt es die URL für die Website.
Also, was soll ich nur tun?
Ich werde schnell kopieren diese.
Und ich werde up-- zu öffnen und Ich werde verkleinern etwas hier--
Ich werde eröffnen ein neuer Tab in Chrome.
Und ich werde diese URL zu besuchen.
>> Ich werde drücken Sie Enter.
Es wird geladen.
Und ich werde wieder zu verkleinern.
Und wir hier sehen ist die Inhalt meiner PHP-Web-Verzeichnis.
>> So, jetzt, was ist im Grunde passiert ist hier, meine Instanz CS50 IDE
dient diese Dateien zu jeder, der sie anfordert.
Und im Laufe Dieses Video, werden wir von sortieren
einen Blick auf ein Bündel von diesen verschiedene Dateien im Kontext.
>> Um zu testen, dass Ihre Apache Server funktioniert,
die in der Regel geht der Fall in CS50 IDE ist,
aber wenn Sie dies im Allgemeinen zu tun, und Sie den Aufbau Ihrer eigenen Web starten
Server, es gibt eine wirklich häufigste Art von Analog,
"Hallo Welt", die in der Regel ist PHP-Web-Entwicklung verwendet.
Es ist, eine Datei bestehend aus gerade diesem code--
ein PHP-Trennzeichen mit PHP Info-Set, Klammern, Semikolon dazwischen.
Welches ist im Grunde eine Sonder PHP-Funktion, die Ihnen sagt
Welche Version von PHP ausgeführt werden.
>> So in CS50 IDE habe ich die Datei zur Verfügung nur
um Ihnen zu zeigen, was das aussehen würde.
So sehe ich auf meinen Zeige von meinem PHP-Instanz.
Meine Apache-Instanz läuft der Inhalt der PHP-Web.
Und ich habe eine Datei hier info.php genannt.
>> Ich werde Sie darauf, zu verkleinern.
Dies ist, was du gehst um zu sehen, ziemlich viel.
Dies ist nur sagen mir, dass meinem Apache-Server funktioniert.
Und dies ist offensichtlich das PHP-Version aus, die ich laufen.
Das ist mein Analog-zu "Hallo Welt."
>> Ich weiß also, die Dinge sind in Betrieb.
So sind wir gut zu gehen.
Wir können von hier gehen.
>> Also lassen Sie uns erneut, dass Zeit Beispiel waren wir
im Gespräch mit unseren armen Webmaster , die um die Seite ständig zu aktualisieren hatten.
Dies könnte eine Lösung für, wie sein Ich würde die Dinge umsetzen
so dass der Webmaster nicht haben zu halten Aktualisierung der Zeit.
Es wäre nur eine Art geschieht automatisch.
>> Die unten unten, die HTML, ist es ziemlich ähnlich, mit einer Ausnahme.
Aber hier habe ich einige PHP an der Spitze stand.
Ich habe, offenbar, nannte diese Funktion date_default_timezone_set.
>> Und wir reden nicht über alle diese Funktionen in CS50,
weil PHP ist wahrscheinlich Zehntausende.
Das könnte ein bisschen wie ein sein übertrieben, aber es könnte nicht sein.
Es ist eine Menge von Funktionen eingebaut habe.
Und so ist dies eine Funktion offenbar setzt meine Zeitzone wie US / Eastern,
das ist die Zeitzone, die ich derzeit bei der Herstellung dieses Video.
>> Dann habe ich einen Anruf zu machen, Funktion mit dem Namen, Datum.
Und es scheint, ich bin die Speicherung der HIS der so genannten, Zeit.
Also, was ist denn hier los?
>> Nun, im Grunde, was ist passiert ist, ich mache einen Anruf
bis zu einem gewissen Server, der gehen wird sagen Sie mir, was die Zeit noch ist.
Und ich Umwandlung in ein Format, Stunden, Minuten, Sekunden.
Und der Grund, seine Hauptstadt ist dieses H wird mich 24 Stunden Zeit 12 zu geben, nicht
Stunde Zeit, die Kleinbuchstaben h wäre.
Und ich bin einfach nur zu speichern, dass in einer Variable namens, Zeit.
So dass der zweite Zeile PHP Dort wird der Aufruf der Funktion,
Bisher ist nur immer einige String, der ist
werde mir den Tag zu geben, und die Zeit und ein paar andere Informationen.
Und das erste Argument gibt, dass HIS, Nur Extrahieren der wichtigste Teil
dass ich kümmern uns für dieses Beispiel, Das ist die Stunde, Minute und Sekunde.
Das ist also der alles, was vor sich geht.
Also habe ich zu speichern, dass in einer Variablen $ Zeit.
Und dann hinunter auf die ganz unten da, ich
haben, dass eine Abkürzung für Ausdrucken der aktuellen Zeit.
Also ich werde einfach zu drucken was die aktuelle Zeit.
>> Werfen wir also einen Blick auf diese in CS50 IDE und sehen, wie wir jetzt sind
Spar, dass Webmaster eine Menge Ärger.
In Ordnung, so hier bin ich wieder zurück auf das Root-Verzeichnis
meine Apache-Instanz.
Und ich habe eine Datei hier genannt time.php.
Ich werde einfach auf, dass klicken.
Und ich werde nach oben, denn wir in ziemlich weit herausgezoomt.
Die aktuelle Uhrzeit ist 14.20.34.
So mache ich es Stunden, Minuten und Sekunden.
Und ich kann das erfrischen Seite und neue Zeit.
--41.
Ich werde die Seite zu aktualisieren und neue Zeit, 44, 46, 47.
>> Also, ich bin eindeutig nicht etwas zu ändern mir.
Ich bin hier die Seite zu aktualisieren.
So kann ich nicht wieder dort zu bearbeiten.
Und ich verspreche Ihnen, ich nicht keine Verbündeten
die Bearbeitung der Datei sind in meinem Namen an der Seite.
>> Ich bin einfach nur mit, dass PHP-Funktion, Zeit, um die Zeit für mich zu generieren
automatisch.
So dass selbst wenn ich schlafe, und meine Web-Server läuft,
der Benutzer, der Besuche, die Seite ist noch gehen, um die aktuelle Uhrzeit genau das bekommen.
Also das ist ziemlich gut.
Ich habe meine Website dynamischer gemacht mit nicht zu viel PHP-Code.
Es war nur zwei Zeilen Code und dann ein bisschen von einer print-Anweisung.
Und schon habe ich ein viel dynamischer Website
als die ersten Beispiel haben wir gesehen am Anfang des Videos.
>> Also, erinnern von der Video-on-PHP-Syntax dass, wenn der PHP-Interpreter läuft
unser Programm, alles ignoriert das ist nicht das Innere des PHP-Trennzeichen,
Spucken Sie es aus.
In diesem Beispiel, was die Sache dass es spuckt war HTML.
Und das bedeutet, kann ich jetzt setzen HTML und PHP zusammen.
Da der Interpreter nur ignorieren Sie die HTML und buchstäblich auszugeben.
Das ist gut, nicht wahr?
>> Weil vermutlich am Ende des Tages,
Ich würde meine Website zu mögen HTML aufgebaut sein.
So dass jeder Web-Browser interpretieren kann , oder zu verstehen, die HTML auf der Seite
und machen es als etwas, das wir kann tatsächlich als Menschen zu verstehen.
Und ich kann nur mit PHP für die Teile von meiner Seite
die verlangen, Dynamik, die mich erfordern die Dinge, die ständig zu aktualisieren.
Die statische Information können die gleichen bleiben.
>> OK, so ist das in Ordnung.
Aber warum sollte ich das tun?
Warum sollte ich HTML und PHP mischen?
Ich habe gerade zu drucken konnten alle HTML, mit der PHP-Druckfunktion.
Warum bin ich nicht zu tun, dass?
Denken Sie darüber für eine Sekunde.
>> Warum, wenn ich nur drucken konnte out-- I könnte Zeilen PHP, die einfach sagen haben,
Druck HTML-Tag, Druckkopf.
Warum bin ich nicht zu tun, dass?
Warum bin ich das Mischen des PHP und HTML?
>> Nun, wenn Sie denken, darüber für eine Sekunde.
PHP hat der Dolmetscher zu interpretieren, was es sieht.
Und so ist es zu haben, um eine Codezeile auszuführen.
Drucken Sie HTML.
Drucken Sie offenen Kopf-Tag.
Drucken Sie offene Titel-Tag.
Es wird zu haben, auszuführen und zu interpretieren,
dass jeder einzelne Schritt des Weges.
Warum nicht einfach lassen Sie die Dolmetscher nur beschönigen
Dinge, die es nicht versteht, und tun es automatisch?
Es wird mir eine Menge Zeit zu sparen zu meinem HTML und meine PHP zusammen mischen.
>> Und damit ist, warum wir es nicht tun einfach nur offene PHP Trennzeichen
und dann gerade aus der gesamten drucken Inhalt unserer Seite als ein riesiger PHP
rufen Sie an die Funktion, Drucken und anschließend close PHP Trennzeichen und wir sind fertig.
Also das ist, warum wir mischen sie zusammen.
>> Bisher haben wir nicht zu viel ersichtlich ein Unterschied zu allgemeinen PHP-Syntax.
Es ist ziemlich einfach.
Wir haben bereits gesehen, die Fragezeichen, gleich.
Wir sahen ein paar neue Funktionsaufrufe, aber nichts wirklich Besonderes los.
Lassen Sie uns vielleicht Dinge machen ein wenig schicker.
Was, wenn wir Informationen weitergeben wollen zwischen verschiedenen PHP-Dateien,
so dass vielleicht kann der Benutzer Informationen vorlegen zu mir.
Und dann, ich könnte etwas tun, damit auf einer anderen Seite.
>> So hat die Unterstützung für PHP so genannte Super-Welt
Variablen, die ziemlich genial klingt.
Sie sind wirklich einfach Riesen assoziativen Arrays
dass zur Verwirklichung dieses Funktionalität der Weitergabe
Informationen zwischen den PHP-Dateien, beruhen auf unseren Web-Server vorhanden sind.
>> Die erste dieser Super Globals heißt $ _GET.
Und es ist wahrscheinlich die einfachsten zu verstehen.
Was passiert mit $ _GET?
Nun, im Grunde ist der Benutzer gehen, um zusätzliche Informationen geben
am Ende der URLs.
Und was sie geben, unter der Annahme, es auf eine bestimmte Weise formatiert
genannt Query-String, der gerade ist eine Reihe von Schlüssel-Wert-Paare getrennt
von Et-Zeichen.
Diese Schlüssel-Wert-Paare werden in einem $ _GET assoziatives Array gespeichert.
Und aus unserem Video-on- PHP-Syntax, wir wissen,
wie man mit der Arbeit assoziative Arrays bereits.
So, hier ist ein Beispiel dafür, einige PHP, wo vielleicht bin ich
Extrahieren aller Schlüsselwertpaare dass der das in der URL des Benutzers.
So habe ich meine Öffnen PHP Trennzeichen.
Ich habe eine foreach-Schleife.
Ich bin über den Super-Iteration Globale Array namens $ _GET.
>> Und ich möchte in der Lage, zu beziehen sowohl für die Schlüssel und Wert.
Und ich bin einfach nur auszudrucken heraus, die jeweils auf scheinbar
seinen eigenen Absatz-Tag hier.
Ich Ausdrucken einige HTML und Interpolieren der Werte
der Schlüssel und Wert dieser Aussage.
>> Werfen wir also einen Blick auf, wie diese tatsächlich auf unserem IDE arbeiten.
Und vielleicht hilft veranschaulichen ein bisschen
von dem, was zu bekommen ist eigentlich tun.
Also bin ich wieder hier in meinem Web-Root.
Und ich werde in ein heran wenig, um Ihnen zu zeigen,
dass ich eine Datei mit dem Namen, get1.php.
>> Lassen Sie uns also auf get1.php klicken.
Und ich bin keine Inhalte nicht zu sehen.
Das ist seltsam, nicht wahr?
Nun, nicht wirklich wirklich.
Weil ich nicht liefern alles in der URL.
Ich werde get1.php, aber ich brachte keine Schlüsselwertpaare liefern
als Teil meiner Query-String.
So fügen wir eine Abfragezeichenfolge und sehen, was diese Datei zu tun.
>> Um eine Query-String Sie beginnen geben Sie einfach Fragezeichen.
Dann werde ich vielleicht sagen, name = Doug & year = 2015.
Und dann werde ich drücken Sie Enter.
Nun beachtet, was passiert.
Ich bin immer noch in get1.php.
Aber jetzt habe ich zugeführt Schlüssel-Wert-Paare, und ich bin
Drucken Sie sie auf eigene Faust paragraph-- Namen, Doug-- Jahr 2015.
Das ist genau der Code, den wir gerade sah auf dem Objektträger vor einem Augenblick.
>> Und wenn ich vielleicht hinzufügen, ein weiterer Schlüssel-Wert-Paar, & class = CS50.
Jetzt habe ich eine weitere Schlüsselwert Paar, das ausgedruckt ist
wenn ich die URL erneut zu überdenken.
Nun ist dies vielleicht auch nicht schrecklich gut formatiert.
So habe ich eine andere Version von get.php.
Es ist get2.php.
>> Der Unterschied in dieser man ich CSS-Datei,
und es formatiert Dinge ein wenig mehr schön für mich.
Es ist vielleicht nicht die meisten schöne CSS in der Welt.
Aber es ist nur ein weiterer Weg, es zu tun.
So kann ich immer noch Zugang zu erhalten auf meine Variablen mit $ _GET.
Und in diesem Fall, ich bin nur irgendwie so dass die CSS ein wenig mehr Phantasie.
Und wenn wir über Pop bis hin zu meine IDE für eine zweite,
Ich werde dich in meinem PHP-Web zeigen Verzeichnis hier get2.php.
Wir werden es hier eröffnen, einige HTML.
Anscheinend bin ich, dass die Verknüpfung CSS-Datei ich rede.
Ich öffne eine Tabelle Tag.
Und dann ist hier meine foreach-Schleife.
>> Hier ist das, was ich zeigte auf der Folie vor.
Der einzige Unterschied ist, I haben diese Schlüssel und Wert CSS
Styling, das ich bin, es zu Anwendung.
Aber das ist alles, was ich tue, ist, ich bin Iteration über $ _GET, um alle zu erhalten
der Schlüsselwert-Paaren.
>> Und ich bin dem Drucken aus, wie die Tabelle.
Und es scheint, ich bin der Formatierung der Schlüssel in einer Art und Weise, mit der <td class = "Schlüssel".
So offensichtlich, dass gilt für einige Klassenauswahl in meinem CSS-Datei GET.CSS.
Und es scheint, ich bin Ausdrucken meine Werte eine ganz andere Art und Weise.
Das ist ziemlich viel was wir hier, wo gesehen
unsere Werte wurden gedruckt mit einem blauen Hintergrund,
und unsere Schlüssel wurden gedruckt mit einem gelben Hintergrund.
Also das ist, wie ich bin immer diese verschiedenen Stilen.
Da bin ich mit verschiedenen CSS-Klassen.
Aber das ist ziemlich viel es für GET.
Wie bin ich nur das Extrahieren von Informationen.
Und in diesem Fall, ich bin nur Drucken sie auf den Bildschirm.
Ich bekomme es aus der URL, und das ist, was GET für uns tut.
>> Haben Sie einen möglichen zu sehen Problem hier eigentlich?
Warum sollten wir vielleicht nicht wollen, um $ _GET verwenden?
Was ist, wenn, vielleicht war ich so diese Abfrage?
--to get3.php, die ich müssen nicht auf meinem IDE.
Es ist nur eine hypothetische Datei.
Aber beachten Sie, dass hier offenbar vorbei mein Passwort in.
Und vielleicht mein Passwort ist peinlich.
Oder vielleicht ich nicht die Menschen zu wollen, wissen, was mein Passwort ist, richtig.
>> Wenn ich übergeben Sie though--, wenn ich mit die $ _GET-Methode, was passiert ist,
das wird in der URL sein.
So dass einige böswillige Benutzer könnte in der Lage sein zu sehen, was ich tue.
Ich kann sein Weitergabe sensible Informationen.
Oder vielleicht ist es noch nicht einmal ein böswilliger Benutzer.
Vielleicht ist es nur Ihren Freund, über die Schulter stehen.
Und jetzt sind sie das Passwort kennen auf Ihre Facebook-Account.
>> Und vielleicht würden sie nicht nichts mit ihm.
Aber wenn Sie Ihr Passwort waren über $ _GET an Facebook übermittelt,
jetzt wissen sie Ihrem Facebook-Passwort.
Denn es ist direkt in der URL wenn Sie die Übermittlung von Informationen gemacht habe.
>> Und so vielleicht ist das nicht die beste Weise vertrauliche Informationen weitergeben.
Es ist ein guter Weg, um Informationen weiterzugeben dass wir nicht besonders
kümmern uns um als zu empfindlich.
Da GET ist ziemlich schnell, relativ zu den anderen Super globals
wir werden reden.
Aber vielleicht nicht das beste Werkzeug für sensible Informationen.
>> Für, dass wir, um möchten Sie vielleicht benutzen etwas namens $ _POST,
was ein weiterer Super-Globale Variable.
Es ist eine andere assoziatives Array.
So funktioniert es ziemlich genau das gleiche wie GET.
Außer, statt Extrahieren Informationen von der URL,
es tut etwas durch HTTP-Header.
So erinnern von unserer Video-on-HTTP, sprachen wir
darüber, wie Browser, Server, und Kunden zu kommunizieren.
Und Information wird übergeben und her in HTTP-Headern.
>> Mit $ _POST, ist in der Regel Informationen durch diese HTTP-Header gesendet.
Und wir werden am häufigsten $ _POST zu sehen in der Kontext der Vorlage HTML-Formulare.
Sie können weiterhin HTML-Formulare um Dinge zu bekommen einreichen.
Aber sie sind in der Regel verwendet im Rahmen der POST.
>> Also hier ist ein Beispiel für ein HTML-Formular.
Und dies haben wir gesehen, bevor, aber wir haben diesen Teil, action = "post.php" zu sehen.
Wenn wir also über Formen in die sprachen Zusammenhang mit HTML, ich hatte einen Submit-Button.
Und wenn Sie sich erinnern, würde ich auf Submit und dann wird die Seite nur aktualisiert,
habe nichts getan.
>> In diesem Fall bin ich der Einreichung was ich schreibe in dieser Form,
zu einer PHP-Datei namens post.php.
Und es scheint, die Art, wie ich tue, dass In dieser Form wird mit der POST-Methode.
So jede Information dass ich geben in dieser Form
vorgelegt werden durch die HTTP-Header.
>> Es wird in post.php zugänglich, denn das ist die Wirkung von meiner Form.
Er zugänglich sein indem Sie in $ _POST.
Und es scheint, die Art, wie ich kann, erhalten bei jedem einzelnen Element
mit dieser assoziativen Arrays ist mit diesem Attribut,
Der Attributname unseres Eingangs-Tags.
>> So scheinbar kann ich sagen, $ _POST Quadrat Klammern Namen und was immer der Benutzer zu bekommen
im ersten Feld eingegeben haben.
Und $ _POST vergessen, der pw statt, zu, was auch immer der Benutzer eingegeben erhalten
in dem zweiten Feld.
>> Werfen wir also einen Blick auf Diese über in CS50 IDE.
So, hier sind wir, und ich werde Zoomfaktor für eine Sekunde.
Und wir haben eine Datei namens post.html.
I am post.html klicken.
An der Spitze hier habe ich ein sehr einfaches Web-Formular.
Es ist die Form, die wir gerade gesehen haben auf der Folie vor einer Sekunde.
>> Ich kann geben, Doug und ich kann Geben Sie vergessen, die wir alle
wissen, ist squadgoals.
Und ich werde getroffen Senden.
Und es scheint, dass unterwirft sich post.php.
Und ich bin anscheinend den Druck, dass.
Also bin ich am Anfang aller Sicherheit zu befreien dass POST gibt mir nur um den Ausdruck
Benutzername und Passwort.
>> Der Name des Benutzers ist Doug.
Kennwort des Benutzers ist squadgoals.
Wie habe ich das tun?
Nun, über Pop bis IDE wiederum für eine Sekunde.
Wir werden nach unten scrollen, um zu nehmen ein Blick auf post.php, das war
die Aktion, die ich verwendet, um hier einreichen.
Das war die Wirkung von meinem HTML-Formular.
Und das ist alles, was ich tue.
Der Name des Benutzers ist, und ich bin ein Druck aus dem Inhalt des $ _POST "name".
Und dann das Kennwort des Benutzers ist $ _POST "password".
So war ich, dass Informationen gegeben durch Vorlage des HTML-Formular.
Und ich kann jetzt mit $ _POST extrahieren weil die Methode, die ich verwendet, um zu übertragen
Daten mit dieser Form war die POST-Methode.
>> Jetzt ist es wohl nicht so great-- Ich werde
zurück zu gehen für ein zweites unsere Set hier--
es ist wahrscheinlich nicht so groß, wenn ich die Übermittlung von Informationen mit POST,
Das ist scheinbar sicherer.
Es ist wahrscheinlich nicht so groß, wenn ich tue, dass und dann
Ausdrucken Kennwort des Benutzers.
Es soll sicherer sein.
>> OK, aber es ist nicht ganz sicher.
Und so in diesem kleinen Snippet hier möchte ich
um nur Ihre Aufmerksamkeit auf einige Datensicherheit betrifft, nur etwas,
etwa als Sie denken arbeiten oder über das Internet.
Dies ist nur etwas zu prüfen.
>> Ich habe dir gesagt, dass die Informationen durch HTTP-Header eingereicht
Wenn Sie die POST-Methode verwenden.
Das bedeutet, sie sind nicht ganz sicher.
Sie sind schwerer zu finden als zu finden mit der GET-Methode, wobei
es ist nur direkt in der URL.
Aber es gibt noch einen Weg, es zu finden.
Und ich möchte nur, um zu zeigen Sie diese, so dass Sie vielleicht
beginnen, darüber nachzudenken wie Sie arbeiten, oder mit
Websites und Einreichen Passwörter, und vielleicht mit
das gleiche Passwort in ein Menge von verschiedenen Orten.
Wissen, dass es immer noch eigentlich ziemlich einfach zu vergessen jemand herausfinden.
>> Und hier, ich werde auf post2.html gehen.
Und die Differenz mit post2.html und post2.php ist ziemlich subtil.
Der Unterschied ist nur dass ich nicht drucken
das Passwort, wenn ich senden Sie das Formular.
>> So werde ich geben, Doug.
Und ich werde geben in, squadgoals selbst
obwohl wir wissen, das ist das Passwort.
Bevor ich das Eintragen bilden aber, ich werde
zu öffnen, Entwicklertools, um nur zeigen Ihnen, was los ist hier geschehen.
So in Chrome, ich bin gerade dabei, F12 getroffen.
Und das wird zu öffnen, meine Developer Tools auf der rechten Seite.
Ich habe nicht die Form vorgeschlagen.
Jetzt werde ich zu treffen Absenden auf meiner Form.
Und anscheinend machte ich ein rufen, um, oder ich einen Antrag gemacht
um post2.php, was Sinn macht.
Ich werde auf die klicken.
>> Dann hier, ich werde auf Steckleisten klicken.
Es gibt eine Menge Sachen, vor sich geht.
Aber wenn ich nach unten scrollen, um die sehr unten, rechts und Datenschutz meinem Kalender sind--
ist es für eine richtige second-- blockierten es am unteren Ecke,
name-- Doug, pw-- squadgoals.
Also auch wenn ich mit dem POST Verfahren, die sicherer ist,
nur bewusst sein, dass, wenn Sie dies tun können, du bist immer noch die Übertragung von Informationen
über HTTP.
Und es kann immer noch durch einen Gegner gefunden.
Es ist einfach etwas werden wir zu haben, um mit wirklich umzugehen.
Vielleicht gibt es einige Möglichkeiten, um zu verschlüsseln unsere Passwörter, bevor wir sie auf,
das wäre eine bessere, was ich bin nicht hier tun.
>> Aber seien Sie sich bewusst, dass die Post sein Verfahren hat seine Grenzen auch.
Es ist eine Verbesserung gegenüber GET in Begriffe des Seins sofort sichtbar.
Aber es ist nicht eine komplette Lösung.
Also hier ist ein Beispiel dafür, eine schnelle Bewegung zu Hause
die Sie verwenden können, um einige zu bekommen Praxis der Arbeit mit PHP.
Erstellen Sie das folgende Paar von Web-Seiten.
Die erste sollte nur sein, eine sehr einfache bilden mit einem einzigen Feld und ein Absenden
Taste.
So sehr ähnlich, was wir habe gerade mit post.html.
>> Und dann das zweite Datei, die Sie sollten erstellen
ist eine Datei, eine PHP-Datei, dass erwartet Eingang, per Post,
und auf der Grundlage, was der Benutzer eingegeben, der können Sie davon ausgehen wird eine Ganzzahl sein.
Sie müssen nicht zu einem zu tun Fehlerprüfung oder dergleichen.
Sie können die Benutzer davon ausgehen, wird eine Ganzzahl eingeben,
oder so etwas wie eine durch interpretiert PHP als Integer, in dieser Form.
Sie wollen einfach nur eine erstellen n durch n Multiplikationstabelle.
>> Also, wenn der Benutzer sendet 10, wir wollen haben ein 10 mal 10 Eins.
Wenn der Benutzer eine 12 wollen wir 12 von 12 Eins.
Nur damit Sie sehen können, was Wir sind im hier zu fahren,
wir werden ein Blick in Diese Datei in meinem IDE.
>> Also hier in IDE, ich habe mult_form.html.
Ich werde darauf klicken.
Alles, was ich tun möchte, ist vorzulegen Wert.
Geben Sie 10, Hit Submit.
Und anscheinend mult_table.php, die können wir an der Spitze gibt es in der URL sehen
Ich erstelle eine 10 mal 10 Multiplikationstabelle.
>> Wenn ich schreibe 15 und auf Senden, jetzt habe ich haben eine 15 um 15 Eins.
Ich, natürlich, nicht zu zeigen Sie die Inhalte mult_table.php,
denn das würde den Spaß nehmen aus diesem Hause Übung.
Aber es ist eine gute Möglichkeit, etwas zu bekommen Praxis der Arbeit mit PHP Schleifen
und POST, sehr einfach, hoffentlich stressfrei beispielsweise nur
um ein wenig Übung zu tun.
Und ich habe ein wenig CSS los bekam Sie hier, um zu meiner individuellen Tisch zu machen
Zellen nur irgendwie Pop-off ein wenig und schauen ein wenig mehr
wie eine Multiplikationstabelle, im Gegensatz zu nur nur Text
Art der dort sitzen.
Die letzte Super globalen wir darüber reden In diesem Video wird die so genannte
$ _SESSION.
Und vielleicht ist dies tatsächlich das beste Beispiel für etwas,
wir betrachten global.
Es ist eine andere Anordnung.
Es ist eine andere assoziatives Array.
Aber es durch jeden zugänglich ist, PHP-Datei, die auf unserem System existiert.
>> Wir haben nicht zu übermitteln Informationen eine Seite zu einem Zeitpunkt,
wie wir mit GET und POST.
Es ist immer da.
Und so ist für eine Seite wo Sie in, werden protokolliert beispielsweise
und Sie Ihre Login-Daten möchten um von Seite zu Seite zu Seite anhalten.
>> Sie können nur eine Sitzung zu starten, und dann $ _SESSION verwenden, um Dinge wie zu sparen
den Namen des Benutzers oder der Benutzer ID-Informationen und so weiter.
Und diese Information wird in verbleiben $ _SESSION, Bis Sie die Sitzung zerstören
ein wenig später.
>> Schreiben dynamische Webseiten mit PHP macht sie viel besser.
Ihre Seiten werden sehr dynamisch, und du nicht
zu viel mehr als das tun, was die Sie sonst nur getan haben,
tun Sie es mit HTML.
Aber es erfordert Übung, eine Menge Übung.
>> Sie wissen bereits, wie man mit C arbeiten, und so das Springen zu PHP ist nicht allzu schwierig.
Was ist vielleicht ein wenig bisschen schwierig funktioniert
mit dieser neuen Idee, GET und POST, und vielleicht Mischen Sie Ihre HTML und PHP-
zusammen.
Aber auch bewusst, dass das Internet sein, ist eine riesige Sammlung von Informationen.
Und Dokumentation von PHP verfügbar ist in vielen Orten, aber vielleicht am
kanonisch auf php.net.
Und Sie dort finden können, viele verschiedene Funktionen,
und Anwendungsfälle und Beispiele auf Beispiele, auf Beispiele.
Wo, wenn Sie versuchen und wollen herauszufinden, wie etwas zu tun, stehen die Chancen,
jemand ist wahrscheinlich getan, bevor Sie.
Und Sie können sie wie nutzen Inspiration zu implementieren was auch immer
es ist, Sie versuchen, zu implementieren sind.
>> Ich bin Doug Lloyd.
Dies ist CS50.