SAM Levatich: Willkommen Abschnitt für diese Woche. Ich bin mir nicht Andi. Andi hat an diesem Tag krank geworden, und ich wurden Art von in letzter Minute aufgerufen übernehmen. Es ist Grippe-Saison, so stellen Sie sicher, dass Sie wohnen sauber, Waschen Sie Ihre Hände, und das Essen gesund, so dass Sie sind auch nicht bettlägerig. Aber ohne weitere Umschweife, lassen Sie uns beginnen. Heute werden wir sprechen über PHP ein wenig bit-- how PHP bezieht sich auf HTML, wie es CSS betrifft, und einige von der Bahn Sachen, die Sie auf der letzten Zuweisung taten. Wir werden einen Vortrag wenig über SQL und wie Sie mit Datenbanken arbeiten können, Das ist ein ziemlich wichtiger Bestandteil der P gesetzt 8-- P set 7. P-Satz 7. Und dann werden wir ein wenig sprechen wenig darüber, wie Ansicht-Controller arbeiten und warum, das ist eine Philosophie, die hinter einigen Moderne Web-Seiten und anderen Design. So ziemlich viele Arten von Apps und Anwendungen, die Sie vielleicht zu versenden sind mit diesem Modell, View-Controller-Framework, dass Sie in der Hilfe in P-Satz 7, also werde ich ein wenig sprechen warum, dass geworden beliebt, es ist, warum wichtig und schön. Und dann werde ich endlich bewegen auf einige Tipps über die Bewältigung P set 7. Und wenn wir Zeit haben mehr als am Ende nach links, können wir tatsächlich etwas zu tun Arbeit an, dass zusammen. Also, PHP. In der Tat kann man this-- bemerkt haben Sie hatte nicht wirklich in es-- tauchen aber P-Satz 6 hatte einige PHP Code, der vor sich ging. Und weil PHP ist eine C-ähnliche Sprache PHP, im Gegensatz zu HTML und CSS, ist eine Programmiersprache, in der Erwägung, HTML und CSS sind statisch. Sie sind Auszeichnungssprachen zu tun mit Stil und visuelle Layout. PHP ist die eigentliche Behandlung. PHP hat Schleifen, es hat conditions-- all das Zeug, das über C Spaß macht Es hat ein paar Dinge, die ein wenig sind etwas besser als C, die wir sehen werden, aber ich denke, der einfachste Weg, um zu sprechen über die PHP ist nur zu tauchen. Also werde ich nach rechts gehen in die IDE an diesem Punkt. Das erste, was wir gehen zu tun ist eigentlich aussehen ein wenig auf einige der PHP-Code, der in P war gesetzt 6. So ist die Art und Weise, die wir tun dass-- vor, die Art und Weise, die wir liefen der Server für das Gerät war, dass wir müssten Typ-- entweder Ihre Umsetzung oder Durchführung der Mitarbeiter von server.c indem Sie in Verzeichnis Laufen server.c mit entweder keine arguments-- nennen es so einfach auf die lokalen Host, das, was Sie wahrscheinlich haben die meisten der Zeit-- und dann füttern a directory-- mit , die als Wurzel verwenden wo die Website würde werden ausgeführt, im Grunde. Diese Woche für P gesetzt 7, wie groß, wie unser Code für server.c ist, gibt es Menschen, die bereits mehr als am CS50 schriftlichen diese feinen Dinge dass ein wenig haben mehr Funktionalität, ein Server-Programm, das in der Lage ist Umgang mit ein wenig mehr die Feinheiten, die wir sehen sowohl in der P-Satz 7 und P 8 festgelegt. Und die Art und Weise, die Sie Anfang Server durch einfaches Eintippen "apache50." Und bevor Sie etwas tun, Sie sicherstellen möchten, dass Apache 50 nicht bereits ausgeführt, wie es ist auf meinem Rechner, die ich tat, um es zu testen. Und Sie, dass durch den Aufruf apache50 zu tun. Zu stoppen, und Sie werden sehen, dass es zu stoppen der Web-Server, wenn Sie es sehen können an der Unterseite des Klemmen Fenster. Und dann, nur um zu starten, wir sind gehen zu nennen ", apache50 zu starten." Und dann werden wir um es zu füttern ein Verzeichnis. Nun, weil wir wollen, zu suchen auf einige der P 6 Code eingestellt dass wir, ich tatsächlich umgesetzt hatte kopiert ein wenig von der P Set 6-Code in meinem eigenen Ordner, die Sie auf der linken Seite sehen können. Es heißt "Section8" in Großbuchstaben denn ich bin nur so aufgeregt heute sein Live-Streaming. Also, wenn wir dies ausführen, sollte es arbeiten alle ziemlich effektiv. Er sagt, OK, ist jetzt unsere Seiten finden Sie unter der Adresse des IDE, im Grunde, der das, was Sie wurden mit Hilfe ist genau so, wie es war in P gesetzt 7-- P-Satz 6. Alle meine Indizes sind eine Index heute. So können wir zu gehen, Adresse, wenn Sie sich erinnern, nur um diesen kleinen Klick Button in der oberen rechten Ecke. Und Sie werden diesen Code, die daran erinnern, passiert, wenn Sie in hello.php ging. Und was der Code entworfen zu tun ist, wenn Sie einen Namen eingegeben haben hier--, wenn Sie sagen, Sam denn das ist meine name-- und ich klicken Say Hallo, wenn gingen wir auf die nächste Seite, dieser Name sollte angezeigt werden. Er würde sagen: "Hallo, Sam" oder "Hallo", beliebigen Namen legte in sie, obwohl wir gingen auf ein völlig neues Web-Seite. Und das ist die Art der Sache dass PHP für Sie tun können. PHP ist in der Lage, Daten zu übergeben zwischen zwei Web-Seiten. Das ist eine ganz andere Seite. Du wirst sehen, der Titel ist "Hallo" hier. Tatsächlich müssen sie Die gleichen Titel, aber ich versprechen sie verschiedene Web- Seiten, wenn wir uns an der Quelle. Und Sie können die Daten, die ist vorbei in diesem Textfeld eingegeben, der Übergabe an die nächste Seite, die gerade bis heißt, und dann diese Daten in der Lage ist da sein, in seiner jetzigen Form. Jetzt haben wir noch nicht umgesetzt dies uns, die ist das, was werden wir jetzt tun, Art bekommen einen Eindruck, wie PHP funktioniert, aber der Schlüssel Idee ist, dass PHP-- möglich Art daran denke wie eine Funktion. Etwas, das PHP können Sie lassen Sie ist es können Parameter übernehmen dass Sie Eingabe in eine HTML-Seite durch den Einsatz von PHP und Formen, und es kann jene, die als Parameter übergeben weiter zur nächsten Seite, die es lädt auf. In diesem Fall, wir laden Sie diese Seite mit "Sag hallo" -Taste. Aber jetzt habe ich eigentlich gelöscht etwas von diesem Code im hello.php, die ausgeführt wurde dass tatsächlich die Anzeige der "hallo, Welt "oder" hallo, Sam "oder "Hallo", was auch immer war einfach Eingabe. So für jetzt, wir sind gehen, um das zu tun, im Grunde. Wir werden, dass neu zu erstellen und Auch einige weitere Funktionen hinzuzufügen, tun ein wenig mehr mit ihm zu sehen was PHP ist wirklich in der Lage ist. Also lassen Sie uns zuerst darüber reden Diese Datei, hello.php. Wenn wir also Zoom in einem wenig bit-- und jetzt bin ich Art versuchen, alle zu blättern die Art, wie es herum-- wir gehen. Du wirst sehen, es heißt hello.php, aber die Syntax davon sieht aus wie eine HTML-Datei. Dies, weil das Ist PHP in dieser Datei ist alles dazwischen stecken Fragezeichen-Caret blockiert. Alles hier wird als PHP-Code. Und Sie werden feststellen, dass als ich einen Kommentar, Sie werden die familiäre sehen zwei Schrägstriche. Und wenn Sie sich erinnern, in HTML, wenn ich einen Kommentar eingeben, es war etwas näher betrachtet Dieses, das ein Kommentar in HTML ist. Also wirklich alles, was zwischen diese beiden spitzen Klammern ist jetzt PHP-Code, der liegt in der Tatsache wider, dass dieser kleine Kommentarsymbol wird in einem Kommentar gedreht. Also jedes Mal, wenn Sie PHP-Code zu schreiben, auch wenn es keine HTML-Code außerhalb von ihr, es immer sein wird in diesen spitzen Klammern mit Fragezeichen. Sie können eine Art zu denken, wie alle es-- der Code, der in Ihren C-Programmen lief wurde in einem int main, nichtig umschlossen, geschweifte Klammer, Ende geschweifte Klammer Aussage. Und Sie werden sehen, in geschweiften Klammern PHP, auch, aber das ist eine Art wie die wichtigste Methode der PHP. So, jetzt, wie können wir etwas in PHP zu tun? Nun, das ist eine Programmiersprache PHP Sprache, die sehr C-like ist, aber es funktioniert auf dem Netz. So eine Sache, Sie werden eine immediately-- der ersten Dinge, die Sie wirklich mit tat C wurde sie gedruckt Zeug aus, nicht wahr? So in C wir das täten, mit einer printf-Funktion. Wir gaben ihm einen String, wahrscheinlich mit einer neuen Linie, und dann werden wir beendet sie mit einem Semikolon. So ist die Möglichkeit, dass wir gehen, um das zu tun in PHP--, weil es ist nicht ganz printf. Es ist ein bisschen andere Syntax. Die Art und Weise, die wir drucken Dinge in PHP ist, dass wir sagen: "echo hallo" oder "echo" jedes Wort. Und dass die Wirkung zu tun hat printf mit einer Schnur, "hallo." Und die neue Linie ergänzt es. Lassen Sie uns also jetzt machen sure-- Ich werde wieder heran ein wenig bit-- Lassen Sie uns dafür sorgen, dass dass Code funktioniert denn es kann sehr auch einen Fehler in dieser Code dass müssen wir angehen. So dass der Server bereits ausgeführt wird. Also, wenn wir wieder nach unten auf den Boden zu blättern, yup, der Server noch läuft. Also, wenn wir nur auf diese tippen wenig rechts hier-- welcome-- wir sollten get-- groß. Wir sind immer noch mit der familiar "Sag hallo" Dialog, aber wenn ich geben Sie "hallo," wir werden sehen, dass der Text "Hallo" war in der Tat ausgedruckt, das ist genau, wie es Wir erwarten, da Echo in PHP ist wie eine printf-Anweisung. Also zurück zu dem Code, wie in P-Satz 6 hat die Verteilung Code, den Sie zur Verfügung gestellt werden machen es so, dass PHP würde Ausgang der Sache, die Sie in auf dem vorherigen Bildschirm getippt? Und Art zu untersuchen warum das passiert, sind wir werde in index.html zu gehen, die ist der Original-Datei, die Datei, zeigt sich auf diesem Bildschirm mit dem "Sag hallo" -Taste. Man merkt, dass es alle klassischen Dinge wir sind gekommen, um von HTML wie erwartet als diese Dinge, geschlossenen diese Tags in spitzen Klammern, wie PHP aber ohne die Fragezeichen, was auf eine besondere Sache, um HTML. Wir haben Titel, die "hallo." Und Sie, denn wie wir gesehen haben bemerkt, der Titel ist "Hallo" in beiden Fällen. Lassen Sie uns diese ein ändern zu "sagen", nur damit wir können wir uns unterscheiden, wo wir sind. Aber wir haben einen Körper hat. Und dann die interessante Bit, das Bit, die in der HTML-zeigt, ist diese Form-Element. Und so haben wir eine Form bekam. Und das ist der Schlüssel. Dies ist, wie wir es mit PHP arbeiten. Der Parameter Wirkung Form sagt, dass hello.php ist das, was wir werden senden die Werte in dieser Form. Dies ist, wo wir vorbei die Parameter so zu sagen. Sie werden eine andere Sache, hier feststellen, ist, dass die Methode "zu erhalten." Es gibt zwei primäre Methoden, mit denen wird werden mit Hilfe von PHP, um Daten zu übergeben zwischen websites-- Web-Seiten, rather-- in dieser Zuordnung. Und diese Methoden sind "get" und "Post". Es gibt einige subtile Unterschiede zwischen GET und POST dass wir bekommen into-- wir wird "get" in die, wenn man so will. Aber für alle Absichten und Zwecken erhalten und Post sind jeweils nur Möglichkeiten, Sie Parameter übergeben mit leicht unterschiedlichen Ausführungen. Denn jetzt werden wir bekommen, weil verwenden zu bekommen war, was wurde ursprünglich verwendet, in der PHP-Datei des P-Satz 6. Und tatsächlich, wenn wir in und suchen bevor wir irgendetwas anderes bearbeitet, Ich werde zu sagen hallo zu-- was ist Ihr Name? ZIELGRUPPE: Elliot. SAM Levatich: Oh, mein Gott. Ich weiß nicht, wie das zu buchstabieren. Könnten Sie das buchstabieren für mich? ZIELGRUPPE: E-L-L-I-O-T. SAM Levatich: I-O-T? ZIELGRUPPE: Ja. SAM Levatich: Perfect. OK. Ich glaube, ich wusste, wie das zu buchstabieren. Bitten um Entschuldigung. Aber wenn wir sagen: "Sagen Sie hallo," es ist nicht es wird nicht auf dem Bildschirm angezeigt, doch weil wir modifiziert der Code ein wenig. Aber wenn wir "Sag hallo" - OK, also "Hallo" ist hier. Aber wenn wir einen genaueren nehmen sehen Sie die URL selbst, wir werden sehen, dass es endet mit hello.php? name = Elliot. Ja, ist dies eine Möglichkeit, Kommunikation auf die nächste Seite, die Parameter, die wir geführt haben. Wir haben gesagt, name = Elliot. Und das ist letztlich, wie P-Satz 6 abgerufen die Variable, die wir übergeben durch die Form. Und das ist etwas, eigentümlich ist eine GET-Anforderung. Eine GET-Anforderung macht die Parameter in der URL der Website bekannt. Und du wirst zu erinnern, in P-Satz 6, dass Sie hatte, um eine Funktion zu schreiben das mit der Tatsache behandelt dass diese Abfrage-String konnte nach einer Datei vorhanden sind. Es könnte ein Fragezeichen sein durch im Grunde beliebigen Anzahl von Zeichen. Und das ist genau das, was hier vor sich geht. Und der Grund dafür, dass du das parsen in Ihrer Implementierung von server.c in P Set 6 ist so, dass man sagen konnte, die PHP-Code, der name = Elliot. Sie benötigt, um in der Lage zu sein, analysieren, dass von der URL so dass die PHP-Datei in Frage wusste, was es war zu tun haben. Also hoffentlich das gibt die Motivation, server.c jetzt, dass wir ziehen an außerhalb von C in PHP. Lassen Sie uns also tatsächlich auf den Zugriff auf das zu konzentrieren Dinge durch eine GET-Anforderung übergeben jetzt an diesem Punkt. Ich werde dies zu speichern. Wir haben nichts zu ändern. Es sieht aus wie wir haben ein Eingabefeld hat. Wir setzen einige Eigenschaften, wie wir eine HTML zu tun. Dies sind einfache Dinge. Wir brauchen nicht diese. Aber wir haben Autovervollständigung erwischte, die im Grunde says-- Sie wissen, wenn Sie die Dinge geben in die Bahn, manchmal es versucht, dass in zu füllen für Sie. Also ist es eine schöne Sache. Wir wollen, um sie auszuschalten für diesen Zweck. Das war ein CS50 Entscheidung. So können wir zu löschen, dass, wenn wir wollten. Autofokus-Sticks nur den Cursor in der Form gleich zu Beginn. Auch nicht zu wichtig. Aber name = "name" - es ist ein wenig tricky, weil es Namen und Namen. Aber wir konnten geändert haben dies etwas anderes. Und in der Tat, das ist, was wir jetzt tun. Wir sagen, "Person", die ist so etwas wie Namen wenn eine Person durch ihren Namen definiert. Also lassen Sie uns diese zu schließen, öffnen Sie unsere Website Seit unserem Server noch läuft Apache 50, und wir werden sagen, hallo, hier ist Elliot wieder. Warum nicht? Hallo. Und wenn wir hier oben, werden wir sehen, dann statt name = Elliot, sagt, dass es Personen = Elliot. Und das ist eine direkte Folge der Tatsache, dass wir gerade name = "Person". ändern So in einem Eingangsglied ein HTML-Formular, das Namensfeld ist die Kennung für die Parameter, die übergeben hat. Es ist wie wenn Sie eine Funktion erstellen "Hinzufügen", die in zwei ganzen Zahlen nahm und Sie sagten, ein int und int b. Das wäre ein Name sein, und wenn Sie eine andere Form, wollte die wir einfach durch Kopieren tun können, und Einfügen, dann würden wir b Namen haben. So, jetzt werden wir zwei Parameter unterstützt, die über übergeben werden lernen Sie die nächste website-- die nächste Web-Seite, hello.php. Und wir tatsächlich sehen können das noch einmal, wenn wir wollen. Dies ist die einfachste Art und Weise zu behandeln die Web-Code in der IDE, im Grunde. Sie starten den Server, um es läuft, und dann jedes Mal wenn Sie einige Änderungen vornehmen, nur in der Nähe die Datei, nur um sicher zu sein. Durch Drücken der Zurück-Taste ist ein wenig kompliziert weil es vielleicht eine frühere laden Version, nicht die neue. Und dann klicken Sie einfach auf Ihre Taste erneut, pop rechten up-- oh, und jetzt gibt es zwei Formen. Und so, wenn wir geben eine Sache in jede one-- "jason hirshhorn" für instance-- wir sagen hallo. Wir schauen auf unsere Parameter. Es sieht aus wie wir haben, wie erwartet, a = Jason und b = hirshhorn, dem die beiden Parameter darstellt dass wir geführt, um diese Funktion. So, jetzt wollen wir eigentlich zu bekommen Umsetzung dieser Funktionalität, die wir in P hatte set 6. So jetzt sind wir nur hallenden hallo. Und das ist nicht sehr nützlich. Wir wollen einige variable echo das war für uns übergeben. Und wir wissen, den Namen dieser Variablen. Wir haben ein, und wir haben b. So konnten wir wählen, um entweder ein Echo. Aber wie können wir darauf zugreifen? Nun, es gibt bestimmte globale Variablen in PHP. Und ich werde zu schreiben sie in den Kommentaren hier. Die beiden wichtigsten sind get und Post für unsere Zwecke im Augenblick. Dies sind die Felder oder, technisch gesehen, die Wörterbücher wo unsere Variablen, die wir sind die Zulassung zur nächsten Web-Seite zu Hause sind. Und wir werden bald sehen, wie man sie benutzt. Eine weitere kurze Notiz über PHP-Code und einige Besonderheiten der es-- in C, um eine Variable zu deklarieren oder Variablen verwenden, Sie hatte zunächst, sie zu erklären. Und was Sie tun musste, wenn man erklärte ihnen sagen, ein int oder char b. Sie haben, um die Arten von ihnen erklären, Variablen, bevor Sie sie erschaffen. PHP-- brauchen Sie nicht zu einem, das zu tun. PHP nicht für Fragen Der Typ der Variablen. Und die Art und Weise, dass Sie schaffen eine'variable eher als zu sagen, int, char, string-- die wirklich char * ist, wie wir wissen-- anstatt sich all daß, weil alles, was ist vom gleichen Typ, typenlosen, können wir nur Verwenden Sie eine Charakter, ist das Dollarzeichen. Und Sie werden sehen, es ist schon knallen up, wenig Autovervollständigung Dinge. Und es ist von selbst, dass _GET und _POST Sie haben zwei Möglichkeiten, die mir zur Verfügung steht für mich. Einige dieser anderen Dinge sind anderen globalen Variablen in PHP dass Sie über verwenden der Verlauf der P-Satz 7. Denn jetzt sind wir zu gehen konzentrieren sich auf die GET und POST. Aber dies ist ein hilfreich Sache, dass die IDE tut wo einst du eingegeben haben in diesem Dollar-Zeichen, es wird starten Ausfüllen globale Variablen oder Variablen, die Sie bereits definiert haben. Also, wenn Sie zu definieren wollte eine Variable namens "string" Sie könnten nur setzen Sie ihn auf gleich "hallo." Und es ist im Grunde so einfach ist das. Und dann wir tun könnten, so etwas wie "echo $ string." Die IDE sollte etwas werden zu werfen Fehler, wenn ich mache alles falsch, so hoffentlich bin ich alles richtig zu machen. Aber Bugs immer Sie auftreten. Eine weitere heikle Sache zu PHP ist, dass es nicht kompiliert. Also mit C-Programmen, die Sie tun würde der Alltag von-- Grunde, Sie Bearbeitungen zu machen Ihr Code, würden Sie es speichern, und dann würden Sie, machen es, wenn make war der Schritt, den Compiler genannt wird, klirren, um Ihren Code zu machen, dieser Text Datei, in eine ausführbare Datei. PHP ist C-ähnliche, aber es wird ausgeführt on the fly durch Ihren Web-Browser. Es gibt also keine Möglichkeit zu wissen. Machen würde diejenigen, werfen hilfreich Fehler, nicht wahr? Es wäre wie, Sie in der nicht diese Variable deklarieren bevor Sie versucht, es zu benutzen. Du hast all diese schlechten stuff-- segfault, segfault, all diese Art von Spaß Zeiten das kam mit make. PHP ist ein zweischneidiges Schwert weil Sie nicht diese Fehler zu bekommen, aber das bedeutet auch, dass Sie nicht wissen, wirklich, was ist los mit Ihrem Programm wenn Sie führen Sie es einfach und es funktioniert nicht. Aber der Debugger sollte darauf hinweisen, einige hoffentlich hilfreiche Kleinigkeiten syntaktisch, dass Sie beheben können. So, jetzt, wenn wir über zu-- gehen sagen wir schließen, dass. Wieder öffnen. Und wir sind wieder hier. Also haben wir eine Variable hat und eine variable b. Und das wird nicht letztlich egal. Wir werden sie h und g nennen ohne besonderen Grund. Und wir sagen, hallo. Jetzt sieht es aus wie unsere String "Hallo" ist in der Tat Druck. Wir haben eine Variable mit dem Namen "string", setzen Sie ihn auf gleich "hallo." Beachten Sie, dass wir nicht zu tun haben, malloc oder einen Zeichen-Array. In PHP, weil Variablen sind ohne Typ, ein String ist das gleiche wie ein Zeichen für jeder Hinsicht. Dies könnte "hallo." Dies könnte nur das Zeichen k sein. Dies kann ein Nummer 1 zu sein. Und es kümmert sich nicht. PHP kümmert sich nicht um Typ Ihres variabel. Oder tut es Pflege. Es kümmert sich, wenn Sie versuchen und Dinge tun, mit ihm, aber es kümmert sich nicht in die Erklärung Schritt. Und genau wie möglich in C, können Sie erklären Saiten auf den Stapel wie folgt aber sagen, "Stack" ist ein wenig Bit einer potenziellen Fehlbezeichnung, wenn wir über PHP sprechen. Aber wir haben keine Sorgen zu machen. Also unsere String bekamen wir "Hallo", und wir echo String. So, jetzt haben wir Variablen diskutiert. So, jetzt müssen wir über get reden und posten und führen Sie die letzte Sache, die ist benötigt, um wirklich diese wieder aufstehen um die Funktionalität des P-Satz 6. So jetzt sind wir Echo der String, aber wir Sie haben diese Variablen zu erhalten und Post. Und weil wir verwenden das Verfahren zu erhalten, ist es scheint natürlich, dass unsere Variable, wir interessiert sind, a und b, wird in der Anordnung angeordnet werden oder Wörterbuch, technisch zu bekommen. Wenn wir also die Einrichtung wie diese zu erhalten mit Ihrem groups-- Ich drückte geben und es nicht wie es-- aber hier haben wir bekommen. Und so bekommen bereits vorhanden ist. So können wir bereits den Zugriff starten einige der Elemente von get. Wenn wir nicht bekommen, diese Syntax für Arrays in PHP ist sehr C-like. Wir haben unsere zwei eckigen Klammern. Also, wenn wir sagen, bekommen in einem normalen Arrays, die wir zugreifen können die nullte-Index, der erste Index. PHP ist Null-Index. Wir könnten sagen, null, eins, two-- Sachen wie diese. Und ich habe gesagt, dass zu bekommen ist technisch ein Wörterbuch. Also, was PHP ist unter der Haube zu tun, Das ist ein bisschen schöner als C, ist es bereits gibt Ihnen einige Wörterbuch-Funktionalität, die ist wirklich Hash-Tabellen, oder versucht, angeblich. Oder es technisch könnte einen Versuch als gut. Aber PHP ist die Umsetzung einer Hash-Tabelle, das bildet eine wirksame Wörterbuch. Und so wir wissen, den Namen unserer variable, nicht wahr? Es wird übergeben die Abfragezeichenfolge von PHP. Wir haben ein = h und b = g, wo und b sind die Namen der Variablen. So ist die Möglichkeit, dass wir Zugriff auf die Wert, der dem Schlüssel entspricht im Wörterbuch ist nur mit den Worten _GET_GET ["a"]. Jetzt haben wir also _GET ["a"]. Und wenn wir innerhalb austauschen gerade unsere Echo, wenn wir echo _GET_GET ["a"] - und wir werden, wenn der Debugger zu sehen wirft Fehler zu this-- wir, dass zu speichern und dieses heraus. Öffnen Sie es. Also werden wir nur tun, ein Recht Jetzt, so b sollte keine Rolle spielen. "sie" und "ihn" - "summen." "sie" und "hum". Klingt gut. Und es ausgedruckt "sie", die verrückt ist. Aber das ist genau das, was wurde im P passiert set 6. Grundsätzlich setzen, welche P 6 war doing-- echo hallo, name-- wo es hatte einen Variablennamen und es einfach bittet Sie, in diesem Stück Text eingeben. Es gab auch einige Zusatzcode, wo darin enthalten, wenn Aussagen, was wir jetzt tun können. Wir können sagen, wenn vorhanden, die ist eine Funktionalität in PHP, _GET Mit dem Unterstrich, "name" - die im Grunde sagen wird, denn "wenn der Name ist ausgefüllt" wir konnten nur die Schaltfläche geklickt haben, um das Formular ohne einreichen irgendetwas eingeben in das Feld. Und wir wickeln, dass in unserer freundliche geschweiften Klammern. Wir können ein anderes Äußerung. Und das ist alles innerhalb der PHP Winkel Halterung, Fragezeichen, Winkel, wenn du möchtest. Und jetzt werden wir sehen, ob das funktioniert. Ich warte, damit es Debug- und Mist aus mir, im Grunde, aber es hat noch nicht. Vielleicht wird es jetzt weil ich darüber gesprochen. Jep. Es hat in der Tat. Also, nichts auftauchen. Das ist, weil der etwas schief dass ich schrieb in der PHP-Code. Und ich erwähnte die Debugging- Denn in PHP tricky, wir nicht vorab kompilieren und der Compiler war nicht wie, hier, wo Sie Ihre Fehler. Aber was wir tun können, ist-- tun Menschen erinnern wie man an der anderen Netzwerk suchen Anfragen, die PHP-- oder dass Websites senden? [? Malin?] Tat dies in Vortrag einmal oder zweimal. Sie erinnern sich, wohin wir gehen zu finden die verschiedenen Schulden und 200 OKs, alle diese Codes, die gesendet werden über HTTP vom Seite, um Web-Seite? Erinnert sich noch jemand wohin wir gehen, um das zu tun? ZIELGRUPPE: Page Source. SAM Levatich: Seite Quelle. Genau. Wenn Sie zu Seite Source-- perfekt. So Page Source zieht der Inspektor. Und ich bin mit Safari. Viele von euch werden wahrscheinlich werden mit Chrome oder Firefox. Aber solange Sie in jedem modernen browser-- und fühlen sich frei zu folgen zusammen, wenn Sie wollen. Sie können bis diesen Code oder gerade innerhalb der P-Set 6 aussehen Verzeichnis für einige ähnliche Sachen. hello.php ist das, was wir sind arbeitet derzeit an emuliert. So gibt es eine Vielzahl von Laschen. Wir können auf alle Ressourcen zu suchen. Wir können den Quellcode zu sehen. So wie es aussieht, nicht taten vorbei Körper am Ende. Es fand einen Fehler in PHP, und es beendet das Laden der gesamten Web-Seite. Wir haben nicht einmal ein Ende Tag für HTML oder nichts. Und wenn wir auf das Netzwerk, können wir sehen, dass wir werden schickte eine Anfrage. Dies ist die Domäne. Dies ist die Adresse. Es ist ein Dokument. Wir sind mit der get-Methode. Und es ist rot. Oder sie rot wurde, als ich nicht Sie es. Wie kann ich deaktivieren Sie es? Nun, es war rot. Lassen Sie mich zu erfrischen. Da ist es. Jetzt ist es rot. So ist es rot, was bedeutet, es scheiterte, was schlecht ist. So wollen wir untersuchen, warum sie scheitern. Also alles, was die Seite Quelle im Grunde sagen, ist Ihre Sache, hat nicht funktioniert, das wir können bereits sehen. So gäbe es im Idealfall ist eine nützliches Werkzeug. Und es gibt einige Browsererweiterungen das Ihnen erlaubt, zu debuggen PHP, aber wir sind nicht zu gehen werden schriftlich eine Tonne von PHP, so ist es wahrscheinlich nur beste durch Ihren Code zu suchen sorgfältig und stellen Sie einfach sicher, dass es ist nicht etwas anderes zu tun. Also mal sehen, ob das Format dieses if-Anweisung ist, wo das Problem ist. Ich möchte, dass sich hier wieder zu laden. Hallo Hi. So gibt es ein Problem gibt. Also auf korrekte Syntax PHP wird PHP gehen In den C-like, dass du die Schlaufen zu sehen. Sie werden, wenn Aussagen zu sehen. Sie werden alle diese Freunde zu sehen dass Sie schon vertraut machen mit im Laufe dieser CS50 Semester. Aber der beste Weg, um herauszufinden, wie man tun Sie etwas in PHP ist, es zu googeln oder, um auf einige Beispiele von PHP-Code zu suchen weil Sie wissen, die Funktionalität. Sie wissen, was Sie können, zu tun mit dem Programm. Sie können Schleife. Sie können Schleife so oft wie Sie wollen. Sie können Schleife in allen Arten von verschiedenen Arten. Sie können Funktionen zu erstellen. Sie können Funktionen zu erstellen, die rufen andere Funktionen, Funktionen dass sich selbst nennen. Und Sie haben Namen für diese Konzepte. Sie haben Rekursion hat, Schleifen, wenn andere Steuerströme. Und so Google ist dein bester Freund. Sogar sagen, "wenn PHP Aussage "Und es wird werden Tonnen von Stellen mit Antworten auf andere Menschen mit ähnlichen Fragen auf Sie gehabt haben, , die gerade erst anfangen, mit PHP und sind neugierig auf einer Syntax Sache. Denn wir haben den Luxus, in der Lage, sich den Code in P-Set 6 aus, wir ziehen es tatsächlich auf und sehen, dass OK, hier ist etwas Interessantes. Also das ist, was es tatsächlich sah aus wie in P-Satz 6. Wenn wir durch diese gehen, können wir sehen, dass wir erhielt mehrere dieser kleinen PHP-like Fragezeichen-Bits. Und es gibt keine geschweiften Klammern. Es gibt Doppelpunkte. Und es gibt lockigen Hosenträger in PHP, aber das ist ein Format, und ein Weg, dies zu tun PHP, die gut mit HTML funktioniert denn wie Sie sehen werden, wir schließen Aus diesen PHP bits-- der elses und der ifs und alle dass-- und dann wir interspersing HTML in ihnen während noch nach dem Kontrollfluss von PHP festzulegen. Also ich werde einfach kurzen Spaziergang durch diese weil es eine Menge von der gleichen Konzepte, die wir vorher gemacht hast. Wir haben, wenn nicht leer stand, Klammern, _GET_GET ["name"]. Das ist alles das gleiche Zeug. Wir verwenden die _GET Wörterbuch, PHP sendet auf Anfrage von Formen, weil es die Parameter Action, und das Verfahren ist zu bekommen. Und dann, dass endet, dass. Der Doppelpunkt ist ein Signifikant, nur tun dies wenn die if-Anweisung den Wert true. Es ist wie eine geschweifte Klammer. Und in der Tat, es ist eine geschweifte Klammer in anderen Sprachen wie Python, die Sie, wenn Sie nur begegnen zu tun, dass für Ihr Abschlussprojekt. Und dann diese Linie, hallo. Dann haben wir diese seltsame Sache bekam. Wir haben mehr Klammern bekam. Es gibt keinen HTTP sind-- oder PHP, sorry. Aber es gibt ein Gleichheitszeichen. Und dann haben wir eine Funktion, htmlspecialchars (_GEThtmlspecialchars (_GET ["name"]). Das ist ein bisschen wie ein mehr erweiterte Version von Echo. Wie wir es als eine Möglichkeit Echo hatte die Dinge in PHP auszudrucken. Dies ist eine Funktion, die ist in PHP definiert, wird mit etwas mehr böse befassen Zeichen und Byte-Werte dass Sie es übergeben könnte. Es ist immer am sichersten, diese zu verwenden. Aber Echo wird die Arbeit machen gut, wenn wir nicht die sich mit etwas zu böse. Und so hat dies den gleichen Wirkung im Grunde, dieses Zeug in zwischen der Frage Mark wird von PHP evaluiert. htmlspecialchars gibt eine schöne HTML gedruckte Wert _GET_GET ["name"], das heißt Was auch immer wir eingegeben in der Form. Und dann wird es sagen, hallo, Komma Leerzeichen und dann das. Das Ganze zwischen die spitzen Klammern wird ersetzt durch was auch immer htmlspecialchars löscht. Also das ist im Grunde ähnlich zu dem, was wir tun. Und wir eine else-Anweisung, die es haben Hallo Welt, was Sinn macht. So, jetzt zurück zu lassen Sie unsere Code und sehen exactly-- oh. Ich sagte, existiert, was nicht eine Sache, die wir machen wollten. Wir wollten nicht leer zu sagen. Und so sollte dies ein wenig zu arbeiten etwas besser, nicht leer _GET_GET ["name"]. Und das geschweifte Klammer übereinstimmt, dass die geschweiften Klammer. Wir haben unsere geschweiften Klammern hier. echo hallo _GET ["name"]. Mal sehen, ob dies ein wenig besser funktioniert. Wir sind immer noch laufen unsere Server. Hallo Jason. Hallo Jason. Und es funktionierte diesmal. Und so ist das ein Beweis, dass man in der Tat verwenden Sie die geschweiften Klammern, die Sie kennen und lieben in PHP-Code in HTML. Der PHP-Code zur Verfügung gestellt Sie in pset 6-- pset 6-- bietet eine weitere Möglichkeit tun, dass die gleiche Sache. So, jetzt haben wir die Macht. Wir haben die Funktionalität zu implementieren der PHP-Code, die wir in pset 6 gesehen von uns selbst, im Grunde. Bevor ich auf, was sind einige der Fragen, die Sie an dieser Stelle haben? Ja [unverständlich]. Publikum: So in der Fassung pset6, wenn Sie es starten, gibt es einen Platz. Und ich kann sehen, wo der Raum nach dem Komma. [Unverständlich] Start der offene Bügel. Wie beurteilen Sie den Raum zu übernehmen die Art, wie Sie Ihre eigenen Codes geschrieben? SPRECHER: Das ist eine gute Frage. Und so wollen wir das herausfinden. Also das ist eine wirklich gute Frage und eine, die ich nicht zu berücksichtigen. Aber lassen Sie es uns zusammen tun. Also zunächst einmal, was Ich mache mit Echo ist, wenn wir nur echo hallo, gibt sie hallo. Wenn wir nun echo dieses zu erhalten auf einem separaten Linie wollen wir untersuchen, was passiert. So dass wir Sie auf diese. Wir sagen immer, hallo Jason. Also noch einmal, haben wir nicht diesen Raum. Und das ist, weil in PHP, wenn wir Echo haben, egal wie viele spaces-- nein, nicht der V-- egal, wie viele Räume, die wir setzen in hier-- wenn wir jetzt wieder zu laden, dass sich, Hallo Jason. Ja, sehen alle, Räume wurde aufgegessen. Und das ist etwas, die Echo-Funktion tut. So zu kümmern dass der Raum ist, und dies einer der Gründe warum Sie nicht mit echo und Sie htmlspecialchars verwenden Sie stattdessen. Ich bin neugierig, was würde passieren, wenn wir tat dies, wo wir umschlossen einen Raum in einen String. Ich bin ehrlich gesagt nicht sicher, was wird passieren, wenn ich dies tun. Also das ist eine Möglichkeit. Das ist ein Weg, um sich darum kümmern. Wenn Sie den Raum, in wickeln ein String, dann wird der Raum ausgegeben schön durch Echo sein. Die sicherste, was zu tun ist htmlspecialchars zu tun. Das ist immer die sichere Wette. Aber jetzt haben wir einen Weg finden, zu tun es mit Echo, wenn nötig. Und in ähnlicher Weise können wir echo neue Linien, die ganze Art Sachen sind Sie vertraut machen in PHP. Wer sonst, was sind mehr Fragen, die andere Menschen haben an dieser Stelle über PHP? Wenn Leute kamen ein wenig zu spät, Ich bin glücklich, nach ein wenig zu bleiben und sprechen über einige der Anfang. Und es ist auch alles als Livestream, und archiviert, was verrückt ist. Wie auch immer, dies jetzt zu tun einige lassen erweiterte Zeug mit PHP. Und einer der frühesten Dinge, die Sie wurden in C war für Schleifen eingeführt. Und PHP hat ein mächtigeres für Loop genannt foreach-Schleife. Und wie es aussieht this-- für jeden Rohling als leere, geschweifte Klammern, führen Sie die Sache. Das ist also im Grunde eine Abkürzung. Siehe, die for-Schleife als syntaktischen Konstruktion wurde in C und in der Montage erdacht Sprache und solche Dinge. In C entwickelt, genauer, als Kurz für eine Vielzahl von Typen von Schleifen dass die Menschen sehen würden. Wie wenn man eine Schleife schreibt, gibt war oft ein Initialisierungsschritt gleich zu Beginn, ein hingerichtet Zustand, wo die Schleife würde stop-- und das ist das Merkmal das ist nur in einer while-Schleife, oder dass ein während genau hat nur, dass feature-- und dann einen Inkrementierungsschritt am Ende. Und so möchten Sie oft Schreiben von Code wie folgt aus. Ich werde etwas von diesem zu löschen. Aber wenn wir durch Iteration Zeichen in einer Matrix, zum Beispiel, als hätten wir bekam ein Array von Zeichen. Tut mir leid, ich weiß, C. zurück zu bringen, Sie dachten, Sie fertig waren. Aber es ist nur für den Zweck Lernen PHP, das verspreche ich. Wenn Sie also ein char str bekam mit einer Länge von 8, und lassen Sie uns sagen, es sagt Hellooo mit einem abschließenden Null. Große, das ist also unsere String. Und dann hatten wir eine for-Schleife. Wir haben int i gleich 0 ist. Und wir, um zu beenden, wenn str möchten von i gleich nicht gleich null, denn wir verlassen, wenn es null entspricht. Und dann tun wir i ++ an jedem Punkt in der for-Schleife. Mache ich etwas mit der i str. So war die Grundformel, wir hatten dieses Array, dass wir wollte als separate Elemente zu behandeln. Aber was wir tun mussten, ist mussten wir im Grunde eine separate Ganzzahl Variable, die Zählen jedes wurde Mal ging es durch die Schlaufe. Und dann müssten wir dann rufen strstr [i], wenn das, was wir wirklich tun wollte wird einfach gehen Zeichen durch Zeichen, oder? Wir wollen nicht, um ein Inkrement Integer und dann diese ganze Zahl um jedes Zeichen einzeln zugreifen. Wir wollen wirklich Zeichen für Zeichen. Und so für jeden intelligent berechnet, dass für uns. Wenn wir ein Array, das können wir in PHP zu erklären wie just-- wenn wir eine Variable haben genannt wird, nennen wir es Array. Die Wunder ohne Typisierung, ist es wie jede andere Variable. Es ist nur ein Array. Und wir haben ein wenig [unverständlich] wie 1, 2, 3, nur eine Art von initialisierten Array. Es ist in Ordnung, es nicht mag meine foreach. Aber wenn wir tatsächlich foreach-- Ich tippte, dass etwas falsch ist. Es gibt zwei Möglichkeiten, um eine foreach-Schleife zu tun. Es gibt die in der Syntax und der als Syntax. Und wir tun werden in erste Syntax, nicht so. Das ist mein Fehler. So foreach num im Array, Echo num. Und PHP an zu schreien mich aus irgendeinem Grund. Es ist die Suche nach einer unerwarteten in etwas, Das ist ein wenig lästig. Aber wir werden herausfinden, warum das so ist in einem Augenblick. Also nicht so. Lassen Sie uns versuchen, mit der, wie. Er bevorzugt die als Syntax scheint. Lassen Sie uns so tun, als num foreach-Array. So eine kleine Erklärung von dem, was gerade passiert ist wird das als Syntax wird auch zuerst saying--, schauen wir uns an, was diese ausdruckt. So eröffnen wir unseren IDE. Wir gehen hier. Wir sagen Hallo Jason. Und es hat 123, der die Inhalte waren des Arrays, die wir bis oben erstellt. So tauchen in diesem foreach-Schleife, wir haben eine Variable namens Array Das ist eine Anordnung von drei Zahlen. Und dann werden wir tun, foreach Array als num, Echo num. Und das ist mehr intuitiver als ein für lop. Wir sagen, die Behandlung von jeder der die Dinge, die in der Anordnung, wie num, Ich will, dass du mich num zu geben. Und das ist genau, was er tut. PHP ist die Berechnung, dass wenn Sie foreach Array sagen, und Sie sind mit einer Reihe zu tun haben, was Sie gehen zu durchlaufen zu wollen, sind ist die Zeichen in diesem Array, ist die Ganzzahlen in diesem Array, ist die Elemente in diesem Array. Und es ist so dass Sie speichern diese Variablen als num, und dann einfach ausgegeben num sofort anstatt zu sagen, Ich habe eine Variable namens i und dann will ich Ausgangs strstr [i]. Und damit können wir coole Dinge zu tun. Wie im Grunde haben wir nicht zu schaffen diese Variablen wie ich und alles tun, diese Inkrementierung Zeug am Ende. PHP kümmert sich um all das für Sie. So, jetzt ist zu foreach reden, als wir es gilt für unsere _GET Wörterbuch. Also werden wir dies schnell zu kommentieren. So haben wir unsere _GET Array. Wir haben diese Variable. Und es hat ein paar Sachen darin. Gerade jetzt, wir haben nur eine Variable nachdem ihm übergeben, der Name ist. Aber wenn wir drücken Sie die Eingabetaste, jetzt können wir zwei Variablen. Wir können Namen und das Alter haben, zum Beispiel, wenn wir wollen, um das Alter zu erhalten und auch der Name einer Person, komischerweise. So, jetzt _GET wird eine sein, Wörterbuch mit zwei Elementen, mit zwei Schlüsselwertpaare. Und der erste key-- ich zu gehen Schreiben dieses oben auf dem Brett zu. Wir haben unser Wörterbuch ist _GET. Sorry, es ist ein wenig schwer zu sehen. Aber in unserem Wörterbuch haben wir zu nennen, die gehen, etwas zu sein dass wir gegeben. Und wir werden Alter haben, die auch gehen, um etwas, das uns gegeben ist. Und dies ist die Gesamtheit unser Wörterbuch. Also es hat zwei Elemente darin. Und so, weil foreach Schleifen sind smart, wir vielleicht denken, und korrekt vielleicht, dass foreach denken kann durch diese durchlaufen Wörterbuch, Ausdrucken die Werte von Name und Alter angegeben. Lassen Sie uns also in der Tat genau das tun. Konstruieren wir eine foreach-Schleife. Und wir werden für _GET als zu tun. Und wir werden die folgenden tun. Also mal sehen, was passiert, wenn wir geben nur das Wort, und dann sagen Echo Wort. Wir werden auch eine neue Zeile echo nur um es ein wenig klarer, Was ist los. Also mal sehen. Es ist nicht, mir alle Fehler. Und wir werden diese zu schließen. Auf unserer Website wirst du tun, eine Menge, die im Laufe der pset7. So wir sagen, mein Name ist Sam. Mein Alter ist 45. Ist es nicht. Aber es druckt, wie erwartet, Sam 45. Und so werden Sie feststellen, dass was foreach-Schleife did-- hier, gehen wir zurück zu, dass so liegt es auf der board-- wir _GET als Wort. Und es waren vier Dinge in _GET. Aber es ist nur ausgedruckt zwei Dinge. foreach, dass ihre Intelligenz selbst, davon ausgegangen, dass das, was wir wollten war die Werte, nicht die Schlüssel. Aber es gibt einen Weg, dass wir drucken können out die Tasten als auch, wenn wir wollten. Wenn wir wollten auch wissen, was Diese Variablen wurden genannt, gibt es eine Möglichkeit, dass wir kann dieser Zugriff auch. Und die Art und Weise, um eine Art tun, so können wir sagen, lässt wirklich teilen Sie diese in Schlüsselwertpaare. Also mal sehen, was jetzt passiert. So haben wir drücken. Wir haben Wert. Wir haben ein weiteres neues Zeile zur besseren Lesbarkeit. Und lassen Sie uns sehen, was passiert Wenn wir das tun jetzt. Ich weiß nicht, wie alt Jason ist. Jasons 15. So haben wir Namen Jason, 15 Jahre. So waren wir in der Lage, den Schlüssel zugreifen Wert-Paare von diesem Wörterbuch nur sagen, wie wichtige Punkte zu Wert. Und das ist eine foreach syntaktische Zucker Bit, das erlaubt Sie Dinge im Wörterbuch zuzugreifen. So hoffentlich diese Art der betont die Macht der foreach-Schleife. Sie können so ziemlich Wurf alles, was iterable scheint, wie alles, was Mehrfach hat Elemente wie ein Array, wie ein dictionary-- das sind zwei primäre Dinge, die Sie mit der Arbeit werden im Leben und in pset 7. So können Sie das Zeug zu werfen auf sie, und es wird herausfinden, was Sie zu tun haben wollen. Es wird sagen, OK, ich werde kommen diese Dinge aus den Daten, wurde mir übergeben. Und das ist etwas, das du bist zu sein mit viel in pset 7. Ich bin zu schnell blättern gehen nach unten um zu sehen, wo ich bin. Haben die Leute Fragen haben an dieser Stelle? Fragen überhaupt? Ja? Publikum: So mit dem Schlüssel und Wert, man könnte es nennen etwas anderes und es würde immer noch funktionieren? SPRECHER: Oops. Wow, ich völlig die ganze Zeile gelöscht. Gute Arbeit. So a, a. Schlüssel und Wert ist nur eine Konvention. Es ist hilfreich. Sie würden einige Design erhalten Punkte, vielleicht ein paar Style-Punkte zu tun, weil es wirklich vermittelt die Absicht. Aber wir sagen, ein und yarp. Publikum: Sie brauchen nicht zu haben etwas zu ändern in der HTML-Datei , um zu reflektieren, dass? SPRECHER: Überhaupt nicht. Publikum: Und er weiß nur, dass wegen der gleich größere than-- Lautsprecher: Ja. ZIELGRUPPE: --that Indikator, der that's-- Lautsprecher: Ja. Das ist eine foreach-Syntax, aber ja. Publikum: Es gibt keine Typen. So was, wenn du wolltest Alter nur eine Zahl sein? Gibt es eine Möglichkeit, das zu tun? SPRECHER: Es gibt Möglichkeiten, wenn überprüfen Variablen entsprechen, um bestimmte Typen. So PHP fragt ein wenig mehr aus Sie, weil es keine Typen. Einige Möglichkeiten dazu aufgefordert, weniger. In gewisser Weise ist es fragt mehr. Weil, wenn Sie nur noch etwas in einer Variablen, Sie haben keine Ahnung, welche Art es ist. Aber wenn Sie smart über die Variablen dass Sie Typen zuweisen und sicherstellen, dass dass Funktionen return-- nur möchten Funktionen nur Rückkehr eine Art von Wert, so dass man im Grunde erwarten, dass die Variable, die Sie zurück zu bekommen von einer Funktion von der Art sein, dass Sie denken, es wird im Grunde sein. Aber es gibt einige Methoden mit denen Sie überprüfen können. Ich erinnere mich nicht zu aus der Spitze von meinem Kopf. Ich warte darauf, es zu blau. IsInt? ISSTR? Gibt es Methoden, in PHP gebaut dass überprüfen Sie den Typ der Variablen für Sie. Aber wenn Sie Variablen zuweisen intelligent, sollten Sie nicht müssen, dass zu viel in pset 7 zu tun. Aber diese Methoden existieren. Und das ist etwas, ist in der Sprache selbst. Und ich erinnere mich nicht an den genauen Syntax. Wir konnten sogar nachschlagen. Aber die Zeit ist von entscheidender Bedeutung. haben jemand anderes tut haben weitere Fragen? Ja. Publikum: Ich habe nur noch eine. Also, die Sie erwähnt die GET-Methode, aber Sie erwähnte nicht die POST-Methode. Wir kommen wieder auf das? Lautsprecher: Ja, wir werden werden wieder auf das zu kommen. Das ist genau das, was ich suchte auf meinem Handy, die nun eingeschlafen, aber ich werde es finden. Nur dafür, dass wir uns treffen alle PHP Noten. Yep, es gibt keine Debugging-Version. Ja, wir haben noch ein paar Dinge, wollen wir jetzt an dieser Stelle tun. So reden POST, die Sie erwähnt haben, der einzige Unterschied zwischen GET und POST ist dass erinnere mich, als wir sahen unter dieser URL und wir sahen, oh, Namen gleich ein und Alter gleich yarp sind direkt in der URL für uns da. POST ist ein wenig geheimnisvoll mit seiner Weitergabe von Informationen. Also, wenn Sie wollte nicht, dass eine Benutzer zu wissen, zum Beispiel, Sie wollte nicht, dass Sie den Benutzernamen und das Passwort der Person Zeit angemeldet, um in angezeigt werden die URL, die eine sinnvolle Sache ist, um nicht in der URL möchten, weil jemand sie sehen können. Wenn sie jemand zu einem Verlinken Sie wollen nicht, dass ihre URL gibt verputzt, denn das würde damit die Menschen um sich anzumelden nur mit dem Einfügen einer URL statt der eigentlich ein Formular ausfüllen. POST ist ein bisschen geheimnisvoller. Und die einzigen Dinge, müssen wir ändern gibt diese Methode, ändern von zu bekommen, um zu Posten. Und dann innerhalb des HTTP anstelle für den Zugriff auf das Array _GET, wir werden das Array _POST zuzugreifen. Und wir werden bemerken, dass, wenn öffnen wir diese wieder nach oben, Jason lehnt sich langsam im Alter. nennen Jason, 14 Jahre alt. Das gleiche Material erscheint. Aber gehen wir in die URL und diese Variablen gibt es nicht. Und die Art und Weise, dass POST passes-- so erinnern Wie man an der Quelle einer Seite zu suchen. Wir gehen in das Netzwerk. Wir aktualisieren. Und das ist eine andere Sache, POST wird Ihnen Warnungen vor. Vielleicht haben Sie ein Feld, ein Text gesehen haben box Gefällt Ihnen dieses in Ihrem Browser. Bist du sicher, dass du willst um ein Formular erneut zu senden? POST ist, was ist das Senden diese Formen. Denn im Grunde, wenn Sie geschickt Ihre Kreditkarteninformationen, jemanden, das wird nicht in der URL angezeigt. Das wird eine POST-Anforderung ist. Also, wenn Sie die Seite zu aktualisieren, es ist das Zurücksenden der diesen Posten Anfrage. So, jetzt wir wollen die Nachricht wieder zu bilden, weil es nicht geht um alle doppelten Einkäufe erstellen. Und wir werden, dass sich hier bemerken, die Methode wir verwenden ist POST. Und es tatsächlich übertragen Bytes. Es überführt 401 von ihnen. Programm ist ziemlich winzig. Aber es gibt nichts, dass wir sehen können, die Werte, die übergeben werden. Die Web-Seiten selbst sehen können, aber wir als Benutzer sind nicht in der Lage, um zu sehen, es sei denn, du bist ein Hacker. Wenn Sie ein guter Hacker, können Sie suchen. Wenn Sie die Grund wissen Format des HTML, die Werte machen sich in den Seiten bekannt. Du wirst in der Lage sein zu sehen. Die Werte werden da sein, sie sind nur ein wenig für Sie weniger offensichtlich um den Zugang, im Grunde. Brauchen wir mehr haben Fragen über GET, POST before--, was wir als nächstes tun tatsächlich auf einige der Code aussehen dass Sie in pset 7 gibst, sprechen über wie es nutzt einige dieser Konzepte, und über das sprechen Dinge, die Sie gehen zu haben, um ein wenig in pset 7 zu tun. Haben Sie weitere Fragen, bevor das? Weitere Fragen, die Sie Jungs haben? Groß. Also gut, lassen Sie uns ein wenig auf pset 7, kein Zweifel, was du bist, alle am meisten begeistert. Ich meine, das ist etwas, David geht durch ein kleines bisschen. Aber wir werden drei Verzeichnisse auf das haben Top, sowie eine Konfigurationsdatei. Das ist für Datenbanken, auf die wir reden über in etwa fünf Minuten. Umfasst, die Sie nie brauchen, um in diesem Verzeichnis suchen wenn Sie nicht wollen, aber es ist schön, weiß, es gibt alle Arten von Helfern. Helpers ist wie hilfreiche Funktionen. Und dann haben wir Config, das setzt ein paar Sachen auf. Es gibt einige Funktionen, die CS50 hat geschrieben, in Helfer- und Konfiguration sind. Und einige der PHP, dass bereits beendet in Dateien wird eine Menge von der Art mehr zu tun der stumpfen Bein Arbeit für Sie. Wie, wenn wir in die Öffentlichkeit zu gehen login.php, was was ist zeigt sich rechts, wenn Sie in pset 7 gehen. Wir werden sehen, dass es Diese erfordern Aussage. Und das wie eine Art scharf sind, hashtag schließen, wenn Sie eines der neueren Generation sind. Aber im Grunde sagt, dass ich Zugang zu allen Funktionen in der config.php. Und könnten Sie haben ein verlangen für alle möglichen anderen Dinge. Config tatsächlich benötigt Helfer. Also, wenn Sie benötigen Config, bist du auch einschließlich oder erfordern Helfern als auch. So dass haben Sie Zugriff auf alle coole Funktionen, die werden wir nutzen, Dinge wie rendern. Ich bin eigentlich los, um zu erleichtern Diese nach unten ein wenig. So dass die Funktion dann sind wir gehen zu Fuß durch kurz bevor wir weiterziehen, um ein wenig SQL Bit ist die login.php-Funktion, nur Weil es einige Themen dass wir gerade gesprochen in PHP. Sie sehen, das erste, was ist, wenn $ _SERVER. Dies ist eine weitere globale Variable, wirst du mit zu tun. Es ist wie _GET und _POST, aber was Server enthält, wird dies können Sie lassen wissen, ob die Anforderungsmethode war ein GET oder POST. Wie zuvor, was wir taten ist nur in unserem Code, den wir geschrieben haben, wir waren gerade ändert sie zu bekommen und POST je nachdem, was die HTML bietet. Aber es sind Seiten, die sein können mit beiden Typen von Anforderungen abgerufen. Und möchten Sie vielleicht zu tun verschiedene Dinge je von der Art der Anfrage, wie Login tut. So können Sie diesen Antrag prüfen Verfahren durch den Zugriff auf Tasten, durch Verwendung eines Schlüssels und bekommen die Wert von etwas im Wörterbuch _SERVER. Also das ist ein weiteres Welt Variable wie _GET und _POST. Wenn es GET, wir wollen machen das Login-Formular. Render ist eine Funktion, die im Grunde nur erträgt die entsprechende HTML und leitet es einige Parameter. Dieser Titel ist ein Parameter, ist bei der Anzeige, seltsam genug verwendet, der Titel der Seite in Frage, die Sache hier oben, sagen hallo oder in unserem vorherigen Beispiel. Jetzt haben wir eine andere Sache. Else, wenn es POST wir tun einige andere Sachen. Wir verwenden diese leere Methode. Es ist nicht vorhanden, es ist leer. Und wir sahen vor, PHP hat eine ganze Menge gebaut in Methoden, die David will-- wenn es sind Methoden, die für Sie nützlich sind, sie werden zu euch gewarnt werden in der Spaziergang durch die David gibt am Anfang Übersicht, und auch Zamyla ist hilfreich Bit. Sie ist wieder alle. Wir können uns alle freuen. entschuldigen ist ein treffend benannte Funktion dass im Grunde nur druckt einige Fehlermeldungen, weil CS50 ist sehr höflich. Und nun diese, ist dies ein tricky wenig, weil diese ist, wo wir das Abfragen der Datenbank. Jetzt haben wir nicht über Datenbanken gesprochen. Und wir gehen, um in der nächsten fünf Minuten oder so, Maximum. Aber dies ist eine Funktion dass CS50 hat geschrieben, um eine Tabelle im Grunde aus einer Datenbank erhalten dass wir mit der Arbeit in pset 7. Ich bin wirklich schlecht mit meinem Null Indexierung heute. Aber ja, es ist 7. So fragen, es wird ein Rück Array, im Grunde ist der Schlüsselbart. Und weil diese Dinge nicht haben Typisierung, so Zeilen ist ein Array von Arrays. Denn wenn wir über das Denken eine Tabelle, was wir tun werden ist, wie Sie in psets gelernt wie das Spiel von 15, jedenfalls wo Sie musste ein verwenden Doppel Array, wir im Grunde haben Reihe anderer Arrays macht einen Tisch. Und Sie Zeilen und Spalten haben. Und dann können Sie sie wie Zugriff [0] [1], erhalten Sie die [0] [1]. Grund Sachen. Also, was wir tun Hier in dieser Funktion, wir die Datenbank gefragt wenn der Benutzer, ist versuchen, anmelden, das sein wird durch die Methode POST gesendet. Wir werden sehen, wir bekommen der Benutzername aus _POST. Sie werden geschickt haben, den Benutzer oder Sie, Wert senden über ein Formular über POST, weil es ist Benutzername und Passwort Zeug. Wir überprüfen den Benutzernamen um zu sehen, ist dies in der Tabelle? Denn wenn ein Benutzer anmeldet in, dann ihren Benutzernamen sollte in der Tabelle gespeichert werden Benutzer, die für diese Website existiert. Also im Grunde, wenn die Benutzer in der Datenbank, Abfrage wird zur Rückkehr diese Zeile, die ein Array ist. Aber der schwierige Teil ist, dass wenn, auch wenn das Doppel-Array ist nur einer Zeile, auch wenn es eine eine Zeile array-- wie Sie basically-- haben wenn Sie eine Größe one-Array haben , dass hält ein weiteres Array, Sie wirklich, die sich mit einer Spalte. Aber es ist immer noch behandelt wie eine doppelte Array. Und das ist, wo es manchmal bekommen können tricky, weil wir Zeilen hier. Unsere Variable Zeilen. Und dann schaffen wir eine neue Variable namens Reihe und wenn er gleich die erste Reihe von Zeilen. Und Sie werden feststellen, dass Kommentar sagt, es ist das erste und einzige Zeile. Das ist also die knifflige Teil, wo jetzt Funktionen Arrays können sehr leicht zurück. Es gibt nicht mallocs. Sie werden nicht sehen mallocs. So werden Sie nicht sehen seg Fehler. Aber Funktionen trotzdem vorbei sein um die Arrays und Daten in Gruppen. Und man muss vorsichtig sein, von dem, was zu sein genau Ihre Funktionen werden zurückkehren. Und selbst wenn es eines Spalte wie diese, abfragen ist noch im Gange, um eine doppelte Array zurück. Also, den Zugang, die Sie column-- oder kann all dies als umgekehrt da wir über Zeilen sprechen. Aber für den Zugriff auf diese eine Zeile, Sie nicht einfach sagen können Zeilen. Auch wenn es eine Zeile, müssen Sie Sie rowsrows [0], um Art zu beseitigen diese äußeren Bit des Arrays und haben gerade Ihr eine Zeile. Haben ein paar andere Dinge. Es gibt eine Funktion genannt password_verify dass überprüft die Kennwort, das aufgerufen worden. Und dann sehen wir einen weiteren globalen Hier variable, _SESSION. Grundsätzlich Session-ID So behalten Sie die Übersicht der, wenn jemand angemeldet ist oder nicht. So jetzt mit login.php, wir sind der Anmeldung eines Benutzers in. Also, was wir tun wollen, ist, dass wir wollen, sagen, dass die Session-ID gleich der Zeile ID, die nur sinnvoll, weil Jede Zeile wird eine andere ID haben Nummer als Teil der Tabelle. Wir werden in SQL in a erhalten zweite, so dass, wenn irgendetwas davon scheint ein wenig wie blah, dann wird alles geklärt werden. Aber wir werden, um die ID gleich eingestellt die richtige Sache, die Anmeldung der Benutzer in. Entschuldigen Sie, wenn etwas schief geht. Und das ist Anmeldungen Zweck Leben als Professor Malan sagen würde. Das war also login.php. Und viele der PHP-Code Sie schreiben in pset 7, werden sie ein wenig zu sein. Vergessen Sie nicht, den chmod die entsprechenden Berechtigungen. Es wird ein wenig über sein dass am Anfang des spec. Aber die PHP, die Sie schriftlich sein wird Dinge tun, die dieser recht ähnlich ist. Du wirst sein Zugriff auf einige Dinge, werden Ihnen in der gegebenen globale Variablen von PHP, dass werden mit dem aktuellen Umgang angemeldete Benutzer, ob es gewesen Anfragen an diesen geschickt Seite, verschiedene Dinge. Und es wird auch potentiell Durchlaufen Zeilen dieser Sache. In einer anderen Funktion, Abfrage zurückkehrt diese doppelte Array. Und wenn es mehr als eine Reihen darin, wenn sind-- ja, ob es mehr als eine Reihen darin, dann wird es eine Tabelle. Und möchten Sie vielleicht zu durchlaufen durch die Reihen des Arrays mit die foreach-Schleife, die wir beschrieben. Also, wenn Sie foreach auf einer Doppel-do Array, was werden die word-- hier, Ich werde tatsächlich schreiben. Ich werde es schnell hier zu schreiben. Wenn wir eine foreach der Zeilen als Folge, was die Art der Reihe? Weiß jemand? Du hast es? So Zeilen ist ein Doppel-Array. Also, was ist foreach gehen, um zu schließen , dass wir wollen, dass dieser Doppel Array wenn wir über sie iterieren? Wir können davon ausgehen, dass im Grunde es wird entweder Elemente sein, oder Zeilen oder Spalten, im Grunde. Usw. Zeilen und Spalten wir kann als die gleiche Sache zu behandeln. Im Grunde, was die foreach-Schleife wird zu tun ist, es geht um Zeilen zurück. Zeile wird zu der Typenreihe sein, wohin Zeilen ist ein Doppel-Array. Also, wenn Sie foreach geben ein Doppel-Array, ist es nicht zu durchlaufen mehr als eine Ebene tiefer. Das ist im Grunde, wenn zu sagen, es acht Zellen in diesem table-- 1,2, 3 4, 5, 6, 7, die 8-- foreach-Schleife ist nicht gehen, um durch jede dieser Zellen zu gehen. Was der foreach-Schleife wird tun wurde es durch diese Zeile zu gehen, geben Ihnen die ganze Reihe. Und dann werden sie durch diese Zeile zu gehen. So ist es durchläuft nur eine Ebene tiefer. Wenn Sie eine verschachtelte hinzufügen foreach-Schleife, dann kann jede Zeile von zurück behandeln Zeilen, foreach Zeile als Element haben Sie, sagen wir. Und dann könnte man das Element echo. Also das ist eine kurze kleine Auffrischung, wie Sie könnten mit foreach Loops im Zusammenhang mit der Abfrage. Gibt es irgendwelche Fragen zu PHP? Überhaupt etwas, bevor wir gehen Sie zum Gespräch über SQL und der Spaß der Datenbank? Gut fühlen? Gut fühlen. Gut. Gehen wir zurück zu den Powerpoint, die Sie wahrscheinlich zu verpassen. SQL, yay. Menschen, die in meiner Abteilung sind in der Regel wird wissen, dass Tarifstellen der Akronyme sind immer nur die ersten Worte Ich denke, dieses Spiel, dass algorithm-- diese Abkürzung. Es ist nicht ein Algorithmus. So SQL ist eine Datenbank. Es ist eine Sprache, die arbeitet mit Datenbanken. Und alle Datenbanken ist Tische, zumindest in der Weise dass SQL vertritt sie. Eine weitere Möglichkeit, über Datenbanken denken Datenbanken sind eine Reihe von Schlüssel und Werte im Grunde. Sie können über eine Datenbank als zu denken ein Wörterbuch und auch als Tisch. Im Grunde ist es ein Weg, um zu assoziieren unterschiedliche Daten mit anderen Daten, häufig durch Zeilen und Spalten. Und das ist der Weg, das ist SQL am besten funktioniert. So ist dies ein Beispiel für eine Tabelle. Ich habe ein paar Beispiele von bekam Leute in meinem Abschnitt, der Ich hatte keine Zeit, um zu ändern. Aber wir haben Dinge wie ID bekam, Name, Supermacht, und Heimatort. Ich weiß nicht, wo jemand ist aus in meinem Abschnitt, so bin ich nur davon ausgehen, jeder ist von New York Stadt, weil ich eine hohe statistische Wahrscheinlichkeit, richtig. SQL wird automatisch Pflege der ID-Spalte für Sie. Wenn Sie eine neue Zeile einfügen in eine SQL-Datenbank, es wird zu erhöhen, dass ID-Nummer und einfach Grundsätzlich haften wie fünf Namen, Supermacht, heimatstadt, wer auf das Ende der Tabelle. So ID ist eine Spalte finden Sie nie zu befürchten. Aber, wie in dem Fall von login.php, wenn wir bekamen die Session-ID aus einer Tabelle und nur mit ID, ID ist ein Weg, um eindeutig zu identifizieren, ein Element aus einer Datenbank. Also, wenn wir zwei Sams, beide die CS50 gelehrt, und beide, die waren aus Milwaukee, denen würde noch verschiedene ID-Nummern und so verschieden in sein der Kontext der Tabelle. Also das ist, was SQL beschäftigt mit, die Arbeit mit im Backend. Und dies sind die vier Befehle dass Sie benötigen, um mit SQL arbeiten. Und ich warf sie alle auf einer Folie. Aber wir werden zu durchlaufen sie alle einzeln. Der erste Befehl UPDATE, das tut, was Sie vielleicht erwarten. Sagen Sie einige Daten in haben Die Tabelle, die veraltet ist. Wie, wenn Sie halten Überblick über die Namen von Personen und das Alter, wenn jemand ist Alter zunimmt, dann Sie gehen zu wollen, um in zu gehen sind und aktualisieren Alters gerade dieser Person. Ein Beispiel, das funktioniert mit unserem ersten table-- nicht über das Schreiben von allen Sorgen Diese Befehle gleichzeitig. Aber wenn Sie Update nach unten haben, das wird gut für diesen Teil zu sein, weil wir zu gehen gehen Sie zurück auf den Tisch. Also, wenn wir wieder an den Tisch, sagen wir mal, etwas, das passiert wurde gab es ein Erdbeben oder eine Bruchlinie, die direkt gespalten durch New York City. Und wir jedem aktualisieren wollte , die in New York lebte. Sie alle hatten den nach Pennsylvania zu bewegen. Das ist kein Heimatstadt. Sie alle hatten nach New Haven zu bewegen. Da gehen wir. So dass jeder in New York zieht nach New Haven. Und das ist also etwas, das ist Bearbeiten drei Zeilen in dieser Tabelle. Aber in SQL, die Sie tun können dass in nur einer Anweisung. Also gehen wir zurück zum Aktualisieren. Lassen Sie mich das Board schnell wieder zu löschen. Wenn wir reden Aktualisierung gibt es einige Teile der Syntax, die wichtigsten sind. Nun, das ist alles für die Syntax-Taste. Aber das Zeug in grün ist optional. Die weißen sind erforderlich, wie vordefinierten Namen. Und das Licht blau sind Dinge, , die je auf dem Tisch ab. Also das ist, was ist los mit das Farbschema hier, dort oben. Wenn wir also nur die Zeilen aktualisiert werden sollen der Menschen, die in New York leben, Also, was wir tun würden, wenn wir sagten, UPDATE? So Tisch ist, wo wir der Name unserer Tabelle. Sagen wir einfach, den Namen unserer Tabelle ist eine Tabelle. So wollen wir die Tabelle einem Update. Und wir möchten Satz-- was wollen wir zu setzen? Nun, wir sagen wollen, so column-- PHP behandelt Zeilen wie eindeutige Kennungen. Und dann Spalten den verschiedenen Bereichen jener Elemente der Datenbank. Also das erste Element der Datenbank hat einen Namen von Sam, Supermacht der CS50, und eine Heimatstadt von Milwaukee. Wenn wir also der Satz, lassen Sie uns an die Parameter wieder, dass Satz dauert. Wir haben Säule gleich Wert. Also, einige sagen, wir wollen column--, die daran erinnern, ist ein field-- wir einen sehen wollen Feld gleich etwas Neues. So, wenn wir gerade gesagt Update Tabelle 1, Name gleich Elliot. Holen Sie sich einige Leute aus der neuer Abschnitt in zu diesem Thema. Aber wenn wir gerade getan Aktualisierungstabelle 1 Satzname gleich Elliot, was würden die Tabelle aussehen danach? Die Menschen haben eine Idee? Ja. ZIELGRUPPE: Für alles, dass Zeile würde Elliot zu werden. SPRECHER: Alles in die Reihe? Publikum: In der ersten Reihe. SPRECHER: In der ersten Reihe? Warum der ersten Reihe? Ich meine nicht, um auf Ihnen zu rupfen. ZIELGRUPPE: Vielleicht alles, was im ganzen Tisch? SPRECHER: Alles in der ganze Tisch, ja. Und das ist genau das richtige because-- I wurde nur helfen Ihnen, ein wenig sind-- weil wir weggelassen die optionale WHERE-Klausel. Wenn Sie nicht die WHERE haben Klausel, was dieser Befehl tun wird es dann mit jedem arbeiten einzelne Zeile in der Tabelle. Namen aller Wille geworden Elliott, im Grunde, was Elliot ist sehr glücklich darüber. Oder Yanni, einer der beiden. Aber jeder Name wird sich ändern. So ist die Art und Weise verwenden wir die WHERE clause-- und das gilt für alle Wheres die in jedem der sich diese unterschiedliche Dinge. So dass Sie, dass SET merken hat Spalte gleichwertig. Und so auch WHERE. Aber diese sind anders Arten von Aussagen. So ist die Spalte gleich Wert in SET ist in Zuordnung. Wie wir sagen, wir wollen, In den Namen gleich Elliot gesetzt. Aber in den WHERE-Klauseln, das sind die Gleichstellung Aussagen. Also lassen Sie uns sagen, wir wollten nur ändern den Namen der Person, um Elliot wenn ihr Name war Ryan, sagen wir. Wenn wir also sagen WHERE name gleich Ryan, dass würde erfolgreich einzige Änderung nur die name-- es würde ändern Sie das Namensfeld in Reihen wo das Namensfeld ist gleich Ryan. Also, wenn wir mehrere Leute hatten benannt Ryan, alle ihre Namen würde Elliot ändern. Dies ist ähnlich zu dem Beispiel der, wenn eine Bruchlinie spaltet New York City, und jeder muss zu bewegen, um New Haven, wie wir können, zu tun, dass in einer Anweisung UPDATE table1 SET = Heimatstadt New Haven wo Heimatstadt gleich New York City. Dies ist die Kraft der die UPDATE-Anweisung. Wir können eine beliebige Anzahl auswählen Zeilen durch wahre Aussagen über die Felder in den Zeilen. Wir können nicht sagen UPDATE table1 set name = Elliot WHERE row = 1, mit der Ausnahme, dass wir, wenn wir sagen, ID = 1. So werden wir sein, Arbeiten mit der Gleichstellung Felder, die Gleichstellung von Spalten. Jedoch unter Verwendung der ID-Feld ist eine Möglichkeit, Wählen Sie einzelne Zeilen gesagt, da das ID-Feld ist eine eindeutige Kennung in einer SQL-Datenbank. So wie die Aktualisierung einer Zeile, ID gleich 1 ist. Aktualisieren Reihe zwei, nur zu ändern, dass die ID-Nummer. Aber die Macht der WHERE-Anweisung ist, dass wir können die Dinge zu aktualisieren, basierend auf, was ihre aktuelle Werte bestimmter Dinge sind. Ja Elliot? Publikum: Und was ist, wenn Sie wollen, zu-- wieder, das ist eine andere Frage. Aber meine erste Frage war, Wo ist das passiert? Wo soll ich die Aktualisierung das? Ist das in einer PHP-Code? SPRECHER: Wo Sie aktualisieren, ja. Wir werden sprechen sich dies alles passiert, Art, wenn wir gehen, durch alle Befehle. Aber, was Sie brauchen wissen, denn jetzt ist im Grunde dass Ihre SQL-Datenbank existiert als etwas In den von der Abfrage zugegriffen werden Funktion, die CS50 definiert. Also, wenn Sie die Abfrage-Funktion verwenden, Sie diese Tabelle zugreifen können. So werden Sie sendet diese Befehle, um Ihren Tisch im PHP-Dateien durch die Query-Funktion. Sie können auch spielen, um mit Ihren Tisch direkt. Und das ist der beste Weg, Test dieser Arten von Befehlen. Und wir werden durch genau, wie gehen der in nur ein wenig zu tun. Also das ist UPDATE-Befehl. Und der Rest der Befehle gehen, um Art von ähnlich sein, arbeitet an ähnlichen Dingen. Die INSERT INTO ist wahrscheinlich die verschiedenen am meisten von UPDATE. Ich werde da oben lassen Sie für nur ein wenig und arbeiten hier. So INSERT INTO, sehen Sie, diese Tabelle ist immer noch die gleiche. Sie wollen in den Einsatz. Die Kapitalisierung, SQL Groß- und Kleinschreibung. So müssen Sie nicht zu haben, nutzen diese Dinge. Vereinbarungsgemäß werden die Worte in weiß, werden aktiviert. Aber ich habe auch farblich codiert sie. Der einzige Grund, die Sie nutzen Personen, wenn Sie die Eingabe ihnen wird nur zu betonen, dass diejenigen Konstanten sind. Und so können Sie entweder Blick auf die Aktivierung oder die Tatsache, daß ich sie unterschiedlich gefärbt. Deshalb haben wir INSERT INTO bekam, Versuche es noch zu tun table1. Das ist alles in einer Zeile. Ich bin einfach nur trennt sie von die unterschiedlichen Aussagen. Also nicht über die Tatsache, dass Sorgen table1 schafften es in der zweiten Zeile. So einfügen möchten wir In die Tabelle TABLE1 einige Werte. Und Sie werden die optional bemerken Bit, das ich werde, um in einem zweiten zu bekommen. Also haben wir VALUES bekam. Also lassen Sie uns sagen, dass wir, um Andi hinzufügen an unseren Tisch, weil wir verpassen Andi. Andi ist krank. Lassen Sie uns also Andi hinzufügen zu unserem Tisch. Denken Sie daran, dass der ID-Nummer wird automatisch aktualisiert. So ist die einzige Bereichen wir sich Sorgen machen müssen sind Name, Supermacht, und Heimatort. Und so ist die Art, wie wir das tun, Betrachten unserer Syntax ist wir haben gerade eine Klammer, mit Komma trennen getrennte Werte, von denen jede ist ein Wert. Wenn wir also in Andi einfügen wollten, dass unsere Tabelle, ist alles, was wir tun müssen rechts Andi. Was ist in der Andis Supermacht, Menschen in Abschnitt Andis? Sie mögen Flug, oder gerne Geschwindigkeit, oder so etwas. Was haben wir schon da? Wir haben CS50, Flug, Geschwindigkeit und Stärke. ZIELGRUPPE: Zeitreise. SPRECHER: Zeitreise, erstaunlich. Deshalb haben wir Andi, Zeit bekam Reisen und ihrer Heimatstadt. Das ist eine wirklich gute Frage. New York City, es sei denn, jemand weiß. Jeder ist von New York ist die Lektion von heute zu nehmen. Also diese Erklärung einzufügen, als eine fünfte Reihe, mit der Superzeitreisen und eine Heimatstadt von New York City. Aber das optionale Feld ist im Prinzip eine Art genau, welche Spalten festlegen Sie, die Dinge in einfügen wollen. Die Art und Weise, die wir jetzt tun es, Andi, zeitreise, New York City, wird in der exakten Reihenfolge unserer table-- Namen, Supermacht, Heimatstadt. Und wenn Sie tun wollte, etwas anders als das, wie sagen Sie nicht wissen, jemandes Supermacht, wie, wie ich wusste nicht, Andis Supermacht am Anfang. Also alles, was ich wusste, war ihr zu benennen und ihre Heimatstadt. Was ich tun kann, ist, ich könnte do-- Ich werde diese schnell zu löschen. Ich möchte nur die Spalten aktualisieren. Und dies ist, wo die optionale Spaltenliste ins Spiel kommt. Ich will nur Name und Heimatort zu aktualisieren. Und dann werde ich sagen, VALUES. Ich werde Andi und New York City zu tun. Wenn ich die Liste der Spalten weggelassen und gerade getan diese beiden Dinge, wo wäre New York gegangen? Welche Spalte würde New York Stadt haben in gesetzt worden? Die Menschen haben eine Idee? Supermacht, genau. So wird dies nur, um zu gehen. Und wenn er das Ende der erreicht Liste, wird es einfach aufhören Füllung Dinge. Und die Werte, es wird bleiben in alle Spalten wird nur NULL sein. Also, weil wir festgelegt Name und Heimatstadt, wir werden ID 5 haben, Andi nennen, Super NULL. So Supermacht ist eine nicht initialisierte Wert. Sie werden nicht unbedingt zu den Valgrind gleichen Fehler, wenn Sie versuchen, und darauf zugreifen. Alles wird schön auf Null gesetzt werden out, weil NULL ist ein Wert in SQL. Daß eine Konstante ist. Und dann wird Heimatstadt New York City zu sein. Das ist also der INSERT INTO-Befehl. Bevor wir fortfahren, gibt es zwei weitere Befehle. Haben die Leute Fragen zu UPDATE, INSERT INTO etwa, über SQL in der Regel, bevor wir auf unserem letzten Bits? Die Menschen fühlen sich gut, groß. Liebe es. Also lassen Sie uns über SELECT sprechen. Gehen Graben UPDATE hier. Und wählen Sie wird sehr ähnlich zu sein. Das Ziel der SELECT, Zweck SELECT im Leben ist, dass Sie eine Reihe von Spalten zu geben dass bestimmte Bedingungen erfüllen. Und wenn ich sage zu befriedigen bestimmten Bedingungen Ihre Meinung könnte sofort gehen Sie zurück zu, dass WHERE-Klausel dass kam in UPDATE. Und das Klausel genau dort in SELECT. Wenn wir uns nicht setzen die WHERE Klausel und wir sagen SELECT name, Heimatstadt-- geschrieben, dass ein wenig wrong-- Namen, Heimatstadt FROM table1. Wenn wir nur sagen, dass, was WÄHLEN wird uns geben, ist es wird uns einen geben double-- eine Tabelle, statt. Eine doppelte Array, wenn wir darüber nachzudenken, in PHP spürt. Aber es ist gerade dabei, uns einen geben Doppel Array aus zwei columns-- Namen, und Heimatort. Und es wird ID ignorieren. Und es wird Supermacht zu ignorieren. Und es wird nur geben uns jeden einzelne Zeile der Tabelle. So, wenn wir gerade eingefügt Andi, wir müssen Andi. Und wir erledigen den ursprünglichen vier haben. Wenn sie aktualisiert haben, werden, dass reflektiert werden, und so weiter, und so weiter. Also das ist, weil wir habe nicht mit dem WHERE-Klausel. Aber wir können sie in genau verwenden so, wie wir es früher in UPDATE. Wenn wir wollen, nur eine Tabelle der Namen und Superkräfte der Menschen, in New York, können wir eine Anweisung ausführen wie SELECT name, superpower-- Ich werde einfach dass-- aus dem Urlaub table1 WHERE = Heimatstadt New York City. Also das geht, zu zeigen, dass man zu völlig anderen Säulen, und setzen Sie dann Spalten, dass Sie nicht sogar immer wieder in der WHERE-Klausel. Wir wollen nicht einmal die Heimatstadt von jedermann. Aber wir wollen den Namen und die Supermacht von Menschen deren Heimatstadt New York City. Also das ist etwas, was wir kann mit dem Wo sehen Klausel ist können wir mit Spalten umgehen dass wir nicht unbedingt wollen zurück. Auf die gleiche Weise in UPDATE wir umgehen können mit Säulen, die wir nicht unbedingt möchte zu aktualisieren. Wir können die Stadt von jeder aktualisieren wer Name ist Sam, zum Beispiel. Wir können die Stadt zu aktualisieren jeder, dessen ID-Nummer 2. Also einfach aktualisieren, die Stadt der zweiten Reihe wo wir nicht zu bewältigen haben erforderlich die gemeinsame Frage. Und löschen Sie es, wie Sie möchten erwarten, DELETE FROM table1. Und dann haben wir eine andere WHERE-Klausel hat. So können wir sagen WHERE ID = 1. Löschen Sie die erste Zeile. Und löschen Sie immer eine Zeile zu löschen, oder es wird eine gewisse Anzahl von Zeilen zu löschen. DELETE FROM Tabelle WHERE Heimatstadt = New York City jeder wird in New York City zu löschen. Das ist, wenn es ein plötzliche tragische Plage und man wollte einfach nur zu entfernen jeder aus der Tabelle, die in einer Stadt gelebt das wurde von der Pest betroffen. Mögen sie in Frieden ruhen. Dies sind die vier SQL Befehle dass Sie benötigen, um zu verwenden. Sie nicht einmal verwenden könnte sie alle. Aber das sind die vier dass CS50 erwartet Sie komfortabel mit gehen in sein sowohl Quiz 1 und auch pset7 und pset8. Es ist nur, dass Tisch. In diesem einen, hat Roy Supermacht Laserstrahlen, aktualisiert die ist ein Beispiel habe ich nicht benutzt. Ich weiß nicht, was man Roy zieht, aber Stärke. Roy hat eine Supermacht der Stärke. Katherine hat es nicht heute. Das ist bedauerlich. Aber sie hat super speed. Nun, das war PHP. Bevor wir über MVC zu sprechen, tut jemand Fragen zu PHP? Jetzt SQL oder PHP, wenn Sie plötzlich kommen mit einer Frage über PHP? Groß. Na gut, wir sind alle so eingestellt. So spricht ein wenig zu Modellansicht-Controller, gehen wir zurück zu einigen von dem Zeug in pset7. Also, was Modellansicht Controller ist-- Ich bin nicht werde meine Änderungen zu speichern, um sich anzumelden weil ich total geschlachtet es. Aber im Grunde haben wir zwei haben getrennte Dinge geht. Wir haben eine öffentliche Verzeichnis, das enthält der Code, die gehen, die ausgeführt werden und die Webseiten, die besucht werden sollen. Und wir haben auch diesen Ansichten Verzeichnis. Und Ansichten enthält Vorlagen. Dies ist, was die Funktion render-- sahen wir das machen Funktion in einer Reihe von den PHP-Code dass CS50 hat bereits für Sie geschrieben, das dauert in bestimmten Parametern. Was dieser Code tut wird es in Ansichten gehen, die Sätze sind wie vorgefertigte HTML-Code, und es ist das Einfügen Werte in bestimmten Orten. Dies ist, wie wenn Sie gehen Sie in CS50 Finanzen, der gleiche Header ist auf jeder Seite. Das gleiche Fußzeile auf jeder Seite. Das ist, weil die Art und Weise dass render Arbeiten ist es dann automatisch in diesem Header zu patchen und Zuschauer, die Sie im Blick zu finden. Wir können tatsächlich in die Header zu gehen, und schauen, es ist eine HTML-Datei mit einem Kopf. Es hat ein paar Stylesheets. Sie brauchen nicht auf CSS zu suchen für pset7, wenn Sie nicht wollen, zu tun ist. Aber Sie ändern können sie, wenn Sie möchten, stellen Ihre Finanzen ein wenig anders aussehen. Es hat einige PHP in der Header ein wenig, um zu sehen wenn es einen anderen Titel es sollte in diesen Header setzen. Aber nur ein paar andere Skripte, und Links, und andere Dinge. Kopfenden, Körper beginnt, und oops, haben wir diese seltsame kleine Endbit. Und es gibt einen div, genau wie eine formlose Art von Element das hat eine Vorstellung davon, Mitte. Und dann, wenn wir sehen, footer, wir haben das Ende eines div. Wir haben eine Boden, das ist, wo die Fußzeile ist. Ende des div, Ende des Körpers, das Ende der HTML. Also, was machen ist Dabei ist zu machen ist eine Art Patchen up-Header, ein verschiedene PHP-Datei, werden die tatsächlichen Dinge enthalten, die Sie werden sehen, wie Sie Ihre Tabelle von Aktien wenn Sie kaufen oder verkaufen Aktien. Und dann werden sie in der Fußzeile hinzuzufügen. Und die Modellansicht Controller Idee ist, dass wir wollen zu trennen, wie sieht die Sache aus dem Code. Es ist wir die Frontend trennen wollen und das Backend, wo das Frontend der Stoff, der Benutzer sieht, das schöne visuals-- HTML, CSS, solche Dinge, Bilder und so weiter. Und das Backend ist PHP. Dies ist Code, den Sie schreiben. Dies ist, wo der Code, der ist Dabei tatsächlichen Operationen. Dies ist, wenn Sie hinzufügen eine Aktie an den Tisch, wenn Sie kaufen und Selling, das Backend. Und wir können, wie Sie gesehen haben, einschließlich PHP direkt in HTML. Also, was wir hätten tun können diese Zuordnung nur hatten sich eine HTML-Datei für jede Seite, wie login. Und dann auf der Seite, nur hatte einen großen PHP-Blocks aus, einschließlich all der Code, diese Seite speziell müssten. Und dann haben wir könnten das getan für das Portfolio. Wir könnten alle der Kauf gemacht haben und Verkauf innerhalb der einzelnen Seiten. Aber weil wir machen getrennt von denen wir schreiben das Backend Code, können wir leicht ändern, wie die Dinge aussehen, ohne Ändern jede einzelne Datei. Wir tun Dinge wie nur hinzufügen ein neues div nach unten von-- Hallo Ich änderte die Fußzeile. Sie können nur Dinge zu tun so. Sondern auch, die Sie ändern können die gesamte visuelle Layout ohne Auswirkungen, was gehen im Backend. Und Sie können das ändern gesamte Backend und noch haben sie sehen genauso aus wie vorher. Dies Ist die Idee der Model View Controller. Und es ist eigentlich eine verhängt Paradigmen in einigen Programmiersprachen möchten Sie vielleicht zu verwenden für Abschlussarbeiten. Wenn Sie iOS-Entwicklung zu tun, sie haben Aussicht, das ist, was Sie sehen, auf dem iPhone, und dann als wie eine separate Sache Backend. Sie können über ein wenig zu denken. Es gibt eine Menge von Binärdateien in Informatik, die ist lustig, denn alles ist in binärer. Ich hatte nicht vor, dass. Das war ein Wortspiel unbeabsichtigt. Ja, das Wortspiel nicht beabsichtigt. Aber wie die h-Dateien und .c-Dateien, gibt es eine Menge von Trenn der Dinge, die wir vielleicht nicht brauchen. So können wir nur die h-Dateien zu bearbeiten, oder jemand kann nur sehen, ein H-Datei und wissen, genau die Funktionen, die in der sich C-Datei, ohne notwendigerweise zu wissen deren Umsetzung. Diese Idee der Trennung von Komponenten die voneinander abhängen, aber irgendwie aufeinander zugreifen über verschiedene Kanäle, Weitergabe von Variablen, nur beinhalten Aussagen, die Dinge so, dieses Prinzip hilft, um Anwendungen zu erstellen das leichter sein kann, von mehreren Personen editiert, können leichter geändert werden oder in großem Umfang geändert, und sind leichter zu Debuggen in einer Vielzahl von Möglichkeiten. Wirklich schnell, ich habe ein paar Tipps für pset7, was werde ich Vollbild zu machen, damit Sie nicht bei einem Blick auf the-- Tipp Tipp Tippee. Es gibt nicht so viele Tipps. Aber ich erwähnt PHP ist schwer zu debuggen. Doppelt und dreifach überprüfen Sie es. Wenn Ihr Code ist einfach nicht angezeigt werden, auf der Seite, es ist wahrscheinlich eine PHP-Fehler, sorry. Sie müssen nie zu sehen CSS, wenn Sie nicht wollen, um. Aber, sobald Sie fertig sind, es sein kann eine nette kleine lustige Sache zu gehen Sie einfach in und Verwirrung mit der CSS-Parameter. CSS und HTML sind ein Beispiel für ein Modell View-Controller-Stil, was, oder? Sie könnten Style-Tags haben innerhalb von HTML-Elementen. Aber wenn Sie eine Art Outsourcing sie zu CSS, sie sind einfacher zu bearbeiten und spielen herum, und viel Spaß mit. Gönnen CS50-Helfer Funktionen wie Black Boxes. Sie brauchen nicht zu wissen, genau das, was render tut, aber glauben Sie es, um immer das richtige zu tun Sache, je nachdem, was Sie übergeben, Dinge wie diese. Und ich würde empfehlen beobachten Davids Komplettlösung, gehen durch alle Sachen, nicht nur die todos, aber Sie wirklich behandeln können diese als schwarze Kästchen. Nicht in diese gehen Funktionen auf der Suche nach Bugs. Und begrüßen die Rückkehr unserer Overlord Zamyla. Groß. Gibt es noch letzte Fragen vor wir Art von Sprungkraft für den Tag? Bin ich noch zu leben? Groß. Hallo Livestream Personen. Groß. Gibt es mehr Fragen? Nein? Und dann denke ich wir sind gut, für heute zu gehen. Ich werde bleiben, um ein wenig danach, wenn die Menschen hatte Fragen sie fürchteten sich, auf dem Strom zu fragen. Aber sonst, haben einen guten Tag.