1 00:00:00,000 --> 00:00:05,040 2 00:00:05,040 --> 00:00:08,440 >> SAM Levatich: Willkommen Abschnitt für diese Woche. 3 00:00:08,440 --> 00:00:10,040 Ich bin mir nicht Andi. 4 00:00:10,040 --> 00:00:14,590 Andi hat an diesem Tag krank geworden, und ich wurden Art von in letzter Minute aufgerufen 5 00:00:14,590 --> 00:00:15,700 übernehmen. 6 00:00:15,700 --> 00:00:20,920 Es ist Grippe-Saison, so stellen Sie sicher, dass Sie wohnen sauber, Waschen Sie Ihre Hände, 7 00:00:20,920 --> 00:00:24,800 und das Essen gesund, so dass Sie sind auch nicht bettlägerig. 8 00:00:24,800 --> 00:00:26,870 >> Aber ohne weitere Umschweife, lassen Sie uns beginnen. 9 00:00:26,870 --> 00:00:29,970 Heute werden wir sprechen über PHP ein wenig bit-- how 10 00:00:29,970 --> 00:00:33,900 PHP bezieht sich auf HTML, wie es CSS betrifft, und einige von der Bahn 11 00:00:33,900 --> 00:00:36,100 Sachen, die Sie auf der letzten Zuweisung taten. 12 00:00:36,100 --> 00:00:37,930 Wir werden einen Vortrag wenig über SQL 13 00:00:37,930 --> 00:00:41,360 und wie Sie mit Datenbanken arbeiten können, Das ist ein ziemlich wichtiger Bestandteil der P 14 00:00:41,360 --> 00:00:43,650 gesetzt 8-- P set 7. 15 00:00:43,650 --> 00:00:44,480 P-Satz 7. 16 00:00:44,480 --> 00:00:48,400 >> Und dann werden wir ein wenig sprechen wenig darüber, wie Ansicht-Controller arbeiten 17 00:00:48,400 --> 00:00:54,640 und warum, das ist eine Philosophie, die hinter einigen Moderne Web-Seiten und anderen Design. 18 00:00:54,640 --> 00:00:58,760 So ziemlich viele Arten von Apps und Anwendungen, die Sie vielleicht zu versenden 19 00:00:58,760 --> 00:01:01,120 sind mit diesem Modell, View-Controller-Framework, 20 00:01:01,120 --> 00:01:02,890 dass Sie in der Hilfe in P-Satz 7, also werde ich 21 00:01:02,890 --> 00:01:05,220 ein wenig sprechen warum, dass geworden 22 00:01:05,220 --> 00:01:07,970 beliebt, es ist, warum wichtig und schön. 23 00:01:07,970 --> 00:01:12,052 Und dann werde ich endlich bewegen auf einige Tipps über die Bewältigung P set 7. 24 00:01:12,052 --> 00:01:13,760 Und wenn wir Zeit haben mehr als am Ende nach links, 25 00:01:13,760 --> 00:01:17,320 können wir tatsächlich etwas zu tun Arbeit an, dass zusammen. 26 00:01:17,320 --> 00:01:20,380 >> Also, PHP. 27 00:01:20,380 --> 00:01:23,790 In der Tat kann man this-- bemerkt haben Sie hatte nicht wirklich in es-- tauchen 28 00:01:23,790 --> 00:01:27,880 aber P-Satz 6 hatte einige PHP Code, der vor sich ging. 29 00:01:27,880 --> 00:01:34,710 Und weil PHP ist eine C-ähnliche Sprache PHP, im Gegensatz zu HTML und CSS, 30 00:01:34,710 --> 00:01:39,030 ist eine Programmiersprache, in der Erwägung, HTML und CSS sind statisch. 31 00:01:39,030 --> 00:01:44,050 Sie sind Auszeichnungssprachen zu tun mit Stil und visuelle Layout. 32 00:01:44,050 --> 00:01:46,230 PHP ist die eigentliche Behandlung. 33 00:01:46,230 --> 00:01:51,590 >> PHP hat Schleifen, es hat conditions-- all das Zeug, das über C Spaß macht 34 00:01:51,590 --> 00:01:56,190 Es hat ein paar Dinge, die ein wenig sind etwas besser als C, die wir sehen werden, 35 00:01:56,190 --> 00:01:59,760 aber ich denke, der einfachste Weg, um zu sprechen über die PHP ist nur zu tauchen. 36 00:01:59,760 --> 00:02:04,087 Also werde ich nach rechts gehen in die IDE an diesem Punkt. 37 00:02:04,087 --> 00:02:06,170 Das erste, was wir gehen zu tun ist eigentlich aussehen 38 00:02:06,170 --> 00:02:10,169 ein wenig auf einige der PHP-Code, der in P war gesetzt 6. 39 00:02:10,169 --> 00:02:13,600 So ist die Art und Weise, die wir tun dass-- vor, die Art und Weise, die wir liefen 40 00:02:13,600 --> 00:02:18,550 der Server für das Gerät war, dass wir müssten Typ-- 41 00:02:18,550 --> 00:02:21,750 entweder Ihre Umsetzung oder Durchführung der Mitarbeiter 42 00:02:21,750 --> 00:02:27,059 von server.c indem Sie in Verzeichnis Laufen server.c mit entweder keine 43 00:02:27,059 --> 00:02:30,100 arguments-- nennen es so einfach auf die lokalen Host, das, was Sie wahrscheinlich 44 00:02:30,100 --> 00:02:31,849 haben die meisten der Zeit-- und dann füttern 45 00:02:31,849 --> 00:02:35,380 a directory-- mit , die als Wurzel verwenden 46 00:02:35,380 --> 00:02:38,310 wo die Website würde werden ausgeführt, im Grunde. 47 00:02:38,310 --> 00:02:42,180 >> Diese Woche für P gesetzt 7, wie groß, wie unser Code für server.c 48 00:02:42,180 --> 00:02:47,580 ist, gibt es Menschen, die bereits mehr als am CS50 schriftlichen diese feinen Dinge 49 00:02:47,580 --> 00:02:49,630 dass ein wenig haben mehr Funktionalität, 50 00:02:49,630 --> 00:02:52,920 ein Server-Programm, das in der Lage ist Umgang mit ein wenig mehr 51 00:02:52,920 --> 00:02:56,350 die Feinheiten, die wir sehen sowohl in der P-Satz 7 und P 8 festgelegt. 52 00:02:56,350 --> 00:03:01,410 Und die Art und Weise, die Sie Anfang Server durch einfaches Eintippen "apache50." 53 00:03:01,410 --> 00:03:03,960 >> Und bevor Sie etwas tun, Sie sicherstellen möchten, 54 00:03:03,960 --> 00:03:06,070 dass Apache 50 nicht bereits ausgeführt, wie es ist 55 00:03:06,070 --> 00:03:08,130 auf meinem Rechner, die ich tat, um es zu testen. 56 00:03:08,130 --> 00:03:10,320 Und Sie, dass durch den Aufruf apache50 zu tun. 57 00:03:10,320 --> 00:03:14,070 Zu stoppen, und Sie werden sehen, dass es zu stoppen der Web-Server, wenn Sie es sehen können 58 00:03:14,070 --> 00:03:16,340 an der Unterseite des Klemmen Fenster. 59 00:03:16,340 --> 00:03:21,090 Und dann, nur um zu starten, wir sind gehen zu nennen ", apache50 zu starten." 60 00:03:21,090 --> 00:03:23,150 Und dann werden wir um es zu füttern ein Verzeichnis. 61 00:03:23,150 --> 00:03:26,950 >> Nun, weil wir wollen, zu suchen auf einige der P 6 Code eingestellt 62 00:03:26,950 --> 00:03:32,850 dass wir, ich tatsächlich umgesetzt hatte kopiert ein wenig von der P 63 00:03:32,850 --> 00:03:37,090 Set 6-Code in meinem eigenen Ordner, die Sie auf der linken Seite sehen können. 64 00:03:37,090 --> 00:03:40,170 Es heißt "Section8" in Großbuchstaben 65 00:03:40,170 --> 00:03:44,510 denn ich bin nur so aufgeregt heute sein Live-Streaming. 66 00:03:44,510 --> 00:03:47,330 >> Also, wenn wir dies ausführen, sollte es arbeiten alle ziemlich effektiv. 67 00:03:47,330 --> 00:03:52,350 Er sagt, OK, ist jetzt unsere Seiten finden Sie unter der Adresse des IDE, 68 00:03:52,350 --> 00:03:57,710 im Grunde, der das, was Sie wurden mit Hilfe ist genau so, wie es war in P gesetzt 7-- P-Satz 6. 69 00:03:57,710 --> 00:04:00,899 Alle meine Indizes sind eine Index heute. 70 00:04:00,899 --> 00:04:02,940 So können wir zu gehen, Adresse, wenn Sie sich erinnern, 71 00:04:02,940 --> 00:04:05,710 nur um diesen kleinen Klick Button in der oberen rechten Ecke. 72 00:04:05,710 --> 00:04:14,200 >> Und Sie werden diesen Code, die daran erinnern, passiert, wenn Sie in hello.php ging. 73 00:04:14,200 --> 00:04:18,000 Und was der Code entworfen zu tun ist, wenn Sie einen Namen eingegeben haben 74 00:04:18,000 --> 00:04:20,550 hier--, wenn Sie sagen, Sam denn das ist meine name-- 75 00:04:20,550 --> 00:04:23,620 und ich klicken Say Hallo, wenn gingen wir auf die nächste Seite, 76 00:04:23,620 --> 00:04:25,270 dieser Name sollte angezeigt werden. 77 00:04:25,270 --> 00:04:28,550 Er würde sagen: "Hallo, Sam" oder "Hallo", beliebigen Namen 78 00:04:28,550 --> 00:04:32,470 legte in sie, obwohl wir gingen auf ein völlig neues Web-Seite. 79 00:04:32,470 --> 00:04:36,610 >> Und das ist die Art der Sache dass PHP für Sie tun können. 80 00:04:36,610 --> 00:04:42,840 PHP ist in der Lage, Daten zu übergeben zwischen zwei Web-Seiten. 81 00:04:42,840 --> 00:04:44,390 Das ist eine ganz andere Seite. 82 00:04:44,390 --> 00:04:46,990 Du wirst sehen, der Titel ist "Hallo" hier. 83 00:04:46,990 --> 00:04:49,080 Tatsächlich müssen sie Die gleichen Titel, aber ich 84 00:04:49,080 --> 00:04:52,560 versprechen sie verschiedene Web- Seiten, wenn wir uns an der Quelle. 85 00:04:52,560 --> 00:04:55,890 Und Sie können die Daten, die ist vorbei in diesem Textfeld eingegeben, 86 00:04:55,890 --> 00:04:59,830 der Übergabe an die nächste Seite, die gerade bis heißt, 87 00:04:59,830 --> 00:05:02,490 und dann diese Daten in der Lage ist da sein, in seiner jetzigen Form. 88 00:05:02,490 --> 00:05:04,810 >> Jetzt haben wir noch nicht umgesetzt dies uns, die 89 00:05:04,810 --> 00:05:08,710 ist das, was werden wir jetzt tun, Art bekommen einen Eindruck, wie PHP funktioniert, 90 00:05:08,710 --> 00:05:15,070 aber der Schlüssel Idee ist, dass PHP-- möglich Art daran denke wie eine Funktion. 91 00:05:15,070 --> 00:05:18,570 Etwas, das PHP können Sie lassen Sie ist es können Parameter übernehmen 92 00:05:18,570 --> 00:05:24,710 dass Sie Eingabe in eine HTML-Seite durch den Einsatz von PHP und Formen, 93 00:05:24,710 --> 00:05:29,960 und es kann jene, die als Parameter übergeben weiter zur nächsten Seite, die es lädt auf. 94 00:05:29,960 --> 00:05:35,110 >> In diesem Fall, wir laden Sie diese Seite mit "Sag hallo" -Taste. 95 00:05:35,110 --> 00:05:38,960 Aber jetzt habe ich eigentlich gelöscht etwas von diesem Code 96 00:05:38,960 --> 00:05:44,850 im hello.php, die ausgeführt wurde dass tatsächlich die Anzeige der "hallo, 97 00:05:44,850 --> 00:05:49,680 Welt "oder" hallo, Sam "oder "Hallo", was auch immer war einfach Eingabe. 98 00:05:49,680 --> 00:05:53,620 So für jetzt, wir sind gehen, um das zu tun, im Grunde. 99 00:05:53,620 --> 00:05:56,570 Wir werden, dass neu zu erstellen und Auch einige weitere Funktionen hinzuzufügen, 100 00:05:56,570 --> 00:06:00,210 tun ein wenig mehr mit ihm zu sehen was PHP ist wirklich in der Lage ist. 101 00:06:00,210 --> 00:06:04,870 >> Also lassen Sie uns zuerst darüber reden Diese Datei, hello.php. 102 00:06:04,870 --> 00:06:07,440 Wenn wir also Zoom in einem wenig bit-- und jetzt bin ich 103 00:06:07,440 --> 00:06:10,520 Art versuchen, alle zu blättern die Art, wie es herum-- wir gehen. 104 00:06:10,520 --> 00:06:14,220 Du wirst sehen, es heißt hello.php, aber die Syntax davon 105 00:06:14,220 --> 00:06:16,880 sieht aus wie eine HTML-Datei. 106 00:06:16,880 --> 00:06:20,380 Dies, weil das Ist PHP in dieser Datei 107 00:06:20,380 --> 00:06:25,220 ist alles dazwischen stecken Fragezeichen-Caret blockiert. 108 00:06:25,220 --> 00:06:28,610 Alles hier wird als PHP-Code. 109 00:06:28,610 --> 00:06:32,040 >> Und Sie werden feststellen, dass als ich einen Kommentar, 110 00:06:32,040 --> 00:06:35,320 Sie werden die familiäre sehen zwei Schrägstriche. 111 00:06:35,320 --> 00:06:38,440 Und wenn Sie sich erinnern, in HTML, wenn ich einen Kommentar eingeben, 112 00:06:38,440 --> 00:06:42,540 es war etwas näher betrachtet Dieses, das ein Kommentar in HTML ist. 113 00:06:42,540 --> 00:06:46,570 Also wirklich alles, was zwischen diese beiden spitzen Klammern 114 00:06:46,570 --> 00:06:50,060 ist jetzt PHP-Code, der liegt in der Tatsache wider, 115 00:06:50,060 --> 00:06:53,270 dass dieser kleine Kommentarsymbol wird in einem Kommentar gedreht. 116 00:06:53,270 --> 00:06:58,420 >> Also jedes Mal, wenn Sie PHP-Code zu schreiben, auch wenn es keine HTML-Code außerhalb von ihr, 117 00:06:58,420 --> 00:07:02,720 es immer sein wird in diesen spitzen Klammern 118 00:07:02,720 --> 00:07:04,080 mit Fragezeichen. 119 00:07:04,080 --> 00:07:08,260 Sie können eine Art zu denken, wie alle es-- der Code, der in Ihren C-Programmen lief 120 00:07:08,260 --> 00:07:13,950 wurde in einem int main, nichtig umschlossen, geschweifte Klammer, Ende geschweifte Klammer Aussage. 121 00:07:13,950 --> 00:07:17,100 Und Sie werden sehen, in geschweiften Klammern PHP, auch, aber das ist eine Art 122 00:07:17,100 --> 00:07:20,490 wie die wichtigste Methode der PHP. 123 00:07:20,490 --> 00:07:25,630 >> So, jetzt, wie können wir etwas in PHP zu tun? 124 00:07:25,630 --> 00:07:29,190 Nun, das ist eine Programmiersprache PHP Sprache, die sehr C-like ist, 125 00:07:29,190 --> 00:07:30,970 aber es funktioniert auf dem Netz. 126 00:07:30,970 --> 00:07:33,270 So eine Sache, Sie werden eine immediately-- 127 00:07:33,270 --> 00:07:38,130 der ersten Dinge, die Sie wirklich mit tat C wurde sie gedruckt Zeug aus, nicht wahr? 128 00:07:38,130 --> 00:07:42,290 So in C wir das täten, mit einer printf-Funktion. 129 00:07:42,290 --> 00:07:46,430 Wir gaben ihm einen String, wahrscheinlich mit einer neuen Linie, 130 00:07:46,430 --> 00:07:49,850 und dann werden wir beendet sie mit einem Semikolon. 131 00:07:49,850 --> 00:07:53,790 >> So ist die Möglichkeit, dass wir gehen, um das zu tun in PHP--, weil es ist nicht ganz printf. 132 00:07:53,790 --> 00:07:55,940 Es ist ein bisschen andere Syntax. 133 00:07:55,940 --> 00:08:02,580 Die Art und Weise, die wir drucken Dinge in PHP ist, dass wir sagen: "echo hallo" 134 00:08:02,580 --> 00:08:04,180 oder "echo" jedes Wort. 135 00:08:04,180 --> 00:08:09,830 Und dass die Wirkung zu tun hat printf mit einer Schnur, "hallo." 136 00:08:09,830 --> 00:08:11,990 Und die neue Linie ergänzt es. 137 00:08:11,990 --> 00:08:16,000 >> Lassen Sie uns also jetzt machen sure-- Ich werde wieder heran ein wenig bit-- 138 00:08:16,000 --> 00:08:18,250 Lassen Sie uns dafür sorgen, dass dass Code funktioniert 139 00:08:18,250 --> 00:08:21,030 denn es kann sehr auch einen Fehler in dieser Code 140 00:08:21,030 --> 00:08:22,880 dass müssen wir angehen. 141 00:08:22,880 --> 00:08:25,860 So dass der Server bereits ausgeführt wird. 142 00:08:25,860 --> 00:08:30,630 Also, wenn wir wieder nach unten auf den Boden zu blättern, yup, der Server noch läuft. 143 00:08:30,630 --> 00:08:34,510 Also, wenn wir nur auf diese tippen wenig rechts hier-- 144 00:08:34,510 --> 00:08:37,620 welcome-- wir sollten get-- groß. 145 00:08:37,620 --> 00:08:39,930 >> Wir sind immer noch mit der familiar "Sag hallo" Dialog, 146 00:08:39,930 --> 00:08:45,750 aber wenn ich geben Sie "hallo," wir werden sehen, dass der Text "Hallo" war in der Tat 147 00:08:45,750 --> 00:08:50,080 ausgedruckt, das ist genau, wie es Wir erwarten, da Echo in PHP 148 00:08:50,080 --> 00:08:53,190 ist wie eine printf-Anweisung. 149 00:08:53,190 --> 00:09:01,410 Also zurück zu dem Code, wie in P-Satz 6 hat die Verteilung Code, den Sie zur Verfügung gestellt werden 150 00:09:01,410 --> 00:09:05,920 machen es so, dass PHP würde Ausgang der Sache, die Sie 151 00:09:05,920 --> 00:09:07,920 in auf dem vorherigen Bildschirm getippt? 152 00:09:07,920 --> 00:09:10,350 >> Und Art zu untersuchen warum das passiert, sind wir 153 00:09:10,350 --> 00:09:15,510 werde in index.html zu gehen, die ist der Original-Datei, die Datei, 154 00:09:15,510 --> 00:09:18,710 zeigt sich auf diesem Bildschirm mit dem "Sag hallo" -Taste. 155 00:09:18,710 --> 00:09:20,950 Man merkt, dass es alle klassischen Dinge 156 00:09:20,950 --> 00:09:26,910 wir sind gekommen, um von HTML wie erwartet als diese Dinge, geschlossenen diese Tags 157 00:09:26,910 --> 00:09:31,080 in spitzen Klammern, wie PHP aber ohne die Fragezeichen, 158 00:09:31,080 --> 00:09:34,650 was auf eine besondere Sache, um HTML. 159 00:09:34,650 --> 00:09:36,895 Wir haben Titel, die "hallo." 160 00:09:36,895 --> 00:09:41,010 Und Sie, denn wie wir gesehen haben bemerkt, der Titel ist "Hallo" in beiden Fällen. 161 00:09:41,010 --> 00:09:43,260 Lassen Sie uns diese ein ändern zu "sagen", nur damit wir 162 00:09:43,260 --> 00:09:48,170 können wir uns unterscheiden, wo wir sind. 163 00:09:48,170 --> 00:09:49,600 >> Aber wir haben einen Körper hat. 164 00:09:49,600 --> 00:09:52,690 Und dann die interessante Bit, das Bit, die in der HTML-zeigt, 165 00:09:52,690 --> 00:09:54,530 ist diese Form-Element. 166 00:09:54,530 --> 00:09:56,370 Und so haben wir eine Form bekam. 167 00:09:56,370 --> 00:09:58,330 Und das ist der Schlüssel. 168 00:09:58,330 --> 00:10:00,530 Dies ist, wie wir es mit PHP arbeiten. 169 00:10:00,530 --> 00:10:05,790 Der Parameter Wirkung Form sagt, dass hello.php 170 00:10:05,790 --> 00:10:09,310 ist das, was wir werden senden die Werte in dieser Form. 171 00:10:09,310 --> 00:10:13,830 Dies ist, wo wir vorbei die Parameter so zu sagen. 172 00:10:13,830 --> 00:10:18,680 >> Sie werden eine andere Sache, hier feststellen, ist, dass die Methode "zu erhalten." 173 00:10:18,680 --> 00:10:24,450 Es gibt zwei primäre Methoden, mit denen wird 174 00:10:24,450 --> 00:10:28,750 werden mit Hilfe von PHP, um Daten zu übergeben zwischen websites-- Web-Seiten, 175 00:10:28,750 --> 00:10:30,500 rather-- in dieser Zuordnung. 176 00:10:30,500 --> 00:10:34,070 Und diese Methoden sind "get" und "Post". 177 00:10:34,070 --> 00:10:37,010 Es gibt einige subtile Unterschiede zwischen GET und POST 178 00:10:37,010 --> 00:10:40,520 dass wir bekommen into-- wir wird "get" in die, wenn man so will. 179 00:10:40,520 --> 00:10:44,030 >> Aber für alle Absichten und Zwecken erhalten und Post 180 00:10:44,030 --> 00:10:47,120 sind jeweils nur Möglichkeiten, Sie Parameter übergeben 181 00:10:47,120 --> 00:10:49,500 mit leicht unterschiedlichen Ausführungen. 182 00:10:49,500 --> 00:10:53,500 Denn jetzt werden wir bekommen, weil verwenden zu bekommen war, was wurde ursprünglich verwendet, 183 00:10:53,500 --> 00:10:57,340 in der PHP-Datei des P-Satz 6. 184 00:10:57,340 --> 00:11:00,850 Und tatsächlich, wenn wir in und suchen bevor wir irgendetwas anderes bearbeitet, 185 00:11:00,850 --> 00:11:03,090 Ich werde zu sagen hallo zu-- was ist Ihr Name? 186 00:11:03,090 --> 00:11:03,812 >> ZIELGRUPPE: Elliot. 187 00:11:03,812 --> 00:11:04,770 SAM Levatich: Oh, mein Gott. 188 00:11:04,770 --> 00:11:05,600 Ich weiß nicht, wie das zu buchstabieren. 189 00:11:05,600 --> 00:11:06,766 Könnten Sie das buchstabieren für mich? 190 00:11:06,766 --> 00:11:08,710 ZIELGRUPPE: E-L-L-I-O-T. 191 00:11:08,710 --> 00:11:09,720 >> SAM Levatich: I-O-T? 192 00:11:09,720 --> 00:11:10,440 >> ZIELGRUPPE: Ja. 193 00:11:10,440 --> 00:11:10,960 >> SAM Levatich: Perfect. 194 00:11:10,960 --> 00:11:11,210 OK. 195 00:11:11,210 --> 00:11:12,751 Ich glaube, ich wusste, wie das zu buchstabieren. 196 00:11:12,751 --> 00:11:13,510 Bitten um Entschuldigung. 197 00:11:13,510 --> 00:11:16,560 Aber wenn wir sagen: "Sagen Sie hallo," es ist nicht es wird nicht auf dem Bildschirm angezeigt, 198 00:11:16,560 --> 00:11:18,476 doch weil wir modifiziert der Code ein wenig. 199 00:11:18,476 --> 00:11:21,290 Aber wenn wir "Sag hallo" - OK, also "Hallo" ist hier. 200 00:11:21,290 --> 00:11:24,137 Aber wenn wir einen genaueren nehmen sehen Sie die URL selbst, 201 00:11:24,137 --> 00:11:26,220 wir werden sehen, dass es endet mit hello.php? name = Elliot. 202 00:11:26,220 --> 00:11:30,980 203 00:11:30,980 --> 00:11:37,180 >> Ja, ist dies eine Möglichkeit, Kommunikation auf die nächste Seite, 204 00:11:37,180 --> 00:11:39,240 die Parameter, die wir geführt haben. 205 00:11:39,240 --> 00:11:40,870 Wir haben gesagt, name = Elliot. 206 00:11:40,870 --> 00:11:46,290 Und das ist letztlich, wie P-Satz 6 abgerufen die Variable, die wir übergeben 207 00:11:46,290 --> 00:11:47,520 durch die Form. 208 00:11:47,520 --> 00:11:51,470 Und das ist etwas, eigentümlich ist eine GET-Anforderung. 209 00:11:51,470 --> 00:11:57,480 Eine GET-Anforderung macht die Parameter in der URL der Website bekannt. 210 00:11:57,480 --> 00:12:01,190 >> Und du wirst zu erinnern, in P-Satz 6, dass Sie 211 00:12:01,190 --> 00:12:04,450 hatte, um eine Funktion zu schreiben das mit der Tatsache behandelt 212 00:12:04,450 --> 00:12:09,700 dass diese Abfrage-String konnte nach einer Datei vorhanden sind. 213 00:12:09,700 --> 00:12:14,684 Es könnte ein Fragezeichen sein durch im Grunde beliebigen Anzahl von Zeichen. 214 00:12:14,684 --> 00:12:16,350 Und das ist genau das, was hier vor sich geht. 215 00:12:16,350 --> 00:12:21,280 Und der Grund dafür, dass du das parsen in Ihrer Implementierung von server.c in P 216 00:12:21,280 --> 00:12:27,570 Set 6 ist so, dass man sagen konnte, die PHP-Code, der name = Elliot. 217 00:12:27,570 --> 00:12:30,460 Sie benötigt, um in der Lage zu sein, analysieren, dass von der URL 218 00:12:30,460 --> 00:12:35,900 so dass die PHP-Datei in Frage wusste, was es war zu tun haben. 219 00:12:35,900 --> 00:12:39,350 >> Also hoffentlich das gibt die Motivation, server.c 220 00:12:39,350 --> 00:12:43,900 jetzt, dass wir ziehen an außerhalb von C in PHP. 221 00:12:43,900 --> 00:12:48,240 Lassen Sie uns also tatsächlich auf den Zugriff auf das zu konzentrieren Dinge durch eine GET-Anforderung übergeben jetzt 222 00:12:48,240 --> 00:12:48,880 an diesem Punkt. 223 00:12:48,880 --> 00:12:50,157 Ich werde dies zu speichern. 224 00:12:50,157 --> 00:12:51,240 Wir haben nichts zu ändern. 225 00:12:51,240 --> 00:12:56,080 Es sieht aus wie wir haben ein Eingabefeld hat. 226 00:12:56,080 --> 00:12:58,550 >> Wir setzen einige Eigenschaften, wie wir eine HTML zu tun. 227 00:12:58,550 --> 00:12:59,550 Dies sind einfache Dinge. 228 00:12:59,550 --> 00:13:00,580 Wir brauchen nicht diese. 229 00:13:00,580 --> 00:13:03,750 Aber wir haben Autovervollständigung erwischte, die im Grunde says-- Sie wissen, 230 00:13:03,750 --> 00:13:05,710 wenn Sie die Dinge geben in die Bahn, manchmal 231 00:13:05,710 --> 00:13:07,355 es versucht, dass in zu füllen für Sie. 232 00:13:07,355 --> 00:13:08,230 Also ist es eine schöne Sache. 233 00:13:08,230 --> 00:13:11,700 Wir wollen, um sie auszuschalten für diesen Zweck. 234 00:13:11,700 --> 00:13:13,970 Das war ein CS50 Entscheidung. 235 00:13:13,970 --> 00:13:15,640 So können wir zu löschen, dass, wenn wir wollten. 236 00:13:15,640 --> 00:13:19,510 >> Autofokus-Sticks nur den Cursor in der Form gleich zu Beginn. 237 00:13:19,510 --> 00:13:21,060 Auch nicht zu wichtig. 238 00:13:21,060 --> 00:13:26,220 >> Aber name = "name" - es ist ein wenig tricky, weil es Namen und Namen. 239 00:13:26,220 --> 00:13:28,730 Aber wir konnten geändert haben dies etwas anderes. 240 00:13:28,730 --> 00:13:30,563 Und in der Tat, das ist, was wir jetzt tun. 241 00:13:30,563 --> 00:13:34,830 Wir sagen, "Person", die ist so etwas wie Namen 242 00:13:34,830 --> 00:13:36,790 wenn eine Person durch ihren Namen definiert. 243 00:13:36,790 --> 00:13:41,480 >> Also lassen Sie uns diese zu schließen, öffnen Sie unsere Website 244 00:13:41,480 --> 00:13:46,110 Seit unserem Server noch läuft Apache 50, und wir werden sagen, hallo, hier ist 245 00:13:46,110 --> 00:13:47,200 Elliot wieder. 246 00:13:47,200 --> 00:13:48,460 Warum nicht? 247 00:13:48,460 --> 00:13:49,220 Hallo. 248 00:13:49,220 --> 00:13:52,880 Und wenn wir hier oben, werden wir sehen, dann statt name = Elliot, 249 00:13:52,880 --> 00:13:55,200 sagt, dass es Personen = Elliot. 250 00:13:55,200 --> 00:14:00,060 Und das ist eine direkte Folge der Tatsache, dass wir gerade name = "Person". ändern 251 00:14:00,060 --> 00:14:06,840 >> So in einem Eingangsglied ein HTML-Formular, das Namensfeld 252 00:14:06,840 --> 00:14:10,590 ist die Kennung für die Parameter, die übergeben hat. 253 00:14:10,590 --> 00:14:14,250 Es ist wie wenn Sie eine Funktion erstellen "Hinzufügen", die in zwei ganzen Zahlen nahm 254 00:14:14,250 --> 00:14:16,670 und Sie sagten, ein int und int b. 255 00:14:16,670 --> 00:14:22,680 Das wäre ein Name sein, und wenn Sie eine andere Form, wollte die 256 00:14:22,680 --> 00:14:27,800 wir einfach durch Kopieren tun können, und Einfügen, dann würden wir b Namen haben. 257 00:14:27,800 --> 00:14:31,030 >> So, jetzt werden wir zwei Parameter unterstützt, die über übergeben werden 258 00:14:31,030 --> 00:14:36,970 lernen Sie die nächste website-- die nächste Web-Seite, hello.php. 259 00:14:36,970 --> 00:14:39,770 Und wir tatsächlich sehen können das noch einmal, wenn wir wollen. 260 00:14:39,770 --> 00:14:44,830 Dies ist die einfachste Art und Weise zu behandeln die Web-Code in der IDE, im Grunde. 261 00:14:44,830 --> 00:14:47,940 Sie starten den Server, um es läuft, und dann jedes Mal wenn Sie 262 00:14:47,940 --> 00:14:50,649 einige Änderungen vornehmen, nur in der Nähe die Datei, nur um sicher zu sein. 263 00:14:50,649 --> 00:14:52,440 Durch Drücken der Zurück-Taste ist ein wenig kompliziert 264 00:14:52,440 --> 00:14:55,800 weil es vielleicht eine frühere laden Version, nicht die neue. 265 00:14:55,800 --> 00:14:59,200 >> Und dann klicken Sie einfach auf Ihre Taste erneut, pop rechten up-- oh, 266 00:14:59,200 --> 00:15:00,510 und jetzt gibt es zwei Formen. 267 00:15:00,510 --> 00:15:10,440 Und so, wenn wir geben eine Sache in jede one-- "jason hirshhorn" für instance-- 268 00:15:10,440 --> 00:15:11,590 wir sagen hallo. 269 00:15:11,590 --> 00:15:12,840 Wir schauen auf unsere Parameter. 270 00:15:12,840 --> 00:15:18,910 Es sieht aus wie wir haben, wie erwartet, a = Jason und b = hirshhorn, 271 00:15:18,910 --> 00:15:23,760 dem die beiden Parameter darstellt dass wir geführt, um diese Funktion. 272 00:15:23,760 --> 00:15:27,900 >> So, jetzt wollen wir eigentlich zu bekommen Umsetzung dieser Funktionalität, die wir 273 00:15:27,900 --> 00:15:30,840 in P hatte set 6. 274 00:15:30,840 --> 00:15:32,490 So jetzt sind wir nur hallenden hallo. 275 00:15:32,490 --> 00:15:34,310 Und das ist nicht sehr nützlich. 276 00:15:34,310 --> 00:15:38,530 Wir wollen einige variable echo das war für uns übergeben. 277 00:15:38,530 --> 00:15:40,320 Und wir wissen, den Namen dieser Variablen. 278 00:15:40,320 --> 00:15:41,770 Wir haben ein, und wir haben b. 279 00:15:41,770 --> 00:15:43,500 So konnten wir wählen, um entweder ein Echo. 280 00:15:43,500 --> 00:15:45,470 >> Aber wie können wir darauf zugreifen? 281 00:15:45,470 --> 00:15:48,820 Nun, es gibt bestimmte globale Variablen in PHP. 282 00:15:48,820 --> 00:15:51,240 Und ich werde zu schreiben sie in den Kommentaren hier. 283 00:15:51,240 --> 00:15:59,910 Die beiden wichtigsten sind get und Post für unsere Zwecke im Augenblick. 284 00:15:59,910 --> 00:16:05,350 Dies sind die Felder oder, technisch gesehen, die Wörterbücher 285 00:16:05,350 --> 00:16:10,540 wo unsere Variablen, die wir sind die Zulassung zur nächsten Web-Seite zu Hause sind. 286 00:16:10,540 --> 00:16:14,520 Und wir werden bald sehen, wie man sie benutzt. 287 00:16:14,520 --> 00:16:19,720 >> Eine weitere kurze Notiz über PHP-Code und einige Besonderheiten der es-- in C, 288 00:16:19,720 --> 00:16:23,260 um eine Variable zu deklarieren oder Variablen verwenden, 289 00:16:23,260 --> 00:16:24,570 Sie hatte zunächst, sie zu erklären. 290 00:16:24,570 --> 00:16:30,860 Und was Sie tun musste, wenn man erklärte ihnen sagen, ein int oder char b. 291 00:16:30,860 --> 00:16:35,630 Sie haben, um die Arten von ihnen erklären, Variablen, bevor Sie sie erschaffen. 292 00:16:35,630 --> 00:16:38,800 PHP-- brauchen Sie nicht zu einem, das zu tun. 293 00:16:38,800 --> 00:16:42,522 PHP nicht für Fragen Der Typ der Variablen. 294 00:16:42,522 --> 00:16:44,480 Und die Art und Weise, dass Sie schaffen eine'variable eher 295 00:16:44,480 --> 00:16:49,930 als zu sagen, int, char, string-- die wirklich char * ist, wie wir wissen-- 296 00:16:49,930 --> 00:16:52,180 anstatt sich all daß, weil alles, was 297 00:16:52,180 --> 00:16:54,620 ist vom gleichen Typ, typenlosen, können wir nur 298 00:16:54,620 --> 00:16:59,210 Verwenden Sie eine Charakter, ist das Dollarzeichen. 299 00:16:59,210 --> 00:17:03,700 Und Sie werden sehen, es ist schon knallen up, wenig Autovervollständigung Dinge. 300 00:17:03,700 --> 00:17:11,380 Und es ist von selbst, dass _GET und _POST Sie haben zwei Möglichkeiten, die mir zur Verfügung steht 301 00:17:11,380 --> 00:17:11,900 für mich. 302 00:17:11,900 --> 00:17:16,430 Einige dieser anderen Dinge sind anderen globalen Variablen in PHP 303 00:17:16,430 --> 00:17:18,430 dass Sie über verwenden der Verlauf der P-Satz 7. 304 00:17:18,430 --> 00:17:20,569 Denn jetzt sind wir zu gehen konzentrieren sich auf die GET und POST. 305 00:17:20,569 --> 00:17:22,910 Aber dies ist ein hilfreich Sache, dass die IDE tut 306 00:17:22,910 --> 00:17:24,980 wo einst du eingegeben haben in diesem Dollar-Zeichen, 307 00:17:24,980 --> 00:17:28,760 es wird starten Ausfüllen globale Variablen oder Variablen, die Sie bereits definiert haben. 308 00:17:28,760 --> 00:17:34,360 >> Also, wenn Sie zu definieren wollte eine Variable namens "string" 309 00:17:34,360 --> 00:17:38,290 Sie könnten nur setzen Sie ihn auf gleich "hallo." 310 00:17:38,290 --> 00:17:40,100 Und es ist im Grunde so einfach ist das. 311 00:17:40,100 --> 00:17:44,720 Und dann wir tun könnten, so etwas wie "echo $ string." 312 00:17:44,720 --> 00:17:48,524 Die IDE sollte etwas werden zu werfen Fehler, wenn ich mache alles falsch, 313 00:17:48,524 --> 00:17:50,190 so hoffentlich bin ich alles richtig zu machen. 314 00:17:50,190 --> 00:17:52,060 Aber Bugs immer Sie auftreten. 315 00:17:52,060 --> 00:17:56,670 >> Eine weitere heikle Sache zu PHP ist, dass es nicht kompiliert. 316 00:17:56,670 --> 00:18:00,640 Also mit C-Programmen, die Sie tun würde der Alltag von-- Grunde, 317 00:18:00,640 --> 00:18:02,710 Sie Bearbeitungen zu machen Ihr Code, würden Sie es speichern, 318 00:18:02,710 --> 00:18:04,460 und dann würden Sie, machen es, wenn make war 319 00:18:04,460 --> 00:18:08,830 der Schritt, den Compiler genannt wird, klirren, um Ihren Code zu machen, dieser Text 320 00:18:08,830 --> 00:18:10,570 Datei, in eine ausführbare Datei. 321 00:18:10,570 --> 00:18:15,550 PHP ist C-ähnliche, aber es wird ausgeführt on the fly durch Ihren Web-Browser. 322 00:18:15,550 --> 00:18:17,640 Es gibt also keine Möglichkeit zu wissen. 323 00:18:17,640 --> 00:18:19,790 >> Machen würde diejenigen, werfen hilfreich Fehler, nicht wahr? 324 00:18:19,790 --> 00:18:22,190 Es wäre wie, Sie in der nicht diese Variable deklarieren 325 00:18:22,190 --> 00:18:23,320 bevor Sie versucht, es zu benutzen. 326 00:18:23,320 --> 00:18:29,120 Du hast all diese schlechten stuff-- segfault, segfault, all diese Art von Spaß Zeiten 327 00:18:29,120 --> 00:18:31,000 das kam mit make. 328 00:18:31,000 --> 00:18:33,920 PHP ist ein zweischneidiges Schwert weil Sie nicht diese Fehler zu bekommen, 329 00:18:33,920 --> 00:18:37,770 aber das bedeutet auch, dass Sie nicht wissen, wirklich, was ist los mit Ihrem Programm 330 00:18:37,770 --> 00:18:39,840 wenn Sie führen Sie es einfach und es funktioniert nicht. 331 00:18:39,840 --> 00:18:45,130 Aber der Debugger sollte darauf hinweisen, einige hoffentlich hilfreiche Kleinigkeiten 332 00:18:45,130 --> 00:18:47,950 syntaktisch, dass Sie beheben können. 333 00:18:47,950 --> 00:18:52,850 >> So, jetzt, wenn wir über zu-- gehen sagen wir schließen, dass. 334 00:18:52,850 --> 00:18:54,522 Wieder öffnen. 335 00:18:54,522 --> 00:18:55,480 Und wir sind wieder hier. 336 00:18:55,480 --> 00:18:57,210 Also haben wir eine Variable hat und eine variable b. 337 00:18:57,210 --> 00:18:58,626 Und das wird nicht letztlich egal. 338 00:18:58,626 --> 00:19:01,850 Wir werden sie h und g nennen ohne besonderen Grund. 339 00:19:01,850 --> 00:19:03,120 >> Und wir sagen, hallo. 340 00:19:03,120 --> 00:19:07,480 Jetzt sieht es aus wie unsere String "Hallo" ist in der Tat Druck. 341 00:19:07,480 --> 00:19:10,460 Wir haben eine Variable mit dem Namen "string", setzen Sie ihn auf gleich "hallo." 342 00:19:10,460 --> 00:19:15,520 Beachten Sie, dass wir nicht zu tun haben, malloc oder einen Zeichen-Array. 343 00:19:15,520 --> 00:19:19,110 >> In PHP, weil Variablen sind ohne Typ, ein String 344 00:19:19,110 --> 00:19:22,230 ist das gleiche wie ein Zeichen für jeder Hinsicht. 345 00:19:22,230 --> 00:19:23,570 Dies könnte "hallo." 346 00:19:23,570 --> 00:19:26,340 Dies könnte nur das Zeichen k sein. 347 00:19:26,340 --> 00:19:29,290 Dies kann ein Nummer 1 zu sein. 348 00:19:29,290 --> 00:19:30,300 Und es kümmert sich nicht. 349 00:19:30,300 --> 00:19:33,560 PHP kümmert sich nicht um Typ Ihres variabel. 350 00:19:33,560 --> 00:19:34,390 Oder tut es Pflege. 351 00:19:34,390 --> 00:19:36,240 Es kümmert sich, wenn Sie versuchen und Dinge tun, mit ihm, 352 00:19:36,240 --> 00:19:38,790 aber es kümmert sich nicht in die Erklärung Schritt. 353 00:19:38,790 --> 00:19:46,960 >> Und genau wie möglich in C, können Sie erklären Saiten auf den Stapel wie folgt 354 00:19:46,960 --> 00:19:51,130 aber sagen, "Stack" ist ein wenig Bit einer potenziellen Fehlbezeichnung, wenn 355 00:19:51,130 --> 00:19:52,230 wir über PHP sprechen. 356 00:19:52,230 --> 00:19:54,020 Aber wir haben keine Sorgen zu machen. 357 00:19:54,020 --> 00:19:55,936 Also unsere String bekamen wir "Hallo", und wir echo String. 358 00:19:55,936 --> 00:19:58,880 So, jetzt haben wir Variablen diskutiert. 359 00:19:58,880 --> 00:20:06,060 So, jetzt müssen wir über get reden und posten und führen Sie die letzte Sache, die ist 360 00:20:06,060 --> 00:20:12,660 benötigt, um wirklich diese wieder aufstehen um die Funktionalität des P-Satz 6. 361 00:20:12,660 --> 00:20:14,990 So jetzt sind wir Echo der String, aber wir 362 00:20:14,990 --> 00:20:17,080 Sie haben diese Variablen zu erhalten und Post. 363 00:20:17,080 --> 00:20:19,430 Und weil wir verwenden das Verfahren zu erhalten, ist es 364 00:20:19,430 --> 00:20:24,810 scheint natürlich, dass unsere Variable, wir interessiert sind, a und b, 365 00:20:24,810 --> 00:20:29,870 wird in der Anordnung angeordnet werden oder Wörterbuch, technisch zu bekommen. 366 00:20:29,870 --> 00:20:33,510 >> Wenn wir also die Einrichtung wie diese zu erhalten mit Ihrem groups-- Ich drückte geben 367 00:20:33,510 --> 00:20:36,770 und es nicht wie es-- aber hier haben wir bekommen. 368 00:20:36,770 --> 00:20:38,000 Und so bekommen bereits vorhanden ist. 369 00:20:38,000 --> 00:20:41,380 So können wir bereits den Zugriff starten einige der Elemente von get. 370 00:20:41,380 --> 00:20:45,000 Wenn wir nicht bekommen, diese Syntax für Arrays in PHP ist sehr C-like. 371 00:20:45,000 --> 00:20:47,900 Wir haben unsere zwei eckigen Klammern. 372 00:20:47,900 --> 00:20:53,440 >> Also, wenn wir sagen, bekommen in einem normalen Arrays, die wir zugreifen können 373 00:20:53,440 --> 00:20:55,600 die nullte-Index, der erste Index. 374 00:20:55,600 --> 00:20:56,840 PHP ist Null-Index. 375 00:20:56,840 --> 00:21:00,550 Wir könnten sagen, null, eins, two-- Sachen wie diese. 376 00:21:00,550 --> 00:21:03,420 Und ich habe gesagt, dass zu bekommen ist technisch ein Wörterbuch. 377 00:21:03,420 --> 00:21:08,290 Also, was PHP ist unter der Haube zu tun, Das ist ein bisschen schöner als C, 378 00:21:08,290 --> 00:21:12,760 ist es bereits gibt Ihnen einige Wörterbuch-Funktionalität, die 379 00:21:12,760 --> 00:21:16,240 ist wirklich Hash-Tabellen, oder versucht, angeblich. 380 00:21:16,240 --> 00:21:19,360 Oder es technisch könnte einen Versuch als gut. 381 00:21:19,360 --> 00:21:25,500 Aber PHP ist die Umsetzung einer Hash-Tabelle, das bildet eine wirksame Wörterbuch. 382 00:21:25,500 --> 00:21:28,400 >> Und so wir wissen, den Namen unserer variable, nicht wahr? 383 00:21:28,400 --> 00:21:32,440 Es wird übergeben die Abfragezeichenfolge von PHP. 384 00:21:32,440 --> 00:21:37,290 Wir haben ein = h und b = g, wo und b sind die Namen der Variablen. 385 00:21:37,290 --> 00:21:41,580 So ist die Möglichkeit, dass wir Zugriff auf die Wert, der dem Schlüssel entspricht 386 00:21:41,580 --> 00:21:45,055 im Wörterbuch ist nur mit den Worten _GET_GET ["a"]. 387 00:21:45,055 --> 00:21:48,170 388 00:21:48,170 --> 00:21:51,365 >> Jetzt haben wir also _GET ["a"]. 389 00:21:51,365 --> 00:21:56,930 Und wenn wir innerhalb austauschen gerade unsere Echo, wenn wir echo _GET_GET ["a"] - 390 00:21:56,930 --> 00:22:02,410 und wir werden, wenn der Debugger zu sehen wirft Fehler zu this-- 391 00:22:02,410 --> 00:22:05,620 wir, dass zu speichern und dieses heraus. 392 00:22:05,620 --> 00:22:07,130 Öffnen Sie es. 393 00:22:07,130 --> 00:22:10,390 Also werden wir nur tun, ein Recht Jetzt, so b sollte keine Rolle spielen. 394 00:22:10,390 --> 00:22:12,980 "sie" und "ihn" - "summen." "sie" und "hum". 395 00:22:12,980 --> 00:22:14,810 Klingt gut. 396 00:22:14,810 --> 00:22:18,040 >> Und es ausgedruckt "sie", die verrückt ist. 397 00:22:18,040 --> 00:22:21,920 Aber das ist genau das, was wurde im P passiert set 6. 398 00:22:21,920 --> 00:22:27,240 Grundsätzlich setzen, welche P 6 war doing-- echo hallo, 399 00:22:27,240 --> 00:22:31,580 name-- wo es hatte einen Variablennamen und es einfach 400 00:22:31,580 --> 00:22:35,520 bittet Sie, in diesem Stück Text eingeben. 401 00:22:35,520 --> 00:22:37,380 Es gab auch einige Zusatzcode, wo 402 00:22:37,380 --> 00:22:40,550 darin enthalten, wenn Aussagen, was wir jetzt tun können. 403 00:22:40,550 --> 00:22:50,120 >> Wir können sagen, wenn vorhanden, die ist eine Funktionalität in PHP, 404 00:22:50,120 --> 00:22:55,110 _GET Mit dem Unterstrich, "name" - die im Grunde sagen wird, 405 00:22:55,110 --> 00:22:58,760 denn "wenn der Name ist ausgefüllt" wir konnten nur die Schaltfläche geklickt haben, 406 00:22:58,760 --> 00:23:02,580 um das Formular ohne einreichen irgendetwas eingeben in das Feld. 407 00:23:02,580 --> 00:23:07,760 Und wir wickeln, dass in unserer freundliche geschweiften Klammern. 408 00:23:07,760 --> 00:23:09,175 Wir können ein anderes Äußerung. 409 00:23:09,175 --> 00:23:13,300 410 00:23:13,300 --> 00:23:18,820 Und das ist alles innerhalb der PHP Winkel Halterung, Fragezeichen, Winkel, 411 00:23:18,820 --> 00:23:20,040 wenn du möchtest. 412 00:23:20,040 --> 00:23:21,750 >> Und jetzt werden wir sehen, ob das funktioniert. 413 00:23:21,750 --> 00:23:26,300 Ich warte, damit es Debug- und Mist aus mir, im Grunde, 414 00:23:26,300 --> 00:23:28,410 aber es hat noch nicht. 415 00:23:28,410 --> 00:23:30,830 Vielleicht wird es jetzt weil ich darüber gesprochen. 416 00:23:30,830 --> 00:23:31,330 Jep. 417 00:23:31,330 --> 00:23:32,510 Es hat in der Tat. 418 00:23:32,510 --> 00:23:34,610 Also, nichts auftauchen. 419 00:23:34,610 --> 00:23:38,750 Das ist, weil der etwas schief dass ich schrieb in der PHP-Code. 420 00:23:38,750 --> 00:23:42,844 Und ich erwähnte die Debugging- Denn in PHP tricky, wir 421 00:23:42,844 --> 00:23:45,260 nicht vorab kompilieren und der Compiler war nicht wie, 422 00:23:45,260 --> 00:23:46,710 hier, wo Sie Ihre Fehler. 423 00:23:46,710 --> 00:23:49,690 >> Aber was wir tun können, ist-- tun Menschen erinnern 424 00:23:49,690 --> 00:23:57,010 wie man an der anderen Netzwerk suchen Anfragen, die PHP-- oder dass Websites 425 00:23:57,010 --> 00:23:57,620 senden? 426 00:23:57,620 --> 00:24:00,290 [? Malin?] Tat dies in Vortrag einmal oder zweimal. 427 00:24:00,290 --> 00:24:05,830 Sie erinnern sich, wohin wir gehen zu finden die verschiedenen Schulden und 200 OKs, 428 00:24:05,830 --> 00:24:09,780 alle diese Codes, die gesendet werden über HTTP vom Seite, um Web-Seite? 429 00:24:09,780 --> 00:24:12,514 Erinnert sich noch jemand wohin wir gehen, um das zu tun? 430 00:24:12,514 --> 00:24:13,787 >> ZIELGRUPPE: Page Source. 431 00:24:13,787 --> 00:24:14,870 SAM Levatich: Seite Quelle. 432 00:24:14,870 --> 00:24:15,890 Genau. 433 00:24:15,890 --> 00:24:19,230 Wenn Sie zu Seite Source-- perfekt. 434 00:24:19,230 --> 00:24:21,630 So Page Source zieht der Inspektor. 435 00:24:21,630 --> 00:24:23,140 >> Und ich bin mit Safari. 436 00:24:23,140 --> 00:24:25,790 Viele von euch werden wahrscheinlich werden mit Chrome oder Firefox. 437 00:24:25,790 --> 00:24:27,750 Aber solange Sie in jedem modernen browser-- 438 00:24:27,750 --> 00:24:29,500 und fühlen sich frei zu folgen zusammen, wenn Sie wollen. 439 00:24:29,500 --> 00:24:32,560 Sie können bis diesen Code oder gerade innerhalb der P-Set 6 aussehen 440 00:24:32,560 --> 00:24:35,820 Verzeichnis für einige ähnliche Sachen. 441 00:24:35,820 --> 00:24:41,020 hello.php ist das, was wir sind arbeitet derzeit an emuliert. 442 00:24:41,020 --> 00:24:42,476 >> So gibt es eine Vielzahl von Laschen. 443 00:24:42,476 --> 00:24:43,850 Wir können auf alle Ressourcen zu suchen. 444 00:24:43,850 --> 00:24:45,810 Wir können den Quellcode zu sehen. 445 00:24:45,810 --> 00:24:49,900 So wie es aussieht, nicht taten vorbei Körper am Ende. 446 00:24:49,900 --> 00:24:54,890 Es fand einen Fehler in PHP, und es beendet das Laden der gesamten Web-Seite. 447 00:24:54,890 --> 00:24:58,320 Wir haben nicht einmal ein Ende Tag für HTML oder nichts. 448 00:24:58,320 --> 00:25:07,189 >> Und wenn wir auf das Netzwerk, können wir sehen, dass wir werden schickte eine Anfrage. 449 00:25:07,189 --> 00:25:07,980 Dies ist die Domäne. 450 00:25:07,980 --> 00:25:09,270 Dies ist die Adresse. 451 00:25:09,270 --> 00:25:10,070 Es ist ein Dokument. 452 00:25:10,070 --> 00:25:14,310 Wir sind mit der get-Methode. 453 00:25:14,310 --> 00:25:15,760 >> Und es ist rot. 454 00:25:15,760 --> 00:25:19,030 Oder sie rot wurde, als ich nicht Sie es. 455 00:25:19,030 --> 00:25:22,680 Wie kann ich deaktivieren Sie es? 456 00:25:22,680 --> 00:25:23,980 Nun, es war rot. 457 00:25:23,980 --> 00:25:25,201 Lassen Sie mich zu erfrischen. 458 00:25:25,201 --> 00:25:25,700 Da ist es. 459 00:25:25,700 --> 00:25:26,640 Jetzt ist es rot. 460 00:25:26,640 --> 00:25:30,530 >> So ist es rot, was bedeutet, es scheiterte, was schlecht ist. 461 00:25:30,530 --> 00:25:32,280 So wollen wir untersuchen, warum sie scheitern. 462 00:25:32,280 --> 00:25:37,070 Also alles, was die Seite Quelle im Grunde sagen, ist Ihre Sache, 463 00:25:37,070 --> 00:25:38,720 hat nicht funktioniert, das wir können bereits sehen. 464 00:25:38,720 --> 00:25:42,100 So gäbe es im Idealfall ist eine nützliches Werkzeug. 465 00:25:42,100 --> 00:25:45,710 Und es gibt einige Browsererweiterungen das Ihnen erlaubt, zu debuggen PHP, 466 00:25:45,710 --> 00:25:50,490 aber wir sind nicht zu gehen werden schriftlich eine Tonne von PHP, 467 00:25:50,490 --> 00:25:53,190 so ist es wahrscheinlich nur beste durch Ihren Code zu suchen 468 00:25:53,190 --> 00:25:56,760 sorgfältig und stellen Sie einfach sicher, dass es ist nicht etwas anderes zu tun. 469 00:25:56,760 --> 00:26:03,876 >> Also mal sehen, ob das Format dieses if-Anweisung ist, wo das Problem ist. 470 00:26:03,876 --> 00:26:07,420 Ich möchte, dass sich hier wieder zu laden. 471 00:26:07,420 --> 00:26:09,830 Hallo Hi. 472 00:26:09,830 --> 00:26:11,350 So gibt es ein Problem gibt. 473 00:26:11,350 --> 00:26:15,130 >> Also auf korrekte Syntax PHP wird PHP gehen 474 00:26:15,130 --> 00:26:17,369 In den C-like, dass du die Schlaufen zu sehen. 475 00:26:17,369 --> 00:26:18,410 Sie werden, wenn Aussagen zu sehen. 476 00:26:18,410 --> 00:26:20,920 Sie werden alle diese Freunde zu sehen dass Sie schon vertraut machen 477 00:26:20,920 --> 00:26:24,820 mit im Laufe dieser CS50 Semester. 478 00:26:24,820 --> 00:26:29,960 Aber der beste Weg, um herauszufinden, wie man tun Sie etwas in PHP ist, es zu googeln 479 00:26:29,960 --> 00:26:33,170 oder, um auf einige Beispiele von PHP-Code zu suchen weil Sie wissen, die Funktionalität. 480 00:26:33,170 --> 00:26:35,080 >> Sie wissen, was Sie können, zu tun mit dem Programm. 481 00:26:35,080 --> 00:26:35,976 Sie können Schleife. 482 00:26:35,976 --> 00:26:37,600 Sie können Schleife so oft wie Sie wollen. 483 00:26:37,600 --> 00:26:39,433 Sie können Schleife in allen Arten von verschiedenen Arten. 484 00:26:39,433 --> 00:26:40,700 Sie können Funktionen zu erstellen. 485 00:26:40,700 --> 00:26:43,241 Sie können Funktionen zu erstellen, die rufen andere Funktionen, Funktionen 486 00:26:43,241 --> 00:26:44,150 dass sich selbst nennen. 487 00:26:44,150 --> 00:26:45,733 Und Sie haben Namen für diese Konzepte. 488 00:26:45,733 --> 00:26:49,860 Sie haben Rekursion hat, Schleifen, wenn andere Steuerströme. 489 00:26:49,860 --> 00:26:51,300 Und so Google ist dein bester Freund. 490 00:26:51,300 --> 00:26:53,540 Sogar sagen, "wenn PHP Aussage "Und es wird 491 00:26:53,540 --> 00:26:57,740 werden Tonnen von Stellen mit Antworten auf andere Menschen 492 00:26:57,740 --> 00:27:02,090 mit ähnlichen Fragen auf Sie gehabt haben, , die gerade erst anfangen, mit PHP 493 00:27:02,090 --> 00:27:03,820 und sind neugierig auf einer Syntax Sache. 494 00:27:03,820 --> 00:27:08,480 >> Denn wir haben den Luxus, in der Lage, sich den Code in P-Set 6 aus, 495 00:27:08,480 --> 00:27:14,980 wir ziehen es tatsächlich auf und sehen, dass OK, hier ist etwas Interessantes. 496 00:27:14,980 --> 00:27:18,070 Also das ist, was es tatsächlich sah aus wie in P-Satz 6. 497 00:27:18,070 --> 00:27:20,340 Wenn wir durch diese gehen, können wir sehen, dass wir 498 00:27:20,340 --> 00:27:27,150 erhielt mehrere dieser kleinen PHP-like Fragezeichen-Bits. 499 00:27:27,150 --> 00:27:29,050 >> Und es gibt keine geschweiften Klammern. 500 00:27:29,050 --> 00:27:30,250 Es gibt Doppelpunkte. 501 00:27:30,250 --> 00:27:32,340 Und es gibt lockigen Hosenträger in PHP, aber das 502 00:27:32,340 --> 00:27:38,700 ist ein Format, und ein Weg, dies zu tun PHP, die gut mit HTML funktioniert 503 00:27:38,700 --> 00:27:43,830 denn wie Sie sehen werden, wir schließen Aus diesen PHP bits-- der elses 504 00:27:43,830 --> 00:27:49,770 und der ifs und alle dass-- und dann wir interspersing HTML in ihnen 505 00:27:49,770 --> 00:27:54,640 während noch nach dem Kontrollfluss von PHP festzulegen. 506 00:27:54,640 --> 00:27:58,480 >> Also ich werde einfach kurzen Spaziergang durch diese 507 00:27:58,480 --> 00:28:01,740 weil es eine Menge von der gleichen Konzepte, die wir vorher gemacht hast. 508 00:28:01,740 --> 00:28:07,280 Wir haben, wenn nicht leer stand, Klammern, _GET_GET ["name"]. 509 00:28:07,280 --> 00:28:08,500 Das ist alles das gleiche Zeug. 510 00:28:08,500 --> 00:28:15,430 Wir verwenden die _GET Wörterbuch, PHP sendet auf Anfrage von Formen, 511 00:28:15,430 --> 00:28:20,720 weil es die Parameter Action, und das Verfahren ist zu bekommen. 512 00:28:20,720 --> 00:28:22,110 Und dann, dass endet, dass. 513 00:28:22,110 --> 00:28:27,420 Der Doppelpunkt ist ein Signifikant, nur tun dies wenn die if-Anweisung den Wert true. 514 00:28:27,420 --> 00:28:29,490 Es ist wie eine geschweifte Klammer. 515 00:28:29,490 --> 00:28:33,320 Und in der Tat, es ist eine geschweifte Klammer in anderen Sprachen wie Python, 516 00:28:33,320 --> 00:28:37,070 die Sie, wenn Sie nur begegnen zu tun, dass für Ihr Abschlussprojekt. 517 00:28:37,070 --> 00:28:40,170 >> Und dann diese Linie, hallo. 518 00:28:40,170 --> 00:28:41,510 Dann haben wir diese seltsame Sache bekam. 519 00:28:41,510 --> 00:28:43,190 Wir haben mehr Klammern bekam. 520 00:28:43,190 --> 00:28:46,140 Es gibt keinen HTTP sind-- oder PHP, sorry. 521 00:28:46,140 --> 00:28:47,250 Aber es gibt ein Gleichheitszeichen. 522 00:28:47,250 --> 00:28:50,625 Und dann haben wir eine Funktion, htmlspecialchars (_GEThtmlspecialchars (_GET ["name"]). 523 00:28:50,625 --> 00:28:54,440 524 00:28:54,440 --> 00:28:58,040 Das ist ein bisschen wie ein mehr erweiterte Version von Echo. 525 00:28:58,040 --> 00:29:01,450 Wie wir es als eine Möglichkeit Echo hatte die Dinge in PHP auszudrucken. 526 00:29:01,450 --> 00:29:03,890 Dies ist eine Funktion, die ist in PHP definiert, 527 00:29:03,890 --> 00:29:08,160 wird mit etwas mehr böse befassen Zeichen und Byte-Werte 528 00:29:08,160 --> 00:29:09,540 dass Sie es übergeben könnte. 529 00:29:09,540 --> 00:29:11,070 Es ist immer am sichersten, diese zu verwenden. 530 00:29:11,070 --> 00:29:14,930 Aber Echo wird die Arbeit machen gut, wenn wir nicht 531 00:29:14,930 --> 00:29:17,620 die sich mit etwas zu böse. 532 00:29:17,620 --> 00:29:20,340 >> Und so hat dies den gleichen Wirkung im Grunde, 533 00:29:20,340 --> 00:29:26,360 dieses Zeug in zwischen der Frage Mark wird von PHP evaluiert. 534 00:29:26,360 --> 00:29:34,490 htmlspecialchars gibt eine schöne HTML gedruckte Wert _GET_GET ["name"], das heißt 535 00:29:34,490 --> 00:29:36,010 Was auch immer wir eingegeben in der Form. 536 00:29:36,010 --> 00:29:40,025 Und dann wird es sagen, hallo, Komma Leerzeichen und dann das. 537 00:29:40,025 --> 00:29:42,910 Das Ganze zwischen die spitzen Klammern 538 00:29:42,910 --> 00:29:47,390 wird ersetzt durch was auch immer htmlspecialchars löscht. 539 00:29:47,390 --> 00:29:49,390 Also das ist im Grunde ähnlich zu dem, was wir tun. 540 00:29:49,390 --> 00:29:54,760 Und wir eine else-Anweisung, die es haben Hallo Welt, was Sinn macht. 541 00:29:54,760 --> 00:29:58,070 So, jetzt zurück zu lassen Sie unsere Code und sehen exactly-- oh. 542 00:29:58,070 --> 00:30:02,200 Ich sagte, existiert, was nicht eine Sache, die wir machen wollten. 543 00:30:02,200 --> 00:30:05,370 Wir wollten nicht leer zu sagen. 544 00:30:05,370 --> 00:30:10,020 >> Und so sollte dies ein wenig zu arbeiten etwas besser, nicht leer _GET_GET ["name"]. 545 00:30:10,020 --> 00:30:12,710 Und das geschweifte Klammer übereinstimmt, dass die geschweiften Klammer. 546 00:30:12,710 --> 00:30:15,210 Wir haben unsere geschweiften Klammern hier. 547 00:30:15,210 --> 00:30:17,790 echo hallo _GET ["name"]. 548 00:30:17,790 --> 00:30:19,912 Mal sehen, ob dies ein wenig besser funktioniert. 549 00:30:19,912 --> 00:30:21,350 Wir sind immer noch laufen unsere Server. 550 00:30:21,350 --> 00:30:23,910 Hallo Jason. 551 00:30:23,910 --> 00:30:24,780 Hallo Jason. 552 00:30:24,780 --> 00:30:25,810 Und es funktionierte diesmal. 553 00:30:25,810 --> 00:30:29,860 Und so ist das ein Beweis, dass man in der Tat 554 00:30:29,860 --> 00:30:35,180 verwenden Sie die geschweiften Klammern, die Sie kennen und lieben in PHP-Code in HTML. 555 00:30:35,180 --> 00:30:41,100 Der PHP-Code zur Verfügung gestellt Sie in pset 6-- pset 6-- 556 00:30:41,100 --> 00:30:44,760 bietet eine weitere Möglichkeit tun, dass die gleiche Sache. 557 00:30:44,760 --> 00:30:49,220 >> So, jetzt haben wir die Macht. 558 00:30:49,220 --> 00:30:55,740 Wir haben die Funktionalität zu implementieren der PHP-Code, die wir in pset 6 gesehen 559 00:30:55,740 --> 00:30:57,390 von uns selbst, im Grunde. 560 00:30:57,390 --> 00:31:01,350 Bevor ich auf, was sind einige der Fragen, die Sie an dieser Stelle haben? 561 00:31:01,350 --> 00:31:02,066 Ja [unverständlich]. 562 00:31:02,066 --> 00:31:06,512 >> Publikum: So in der Fassung pset6, wenn Sie es starten, gibt es einen Platz. 563 00:31:06,512 --> 00:31:09,330 Und ich kann sehen, wo der Raum nach dem Komma. [Unverständlich] Start 564 00:31:09,330 --> 00:31:10,700 der offene Bügel. 565 00:31:10,700 --> 00:31:15,420 Wie beurteilen Sie den Raum zu übernehmen die Art, wie Sie Ihre eigenen Codes geschrieben? 566 00:31:15,420 --> 00:31:17,910 >> SPRECHER: Das ist eine gute Frage. 567 00:31:17,910 --> 00:31:21,650 Und so wollen wir das herausfinden. 568 00:31:21,650 --> 00:31:24,450 Also das ist eine wirklich gute Frage und eine, die ich nicht zu berücksichtigen. 569 00:31:24,450 --> 00:31:25,950 Aber lassen Sie es uns zusammen tun. 570 00:31:25,950 --> 00:31:30,280 >> Also zunächst einmal, was Ich mache mit Echo 571 00:31:30,280 --> 00:31:33,690 ist, wenn wir nur echo hallo, gibt sie hallo. 572 00:31:33,690 --> 00:31:41,310 Wenn wir nun echo dieses zu erhalten auf einem separaten Linie wollen wir untersuchen, was passiert. 573 00:31:41,310 --> 00:31:43,740 So dass wir Sie auf diese. 574 00:31:43,740 --> 00:31:45,220 Wir sagen immer, hallo Jason. 575 00:31:45,220 --> 00:31:48,690 Also noch einmal, haben wir nicht diesen Raum. 576 00:31:48,690 --> 00:31:53,090 >> Und das ist, weil in PHP, wenn wir Echo haben, 577 00:31:53,090 --> 00:31:55,820 egal wie viele spaces-- nein, nicht der V-- 578 00:31:55,820 --> 00:32:01,770 egal, wie viele Räume, die wir setzen in hier-- wenn wir jetzt wieder zu laden, dass sich, 579 00:32:01,770 --> 00:32:03,010 Hallo Jason. 580 00:32:03,010 --> 00:32:05,770 Ja, sehen alle, Räume wurde aufgegessen. 581 00:32:05,770 --> 00:32:08,020 Und das ist etwas, die Echo-Funktion tut. 582 00:32:08,020 --> 00:32:11,110 >> So zu kümmern dass der Raum ist, und dies 583 00:32:11,110 --> 00:32:14,960 einer der Gründe warum Sie nicht mit echo 584 00:32:14,960 --> 00:32:18,200 und Sie htmlspecialchars verwenden Sie stattdessen. 585 00:32:18,200 --> 00:32:22,140 Ich bin neugierig, was würde passieren, wenn wir tat dies, 586 00:32:22,140 --> 00:32:26,700 wo wir umschlossen einen Raum in einen String. 587 00:32:26,700 --> 00:32:29,720 Ich bin ehrlich gesagt nicht sicher, was wird passieren, wenn ich dies tun. 588 00:32:29,720 --> 00:32:30,790 >> Also das ist eine Möglichkeit. 589 00:32:30,790 --> 00:32:32,210 Das ist ein Weg, um sich darum kümmern. 590 00:32:32,210 --> 00:32:34,840 Wenn Sie den Raum, in wickeln ein String, dann wird der Raum 591 00:32:34,840 --> 00:32:36,920 ausgegeben schön durch Echo sein. 592 00:32:36,920 --> 00:32:41,930 Die sicherste, was zu tun ist htmlspecialchars zu tun. 593 00:32:41,930 --> 00:32:43,800 Das ist immer die sichere Wette. 594 00:32:43,800 --> 00:32:47,050 Aber jetzt haben wir einen Weg finden, zu tun es mit Echo, wenn nötig. 595 00:32:47,050 --> 00:32:50,700 Und in ähnlicher Weise können wir echo neue Linien, die ganze Art 596 00:32:50,700 --> 00:32:53,550 Sachen sind Sie vertraut machen in PHP. 597 00:32:53,550 --> 00:32:57,460 >> Wer sonst, was sind mehr Fragen, die andere Menschen haben 598 00:32:57,460 --> 00:33:01,090 an dieser Stelle über PHP? 599 00:33:01,090 --> 00:33:04,620 Wenn Leute kamen ein wenig zu spät, Ich bin glücklich, nach ein wenig zu bleiben 600 00:33:04,620 --> 00:33:06,420 und sprechen über einige der Anfang. 601 00:33:06,420 --> 00:33:10,380 Und es ist auch alles als Livestream, und archiviert, was verrückt ist. 602 00:33:10,380 --> 00:33:13,960 >> Wie auch immer, dies jetzt zu tun einige lassen erweiterte Zeug mit PHP. 603 00:33:13,960 --> 00:33:18,790 Und einer der frühesten Dinge, die Sie wurden in C war für Schleifen eingeführt. 604 00:33:18,790 --> 00:33:24,060 Und PHP hat ein mächtigeres für Loop genannt foreach-Schleife. 605 00:33:24,060 --> 00:33:37,940 Und wie es aussieht this-- für jeden Rohling als leere, geschweifte Klammern, führen Sie die Sache. 606 00:33:37,940 --> 00:33:41,500 Das ist also im Grunde eine Abkürzung. 607 00:33:41,500 --> 00:33:45,380 >> Siehe, die for-Schleife als syntaktischen Konstruktion 608 00:33:45,380 --> 00:33:50,590 wurde in C und in der Montage erdacht Sprache und solche Dinge. 609 00:33:50,590 --> 00:33:56,300 In C entwickelt, genauer, als Kurz für eine Vielzahl von Typen von Schleifen 610 00:33:56,300 --> 00:33:57,750 dass die Menschen sehen würden. 611 00:33:57,750 --> 00:34:01,230 Wie wenn man eine Schleife schreibt, gibt war oft ein Initialisierungsschritt 612 00:34:01,230 --> 00:34:04,700 gleich zu Beginn, ein hingerichtet Zustand, wo die Schleife würde stop-- 613 00:34:04,700 --> 00:34:07,030 und das ist das Merkmal das ist nur in einer while-Schleife, 614 00:34:07,030 --> 00:34:10,040 oder dass ein während genau hat nur, dass feature-- und dann 615 00:34:10,040 --> 00:34:12,320 einen Inkrementierungsschritt am Ende. 616 00:34:12,320 --> 00:34:16,489 Und so möchten Sie oft Schreiben von Code wie folgt aus. 617 00:34:16,489 --> 00:34:19,780 Ich werde etwas von diesem zu löschen. 618 00:34:19,780 --> 00:34:23,850 >> Aber wenn wir durch Iteration Zeichen in einer Matrix, 619 00:34:23,850 --> 00:34:26,960 zum Beispiel, als hätten wir bekam ein Array von Zeichen. 620 00:34:26,960 --> 00:34:29,400 Tut mir leid, ich weiß, C. zurück zu bringen, Sie dachten, Sie fertig waren. 621 00:34:29,400 --> 00:34:31,900 Aber es ist nur für den Zweck Lernen PHP, das verspreche ich. 622 00:34:31,900 --> 00:34:38,880 Wenn Sie also ein char str bekam mit einer Länge von 8, und lassen Sie uns 623 00:34:38,880 --> 00:34:46,760 sagen, es sagt Hellooo mit einem abschließenden Null. 624 00:34:46,760 --> 00:34:48,270 Große, das ist also unsere String. 625 00:34:48,270 --> 00:34:51,469 >> Und dann hatten wir eine for-Schleife. 626 00:34:51,469 --> 00:34:53,730 Wir haben int i gleich 0 ist. 627 00:34:53,730 --> 00:34:57,960 628 00:34:57,960 --> 00:35:09,110 Und wir, um zu beenden, wenn str möchten von i gleich nicht gleich null, 629 00:35:09,110 --> 00:35:11,590 denn wir verlassen, wenn es null entspricht. 630 00:35:11,590 --> 00:35:19,170 Und dann tun wir i ++ an jedem Punkt in der for-Schleife. 631 00:35:19,170 --> 00:35:30,480 Mache ich etwas mit der i str. 632 00:35:30,480 --> 00:35:34,950 >> So war die Grundformel, wir hatten dieses Array, dass wir 633 00:35:34,950 --> 00:35:37,910 wollte als separate Elemente zu behandeln. 634 00:35:37,910 --> 00:35:45,170 Aber was wir tun mussten, ist mussten wir im Grunde eine separate Ganzzahl 635 00:35:45,170 --> 00:35:50,530 Variable, die Zählen jedes wurde Mal ging es durch die Schlaufe. 636 00:35:50,530 --> 00:35:55,240 Und dann müssten wir dann rufen strstr [i], wenn das, was wir wirklich tun wollte 637 00:35:55,240 --> 00:35:57,280 wird einfach gehen Zeichen durch Zeichen, oder? 638 00:35:57,280 --> 00:36:00,185 Wir wollen nicht, um ein Inkrement Integer und dann diese ganze Zahl 639 00:36:00,185 --> 00:36:02,780 um jedes Zeichen einzeln zugreifen. 640 00:36:02,780 --> 00:36:04,410 Wir wollen wirklich Zeichen für Zeichen. 641 00:36:04,410 --> 00:36:08,600 >> Und so für jeden intelligent berechnet, dass für uns. 642 00:36:08,600 --> 00:36:11,875 Wenn wir ein Array, das können wir in PHP zu erklären 643 00:36:11,875 --> 00:36:15,900 wie just-- wenn wir eine Variable haben genannt wird, nennen wir es Array. 644 00:36:15,900 --> 00:36:19,840 Die Wunder ohne Typisierung, ist es wie jede andere Variable. 645 00:36:19,840 --> 00:36:20,730 Es ist nur ein Array. 646 00:36:20,730 --> 00:36:26,890 Und wir haben ein wenig [unverständlich] wie 1, 2, 3, nur eine Art von initialisierten Array. 647 00:36:26,890 --> 00:36:29,680 Es ist in Ordnung, es nicht mag meine foreach. 648 00:36:29,680 --> 00:36:33,120 >> Aber wenn wir tatsächlich foreach-- Ich tippte, dass etwas falsch ist. 649 00:36:33,120 --> 00:36:34,840 Es gibt zwei Möglichkeiten, um eine foreach-Schleife zu tun. 650 00:36:34,840 --> 00:36:37,400 Es gibt die in der Syntax und der als Syntax. 651 00:36:37,400 --> 00:36:40,580 Und wir tun werden in erste Syntax, nicht so. 652 00:36:40,580 --> 00:36:41,780 Das ist mein Fehler. 653 00:36:41,780 --> 00:36:53,785 >> So foreach num im Array, Echo num. 654 00:36:53,785 --> 00:36:56,970 655 00:36:56,970 --> 00:36:59,500 Und PHP an zu schreien mich aus irgendeinem Grund. 656 00:36:59,500 --> 00:37:03,520 Es ist die Suche nach einer unerwarteten in etwas, 657 00:37:03,520 --> 00:37:05,820 Das ist ein wenig lästig. 658 00:37:05,820 --> 00:37:09,105 Aber wir werden herausfinden, warum das so ist in einem Augenblick. 659 00:37:09,105 --> 00:37:11,960 660 00:37:11,960 --> 00:37:13,610 Also nicht so. 661 00:37:13,610 --> 00:37:15,040 Lassen Sie uns versuchen, mit der, wie. 662 00:37:15,040 --> 00:37:17,310 Er bevorzugt die als Syntax scheint. 663 00:37:17,310 --> 00:37:22,550 Lassen Sie uns so tun, als num foreach-Array. 664 00:37:22,550 --> 00:37:24,520 >> So eine kleine Erklärung von dem, was gerade passiert ist 665 00:37:24,520 --> 00:37:30,670 wird das als Syntax wird auch zuerst saying--, schauen wir uns an, was diese ausdruckt. 666 00:37:30,670 --> 00:37:32,260 So eröffnen wir unseren IDE. 667 00:37:32,260 --> 00:37:33,110 Wir gehen hier. 668 00:37:33,110 --> 00:37:35,845 Wir sagen Hallo Jason. 669 00:37:35,845 --> 00:37:41,390 Und es hat 123, der die Inhalte waren des Arrays, die wir bis oben erstellt. 670 00:37:41,390 --> 00:37:45,500 >> So tauchen in diesem foreach-Schleife, wir haben eine Variable namens Array 671 00:37:45,500 --> 00:37:47,470 Das ist eine Anordnung von drei Zahlen. 672 00:37:47,470 --> 00:37:52,120 Und dann werden wir tun, foreach Array als num, Echo num. 673 00:37:52,120 --> 00:37:54,990 Und das ist mehr intuitiver als ein für lop. 674 00:37:54,990 --> 00:38:02,380 Wir sagen, die Behandlung von jeder der die Dinge, die in der Anordnung, wie num, 675 00:38:02,380 --> 00:38:05,180 Ich will, dass du mich num zu geben. 676 00:38:05,180 --> 00:38:06,640 Und das ist genau, was er tut. 677 00:38:06,640 --> 00:38:12,000 >> PHP ist die Berechnung, dass wenn Sie foreach Array sagen, 678 00:38:12,000 --> 00:38:16,080 und Sie sind mit einer Reihe zu tun haben, was Sie gehen zu durchlaufen zu wollen, sind 679 00:38:16,080 --> 00:38:19,950 ist die Zeichen in diesem Array, ist die Ganzzahlen in diesem Array, 680 00:38:19,950 --> 00:38:21,920 ist die Elemente in diesem Array. 681 00:38:21,920 --> 00:38:26,110 Und es ist so dass Sie speichern diese Variablen als num, 682 00:38:26,110 --> 00:38:29,360 und dann einfach ausgegeben num sofort anstatt zu sagen, 683 00:38:29,360 --> 00:38:34,090 Ich habe eine Variable namens i und dann will ich Ausgangs strstr [i]. 684 00:38:34,090 --> 00:38:39,130 >> Und damit können wir coole Dinge zu tun. 685 00:38:39,130 --> 00:38:43,330 Wie im Grunde haben wir nicht zu schaffen diese Variablen wie ich und alles tun, 686 00:38:43,330 --> 00:38:45,090 diese Inkrementierung Zeug am Ende. 687 00:38:45,090 --> 00:38:48,290 PHP kümmert sich um all das für Sie. 688 00:38:48,290 --> 00:38:54,470 >> So, jetzt ist zu foreach reden, als wir es gilt für unsere _GET Wörterbuch. 689 00:38:54,470 --> 00:38:57,170 Also werden wir dies schnell zu kommentieren. 690 00:38:57,170 --> 00:39:02,030 So haben wir unsere _GET Array. 691 00:39:02,030 --> 00:39:04,361 Wir haben diese Variable. 692 00:39:04,361 --> 00:39:05,610 Und es hat ein paar Sachen darin. 693 00:39:05,610 --> 00:39:10,275 >> Gerade jetzt, wir haben nur eine Variable nachdem ihm übergeben, der Name ist. 694 00:39:10,275 --> 00:39:13,420 Aber wenn wir drücken Sie die Eingabetaste, jetzt können wir zwei Variablen. 695 00:39:13,420 --> 00:39:17,910 Wir können Namen und das Alter haben, zum Beispiel, wenn wir wollen, um das Alter zu erhalten und auch 696 00:39:17,910 --> 00:39:20,960 der Name einer Person, komischerweise. 697 00:39:20,960 --> 00:39:25,690 >> So, jetzt _GET wird eine sein, Wörterbuch mit zwei Elementen, 698 00:39:25,690 --> 00:39:27,980 mit zwei Schlüsselwertpaare. 699 00:39:27,980 --> 00:39:33,490 Und der erste key-- ich zu gehen Schreiben dieses oben auf dem Brett zu. 700 00:39:33,490 --> 00:39:37,136 Wir haben unser Wörterbuch ist _GET. 701 00:39:37,136 --> 00:39:39,520 Sorry, es ist ein wenig schwer zu sehen. 702 00:39:39,520 --> 00:39:46,690 Aber in unserem Wörterbuch haben wir zu nennen, die gehen, etwas zu sein 703 00:39:46,690 --> 00:39:47,680 dass wir gegeben. 704 00:39:47,680 --> 00:39:53,040 Und wir werden Alter haben, die auch gehen, um etwas, das uns gegeben ist. 705 00:39:53,040 --> 00:39:56,020 Und dies ist die Gesamtheit unser Wörterbuch. 706 00:39:56,020 --> 00:39:57,730 >> Also es hat zwei Elemente darin. 707 00:39:57,730 --> 00:40:01,310 Und so, weil foreach Schleifen sind smart, wir 708 00:40:01,310 --> 00:40:04,900 vielleicht denken, und korrekt vielleicht, dass foreach denken 709 00:40:04,900 --> 00:40:08,080 kann durch diese durchlaufen Wörterbuch, Ausdrucken 710 00:40:08,080 --> 00:40:10,850 die Werte von Name und Alter angegeben. 711 00:40:10,850 --> 00:40:14,510 >> Lassen Sie uns also in der Tat genau das tun. 712 00:40:14,510 --> 00:40:17,520 Konstruieren wir eine foreach-Schleife. 713 00:40:17,520 --> 00:40:23,351 Und wir werden für _GET als zu tun. 714 00:40:23,351 --> 00:40:24,850 Und wir werden die folgenden tun. 715 00:40:24,850 --> 00:40:34,186 Also mal sehen, was passiert, wenn wir geben nur das Wort, und dann sagen Echo Wort. 716 00:40:34,186 --> 00:40:40,540 Wir werden auch eine neue Zeile echo nur um es ein wenig klarer, 717 00:40:40,540 --> 00:40:41,260 Was ist los. 718 00:40:41,260 --> 00:40:42,890 >> Also mal sehen. 719 00:40:42,890 --> 00:40:44,390 Es ist nicht, mir alle Fehler. 720 00:40:44,390 --> 00:40:46,810 Und wir werden diese zu schließen. 721 00:40:46,810 --> 00:40:51,020 Auf unserer Website wirst du tun, eine Menge, die im Laufe der pset7. 722 00:40:51,020 --> 00:40:53,890 So wir sagen, mein Name ist Sam. 723 00:40:53,890 --> 00:40:58,560 Mein Alter ist 45. 724 00:40:58,560 --> 00:41:01,060 Ist es nicht. 725 00:41:01,060 --> 00:41:05,640 Aber es druckt, wie erwartet, Sam 45. 726 00:41:05,640 --> 00:41:08,930 >> Und so werden Sie feststellen, dass was foreach-Schleife did-- hier, 727 00:41:08,930 --> 00:41:12,360 gehen wir zurück zu, dass so liegt es auf der board-- wir _GET als Wort. 728 00:41:12,360 --> 00:41:15,130 Und es waren vier Dinge in _GET. 729 00:41:15,130 --> 00:41:17,410 Aber es ist nur ausgedruckt zwei Dinge. 730 00:41:17,410 --> 00:41:21,290 foreach, dass ihre Intelligenz selbst, davon ausgegangen, dass das, was wir wollten 731 00:41:21,290 --> 00:41:24,100 war die Werte, nicht die Schlüssel. 732 00:41:24,100 --> 00:41:27,800 >> Aber es gibt einen Weg, dass wir drucken können out die Tasten als auch, wenn wir wollten. 733 00:41:27,800 --> 00:41:30,810 Wenn wir wollten auch wissen, was Diese Variablen wurden genannt, 734 00:41:30,810 --> 00:41:33,540 gibt es eine Möglichkeit, dass wir kann dieser Zugriff auch. 735 00:41:33,540 --> 00:41:36,840 Und die Art und Weise, um eine Art tun, so können wir sagen, lässt wirklich 736 00:41:36,840 --> 00:41:39,485 teilen Sie diese in Schlüsselwertpaare. 737 00:41:39,485 --> 00:41:42,370 738 00:41:42,370 --> 00:41:47,580 Also mal sehen, was jetzt passiert. 739 00:41:47,580 --> 00:41:50,550 >> So haben wir drücken. 740 00:41:50,550 --> 00:41:52,290 Wir haben Wert. 741 00:41:52,290 --> 00:41:56,650 Wir haben ein weiteres neues Zeile zur besseren Lesbarkeit. 742 00:41:56,650 --> 00:42:00,540 Und lassen Sie uns sehen, was passiert Wenn wir das tun jetzt. 743 00:42:00,540 --> 00:42:04,950 744 00:42:04,950 --> 00:42:06,720 Ich weiß nicht, wie alt Jason ist. 745 00:42:06,720 --> 00:42:09,180 Jasons 15. 746 00:42:09,180 --> 00:42:11,650 So haben wir Namen Jason, 15 Jahre. 747 00:42:11,650 --> 00:42:15,830 So waren wir in der Lage, den Schlüssel zugreifen Wert-Paare von diesem Wörterbuch 748 00:42:15,830 --> 00:42:18,590 nur sagen, wie wichtige Punkte zu Wert. 749 00:42:18,590 --> 00:42:23,350 Und das ist eine foreach syntaktische Zucker Bit, das erlaubt 750 00:42:23,350 --> 00:42:25,960 Sie Dinge im Wörterbuch zuzugreifen. 751 00:42:25,960 --> 00:42:31,190 >> So hoffentlich diese Art der betont die Macht der foreach-Schleife. 752 00:42:31,190 --> 00:42:35,690 Sie können so ziemlich Wurf alles, was iterable scheint, 753 00:42:35,690 --> 00:42:38,922 wie alles, was Mehrfach hat Elemente wie ein Array, 754 00:42:38,922 --> 00:42:41,880 wie ein dictionary-- das sind zwei primäre Dinge, die Sie mit der Arbeit werden 755 00:42:41,880 --> 00:42:45,630 im Leben und in pset 7. 756 00:42:45,630 --> 00:42:49,350 So können Sie das Zeug zu werfen auf sie, und es wird herausfinden, 757 00:42:49,350 --> 00:42:51,030 was Sie zu tun haben wollen. 758 00:42:51,030 --> 00:42:54,250 Es wird sagen, OK, ich werde kommen diese Dinge aus den Daten, 759 00:42:54,250 --> 00:42:55,680 wurde mir übergeben. 760 00:42:55,680 --> 00:43:02,470 Und das ist etwas, das du bist zu sein mit viel in pset 7. 761 00:43:02,470 --> 00:43:08,550 >> Ich bin zu schnell blättern gehen nach unten um zu sehen, wo ich bin. 762 00:43:08,550 --> 00:43:11,410 763 00:43:11,410 --> 00:43:13,070 Haben die Leute Fragen haben an dieser Stelle? 764 00:43:13,070 --> 00:43:13,778 Fragen überhaupt? 765 00:43:13,778 --> 00:43:14,400 Ja? 766 00:43:14,400 --> 00:43:18,320 >> Publikum: So mit dem Schlüssel und Wert, man könnte es nennen etwas anderes 767 00:43:18,320 --> 00:43:20,507 und es würde immer noch funktionieren? 768 00:43:20,507 --> 00:43:21,090 SPRECHER: Oops. 769 00:43:21,090 --> 00:43:22,820 Wow, ich völlig die ganze Zeile gelöscht. 770 00:43:22,820 --> 00:43:23,380 Gute Arbeit. 771 00:43:23,380 --> 00:43:26,502 So a, a. 772 00:43:26,502 --> 00:43:30,109 Schlüssel und Wert ist nur eine Konvention. 773 00:43:30,109 --> 00:43:30,650 Es ist hilfreich. 774 00:43:30,650 --> 00:43:34,010 Sie würden einige Design erhalten Punkte, vielleicht ein paar Style-Punkte 775 00:43:34,010 --> 00:43:36,970 zu tun, weil es wirklich vermittelt die Absicht. 776 00:43:36,970 --> 00:43:39,650 Aber wir sagen, ein und yarp. 777 00:43:39,650 --> 00:43:42,476 >> Publikum: Sie brauchen nicht zu haben etwas zu ändern in der HTML-Datei 778 00:43:42,476 --> 00:43:43,607 , um zu reflektieren, dass? 779 00:43:43,607 --> 00:43:44,440 SPRECHER: Überhaupt nicht. 780 00:43:44,440 --> 00:43:47,260 Publikum: Und er weiß nur, dass wegen der gleich größere than-- 781 00:43:47,260 --> 00:43:47,801 Lautsprecher: Ja. 782 00:43:47,801 --> 00:43:49,489 ZIELGRUPPE: --that Indikator, der that's-- 783 00:43:49,489 --> 00:43:50,030 Lautsprecher: Ja. 784 00:43:50,030 --> 00:43:52,260 Das ist eine foreach-Syntax, aber ja. 785 00:43:52,260 --> 00:43:53,720 >> Publikum: Es gibt keine Typen. 786 00:43:53,720 --> 00:43:57,230 So was, wenn du wolltest Alter nur eine Zahl sein? 787 00:43:57,230 --> 00:43:59,510 Gibt es eine Möglichkeit, das zu tun? 788 00:43:59,510 --> 00:44:04,550 >> SPRECHER: Es gibt Möglichkeiten, wenn überprüfen Variablen entsprechen, um bestimmte Typen. 789 00:44:04,550 --> 00:44:08,482 So PHP fragt ein wenig mehr aus Sie, weil es keine Typen. 790 00:44:08,482 --> 00:44:09,440 Einige Möglichkeiten dazu aufgefordert, weniger. 791 00:44:09,440 --> 00:44:11,070 In gewisser Weise ist es fragt mehr. 792 00:44:11,070 --> 00:44:13,320 Weil, wenn Sie nur noch etwas in einer Variablen, 793 00:44:13,320 --> 00:44:14,960 Sie haben keine Ahnung, welche Art es ist. 794 00:44:14,960 --> 00:44:19,310 Aber wenn Sie smart über die Variablen dass Sie Typen zuweisen und sicherstellen, dass 795 00:44:19,310 --> 00:44:22,750 dass Funktionen return-- nur möchten Funktionen nur Rückkehr 796 00:44:22,750 --> 00:44:26,210 eine Art von Wert, so dass man im Grunde 797 00:44:26,210 --> 00:44:31,090 erwarten, dass die Variable, die Sie zurück zu bekommen von einer Funktion von der Art sein, 798 00:44:31,090 --> 00:44:32,780 dass Sie denken, es wird im Grunde sein. 799 00:44:32,780 --> 00:44:36,550 >> Aber es gibt einige Methoden mit denen Sie überprüfen können. 800 00:44:36,550 --> 00:44:39,801 Ich erinnere mich nicht zu aus der Spitze von meinem Kopf. 801 00:44:39,801 --> 00:44:43,300 Ich warte darauf, es zu blau. 802 00:44:43,300 --> 00:44:45,560 IsInt? 803 00:44:45,560 --> 00:44:48,070 ISSTR? 804 00:44:48,070 --> 00:44:52,000 Gibt es Methoden, in PHP gebaut dass 805 00:44:52,000 --> 00:44:54,440 überprüfen Sie den Typ der Variablen für Sie. 806 00:44:54,440 --> 00:44:58,250 Aber wenn Sie Variablen zuweisen intelligent, sollten Sie nicht 807 00:44:58,250 --> 00:45:01,330 müssen, dass zu viel in pset 7 zu tun. 808 00:45:01,330 --> 00:45:02,780 Aber diese Methoden existieren. 809 00:45:02,780 --> 00:45:06,704 Und das ist etwas, ist in der Sprache selbst. 810 00:45:06,704 --> 00:45:08,370 Und ich erinnere mich nicht an den genauen Syntax. 811 00:45:08,370 --> 00:45:09,930 Wir konnten sogar nachschlagen. 812 00:45:09,930 --> 00:45:11,974 Aber die Zeit ist von entscheidender Bedeutung. 813 00:45:11,974 --> 00:45:13,890 haben jemand anderes tut haben weitere Fragen? 814 00:45:13,890 --> 00:45:14,660 Ja. 815 00:45:14,660 --> 00:45:15,951 >> Publikum: Ich habe nur noch eine. 816 00:45:15,951 --> 00:45:19,050 Also, die Sie erwähnt die GET-Methode, aber Sie erwähnte nicht die POST-Methode. 817 00:45:19,050 --> 00:45:20,500 Wir kommen wieder auf das? 818 00:45:20,500 --> 00:45:21,540 >> Lautsprecher: Ja, wir werden werden wieder auf das zu kommen. 819 00:45:21,540 --> 00:45:24,840 Das ist genau das, was ich suchte auf meinem Handy, die nun eingeschlafen, 820 00:45:24,840 --> 00:45:26,960 aber ich werde es finden. 821 00:45:26,960 --> 00:45:30,680 Nur dafür, dass wir uns treffen alle PHP Noten. 822 00:45:30,680 --> 00:45:35,640 Yep, es gibt keine Debugging-Version. 823 00:45:35,640 --> 00:45:41,940 Ja, wir haben noch ein paar Dinge, wollen wir jetzt an dieser Stelle tun. 824 00:45:41,940 --> 00:45:45,980 >> So reden POST, die Sie erwähnt haben, 825 00:45:45,980 --> 00:45:49,630 der einzige Unterschied zwischen GET und POST ist 826 00:45:49,630 --> 00:45:53,150 dass erinnere mich, als wir sahen unter dieser URL und wir sahen, oh, 827 00:45:53,150 --> 00:45:58,270 Namen gleich ein und Alter gleich yarp sind direkt in der URL für uns da. 828 00:45:58,270 --> 00:46:03,300 POST ist ein wenig geheimnisvoll mit seiner Weitergabe von Informationen. 829 00:46:03,300 --> 00:46:08,090 >> Also, wenn Sie wollte nicht, dass eine Benutzer zu wissen, zum Beispiel, Sie 830 00:46:08,090 --> 00:46:11,160 wollte nicht, dass Sie den Benutzernamen und das Passwort der Person 831 00:46:11,160 --> 00:46:15,080 Zeit angemeldet, um in angezeigt werden die URL, die eine sinnvolle Sache ist, 832 00:46:15,080 --> 00:46:17,770 um nicht in der URL möchten, weil jemand sie sehen können. 833 00:46:17,770 --> 00:46:21,520 Wenn sie jemand zu einem Verlinken Sie wollen nicht, dass ihre URL gibt verputzt, 834 00:46:21,520 --> 00:46:27,850 denn das würde damit die Menschen um sich anzumelden nur mit dem Einfügen einer URL statt 835 00:46:27,850 --> 00:46:29,670 der eigentlich ein Formular ausfüllen. 836 00:46:29,670 --> 00:46:31,710 POST ist ein bisschen geheimnisvoller. 837 00:46:31,710 --> 00:46:34,150 >> Und die einzigen Dinge, müssen wir ändern 838 00:46:34,150 --> 00:46:38,550 gibt diese Methode, ändern von zu bekommen, um zu Posten. 839 00:46:38,550 --> 00:46:42,367 Und dann innerhalb des HTTP anstelle für den Zugriff auf das Array _GET, 840 00:46:42,367 --> 00:46:43,950 wir werden das Array _POST zuzugreifen. 841 00:46:43,950 --> 00:46:48,600 >> Und wir werden bemerken, dass, wenn öffnen wir diese wieder nach oben, 842 00:46:48,600 --> 00:46:51,910 Jason lehnt sich langsam im Alter. 843 00:46:51,910 --> 00:46:53,230 nennen Jason, 14 Jahre alt. 844 00:46:53,230 --> 00:46:54,280 Das gleiche Material erscheint. 845 00:46:54,280 --> 00:46:57,190 Aber gehen wir in die URL und diese Variablen gibt es nicht. 846 00:46:57,190 --> 00:47:00,540 >> Und die Art und Weise, dass POST passes-- so erinnern 847 00:47:00,540 --> 00:47:02,750 Wie man an der Quelle einer Seite zu suchen. 848 00:47:02,750 --> 00:47:04,570 Wir gehen in das Netzwerk. 849 00:47:04,570 --> 00:47:06,920 Wir aktualisieren. 850 00:47:06,920 --> 00:47:10,690 Und das ist eine andere Sache, POST wird Ihnen Warnungen vor. 851 00:47:10,690 --> 00:47:15,050 Vielleicht haben Sie ein Feld, ein Text gesehen haben box Gefällt Ihnen dieses in Ihrem Browser. 852 00:47:15,050 --> 00:47:18,170 Bist du sicher, dass du willst um ein Formular erneut zu senden? 853 00:47:18,170 --> 00:47:21,170 POST ist, was ist das Senden diese Formen. 854 00:47:21,170 --> 00:47:24,680 >> Denn im Grunde, wenn Sie geschickt Ihre Kreditkarteninformationen, jemanden, 855 00:47:24,680 --> 00:47:26,350 das wird nicht in der URL angezeigt. 856 00:47:26,350 --> 00:47:28,180 Das wird eine POST-Anforderung ist. 857 00:47:28,180 --> 00:47:32,905 Also, wenn Sie die Seite zu aktualisieren, es ist das Zurücksenden der diesen Posten Anfrage. 858 00:47:32,905 --> 00:47:35,530 So, jetzt wir wollen die Nachricht wieder zu bilden, weil es nicht geht 859 00:47:35,530 --> 00:47:37,340 um alle doppelten Einkäufe erstellen. 860 00:47:37,340 --> 00:47:41,160 >> Und wir werden, dass sich hier bemerken, die Methode wir verwenden ist POST. 861 00:47:41,160 --> 00:47:43,065 Und es tatsächlich übertragen Bytes. 862 00:47:43,065 --> 00:47:45,460 Es überführt 401 von ihnen. 863 00:47:45,460 --> 00:47:47,190 Programm ist ziemlich winzig. 864 00:47:47,190 --> 00:47:51,600 Aber es gibt nichts, dass wir sehen können, die Werte, die übergeben werden. 865 00:47:51,600 --> 00:47:59,540 Die Web-Seiten selbst sehen können, aber wir als Benutzer sind nicht in der Lage, um zu sehen, 866 00:47:59,540 --> 00:48:01,650 es sei denn, du bist ein Hacker. 867 00:48:01,650 --> 00:48:05,340 Wenn Sie ein guter Hacker, können Sie suchen. 868 00:48:05,340 --> 00:48:09,360 >> Wenn Sie die Grund wissen Format des HTML, 869 00:48:09,360 --> 00:48:11,790 die Werte machen sich in den Seiten bekannt. 870 00:48:11,790 --> 00:48:13,160 Du wirst in der Lage sein zu sehen. 871 00:48:13,160 --> 00:48:16,720 Die Werte werden da sein, sie sind nur ein wenig für Sie weniger offensichtlich 872 00:48:16,720 --> 00:48:19,522 um den Zugang, im Grunde. 873 00:48:19,522 --> 00:48:23,620 >> Brauchen wir mehr haben Fragen über GET, POST 874 00:48:23,620 --> 00:48:26,800 before--, was wir als nächstes tun tatsächlich auf einige der Code aussehen 875 00:48:26,800 --> 00:48:30,837 dass Sie in pset 7 gibst, sprechen über wie es nutzt einige dieser Konzepte, 876 00:48:30,837 --> 00:48:32,670 und über das sprechen Dinge, die Sie gehen 877 00:48:32,670 --> 00:48:35,090 zu haben, um ein wenig in pset 7 zu tun. 878 00:48:35,090 --> 00:48:36,760 Haben Sie weitere Fragen, bevor das? 879 00:48:36,760 --> 00:48:38,047 Weitere Fragen, die Sie Jungs haben? 880 00:48:38,047 --> 00:48:41,250 881 00:48:41,250 --> 00:48:41,840 Groß. 882 00:48:41,840 --> 00:48:45,370 >> Also gut, lassen Sie uns ein wenig auf pset 7, 883 00:48:45,370 --> 00:48:49,530 kein Zweifel, was du bist, alle am meisten begeistert. 884 00:48:49,530 --> 00:48:52,126 885 00:48:52,126 --> 00:48:54,750 Ich meine, das ist etwas, David geht durch ein kleines bisschen. 886 00:48:54,750 --> 00:49:00,890 Aber wir werden drei Verzeichnisse auf das haben Top, sowie eine Konfigurationsdatei. 887 00:49:00,890 --> 00:49:04,650 Das ist für Datenbanken, auf die wir reden über in etwa fünf Minuten. 888 00:49:04,650 --> 00:49:07,220 Umfasst, die Sie nie brauchen, um in diesem Verzeichnis suchen 889 00:49:07,220 --> 00:49:12,480 wenn Sie nicht wollen, aber es ist schön, weiß, es gibt alle Arten von Helfern. 890 00:49:12,480 --> 00:49:14,210 Helpers ist wie hilfreiche Funktionen. 891 00:49:14,210 --> 00:49:18,120 Und dann haben wir Config, das setzt ein paar Sachen auf. 892 00:49:18,120 --> 00:49:24,590 >> Es gibt einige Funktionen, die CS50 hat geschrieben, in Helfer- und Konfiguration sind. 893 00:49:24,590 --> 00:49:27,250 Und einige der PHP, dass bereits beendet in Dateien 894 00:49:27,250 --> 00:49:30,880 wird eine Menge von der Art mehr zu tun der stumpfen Bein Arbeit für Sie. 895 00:49:30,880 --> 00:49:35,250 Wie, wenn wir in die Öffentlichkeit zu gehen login.php, was was ist 896 00:49:35,250 --> 00:49:38,350 zeigt sich rechts, wenn Sie in pset 7 gehen. 897 00:49:38,350 --> 00:49:40,580 Wir werden sehen, dass es Diese erfordern Aussage. 898 00:49:40,580 --> 00:49:43,420 Und das wie eine Art scharf sind, hashtag 899 00:49:43,420 --> 00:49:46,850 schließen, wenn Sie eines der neueren Generation sind. 900 00:49:46,850 --> 00:49:49,740 Aber im Grunde sagt, dass ich Zugang 901 00:49:49,740 --> 00:49:52,260 zu allen Funktionen in der config.php. 902 00:49:52,260 --> 00:49:55,290 Und könnten Sie haben ein verlangen für alle möglichen anderen Dinge. 903 00:49:55,290 --> 00:49:59,670 >> Config tatsächlich benötigt Helfer. 904 00:49:59,670 --> 00:50:02,490 Also, wenn Sie benötigen Config, bist du auch 905 00:50:02,490 --> 00:50:05,660 einschließlich oder erfordern Helfern als auch. 906 00:50:05,660 --> 00:50:09,590 So dass haben Sie Zugriff auf alle coole Funktionen, die werden wir nutzen, 907 00:50:09,590 --> 00:50:10,420 Dinge wie rendern. 908 00:50:10,420 --> 00:50:13,490 Ich bin eigentlich los, um zu erleichtern Diese nach unten ein wenig. 909 00:50:13,490 --> 00:50:16,280 So dass die Funktion dann sind wir gehen zu Fuß durch 910 00:50:16,280 --> 00:50:22,380 kurz bevor wir weiterziehen, um ein wenig SQL Bit ist die login.php-Funktion, nur 911 00:50:22,380 --> 00:50:26,586 Weil es einige Themen dass wir gerade gesprochen in PHP. 912 00:50:26,586 --> 00:50:30,840 >> Sie sehen, das erste, was ist, wenn $ _SERVER. 913 00:50:30,840 --> 00:50:34,500 Dies ist eine weitere globale Variable, wirst du mit zu tun. 914 00:50:34,500 --> 00:50:38,460 Es ist wie _GET und _POST, aber was Server enthält, wird dies können Sie lassen 915 00:50:38,460 --> 00:50:42,730 wissen, ob die Anforderungsmethode war ein GET oder POST. 916 00:50:42,730 --> 00:50:47,250 Wie zuvor, was wir taten ist nur in unserem Code, den wir geschrieben haben, 917 00:50:47,250 --> 00:50:51,880 wir waren gerade ändert sie zu bekommen und POST je nachdem, was die HTML bietet. 918 00:50:51,880 --> 00:50:55,120 Aber es sind Seiten, die sein können mit beiden Typen von Anforderungen abgerufen. 919 00:50:55,120 --> 00:50:57,410 Und möchten Sie vielleicht zu tun verschiedene Dinge je 920 00:50:57,410 --> 00:50:59,740 von der Art der Anfrage, wie Login tut. 921 00:50:59,740 --> 00:51:04,400 >> So können Sie diesen Antrag prüfen Verfahren durch den Zugriff auf Tasten, 922 00:51:04,400 --> 00:51:08,630 durch Verwendung eines Schlüssels und bekommen die Wert von etwas im Wörterbuch 923 00:51:08,630 --> 00:51:10,260 _SERVER. 924 00:51:10,260 --> 00:51:13,800 Also das ist ein weiteres Welt Variable wie _GET und _POST. 925 00:51:13,800 --> 00:51:16,990 >> Wenn es GET, wir wollen machen das Login-Formular. 926 00:51:16,990 --> 00:51:21,920 Render ist eine Funktion, die im Grunde nur erträgt die entsprechende HTML 927 00:51:21,920 --> 00:51:24,500 und leitet es einige Parameter. 928 00:51:24,500 --> 00:51:28,740 Dieser Titel ist ein Parameter, ist bei der Anzeige, seltsam genug verwendet, 929 00:51:28,740 --> 00:51:32,670 der Titel der Seite in Frage, die Sache hier oben, 930 00:51:32,670 --> 00:51:34,850 sagen hallo oder in unserem vorherigen Beispiel. 931 00:51:34,850 --> 00:51:36,100 Jetzt haben wir eine andere Sache. 932 00:51:36,100 --> 00:51:38,570 Else, wenn es POST wir tun einige andere Sachen. 933 00:51:38,570 --> 00:51:40,790 Wir verwenden diese leere Methode. 934 00:51:40,790 --> 00:51:42,750 Es ist nicht vorhanden, es ist leer. 935 00:51:42,750 --> 00:51:45,440 Und wir sahen vor, PHP hat eine ganze Menge gebaut 936 00:51:45,440 --> 00:51:52,370 in Methoden, die David will-- wenn es sind Methoden, die für Sie nützlich sind, 937 00:51:52,370 --> 00:51:55,560 sie werden zu euch gewarnt werden in der Spaziergang durch die David 938 00:51:55,560 --> 00:51:59,770 gibt am Anfang Übersicht, und auch Zamyla ist hilfreich Bit. 939 00:51:59,770 --> 00:52:01,040 Sie ist wieder alle. 940 00:52:01,040 --> 00:52:03,100 Wir können uns alle freuen. 941 00:52:03,100 --> 00:52:06,530 entschuldigen ist ein treffend benannte Funktion dass im Grunde nur druckt 942 00:52:06,530 --> 00:52:10,130 einige Fehlermeldungen, weil CS50 ist sehr höflich. 943 00:52:10,130 --> 00:52:14,770 >> Und nun diese, ist dies ein tricky wenig, weil diese 944 00:52:14,770 --> 00:52:16,697 ist, wo wir das Abfragen der Datenbank. 945 00:52:16,697 --> 00:52:18,280 Jetzt haben wir nicht über Datenbanken gesprochen. 946 00:52:18,280 --> 00:52:22,220 Und wir gehen, um in der nächsten fünf Minuten oder so, Maximum. 947 00:52:22,220 --> 00:52:24,980 Aber dies ist eine Funktion dass CS50 hat geschrieben, 948 00:52:24,980 --> 00:52:38,050 um eine Tabelle im Grunde aus einer Datenbank erhalten dass wir mit der Arbeit in pset 7. 949 00:52:38,050 --> 00:52:40,860 Ich bin wirklich schlecht mit meinem Null Indexierung heute. 950 00:52:40,860 --> 00:52:42,060 Aber ja, es ist 7. 951 00:52:42,060 --> 00:52:46,340 >> So fragen, es wird ein Rück Array, im Grunde ist der Schlüsselbart. 952 00:52:46,340 --> 00:52:54,130 Und weil diese Dinge nicht haben Typisierung, so Zeilen ist ein Array von Arrays. 953 00:52:54,130 --> 00:52:59,480 Denn wenn wir über das Denken eine Tabelle, was wir tun werden 954 00:52:59,480 --> 00:53:04,830 ist, wie Sie in psets gelernt wie das Spiel von 15, jedenfalls 955 00:53:04,830 --> 00:53:06,990 wo Sie musste ein verwenden Doppel Array, wir im Grunde 956 00:53:06,990 --> 00:53:15,210 haben Reihe anderer Arrays macht einen Tisch. 957 00:53:15,210 --> 00:53:18,150 Und Sie Zeilen und Spalten haben. 958 00:53:18,150 --> 00:53:24,450 Und dann können Sie sie wie Zugriff [0] [1], erhalten Sie die [0] [1]. 959 00:53:24,450 --> 00:53:26,900 Grund Sachen. 960 00:53:26,900 --> 00:53:29,380 >> Also, was wir tun Hier in dieser Funktion, 961 00:53:29,380 --> 00:53:35,070 wir die Datenbank gefragt wenn der Benutzer, ist 962 00:53:35,070 --> 00:53:40,200 versuchen, anmelden, das sein wird durch die Methode POST gesendet. 963 00:53:40,200 --> 00:53:43,950 Wir werden sehen, wir bekommen der Benutzername aus _POST. 964 00:53:43,950 --> 00:53:46,900 Sie werden geschickt haben, den Benutzer oder Sie, Wert senden 965 00:53:46,900 --> 00:53:50,750 über ein Formular über POST, weil es ist Benutzername und Passwort Zeug. 966 00:53:50,750 --> 00:53:54,830 Wir überprüfen den Benutzernamen um zu sehen, ist dies in der Tabelle? 967 00:53:54,830 --> 00:53:58,070 Denn wenn ein Benutzer anmeldet in, dann ihren Benutzernamen 968 00:53:58,070 --> 00:54:03,320 sollte in der Tabelle gespeichert werden Benutzer, die für diese Website existiert. 969 00:54:03,320 --> 00:54:09,360 Also im Grunde, wenn die Benutzer in der Datenbank, 970 00:54:09,360 --> 00:54:16,400 Abfrage wird zur Rückkehr diese Zeile, die ein Array ist. 971 00:54:16,400 --> 00:54:24,560 >> Aber der schwierige Teil ist, dass wenn, auch wenn das Doppel-Array ist nur einer Zeile, 972 00:54:24,560 --> 00:54:31,900 auch wenn es eine eine Zeile array-- wie Sie basically-- haben 973 00:54:31,900 --> 00:54:36,900 wenn Sie eine Größe one-Array haben , dass hält ein weiteres Array, 974 00:54:36,900 --> 00:54:38,940 Sie wirklich, die sich mit einer Spalte. 975 00:54:38,940 --> 00:54:41,420 Aber es ist immer noch behandelt wie eine doppelte Array. 976 00:54:41,420 --> 00:54:44,560 >> Und das ist, wo es manchmal bekommen können tricky, weil wir Zeilen hier. 977 00:54:44,560 --> 00:54:46,440 Unsere Variable Zeilen. 978 00:54:46,440 --> 00:54:48,590 Und dann schaffen wir eine neue Variable namens Reihe 979 00:54:48,590 --> 00:54:51,450 und wenn er gleich die erste Reihe von Zeilen. 980 00:54:51,450 --> 00:54:55,150 Und Sie werden feststellen, dass Kommentar sagt, es ist das erste und einzige Zeile. 981 00:54:55,150 --> 00:54:57,080 >> Das ist also die knifflige Teil, wo jetzt Funktionen 982 00:54:57,080 --> 00:54:59,660 Arrays können sehr leicht zurück. 983 00:54:59,660 --> 00:55:01,270 Es gibt nicht mallocs. 984 00:55:01,270 --> 00:55:02,280 Sie werden nicht sehen mallocs. 985 00:55:02,280 --> 00:55:03,940 So werden Sie nicht sehen seg Fehler. 986 00:55:03,940 --> 00:55:08,380 Aber Funktionen trotzdem vorbei sein um die Arrays und Daten in Gruppen. 987 00:55:08,380 --> 00:55:12,250 Und man muss vorsichtig sein, von dem, was zu sein genau Ihre Funktionen werden zurückkehren. 988 00:55:12,250 --> 00:55:15,160 Und selbst wenn es eines Spalte wie diese, abfragen 989 00:55:15,160 --> 00:55:17,520 ist noch im Gange, um eine doppelte Array zurück. 990 00:55:17,520 --> 00:55:21,390 Also, den Zugang, die Sie column-- oder kann all dies als umgekehrt 991 00:55:21,390 --> 00:55:22,870 da wir über Zeilen sprechen. 992 00:55:22,870 --> 00:55:26,810 Aber für den Zugriff auf diese eine Zeile, Sie nicht einfach sagen können Zeilen. 993 00:55:26,810 --> 00:55:31,540 Auch wenn es eine Zeile, müssen Sie Sie rowsrows [0], um Art zu beseitigen diese 994 00:55:31,540 --> 00:55:37,360 äußeren Bit des Arrays und haben gerade Ihr eine Zeile. 995 00:55:37,360 --> 00:55:38,342 >> Haben ein paar andere Dinge. 996 00:55:38,342 --> 00:55:40,050 Es gibt eine Funktion genannt password_verify 997 00:55:40,050 --> 00:55:42,980 dass überprüft die Kennwort, das aufgerufen worden. 998 00:55:42,980 --> 00:55:48,500 Und dann sehen wir einen weiteren globalen Hier variable, _SESSION. 999 00:55:48,500 --> 00:55:51,340 Grundsätzlich Session-ID So behalten Sie die Übersicht 1000 00:55:51,340 --> 00:55:53,990 der, wenn jemand angemeldet ist oder nicht. 1001 00:55:53,990 --> 00:55:58,590 So jetzt mit login.php, wir sind der Anmeldung eines Benutzers in. 1002 00:55:58,590 --> 00:56:01,920 Also, was wir tun wollen, ist, dass wir wollen, sagen, dass die Session-ID gleich der Zeile 1003 00:56:01,920 --> 00:56:05,890 ID, die nur sinnvoll, weil Jede Zeile wird eine andere ID haben 1004 00:56:05,890 --> 00:56:07,239 Nummer als Teil der Tabelle. 1005 00:56:07,239 --> 00:56:09,280 Wir werden in SQL in a erhalten zweite, so dass, wenn irgendetwas davon 1006 00:56:09,280 --> 00:56:13,500 scheint ein wenig wie blah, dann wird alles geklärt werden. 1007 00:56:13,500 --> 00:56:18,450 Aber wir werden, um die ID gleich eingestellt die richtige Sache, die Anmeldung der Benutzer in. 1008 00:56:18,450 --> 00:56:20,530 Entschuldigen Sie, wenn etwas schief geht. 1009 00:56:20,530 --> 00:56:27,600 Und das ist Anmeldungen Zweck Leben als Professor Malan sagen würde. 1010 00:56:27,600 --> 00:56:29,130 >> Das war also login.php. 1011 00:56:29,130 --> 00:56:33,750 Und viele der PHP-Code Sie schreiben in pset 7, werden sie ein wenig zu sein. 1012 00:56:33,750 --> 00:56:36,470 Vergessen Sie nicht, den chmod die entsprechenden Berechtigungen. 1013 00:56:36,470 --> 00:56:40,180 Es wird ein wenig über sein dass am Anfang des spec. 1014 00:56:40,180 --> 00:56:46,382 >> Aber die PHP, die Sie schriftlich sein wird 1015 00:56:46,382 --> 00:56:47,840 Dinge tun, die dieser recht ähnlich ist. 1016 00:56:47,840 --> 00:56:49,715 Du wirst sein Zugriff auf einige Dinge, 1017 00:56:49,715 --> 00:56:52,760 werden Ihnen in der gegebenen globale Variablen von PHP, dass 1018 00:56:52,760 --> 00:56:56,105 werden mit dem aktuellen Umgang angemeldete Benutzer, ob es 1019 00:56:56,105 --> 00:57:00,460 gewesen Anfragen an diesen geschickt Seite, verschiedene Dinge. 1020 00:57:00,460 --> 00:57:05,790 Und es wird auch potentiell Durchlaufen Zeilen dieser Sache. 1021 00:57:05,790 --> 00:57:09,010 >> In einer anderen Funktion, Abfrage zurückkehrt diese doppelte Array. 1022 00:57:09,010 --> 00:57:11,450 Und wenn es mehr als eine Reihen darin, 1023 00:57:11,450 --> 00:57:15,080 wenn sind-- ja, ob es mehr als eine Reihen darin, 1024 00:57:15,080 --> 00:57:16,870 dann wird es eine Tabelle. 1025 00:57:16,870 --> 00:57:20,500 Und möchten Sie vielleicht zu durchlaufen durch die Reihen des Arrays mit 1026 00:57:20,500 --> 00:57:22,860 die foreach-Schleife, die wir beschrieben. 1027 00:57:22,860 --> 00:57:30,270 >> Also, wenn Sie foreach auf einer Doppel-do Array, was werden die word-- hier, 1028 00:57:30,270 --> 00:57:31,909 Ich werde tatsächlich schreiben. 1029 00:57:31,909 --> 00:57:32,950 Ich werde es schnell hier zu schreiben. 1030 00:57:32,950 --> 00:57:44,280 >> Wenn wir eine foreach der Zeilen als Folge, was die Art der Reihe? 1031 00:57:44,280 --> 00:57:45,390 Weiß jemand? 1032 00:57:45,390 --> 00:57:54,000 1033 00:57:54,000 --> 00:57:54,500 Du hast es? 1034 00:57:54,500 --> 00:57:57,110 So Zeilen ist ein Doppel-Array. 1035 00:57:57,110 --> 00:58:02,810 Also, was ist foreach gehen, um zu schließen , dass wir wollen, dass dieser Doppel Array 1036 00:58:02,810 --> 00:58:04,280 wenn wir über sie iterieren? 1037 00:58:04,280 --> 00:58:07,170 1038 00:58:07,170 --> 00:58:10,770 Wir können davon ausgehen, dass im Grunde es wird entweder Elemente sein, 1039 00:58:10,770 --> 00:58:14,970 oder Zeilen oder Spalten, im Grunde. 1040 00:58:14,970 --> 00:58:18,740 Usw. Zeilen und Spalten wir kann als die gleiche Sache zu behandeln. 1041 00:58:18,740 --> 00:58:23,880 >> Im Grunde, was die foreach-Schleife wird zu tun ist, es geht um Zeilen zurück. 1042 00:58:23,880 --> 00:58:28,500 Zeile wird zu der Typenreihe sein, wohin Zeilen ist ein Doppel-Array. 1043 00:58:28,500 --> 00:58:32,290 Also, wenn Sie foreach geben ein Doppel-Array, ist es 1044 00:58:32,290 --> 00:58:35,830 nicht zu durchlaufen mehr als eine Ebene tiefer. 1045 00:58:35,830 --> 00:58:44,464 Das ist im Grunde, wenn zu sagen, es acht Zellen in diesem table-- 1,2, 1046 00:58:44,464 --> 00:58:48,110 3 4, 5, 6, 7, die 8-- foreach-Schleife ist nicht 1047 00:58:48,110 --> 00:58:51,880 gehen, um durch jede dieser Zellen zu gehen. 1048 00:58:51,880 --> 00:58:56,390 Was der foreach-Schleife wird tun wurde es durch diese Zeile zu gehen, 1049 00:58:56,390 --> 00:58:57,870 geben Ihnen die ganze Reihe. 1050 00:58:57,870 --> 00:58:59,410 Und dann werden sie durch diese Zeile zu gehen. 1051 00:58:59,410 --> 00:59:01,850 >> So ist es durchläuft nur eine Ebene tiefer. 1052 00:59:01,850 --> 00:59:05,310 Wenn Sie eine verschachtelte hinzufügen foreach-Schleife, dann 1053 00:59:05,310 --> 00:59:16,280 kann jede Zeile von zurück behandeln Zeilen, foreach Zeile als Element haben Sie, 1054 00:59:16,280 --> 00:59:17,640 sagen wir. 1055 00:59:17,640 --> 00:59:22,750 Und dann könnte man das Element echo. 1056 00:59:22,750 --> 00:59:24,930 Also das ist eine kurze kleine Auffrischung, wie 1057 00:59:24,930 --> 00:59:30,220 Sie könnten mit foreach Loops im Zusammenhang mit der Abfrage. 1058 00:59:30,220 --> 00:59:32,840 >> Gibt es irgendwelche Fragen zu PHP? 1059 00:59:32,840 --> 00:59:36,520 Überhaupt etwas, bevor wir gehen Sie zum Gespräch über SQL 1060 00:59:36,520 --> 00:59:37,820 und der Spaß der Datenbank? 1061 00:59:37,820 --> 00:59:41,480 1062 00:59:41,480 --> 00:59:42,110 Gut fühlen? 1063 00:59:42,110 --> 00:59:42,750 Gut fühlen. 1064 00:59:42,750 --> 00:59:43,470 Gut. 1065 00:59:43,470 --> 00:59:49,130 >> Gehen wir zurück zu den Powerpoint, die Sie wahrscheinlich zu verpassen. 1066 00:59:49,130 --> 00:59:51,800 SQL, yay. 1067 00:59:51,800 --> 00:59:57,900 Menschen, die in meiner Abteilung sind in der Regel wird wissen, dass Tarifstellen der Akronyme 1068 00:59:57,900 --> 01:00:01,220 sind immer nur die ersten Worte Ich denke, dieses Spiel, dass 1069 01:00:01,220 --> 01:00:02,690 algorithm-- diese Abkürzung. 1070 01:00:02,690 --> 01:00:04,090 Es ist nicht ein Algorithmus. 1071 01:00:04,090 --> 01:00:08,050 >> So SQL ist eine Datenbank. 1072 01:00:08,050 --> 01:00:11,060 Es ist eine Sprache, die arbeitet mit Datenbanken. 1073 01:00:11,060 --> 01:00:14,440 Und alle Datenbanken ist Tische, zumindest in der Weise 1074 01:00:14,440 --> 01:00:17,220 dass SQL vertritt sie. 1075 01:00:17,220 --> 01:00:23,610 >> Eine weitere Möglichkeit, über Datenbanken denken Datenbanken sind eine Reihe von Schlüssel und Werte 1076 01:00:23,610 --> 01:00:24,110 im Grunde. 1077 01:00:24,110 --> 01:00:29,530 Sie können über eine Datenbank als zu denken ein Wörterbuch und auch als Tisch. 1078 01:00:29,530 --> 01:00:34,300 Im Grunde ist es ein Weg, um zu assoziieren unterschiedliche Daten mit anderen Daten, 1079 01:00:34,300 --> 01:00:36,270 häufig durch Zeilen und Spalten. 1080 01:00:36,270 --> 01:00:38,470 Und das ist der Weg, das ist SQL am besten funktioniert. 1081 01:00:38,470 --> 01:00:40,880 >> So ist dies ein Beispiel für eine Tabelle. 1082 01:00:40,880 --> 01:00:44,610 Ich habe ein paar Beispiele von bekam Leute in meinem Abschnitt, der 1083 01:00:44,610 --> 01:00:45,970 Ich hatte keine Zeit, um zu ändern. 1084 01:00:45,970 --> 01:00:52,020 Aber wir haben Dinge wie ID bekam, Name, Supermacht, und Heimatort. 1085 01:00:52,020 --> 01:00:54,100 Ich weiß nicht, wo jemand ist aus in meinem Abschnitt, 1086 01:00:54,100 --> 01:00:56,266 so bin ich nur davon ausgehen, jeder ist von New York 1087 01:00:56,266 --> 01:00:59,370 Stadt, weil ich eine hohe statistische Wahrscheinlichkeit, richtig. 1088 01:00:59,370 --> 01:01:04,200 >> SQL wird automatisch Pflege der ID-Spalte für Sie. 1089 01:01:04,200 --> 01:01:07,560 Wenn Sie eine neue Zeile einfügen in eine SQL-Datenbank, 1090 01:01:07,560 --> 01:01:09,700 es wird zu erhöhen, dass ID-Nummer und einfach 1091 01:01:09,700 --> 01:01:14,890 Grundsätzlich haften wie fünf Namen, Supermacht, heimatstadt, wer 1092 01:01:14,890 --> 01:01:16,430 auf das Ende der Tabelle. 1093 01:01:16,430 --> 01:01:19,160 So ID ist eine Spalte finden Sie nie zu befürchten. 1094 01:01:19,160 --> 01:01:22,770 Aber, wie in dem Fall von login.php, wenn wir 1095 01:01:22,770 --> 01:01:26,610 bekamen die Session-ID aus einer Tabelle und nur mit ID, 1096 01:01:26,610 --> 01:01:30,320 ID ist ein Weg, um eindeutig zu identifizieren, ein Element aus einer Datenbank. 1097 01:01:30,320 --> 01:01:34,980 >> Also, wenn wir zwei Sams, beide die CS50 gelehrt, und beide, die 1098 01:01:34,980 --> 01:01:39,370 waren aus Milwaukee, denen würde noch verschiedene ID-Nummern 1099 01:01:39,370 --> 01:01:43,420 und so verschieden in sein der Kontext der Tabelle. 1100 01:01:43,420 --> 01:01:48,700 Also das ist, was SQL beschäftigt mit, die Arbeit mit im Backend. 1101 01:01:48,700 --> 01:01:54,160 >> Und dies sind die vier Befehle dass Sie benötigen, um mit SQL arbeiten. 1102 01:01:54,160 --> 01:01:56,390 Und ich warf sie alle auf einer Folie. 1103 01:01:56,390 --> 01:01:59,530 Aber wir werden zu durchlaufen sie alle einzeln. 1104 01:01:59,530 --> 01:02:03,300 >> Der erste Befehl UPDATE, das tut, was Sie vielleicht erwarten. 1105 01:02:03,300 --> 01:02:07,240 Sagen Sie einige Daten in haben Die Tabelle, die veraltet ist. 1106 01:02:07,240 --> 01:02:09,470 Wie, wenn Sie halten Überblick über die Namen von Personen 1107 01:02:09,470 --> 01:02:13,350 und das Alter, wenn jemand ist Alter zunimmt, dann 1108 01:02:13,350 --> 01:02:18,590 Sie gehen zu wollen, um in zu gehen sind und aktualisieren Alters gerade dieser Person. 1109 01:02:18,590 --> 01:02:21,902 Ein Beispiel, das funktioniert mit unserem ersten table-- 1110 01:02:21,902 --> 01:02:24,610 nicht über das Schreiben von allen Sorgen Diese Befehle gleichzeitig. 1111 01:02:24,610 --> 01:02:27,640 Aber wenn Sie Update nach unten haben, das wird gut für diesen Teil zu sein, 1112 01:02:27,640 --> 01:02:29,790 weil wir zu gehen gehen Sie zurück auf den Tisch. 1113 01:02:29,790 --> 01:02:33,920 >> Also, wenn wir wieder an den Tisch, sagen wir mal, etwas, das passiert 1114 01:02:33,920 --> 01:02:38,480 wurde gab es ein Erdbeben oder eine Bruchlinie, die direkt gespalten 1115 01:02:38,480 --> 01:02:39,920 durch New York City. 1116 01:02:39,920 --> 01:02:45,130 Und wir jedem aktualisieren wollte , die in New York lebte. 1117 01:02:45,130 --> 01:02:49,670 Sie alle hatten den nach Pennsylvania zu bewegen. 1118 01:02:49,670 --> 01:02:51,130 Das ist kein Heimatstadt. 1119 01:02:51,130 --> 01:02:53,180 Sie alle hatten nach New Haven zu bewegen. 1120 01:02:53,180 --> 01:02:54,030 Da gehen wir. 1121 01:02:54,030 --> 01:02:57,630 So dass jeder in New York zieht nach New Haven. 1122 01:02:57,630 --> 01:03:01,300 >> Und das ist also etwas, das ist Bearbeiten drei Zeilen in dieser Tabelle. 1123 01:03:01,300 --> 01:03:04,716 Aber in SQL, die Sie tun können dass in nur einer Anweisung. 1124 01:03:04,716 --> 01:03:05,715 Also gehen wir zurück zum Aktualisieren. 1125 01:03:05,715 --> 01:03:09,670 Lassen Sie mich das Board schnell wieder zu löschen. 1126 01:03:09,670 --> 01:03:14,570 Wenn wir reden Aktualisierung gibt es 1127 01:03:14,570 --> 01:03:17,640 einige Teile der Syntax, die wichtigsten sind. 1128 01:03:17,640 --> 01:03:19,770 Nun, das ist alles für die Syntax-Taste. 1129 01:03:19,770 --> 01:03:22,210 Aber das Zeug in grün ist optional. 1130 01:03:22,210 --> 01:03:25,680 Die weißen sind erforderlich, wie vordefinierten Namen. 1131 01:03:25,680 --> 01:03:30,750 Und das Licht blau sind Dinge, , die je auf dem Tisch ab. 1132 01:03:30,750 --> 01:03:34,640 Also das ist, was ist los mit das Farbschema hier, dort oben. 1133 01:03:34,640 --> 01:03:40,250 >> Wenn wir also nur die Zeilen aktualisiert werden sollen der Menschen, die in New York leben, 1134 01:03:40,250 --> 01:03:43,490 Also, was wir tun würden, wenn wir sagten, UPDATE? 1135 01:03:43,490 --> 01:03:46,320 So Tisch ist, wo wir der Name unserer Tabelle. 1136 01:03:46,320 --> 01:03:49,170 Sagen wir einfach, den Namen unserer Tabelle ist eine Tabelle. 1137 01:03:49,170 --> 01:03:52,515 So wollen wir die Tabelle einem Update. 1138 01:03:52,515 --> 01:03:57,470 Und wir möchten Satz-- was wollen wir zu setzen? 1139 01:03:57,470 --> 01:04:05,160 Nun, wir sagen wollen, so column-- PHP behandelt Zeilen wie eindeutige Kennungen. 1140 01:04:05,160 --> 01:04:07,930 Und dann Spalten den verschiedenen Bereichen 1141 01:04:07,930 --> 01:04:09,940 jener Elemente der Datenbank. 1142 01:04:09,940 --> 01:04:14,210 >> Also das erste Element der Datenbank hat einen Namen von Sam, Supermacht der CS50, 1143 01:04:14,210 --> 01:04:16,210 und eine Heimatstadt von Milwaukee. 1144 01:04:16,210 --> 01:04:20,710 Wenn wir also der Satz, lassen Sie uns an die Parameter wieder, dass Satz dauert. 1145 01:04:20,710 --> 01:04:23,880 Wir haben Säule gleich Wert. 1146 01:04:23,880 --> 01:04:27,290 Also, einige sagen, wir wollen column--, die daran erinnern, 1147 01:04:27,290 --> 01:04:31,850 ist ein field-- wir einen sehen wollen Feld gleich etwas Neues. 1148 01:04:31,850 --> 01:04:42,340 >> So, wenn wir gerade gesagt Update Tabelle 1, Name gleich Elliot. 1149 01:04:42,340 --> 01:04:46,310 Holen Sie sich einige Leute aus der neuer Abschnitt in zu diesem Thema. 1150 01:04:46,310 --> 01:04:51,540 Aber wenn wir gerade getan Aktualisierungstabelle 1 Satzname gleich Elliot, was würden 1151 01:04:51,540 --> 01:04:55,530 die Tabelle aussehen danach? 1152 01:04:55,530 --> 01:04:56,410 Die Menschen haben eine Idee? 1153 01:04:56,410 --> 01:04:59,710 1154 01:04:59,710 --> 01:05:00,210 Ja. 1155 01:05:00,210 --> 01:05:03,195 >> ZIELGRUPPE: Für alles, dass Zeile würde Elliot zu werden. 1156 01:05:03,195 --> 01:05:04,570 SPRECHER: Alles in die Reihe? 1157 01:05:04,570 --> 01:05:06,067 Publikum: In der ersten Reihe. 1158 01:05:06,067 --> 01:05:07,150 SPRECHER: In der ersten Reihe? 1159 01:05:07,150 --> 01:05:09,724 Warum der ersten Reihe? 1160 01:05:09,724 --> 01:05:10,890 Ich meine nicht, um auf Ihnen zu rupfen. 1161 01:05:10,890 --> 01:05:13,287 >> ZIELGRUPPE: Vielleicht alles, was im ganzen Tisch? 1162 01:05:13,287 --> 01:05:15,120 SPRECHER: Alles in der ganze Tisch, ja. 1163 01:05:15,120 --> 01:05:19,520 Und das ist genau das richtige because-- I wurde nur helfen Ihnen, ein wenig 1164 01:05:19,520 --> 01:05:22,650 sind-- weil wir weggelassen die optionale WHERE-Klausel. 1165 01:05:22,650 --> 01:05:27,260 Wenn Sie nicht die WHERE haben Klausel, was dieser Befehl tun 1166 01:05:27,260 --> 01:05:32,240 wird es dann mit jedem arbeiten einzelne Zeile in der Tabelle. 1167 01:05:32,240 --> 01:05:35,430 Namen aller Wille geworden Elliott, im Grunde, 1168 01:05:35,430 --> 01:05:37,360 was Elliot ist sehr glücklich darüber. 1169 01:05:37,360 --> 01:05:40,070 Oder Yanni, einer der beiden. 1170 01:05:40,070 --> 01:05:42,490 Aber jeder Name wird sich ändern. 1171 01:05:42,490 --> 01:05:47,880 >> So ist die Art und Weise verwenden wir die WHERE clause-- und das gilt für alle Wheres 1172 01:05:47,880 --> 01:05:51,410 die in jedem der sich diese unterschiedliche Dinge. 1173 01:05:51,410 --> 01:05:54,380 So dass Sie, dass SET merken hat Spalte gleichwertig. 1174 01:05:54,380 --> 01:05:55,190 Und so auch WHERE. 1175 01:05:55,190 --> 01:06:00,040 Aber diese sind anders Arten von Aussagen. 1176 01:06:00,040 --> 01:06:04,400 So ist die Spalte gleich Wert in SET ist in Zuordnung. 1177 01:06:04,400 --> 01:06:08,320 Wie wir sagen, wir wollen, In den Namen gleich Elliot gesetzt. 1178 01:06:08,320 --> 01:06:15,390 Aber in den WHERE-Klauseln, das sind die Gleichstellung Aussagen. 1179 01:06:15,390 --> 01:06:20,410 Also lassen Sie uns sagen, wir wollten nur ändern den Namen der Person, um Elliot 1180 01:06:20,410 --> 01:06:23,940 wenn ihr Name war Ryan, sagen wir. 1181 01:06:23,940 --> 01:06:24,920 >> Wenn wir also sagen 1182 01:06:24,920 --> 01:06:32,700 >> WHERE name gleich Ryan, dass würde erfolgreich einzige Änderung 1183 01:06:32,700 --> 01:06:37,440 nur die name-- es würde ändern Sie das Namensfeld in Reihen 1184 01:06:37,440 --> 01:06:40,770 wo das Namensfeld ist gleich Ryan. 1185 01:06:40,770 --> 01:06:44,430 Also, wenn wir mehrere Leute hatten benannt Ryan, alle ihre Namen 1186 01:06:44,430 --> 01:06:45,730 würde Elliot ändern. 1187 01:06:45,730 --> 01:06:48,169 >> Dies ist ähnlich zu dem Beispiel der, wenn eine Bruchlinie spaltet 1188 01:06:48,169 --> 01:06:50,960 New York City, und jeder muss zu bewegen, um New Haven, wie wir können, 1189 01:06:50,960 --> 01:06:56,570 zu tun, dass in einer Anweisung UPDATE table1 SET = Heimatstadt New Haven 1190 01:06:56,570 --> 01:07:00,210 wo Heimatstadt gleich New York City. 1191 01:07:00,210 --> 01:07:03,410 Dies ist die Kraft der die UPDATE-Anweisung. 1192 01:07:03,410 --> 01:07:10,530 Wir können eine beliebige Anzahl auswählen Zeilen durch wahre Aussagen 1193 01:07:10,530 --> 01:07:12,860 über die Felder in den Zeilen. 1194 01:07:12,860 --> 01:07:19,510 Wir können nicht sagen UPDATE table1 set name = Elliot WHERE row = 1, 1195 01:07:19,510 --> 01:07:24,820 mit der Ausnahme, dass wir, wenn wir sagen, ID = 1. 1196 01:07:24,820 --> 01:07:27,350 1197 01:07:27,350 --> 01:07:29,830 >> So werden wir sein, Arbeiten mit der Gleichstellung 1198 01:07:29,830 --> 01:07:32,830 Felder, die Gleichstellung von Spalten. 1199 01:07:32,830 --> 01:07:38,030 Jedoch unter Verwendung der ID-Feld ist eine Möglichkeit, Wählen Sie einzelne Zeilen gesagt, 1200 01:07:38,030 --> 01:07:43,210 da das ID-Feld ist eine eindeutige Kennung in einer SQL-Datenbank. 1201 01:07:43,210 --> 01:07:45,860 So wie die Aktualisierung einer Zeile, ID gleich 1 ist. 1202 01:07:45,860 --> 01:07:49,560 Aktualisieren Reihe zwei, nur zu ändern, dass die ID-Nummer. 1203 01:07:49,560 --> 01:07:51,610 Aber die Macht der WHERE-Anweisung ist, dass wir 1204 01:07:51,610 --> 01:07:57,480 können die Dinge zu aktualisieren, basierend auf, was ihre aktuelle Werte bestimmter Dinge sind. 1205 01:07:57,480 --> 01:07:58,155 Ja Elliot? 1206 01:07:58,155 --> 01:08:02,678 >> Publikum: Und was ist, wenn Sie wollen, zu-- wieder, das ist eine andere Frage. 1207 01:08:02,678 --> 01:08:07,660 Aber meine erste Frage war, Wo ist das passiert? 1208 01:08:07,660 --> 01:08:09,130 Wo soll ich die Aktualisierung das? 1209 01:08:09,130 --> 01:08:11,100 Ist das in einer PHP-Code? 1210 01:08:11,100 --> 01:08:13,379 >> SPRECHER: Wo Sie aktualisieren, ja. 1211 01:08:13,379 --> 01:08:15,170 Wir werden sprechen sich dies alles 1212 01:08:15,170 --> 01:08:18,729 passiert, Art, wenn wir gehen, durch alle Befehle. 1213 01:08:18,729 --> 01:08:21,130 Aber, was Sie brauchen wissen, denn jetzt ist im Grunde 1214 01:08:21,130 --> 01:08:26,279 dass Ihre SQL-Datenbank existiert als etwas 1215 01:08:26,279 --> 01:08:30,090 In den von der Abfrage zugegriffen werden Funktion, die CS50 definiert. 1216 01:08:30,090 --> 01:08:33,800 Also, wenn Sie die Abfrage-Funktion verwenden, Sie diese Tabelle zugreifen können. 1217 01:08:33,800 --> 01:08:39,529 >> So werden Sie sendet diese Befehle, um Ihren Tisch im PHP-Dateien 1218 01:08:39,529 --> 01:08:41,420 durch die Query-Funktion. 1219 01:08:41,420 --> 01:08:45,410 Sie können auch spielen, um mit Ihren Tisch direkt. 1220 01:08:45,410 --> 01:08:49,050 Und das ist der beste Weg, Test dieser Arten von Befehlen. 1221 01:08:49,050 --> 01:08:52,720 Und wir werden durch genau, wie gehen der in nur ein wenig zu tun. 1222 01:08:52,720 --> 01:08:54,910 >> Also das ist UPDATE-Befehl. 1223 01:08:54,910 --> 01:08:57,939 Und der Rest der Befehle gehen, um Art von ähnlich sein, 1224 01:08:57,939 --> 01:08:59,069 arbeitet an ähnlichen Dingen. 1225 01:08:59,069 --> 01:09:02,740 Die INSERT INTO ist wahrscheinlich die verschiedenen am meisten von UPDATE. 1226 01:09:02,740 --> 01:09:06,170 Ich werde da oben lassen Sie für nur ein wenig und arbeiten hier. 1227 01:09:06,170 --> 01:09:10,215 So INSERT INTO, sehen Sie, diese Tabelle ist immer noch die gleiche. 1228 01:09:10,215 --> 01:09:17,010 Sie wollen in den Einsatz. 1229 01:09:17,010 --> 01:09:20,286 Die Kapitalisierung, SQL Groß- und Kleinschreibung. 1230 01:09:20,286 --> 01:09:22,160 So müssen Sie nicht zu haben, nutzen diese Dinge. 1231 01:09:22,160 --> 01:09:27,960 Vereinbarungsgemäß werden die Worte in weiß, werden aktiviert. 1232 01:09:27,960 --> 01:09:31,590 Aber ich habe auch farblich codiert sie. 1233 01:09:31,590 --> 01:09:34,390 Der einzige Grund, die Sie nutzen Personen, wenn Sie die Eingabe ihnen 1234 01:09:34,390 --> 01:09:36,609 wird nur zu betonen, dass diejenigen Konstanten sind. 1235 01:09:36,609 --> 01:09:39,189 Und so können Sie entweder Blick auf die Aktivierung oder die Tatsache, 1236 01:09:39,189 --> 01:09:40,740 daß ich sie unterschiedlich gefärbt. 1237 01:09:40,740 --> 01:09:44,910 >> Deshalb haben wir INSERT INTO bekam, Versuche es noch zu tun table1. 1238 01:09:44,910 --> 01:09:45,930 Das ist alles in einer Zeile. 1239 01:09:45,930 --> 01:09:48,609 Ich bin einfach nur trennt sie von die unterschiedlichen Aussagen. 1240 01:09:48,609 --> 01:09:52,399 Also nicht über die Tatsache, dass Sorgen table1 schafften es in der zweiten Zeile. 1241 01:09:52,399 --> 01:09:56,130 >> So einfügen möchten wir In die Tabelle TABLE1 einige Werte. 1242 01:09:56,130 --> 01:09:58,922 Und Sie werden die optional bemerken Bit, das ich werde, um in einem zweiten zu bekommen. 1243 01:09:58,922 --> 01:09:59,755 Also haben wir VALUES bekam. 1244 01:09:59,755 --> 01:10:03,640 1245 01:10:03,640 --> 01:10:08,100 >> Also lassen Sie uns sagen, dass wir, um Andi hinzufügen an unseren Tisch, weil wir verpassen Andi. 1246 01:10:08,100 --> 01:10:09,390 Andi ist krank. 1247 01:10:09,390 --> 01:10:12,490 Lassen Sie uns also Andi hinzufügen zu unserem Tisch. 1248 01:10:12,490 --> 01:10:15,150 Denken Sie daran, dass der ID-Nummer wird automatisch aktualisiert. 1249 01:10:15,150 --> 01:10:17,320 So ist die einzige Bereichen wir sich Sorgen machen müssen 1250 01:10:17,320 --> 01:10:20,230 sind Name, Supermacht, und Heimatort. 1251 01:10:20,230 --> 01:10:23,660 >> Und so ist die Art, wie wir das tun, Betrachten unserer Syntax ist wir haben 1252 01:10:23,660 --> 01:10:28,780 gerade eine Klammer, mit Komma trennen getrennte Werte, von denen jede 1253 01:10:28,780 --> 01:10:29,890 ist ein Wert. 1254 01:10:29,890 --> 01:10:35,530 Wenn wir also in Andi einfügen wollten, dass unsere Tabelle, ist alles, was wir tun müssen rechts Andi. 1255 01:10:35,530 --> 01:10:38,630 Was ist in der Andis Supermacht, Menschen in Abschnitt Andis? 1256 01:10:38,630 --> 01:10:45,406 1257 01:10:45,406 --> 01:10:47,545 Sie mögen Flug, oder gerne Geschwindigkeit, oder so etwas. 1258 01:10:47,545 --> 01:10:48,920 Was haben wir schon da? 1259 01:10:48,920 --> 01:10:53,425 Wir haben CS50, Flug, Geschwindigkeit und Stärke. 1260 01:10:53,425 --> 01:10:54,850 >> ZIELGRUPPE: Zeitreise. 1261 01:10:54,850 --> 01:10:56,180 >> SPRECHER: Zeitreise, erstaunlich. 1262 01:10:56,180 --> 01:11:04,280 Deshalb haben wir Andi, Zeit bekam Reisen und ihrer Heimatstadt. 1263 01:11:04,280 --> 01:11:05,530 Das ist eine wirklich gute Frage. 1264 01:11:05,530 --> 01:11:09,210 New York City, es sei denn, jemand weiß. 1265 01:11:09,210 --> 01:11:13,600 Jeder ist von New York ist die Lektion von heute zu nehmen. 1266 01:11:13,600 --> 01:11:17,710 >> Also diese Erklärung einzufügen, als eine fünfte Reihe, 1267 01:11:17,710 --> 01:11:21,900 mit der Superzeitreisen und eine Heimatstadt von New York City. 1268 01:11:21,900 --> 01:11:25,660 Aber das optionale Feld ist im Prinzip eine Art 1269 01:11:25,660 --> 01:11:30,090 genau, welche Spalten festlegen Sie, die Dinge in einfügen wollen. 1270 01:11:30,090 --> 01:11:33,710 >> Die Art und Weise, die wir jetzt tun es, Andi, zeitreise, New York City, 1271 01:11:33,710 --> 01:11:38,150 wird in der exakten Reihenfolge unserer table-- Namen, Supermacht, Heimatstadt. 1272 01:11:38,150 --> 01:11:42,290 Und wenn Sie tun wollte, etwas anders als das, 1273 01:11:42,290 --> 01:11:44,970 wie sagen Sie nicht wissen, jemandes Supermacht, 1274 01:11:44,970 --> 01:11:47,660 wie, wie ich wusste nicht, Andis Supermacht am Anfang. 1275 01:11:47,660 --> 01:11:50,450 Also alles, was ich wusste, war ihr zu benennen und ihre Heimatstadt. 1276 01:11:50,450 --> 01:11:54,550 Was ich tun kann, ist, ich könnte do-- Ich werde diese schnell zu löschen. 1277 01:11:54,550 --> 01:11:57,910 1278 01:11:57,910 --> 01:12:00,090 >> Ich möchte nur die Spalten aktualisieren. 1279 01:12:00,090 --> 01:12:04,100 Und dies ist, wo die optionale Spaltenliste ins Spiel kommt. 1280 01:12:04,100 --> 01:12:09,185 Ich will nur Name und Heimatort zu aktualisieren. 1281 01:12:09,185 --> 01:12:12,650 1282 01:12:12,650 --> 01:12:16,480 Und dann werde ich sagen, VALUES. 1283 01:12:16,480 --> 01:12:24,430 Ich werde Andi und New York City zu tun. 1284 01:12:24,430 --> 01:12:28,980 >> Wenn ich die Liste der Spalten weggelassen und gerade getan diese beiden Dinge, 1285 01:12:28,980 --> 01:12:32,450 wo wäre New York gegangen? 1286 01:12:32,450 --> 01:12:35,900 Welche Spalte würde New York Stadt haben in gesetzt worden? 1287 01:12:35,900 --> 01:12:38,950 Die Menschen haben eine Idee? 1288 01:12:38,950 --> 01:12:40,160 Supermacht, genau. 1289 01:12:40,160 --> 01:12:41,890 >> So wird dies nur, um zu gehen. 1290 01:12:41,890 --> 01:12:45,530 Und wenn er das Ende der erreicht Liste, wird es einfach aufhören Füllung Dinge. 1291 01:12:45,530 --> 01:12:49,080 Und die Werte, es wird bleiben in alle Spalten wird nur NULL sein. 1292 01:12:49,080 --> 01:12:51,840 Also, weil wir festgelegt Name und Heimatstadt, 1293 01:12:51,840 --> 01:12:56,110 wir werden ID 5 haben, Andi nennen, Super NULL. 1294 01:12:56,110 --> 01:12:58,750 So Supermacht ist eine nicht initialisierte Wert. 1295 01:12:58,750 --> 01:13:01,340 Sie werden nicht unbedingt zu den Valgrind gleichen Fehler, wenn Sie versuchen, 1296 01:13:01,340 --> 01:13:01,970 und darauf zugreifen. 1297 01:13:01,970 --> 01:13:05,160 Alles wird schön auf Null gesetzt werden out, weil NULL ist ein Wert in SQL. 1298 01:13:05,160 --> 01:13:06,780 Daß eine Konstante ist. 1299 01:13:06,780 --> 01:13:08,980 Und dann wird Heimatstadt New York City zu sein. 1300 01:13:08,980 --> 01:13:11,860 Das ist also der INSERT INTO-Befehl. 1301 01:13:11,860 --> 01:13:13,610 Bevor wir fortfahren, gibt es zwei weitere Befehle. 1302 01:13:13,610 --> 01:13:19,060 Haben die Leute Fragen zu UPDATE, INSERT INTO etwa, über SQL 1303 01:13:19,060 --> 01:13:21,556 in der Regel, bevor wir auf unserem letzten Bits? 1304 01:13:21,556 --> 01:13:25,500 1305 01:13:25,500 --> 01:13:26,910 Die Menschen fühlen sich gut, groß. 1306 01:13:26,910 --> 01:13:27,410 Liebe es. 1307 01:13:27,410 --> 01:13:29,480 Also lassen Sie uns über SELECT sprechen. 1308 01:13:29,480 --> 01:13:33,445 Gehen Graben UPDATE hier. 1309 01:13:33,445 --> 01:13:35,720 >> Und wählen Sie wird sehr ähnlich zu sein. 1310 01:13:35,720 --> 01:13:38,790 Das Ziel der SELECT, Zweck SELECT im Leben 1311 01:13:38,790 --> 01:13:45,910 ist, dass Sie eine Reihe von Spalten zu geben dass bestimmte Bedingungen erfüllen. 1312 01:13:45,910 --> 01:13:48,230 Und wenn ich sage zu befriedigen bestimmten Bedingungen 1313 01:13:48,230 --> 01:13:50,800 Ihre Meinung könnte sofort gehen Sie zurück zu, dass WHERE-Klausel 1314 01:13:50,800 --> 01:13:52,090 dass kam in UPDATE. 1315 01:13:52,090 --> 01:13:54,880 Und das Klausel genau dort in SELECT. 1316 01:13:54,880 --> 01:14:06,020 >> Wenn wir uns nicht setzen die WHERE Klausel und wir sagen SELECT name, 1317 01:14:06,020 --> 01:14:16,490 Heimatstadt-- geschrieben, dass ein wenig wrong-- Namen, Heimatstadt FROM table1. 1318 01:14:16,490 --> 01:14:19,690 Wenn wir nur sagen, dass, was WÄHLEN wird uns geben, ist es 1319 01:14:19,690 --> 01:14:23,730 wird uns einen geben double-- eine Tabelle, statt. 1320 01:14:23,730 --> 01:14:27,450 Eine doppelte Array, wenn wir darüber nachzudenken, in PHP spürt. 1321 01:14:27,450 --> 01:14:33,239 Aber es ist gerade dabei, uns einen geben Doppel Array aus zwei columns-- Namen, 1322 01:14:33,239 --> 01:14:33,780 und Heimatort. 1323 01:14:33,780 --> 01:14:36,400 1324 01:14:36,400 --> 01:14:38,130 Und es wird ID ignorieren. 1325 01:14:38,130 --> 01:14:41,310 Und es wird Supermacht zu ignorieren. 1326 01:14:41,310 --> 01:14:44,696 Und es wird nur geben uns jeden einzelne Zeile der Tabelle. 1327 01:14:44,696 --> 01:14:46,570 So, wenn wir gerade eingefügt Andi, wir müssen Andi. 1328 01:14:46,570 --> 01:14:48,605 Und wir erledigen den ursprünglichen vier haben. 1329 01:14:48,605 --> 01:14:53,720 Wenn sie aktualisiert haben, werden, dass reflektiert werden, und so weiter, und so weiter. 1330 01:14:53,720 --> 01:14:56,520 >> Also das ist, weil wir habe nicht mit dem WHERE-Klausel. 1331 01:14:56,520 --> 01:14:59,200 Aber wir können sie in genau verwenden so, wie wir es früher in UPDATE. 1332 01:14:59,200 --> 01:15:05,310 Wenn wir wollen, nur eine Tabelle der Namen und Superkräfte der Menschen, 1333 01:15:05,310 --> 01:15:13,430 in New York, können wir eine Anweisung ausführen wie SELECT name, superpower-- 1334 01:15:13,430 --> 01:15:27,190 Ich werde einfach dass-- aus dem Urlaub table1 WHERE = Heimatstadt New York City. 1335 01:15:27,190 --> 01:15:33,370 >> Also das geht, zu zeigen, dass man zu völlig anderen Säulen, 1336 01:15:33,370 --> 01:15:36,920 und setzen Sie dann Spalten, dass Sie nicht sogar immer wieder in der WHERE-Klausel. 1337 01:15:36,920 --> 01:15:39,200 Wir wollen nicht einmal die Heimatstadt von jedermann. 1338 01:15:39,200 --> 01:15:41,920 Aber wir wollen den Namen und die Supermacht von Menschen 1339 01:15:41,920 --> 01:15:43,817 deren Heimatstadt New York City. 1340 01:15:43,817 --> 01:15:45,650 Also das ist etwas, was wir kann mit dem Wo sehen 1341 01:15:45,650 --> 01:15:49,112 Klausel ist können wir mit Spalten umgehen dass wir nicht unbedingt wollen zurück. 1342 01:15:49,112 --> 01:15:52,320 Auf die gleiche Weise in UPDATE wir umgehen können mit Säulen, die wir nicht unbedingt 1343 01:15:52,320 --> 01:15:53,270 möchte zu aktualisieren. 1344 01:15:53,270 --> 01:15:58,890 Wir können die Stadt von jeder aktualisieren wer Name ist Sam, zum Beispiel. 1345 01:15:58,890 --> 01:16:02,080 Wir können die Stadt zu aktualisieren jeder, dessen ID-Nummer 2. 1346 01:16:02,080 --> 01:16:04,960 Also einfach aktualisieren, die Stadt der zweiten Reihe 1347 01:16:04,960 --> 01:16:08,220 wo wir nicht zu bewältigen haben erforderlich die gemeinsame Frage. 1348 01:16:08,220 --> 01:16:13,264 >> Und löschen Sie es, wie Sie möchten erwarten, DELETE FROM table1. 1349 01:16:13,264 --> 01:16:14,930 Und dann haben wir eine andere WHERE-Klausel hat. 1350 01:16:14,930 --> 01:16:17,940 So können wir sagen WHERE ID = 1. 1351 01:16:17,940 --> 01:16:18,950 Löschen Sie die erste Zeile. 1352 01:16:18,950 --> 01:16:23,240 Und löschen Sie immer eine Zeile zu löschen, oder es wird eine gewisse Anzahl von Zeilen zu löschen. 1353 01:16:23,240 --> 01:16:26,990 DELETE FROM Tabelle WHERE Heimatstadt = New York City 1354 01:16:26,990 --> 01:16:28,740 jeder wird in New York City zu löschen. 1355 01:16:28,740 --> 01:16:30,985 Das ist, wenn es ein plötzliche tragische Plage 1356 01:16:30,985 --> 01:16:33,360 und man wollte einfach nur zu entfernen jeder aus der Tabelle, die 1357 01:16:33,360 --> 01:16:35,760 in einer Stadt gelebt das wurde von der Pest betroffen. 1358 01:16:35,760 --> 01:16:38,050 Mögen sie in Frieden ruhen. 1359 01:16:38,050 --> 01:16:43,849 >> Dies sind die vier SQL Befehle dass Sie benötigen, um zu verwenden. 1360 01:16:43,849 --> 01:16:45,390 Sie nicht einmal verwenden könnte sie alle. 1361 01:16:45,390 --> 01:16:47,690 Aber das sind die vier dass CS50 erwartet Sie 1362 01:16:47,690 --> 01:16:53,630 komfortabel mit gehen in sein sowohl Quiz 1 und auch pset7 und pset8. 1363 01:16:53,630 --> 01:16:55,820 >> Es ist nur, dass Tisch. 1364 01:16:55,820 --> 01:16:58,930 In diesem einen, hat Roy Supermacht Laserstrahlen, aktualisiert die 1365 01:16:58,930 --> 01:17:00,880 ist ein Beispiel habe ich nicht benutzt. 1366 01:17:00,880 --> 01:17:05,480 Ich weiß nicht, was man Roy zieht, aber Stärke. 1367 01:17:05,480 --> 01:17:07,670 Roy hat eine Supermacht der Stärke. 1368 01:17:07,670 --> 01:17:09,090 Katherine hat es nicht heute. 1369 01:17:09,090 --> 01:17:10,260 Das ist bedauerlich. 1370 01:17:10,260 --> 01:17:11,260 Aber sie hat super speed. 1371 01:17:11,260 --> 01:17:13,780 1372 01:17:13,780 --> 01:17:14,670 >> Nun, das war PHP. 1373 01:17:14,670 --> 01:17:19,410 Bevor wir über MVC zu sprechen, tut jemand Fragen zu PHP? 1374 01:17:19,410 --> 01:17:23,864 Jetzt SQL oder PHP, wenn Sie plötzlich kommen mit einer Frage über PHP? 1375 01:17:23,864 --> 01:17:27,560 1376 01:17:27,560 --> 01:17:28,460 Groß. 1377 01:17:28,460 --> 01:17:29,920 Na gut, wir sind alle so eingestellt. 1378 01:17:29,920 --> 01:17:33,660 >> So spricht ein wenig zu Modellansicht-Controller, 1379 01:17:33,660 --> 01:17:38,770 gehen wir zurück zu einigen von dem Zeug in pset7. 1380 01:17:38,770 --> 01:17:42,470 Also, was Modellansicht Controller ist-- Ich bin nicht 1381 01:17:42,470 --> 01:17:45,660 werde meine Änderungen zu speichern, um sich anzumelden weil ich total geschlachtet es. 1382 01:17:45,660 --> 01:17:49,220 Aber im Grunde haben wir zwei haben getrennte Dinge geht. 1383 01:17:49,220 --> 01:17:52,390 Wir haben eine öffentliche Verzeichnis, das enthält 1384 01:17:52,390 --> 01:17:56,460 der Code, die gehen, die ausgeführt werden und die Webseiten, die besucht werden sollen. 1385 01:17:56,460 --> 01:17:58,780 Und wir haben auch diesen Ansichten Verzeichnis. 1386 01:17:58,780 --> 01:18:01,780 Und Ansichten enthält Vorlagen. 1387 01:18:01,780 --> 01:18:04,390 >> Dies ist, was die Funktion render-- sahen wir das machen 1388 01:18:04,390 --> 01:18:08,240 Funktion in einer Reihe von den PHP-Code dass CS50 hat bereits für Sie geschrieben, 1389 01:18:08,240 --> 01:18:10,550 das dauert in bestimmten Parametern. 1390 01:18:10,550 --> 01:18:14,510 Was dieser Code tut wird es in Ansichten gehen, 1391 01:18:14,510 --> 01:18:18,000 die Sätze sind wie vorgefertigte HTML-Code, 1392 01:18:18,000 --> 01:18:20,720 und es ist das Einfügen Werte in bestimmten Orten. 1393 01:18:20,720 --> 01:18:23,990 Dies ist, wie wenn Sie gehen Sie in CS50 Finanzen, 1394 01:18:23,990 --> 01:18:25,760 der gleiche Header ist auf jeder Seite. 1395 01:18:25,760 --> 01:18:28,130 Das gleiche Fußzeile auf jeder Seite. 1396 01:18:28,130 --> 01:18:31,880 Das ist, weil die Art und Weise dass render Arbeiten ist es dann 1397 01:18:31,880 --> 01:18:36,720 automatisch in diesem Header zu patchen und Zuschauer, die Sie im Blick zu finden. 1398 01:18:36,720 --> 01:18:41,400 >> Wir können tatsächlich in die Header zu gehen, und schauen, es ist eine HTML-Datei mit einem Kopf. 1399 01:18:41,400 --> 01:18:43,280 Es hat ein paar Stylesheets. 1400 01:18:43,280 --> 01:18:48,450 Sie brauchen nicht auf CSS zu suchen für pset7, wenn Sie nicht wollen, zu tun ist. 1401 01:18:48,450 --> 01:18:50,560 Aber Sie ändern können sie, wenn Sie möchten, stellen 1402 01:18:50,560 --> 01:18:53,470 Ihre Finanzen ein wenig anders aussehen. 1403 01:18:53,470 --> 01:18:57,560 >> Es hat einige PHP in der Header ein wenig, um zu sehen 1404 01:18:57,560 --> 01:19:01,240 wenn es einen anderen Titel es sollte in diesen Header setzen. 1405 01:19:01,240 --> 01:19:04,300 Aber nur ein paar andere Skripte, und Links, und andere Dinge. 1406 01:19:04,300 --> 01:19:08,700 Kopfenden, Körper beginnt, und oops, haben wir diese seltsame kleine Endbit. 1407 01:19:08,700 --> 01:19:14,730 Und es gibt einen div, genau wie eine formlose Art von Element 1408 01:19:14,730 --> 01:19:17,120 das hat eine Vorstellung davon, Mitte. 1409 01:19:17,120 --> 01:19:22,450 >> Und dann, wenn wir sehen, footer, wir haben das Ende eines div. 1410 01:19:22,450 --> 01:19:25,000 Wir haben eine Boden, das ist, wo die Fußzeile ist. 1411 01:19:25,000 --> 01:19:26,770 Ende des div, Ende des Körpers, das Ende der HTML. 1412 01:19:26,770 --> 01:19:29,070 >> Also, was machen ist Dabei ist zu machen ist eine Art 1413 01:19:29,070 --> 01:19:33,150 Patchen up-Header, ein verschiedene PHP-Datei, 1414 01:19:33,150 --> 01:19:37,110 werden die tatsächlichen Dinge enthalten, die Sie werden sehen, wie Sie Ihre Tabelle von Aktien 1415 01:19:37,110 --> 01:19:39,690 wenn Sie kaufen oder verkaufen Aktien. 1416 01:19:39,690 --> 01:19:41,480 Und dann werden sie in der Fußzeile hinzuzufügen. 1417 01:19:41,480 --> 01:19:44,890 Und die Modellansicht Controller Idee ist, dass wir 1418 01:19:44,890 --> 01:19:49,590 wollen zu trennen, wie sieht die Sache aus dem Code. 1419 01:19:49,590 --> 01:19:53,420 Es ist wir die Frontend trennen wollen und das Backend, wo das Frontend 1420 01:19:53,420 --> 01:20:00,440 der Stoff, der Benutzer sieht, das schöne visuals-- HTML, CSS, solche Dinge, 1421 01:20:00,440 --> 01:20:02,320 Bilder und so weiter. 1422 01:20:02,320 --> 01:20:05,780 Und das Backend ist PHP. 1423 01:20:05,780 --> 01:20:07,710 Dies ist Code, den Sie schreiben. 1424 01:20:07,710 --> 01:20:10,240 Dies ist, wo der Code, der ist Dabei tatsächlichen Operationen. 1425 01:20:10,240 --> 01:20:12,400 Dies ist, wenn Sie hinzufügen eine Aktie an den Tisch, 1426 01:20:12,400 --> 01:20:14,890 wenn Sie kaufen und Selling, das Backend. 1427 01:20:14,890 --> 01:20:20,210 >> Und wir können, wie Sie gesehen haben, einschließlich PHP direkt in HTML. 1428 01:20:20,210 --> 01:20:23,210 Also, was wir hätten tun können diese Zuordnung nur hatten sich 1429 01:20:23,210 --> 01:20:26,200 eine HTML-Datei für jede Seite, wie login. 1430 01:20:26,200 --> 01:20:30,260 Und dann auf der Seite, nur hatte einen großen PHP-Blocks aus, 1431 01:20:30,260 --> 01:20:33,822 einschließlich all der Code, diese Seite speziell müssten. 1432 01:20:33,822 --> 01:20:35,780 Und dann haben wir könnten das getan für das Portfolio. 1433 01:20:35,780 --> 01:20:40,250 Wir könnten alle der Kauf gemacht haben und Verkauf innerhalb der einzelnen Seiten. 1434 01:20:40,250 --> 01:20:43,680 >> Aber weil wir machen getrennt von denen 1435 01:20:43,680 --> 01:20:46,660 wir schreiben das Backend Code, können wir leicht 1436 01:20:46,660 --> 01:20:52,660 ändern, wie die Dinge aussehen, ohne Ändern jede einzelne Datei. 1437 01:20:52,660 --> 01:20:55,460 Wir tun Dinge wie nur hinzufügen ein neues div nach unten 1438 01:20:55,460 --> 01:21:00,720 von-- Hallo Ich änderte die Fußzeile. 1439 01:21:00,720 --> 01:21:03,710 Sie können nur Dinge zu tun so. 1440 01:21:03,710 --> 01:21:07,250 Sondern auch, die Sie ändern können die gesamte visuelle Layout 1441 01:21:07,250 --> 01:21:09,290 ohne Auswirkungen, was gehen im Backend. 1442 01:21:09,290 --> 01:21:12,000 Und Sie können das ändern gesamte Backend und noch 1443 01:21:12,000 --> 01:21:13,900 haben sie sehen genauso aus wie vorher. 1444 01:21:13,900 --> 01:21:14,400 Dies 1445 01:21:14,400 --> 01:21:16,170 >> Ist die Idee der Model View Controller. 1446 01:21:16,170 --> 01:21:19,992 Und es ist eigentlich eine verhängt Paradigmen in einigen Programmiersprachen 1447 01:21:19,992 --> 01:21:21,700 möchten Sie vielleicht zu verwenden für Abschlussarbeiten. 1448 01:21:21,700 --> 01:21:25,100 Wenn Sie iOS-Entwicklung zu tun, sie haben Aussicht, 1449 01:21:25,100 --> 01:21:29,120 das ist, was Sie sehen, auf dem iPhone, und dann als wie eine separate Sache Backend. 1450 01:21:29,120 --> 01:21:31,260 >> Sie können über ein wenig zu denken. 1451 01:21:31,260 --> 01:21:35,190 Es gibt eine Menge von Binärdateien in Informatik, die ist lustig, 1452 01:21:35,190 --> 01:21:37,270 denn alles ist in binärer. 1453 01:21:37,270 --> 01:21:38,550 Ich hatte nicht vor, dass. 1454 01:21:38,550 --> 01:21:41,590 Das war ein Wortspiel unbeabsichtigt. 1455 01:21:41,590 --> 01:21:43,860 Ja, das Wortspiel nicht beabsichtigt. 1456 01:21:43,860 --> 01:21:49,070 >> Aber wie die h-Dateien und .c-Dateien, gibt es eine Menge von Trenn der Dinge, die wir 1457 01:21:49,070 --> 01:21:49,900 vielleicht nicht brauchen. 1458 01:21:49,900 --> 01:21:54,330 So können wir nur die h-Dateien zu bearbeiten, oder jemand kann nur sehen, ein H-Datei und wissen, 1459 01:21:54,330 --> 01:21:57,650 genau die Funktionen, die in der sich C-Datei, ohne notwendigerweise zu wissen 1460 01:21:57,650 --> 01:21:58,870 deren Umsetzung. 1461 01:21:58,870 --> 01:22:02,800 Diese Idee der Trennung von Komponenten die voneinander abhängen, 1462 01:22:02,800 --> 01:22:06,990 aber irgendwie aufeinander zugreifen über verschiedene Kanäle, Weitergabe 1463 01:22:06,990 --> 01:22:09,310 von Variablen, nur beinhalten Aussagen, die Dinge 1464 01:22:09,310 --> 01:22:14,440 so, dieses Prinzip hilft, um Anwendungen zu erstellen 1465 01:22:14,440 --> 01:22:17,080 das leichter sein kann, von mehreren Personen editiert, 1466 01:22:17,080 --> 01:22:20,440 können leichter geändert werden oder in großem Umfang geändert, 1467 01:22:20,440 --> 01:22:24,880 und sind leichter zu Debuggen in einer Vielzahl von Möglichkeiten. 1468 01:22:24,880 --> 01:22:28,254 >> Wirklich schnell, ich habe ein paar Tipps für pset7, 1469 01:22:28,254 --> 01:22:31,420 was werde ich Vollbild zu machen, damit Sie nicht bei einem Blick auf the-- Tipp Tipp Tippee. 1470 01:22:31,420 --> 01:22:33,964 1471 01:22:33,964 --> 01:22:35,130 Es gibt nicht so viele Tipps. 1472 01:22:35,130 --> 01:22:38,060 >> Aber ich erwähnt PHP ist schwer zu debuggen. 1473 01:22:38,060 --> 01:22:39,290 Doppelt und dreifach überprüfen Sie es. 1474 01:22:39,290 --> 01:22:41,550 Wenn Ihr Code ist einfach nicht angezeigt werden, auf der Seite, 1475 01:22:41,550 --> 01:22:46,240 es ist wahrscheinlich eine PHP-Fehler, sorry. 1476 01:22:46,240 --> 01:22:48,570 >> Sie müssen nie zu sehen CSS, wenn Sie nicht wollen, um. 1477 01:22:48,570 --> 01:22:52,150 Aber, sobald Sie fertig sind, es sein kann eine nette kleine lustige Sache zu gehen Sie einfach in 1478 01:22:52,150 --> 01:22:54,770 und Verwirrung mit der CSS-Parameter. 1479 01:22:54,770 --> 01:22:58,700 CSS und HTML sind ein Beispiel für ein Modell View-Controller-Stil, was, oder? 1480 01:22:58,700 --> 01:23:02,150 Sie könnten Style-Tags haben innerhalb von HTML-Elementen. 1481 01:23:02,150 --> 01:23:04,800 Aber wenn Sie eine Art Outsourcing sie zu CSS, 1482 01:23:04,800 --> 01:23:08,180 sie sind einfacher zu bearbeiten und spielen herum, und viel Spaß mit. 1483 01:23:08,180 --> 01:23:10,816 >> Gönnen CS50-Helfer Funktionen wie Black Boxes. 1484 01:23:10,816 --> 01:23:12,940 Sie brauchen nicht zu wissen, genau das, was render tut, 1485 01:23:12,940 --> 01:23:16,770 aber glauben Sie es, um immer das richtige zu tun Sache, je nachdem, was Sie übergeben, 1486 01:23:16,770 --> 01:23:17,690 Dinge wie diese. 1487 01:23:17,690 --> 01:23:21,040 Und ich würde empfehlen beobachten Davids Komplettlösung, 1488 01:23:21,040 --> 01:23:24,490 gehen durch alle Sachen, nicht nur die todos, 1489 01:23:24,490 --> 01:23:26,960 aber Sie wirklich behandeln können diese als schwarze Kästchen. 1490 01:23:26,960 --> 01:23:29,280 Nicht in diese gehen Funktionen auf der Suche nach Bugs. 1491 01:23:29,280 --> 01:23:33,510 >> Und begrüßen die Rückkehr unserer Overlord Zamyla. 1492 01:23:33,510 --> 01:23:34,010 Groß. 1493 01:23:34,010 --> 01:23:40,430 >> Gibt es noch letzte Fragen vor wir Art von Sprungkraft für den Tag? 1494 01:23:40,430 --> 01:23:42,610 Bin ich noch zu leben? 1495 01:23:42,610 --> 01:23:44,700 Groß. 1496 01:23:44,700 --> 01:23:47,120 Hallo Livestream Personen. 1497 01:23:47,120 --> 01:23:47,620 Groß. 1498 01:23:47,620 --> 01:23:50,260 Gibt es mehr Fragen? 1499 01:23:50,260 --> 01:23:50,760 Nein? 1500 01:23:50,760 --> 01:23:52,884 >> Und dann denke ich wir sind gut, für heute zu gehen. 1501 01:23:52,884 --> 01:23:55,550 Ich werde bleiben, um ein wenig danach, wenn die Menschen hatte Fragen 1502 01:23:55,550 --> 01:23:57,480 sie fürchteten sich, auf dem Strom zu fragen. 1503 01:23:57,480 --> 01:23:59,790 Aber sonst, haben einen guten Tag. 1504 01:23:59,790 --> 01:24:01,933