1 00:00:00,000 --> 00:00:01,940 >> [Zenelejátszó] 2 00:00:01,940 --> 00:00:11,130 3 00:00:11,130 --> 00:00:14,620 >> DAVID MALAN: Ez CS 50, és ez a kezdete hét kilencet. 4 00:00:14,620 --> 00:00:18,240 És mi azt hittük, ezt ma már nem csak zárja a fejezetet múlt heti 5 00:00:18,240 --> 00:00:22,670 anyag ahol összpontosított szerveren oldal Web programozás PHP és SQL, 6 00:00:22,670 --> 00:00:23,549 az adatbázis dolog. 7 00:00:23,549 --> 00:00:25,590 Fogunk beszélni egy kicsit biztonság ma majd 8 00:00:25,590 --> 00:00:29,590 átmenet a kliens oldali programozás nyelv úgynevezett JavaScript. 9 00:00:29,590 --> 00:00:31,330 De előbb egy kis megváltás. 10 00:00:31,330 --> 00:00:35,030 >> Talán emlékeznek, hogy a Szerda, azt tűzte ki 11 00:00:35,030 --> 00:00:37,550 hogy írjon egy weboldal, amely vette felhasználói input 12 00:00:37,550 --> 00:00:41,120 egy HTML formában, hogy az akkori tárolt hogy felhasználói nevek, telefonszámok 13 00:00:41,120 --> 00:00:43,124 számok, és mobiltelefon fuvarozók az adatbázisban. 14 00:00:43,124 --> 00:00:45,540 Aztán volt egy kis parancs sor script PHP-ben íródott 15 00:00:45,540 --> 00:00:47,956 kellett, hogy navigálhat át a sorokat az adatbázisban 16 00:00:47,956 --> 00:00:49,400 és küldjön szöveges üzeneteket. 17 00:00:49,400 --> 00:00:53,870 Annak ellenére, hogy több, több kísérlet is nem kap, hogy munkaképes végére. 18 00:00:53,870 --> 00:00:57,820 >> Szóval töltöttem az egész héten dolgozik az a kód, hogy minket múlt a lényeg 19 00:00:57,820 --> 00:01:01,220 ahol abbahagytuk, amely minden Megvan végére szerda 20 00:01:01,220 --> 00:01:05,500 volt ez a szöveges üzenet tól Margo ahogy küzdött, 21 00:01:05,500 --> 00:01:09,940 majd egy szöveges üzenetet egy másik osztálytársa, Van a David. 22 00:01:09,940 --> 00:01:14,030 Majd ezt, csodálatosan biztató. 23 00:01:14,030 --> 00:01:15,840 Mentem tovább, nagyon bátorító. 24 00:01:15,840 --> 00:01:20,960 Majdnem megvan ig then-- és hogy ez a megjegyzés is véget ért szerdán. 25 00:01:20,960 --> 00:01:25,850 És akkor tényleg talán a kedvencem, Egy pillanattal később, ez bejött. 26 00:01:25,850 --> 00:01:27,000 Francba Live Stream. 27 00:01:27,000 --> 00:01:31,080 >> Így ma, mi oldja meg egy gyors nézd meg, mit tettem már ettől. 28 00:01:31,080 --> 00:01:35,440 Tehát mindez kód áll rendelkezésre Online a múlt heti, heti nyolc, 29 00:01:35,440 --> 00:01:36,300 forráskód. 30 00:01:36,300 --> 00:01:39,425 És látni fogod, hogy mentem át, és én tényleg tisztították meg a dolgokat egy kicsit. 31 00:01:39,425 --> 00:01:42,080 Bevezettem egy pár más jellemzői egy SQL adatbázisba. 32 00:01:42,080 --> 00:01:45,300 Például, ahelyett, csak hogy hordozója var char 33 00:01:45,300 --> 00:01:47,310 ahogy azt hiszem menet közben a múlt héten. 34 00:01:47,310 --> 00:01:49,820 Én inkább úgy határozták meg mi a neve egy enum. 35 00:01:49,820 --> 00:01:53,310 >> És néhányan lehet, hogy láttam ezt ahogy feltártuk C. Felsorolt ​​valójában 36 00:01:53,310 --> 00:01:56,820 jellemző C, ahol lehet felsorolni egy csomó állandók 37 00:01:56,820 --> 00:01:59,640 és rendelje őket automata értékeket, mint egy, kettő, három, négy 38 00:01:59,640 --> 00:02:01,330 anélkül, hogy kemény kódszám. 39 00:02:01,330 --> 00:02:04,780 Így az SQL támogatja az azonos, ahol, ha Van egy adatbázis mezőt, hogy csak 40 00:02:04,780 --> 00:02:09,389 szeretné, hogy egy véges értékeket, akkor szó szerint adja meg 41 00:02:09,389 --> 00:02:13,120 ahogy én tettem ott négy népszerű amerikai mobiltelefon fuvarozók. 42 00:02:13,120 --> 00:02:13,819 >> Úgyhogy csináltam. 43 00:02:13,819 --> 00:02:16,610 És egy sor olyan változtatást is, a legfontosabb az, amely 44 00:02:16,610 --> 00:02:20,090 az volt, hogy az e-mail működik, mert emlékszem, hogy ez a program hivatkozott, amely 45 00:02:20,090 --> 00:02:23,470 általában az úgynevezett e-mailt SMS gateway, ami csak 46 00:02:23,470 --> 00:02:27,670 divatos módja mondván, hogy a Verizon, és AT & T és más emberek támogatják a szerveren, 47 00:02:27,670 --> 00:02:30,740 ahol, ha kap e-mailben, hogy átalakítja az SMS 48 00:02:30,740 --> 00:02:33,290 és küld egy szöveg üzenet egy másik telefonra. 49 00:02:33,290 --> 00:02:37,010 Tehát, ha én ezt jól, itt van egy új és javított formában 50 00:02:37,010 --> 00:02:39,259 hogy fog beszélni új és továbbfejlesztett kódot, amely 51 00:02:39,259 --> 00:02:40,300 játszhatsz online. 52 00:02:40,300 --> 00:02:44,140 És remélhetőleg, hogy a telefon sípoló csak egy pillanat. 53 00:02:44,140 --> 00:02:47,240 >> Tehát először, megyek, hogy írja az én nevemben. 54 00:02:47,240 --> 00:02:51,400 Másodszor, én nem megyek Ehhez ebben az időben. 55 00:02:51,400 --> 00:02:53,920 Megyek nem Vizsgálja Element. 56 00:02:53,920 --> 00:02:56,710 És ez csak egy kis dolog, úgyhogy nem 57 00:02:56,710 --> 00:02:59,250 létre óra utómunka működik én a múltkor. 58 00:02:59,250 --> 00:03:02,300 Itt most az én telefonszámot. 59 00:03:02,300 --> 00:03:03,560 >> Majd válasszuk a Verizon. 60 00:03:03,560 --> 00:03:10,260 És itt, most kapcsolja be a mikrofont itt, és ez a célja a telefonom itt. 61 00:03:10,260 --> 00:03:13,130 Megyek kattintson a Register, amely remélhetőleg 62 00:03:13,130 --> 00:03:14,530 tedd be az adatbázisba. 63 00:03:14,530 --> 00:03:16,780 Most megyek a parancssori program, ami 64 00:03:16,780 --> 00:03:20,825 visszahívás hívták pont perjel szöveg, és szurkoljon. 65 00:03:20,825 --> 00:03:24,092 66 00:03:24,092 --> 00:03:26,527 Itt vagyunk. 67 00:03:26,527 --> 00:03:27,501 >> [TELEFON DINGS] 68 00:03:27,501 --> 00:03:28,962 >> [Taps] 69 00:03:28,962 --> 00:03:31,815 70 00:03:31,815 --> 00:03:34,940 DAVID MALAN: Így sokkal szórakoztatóbb, mint this-- ez a móka, persze, ha kap bele. 71 00:03:34,940 --> 00:03:38,004 De ez több móka, azt gondoltam, ha létrehozott egy ilyen film pillanatok 72 00:03:38,004 --> 00:03:40,420 ahol, mint valami igazán rossz történt a világban, 73 00:03:40,420 --> 00:03:42,860 és mint a NSA nép mobiltelefon csipog 74 00:03:42,860 --> 00:03:44,860 A szöveges üzenetek figyelmeztetve őket, hogy ezt a tényt. 75 00:03:44,860 --> 00:03:47,026 Így azt gondoltam, mi lenne, próbálja meg hogy újra ugyanaz itt, 76 00:03:47,026 --> 00:03:49,610 amely nem használ adatbázist, Én inkább előre 77 00:03:49,610 --> 00:03:51,490 írt egy programot, amely úgy néz ki, mint ez. 78 00:03:51,490 --> 00:03:53,660 >> Ez egy index.php-- és én ezt a kódot az interneten 79 00:03:53,660 --> 00:03:56,710 mivel well-- hogy látszólag csak teszi form.php, 80 00:03:56,710 --> 00:04:00,990 segítségével MVC stílus paradigma, hogy mi beszélni részletesebben probléma készlet 81 00:04:00,990 --> 00:04:01,650 hét. 82 00:04:01,650 --> 00:04:02,910 Ez a forma nagyon egyszerű. 83 00:04:02,910 --> 00:04:06,634 Meg fog, hogy nyújtson be a nevű fájl here.php postán. 84 00:04:06,634 --> 00:04:09,300 És ez nyilvánvalóan fog kérni egy nevet, egy telefonszámot, 85 00:04:09,300 --> 00:04:11,400 majd keresztül az úgynevezett Válassza ki a menüt, akkor 86 00:04:11,400 --> 00:04:14,250 fog adni legalább négy népszerű amerikai mobiltelefon fuvarozók, 87 00:04:14,250 --> 00:04:17,470 majd lehetővé teszi, hogy hatékonyan a jelenlét, ha ide kattint. 88 00:04:17,470 --> 00:04:20,471 >> És itt, eközben fog kölcsön néhány kódot utoljára. 89 00:04:20,471 --> 00:04:22,553 És ha csak ezt sovány, látni fogja, hogy van 90 00:04:22,553 --> 00:04:23,900 egy csomó hiba ellenőrzés. 91 00:04:23,900 --> 00:04:26,640 De a szépség a végén, hogy a mi nem írásban adatbázist ma. 92 00:04:26,640 --> 00:04:29,130 Mi legyen egyszerű és csak küld ki remélhetőleg 93 00:04:29,130 --> 00:04:32,190 szöveges üzenetet a függvény I írta az elmúlt napokban hívás 94 00:04:32,190 --> 00:04:36,270 Szöveg, ami függvények. php, mely ismét elérhető online. 95 00:04:36,270 --> 00:04:38,210 >> Tehát, ha szeretne részt venni ebben. 96 00:04:38,210 --> 00:04:40,190 Mi nem fognak tárolására semmit. 97 00:04:40,190 --> 00:04:43,809 Ugrás erre az URL itt valós időben. 98 00:04:43,809 --> 00:04:46,850 Nem nyújt be, hogy csak még, de most hátha mi lehet egy ilyen film 99 00:04:46,850 --> 00:04:49,830 pillanat, amikor mindenki mobiltelefon sípolni kezd, remélhetőleg most 100 00:04:49,830 --> 00:04:53,580 egyszer ebben az évben ellentétben 2011-ben ha ez elment rettenetesen fonák. 101 00:04:53,580 --> 00:04:58,910 És ha egyszer megy, hogy a cím, látnod kell egy szuper egyszerű űrlap 102 00:04:58,910 --> 00:05:03,884 hogy ha van egy név, egy mobiltelefon szám, és egy mobiltelefon fuvarozó, amely 103 00:05:03,884 --> 00:05:06,175 megegyezik a lista, menj előre, és töltse ki az űrlapot. 104 00:05:06,175 --> 00:05:07,880 De ne nyomja benyújtására csak még. 105 00:05:07,880 --> 00:05:10,850 >> A forma fog kinézni. 106 00:05:10,850 --> 00:05:13,660 Menj előre, és írja be a a nevét, telefonszámát. 107 00:05:13,660 --> 00:05:17,670 OOP, valaki megy előre a görbe. 108 00:05:17,670 --> 00:05:18,170 Ez rendben van. 109 00:05:18,170 --> 00:05:19,340 OK, mindenki kitöltötte az űrlapot. 110 00:05:19,340 --> 00:05:21,400 Ennek működnie kell a telefon, is, ha akarod. 111 00:05:21,400 --> 00:05:23,695 Rendben, a jelek, kap meg, menni. 112 00:05:23,695 --> 00:05:24,195 Hit ide. 113 00:05:24,195 --> 00:05:27,275 114 00:05:27,275 --> 00:05:27,775 Mi az? 115 00:05:27,775 --> 00:05:31,140 116 00:05:31,140 --> 00:05:31,640 Nem. 117 00:05:31,640 --> 00:05:34,410 118 00:05:34,410 --> 00:05:40,250 Istenre esküszöm, én tesztelt ezt többször ma. 119 00:05:40,250 --> 00:05:41,720 Megvan? 120 00:05:41,720 --> 00:05:43,145 >> [Közbeiktatásával VOICES] 121 00:05:43,145 --> 00:05:46,470 122 00:05:46,470 --> 00:05:49,560 >> DAVID MALAN: OK, a felhasználó hiba talán. 123 00:05:49,560 --> 00:05:50,550 Ez két. 124 00:05:50,550 --> 00:05:53,300 Ez működött a kettő egy Néhány száz, három, négy. 125 00:05:53,300 --> 00:05:55,940 OK, ez jó. 126 00:05:55,940 --> 00:05:58,520 Ötből négy a korrektség mi a helyzet. 127 00:05:58,520 --> 00:05:59,810 >> Szóval, mi történt? 128 00:05:59,810 --> 00:06:02,727 Szóval valószínűleg, nem látta a képernyő, miért is ez lett errored? 129 00:06:02,727 --> 00:06:05,518 Valószínűleg, hogy mi volt, csak arra törekedjünk, hogy túl sok kapcsolat 130 00:06:05,518 --> 00:06:08,110 a Harvard-mail szerver egészet egyszer ugyanazt az IP-címet. 131 00:06:08,110 --> 00:06:10,740 Én csak találgatás, mert én nem azt a luxust, a vizsgálat 132 00:06:10,740 --> 00:06:13,220 ezt a kódot az egyes 300 ember előre 133 00:06:13,220 --> 00:06:16,040 de most észre, hogy hogy legalább kellene 134 00:06:16,040 --> 00:06:18,250 ütött a munkát ebben az időben. 135 00:06:18,250 --> 00:06:22,880 >> Rendben, miért van ez az összes inkább illenek a mi folyik itt? 136 00:06:22,880 --> 00:06:24,900 Hát először is, a gyors pár bejelentések. 137 00:06:24,900 --> 00:06:29,350 Tehát az egyik, ha szeretne csatlakozni Chang, és Nick, és mások ebéd pénteken, 138 00:06:29,350 --> 00:06:32,400 ezt RSVP a szokásos URL-t is. 139 00:06:32,400 --> 00:06:35,650 Ha arra gondolsz, koncentrált vagy csinál egy másodlagos CS, 140 00:06:35,650 --> 00:06:38,941 hogy te egy másodéves, vagy gólya, vagy akár junior vagy senior ezen a ponton 141 00:06:38,941 --> 00:06:42,490 és továbbra is nyomja a tanfolyamok, észre, hogy a mérnöki iskola 142 00:06:42,490 --> 00:06:45,620 gyűjt ingyenes Ben és Jerry fagylalt és tanácsadás 143 00:06:45,620 --> 00:06:48,910 szerdán röviddel óra után at 04:00 a CS épületben 144 00:06:48,910 --> 00:06:49,771 A Maxwell Dworkin. 145 00:06:49,771 --> 00:06:51,520 Ha ez túl gyorsan a képernyőn, csak megy 146 00:06:51,520 --> 00:06:55,260 hogy cs50.harvard.edu a link a Facebook esemény 147 00:06:55,260 --> 00:06:57,140 ahol láthatjuk a részleteket. 148 00:06:57,140 --> 00:07:01,390 >> Közben arra gondoltam, hogy korrigálni Egy másik dolog, amit elrontottam szerdán. 149 00:07:01,390 --> 00:07:04,400 Kiderült, hogy Mark azonosító a Facebook-on nem volt három. 150 00:07:04,400 --> 00:07:05,230 Ez volt négy. 151 00:07:05,230 --> 00:07:08,330 Kiderült, hogy már több teszt számlák, mint én emlékszem. 152 00:07:08,330 --> 00:07:12,400 De mi ez úgy éreztem, egy lehetőség tennie, hogy húzza fel a URL, mint ez. 153 00:07:12,400 --> 00:07:16,680 >> Így kiderül, hogy a Facebook egy API, Application Programming Interface, 154 00:07:16,680 --> 00:07:20,070 amely egy olyan mechanizmus, amely akkor kérhet adatot programozott 155 00:07:20,070 --> 00:07:24,480 A Facebook és kap vissza a gép olvasható információ, nem weboldalakat 156 00:07:24,480 --> 00:07:28,690 de csak a nyers szöveget, valami nevű JavaScript Object Notation. 157 00:07:28,690 --> 00:07:32,150 És valóban, ha én látogasson el a URL, és nagyítás, alapértelmezés szerint, 158 00:07:32,150 --> 00:07:34,960 ez a Mark által nyilvánosan hozzáférhető információkat. 159 00:07:34,960 --> 00:07:37,430 >> És érdekes részlet itt csak az, hogy az igazolványát 160 00:07:37,430 --> 00:07:40,670 Valóban, a negyedik, amelyet én rájött, amint én tettem ezt. 161 00:07:40,670 --> 00:07:44,260 Megteheti ezt magad, ha tudod Facebook felhasználónév ha van. 162 00:07:44,260 --> 00:07:45,440 Csak írja fel Felül. 163 00:07:45,440 --> 00:07:46,640 És mindez privát. 164 00:07:46,640 --> 00:07:48,670 Én csak ezt még Az inkognitó módban. 165 00:07:48,670 --> 00:07:49,900 Szóval nem is vagy bejelentkezve. 166 00:07:49,900 --> 00:07:54,440 És te látván, hogy én nyilvánvalóan volt felhasználói szám 6454 167 00:07:54,440 --> 00:07:56,480 a Facebook-on, ami nem rossz ezekben a napokban. 168 00:07:56,480 --> 00:07:59,900 Szóval egyébként, akkor is látni További információ itt. 169 00:07:59,900 --> 00:08:02,150 >> És a hasznos szempont e az, hogy 170 00:08:02,150 --> 00:08:06,890 tudott írni a saját szoftver valahogy integrálja az adatokat, mint ez 171 00:08:06,890 --> 00:08:08,170 a saját alkalmazás. 172 00:08:08,170 --> 00:08:10,650 Tudod tenni a felhasználók számára jelentkezzen be a honlapon, 173 00:08:10,650 --> 00:08:14,190 nem használja a saját egyéni felhasználónév és jelszót, de talán a Facebook login 174 00:08:14,190 --> 00:08:16,170 és kap információt még arról, hogy a barátok, 175 00:08:16,170 --> 00:08:18,740 ha jóváhagyja, vagy hasonló. 176 00:08:18,740 --> 00:08:21,430 Tehát vegye figyelembe, hogy CS50 is néhány saját API-k, 177 00:08:21,430 --> 00:08:24,620 egy a kurzus katalógus adat, néhány a menük ölelést az étkezőben 178 00:08:24,620 --> 00:08:26,730 termek, mind a épületek és helyszínek 179 00:08:26,730 --> 00:08:30,930 az egyetemen van egy API is hogy lehet lekérdezni hasonlóan és kap 180 00:08:30,930 --> 00:08:35,520 vissza szöveges adatokat lehet integrálni egy PHP vagy JavaScript, vagy akár, 181 00:08:35,520 --> 00:08:38,320 bár ritkábban, a C alapú végleges projekt. 182 00:08:38,320 --> 00:08:41,190 >> Sőt előre az utolsó projekt néhány mérföldkövek. 183 00:08:41,190 --> 00:08:42,980 Van egy e-mailt, minap. 184 00:08:42,980 --> 00:08:45,761 Ismerd fel, hogy a javaslat köszönhető ez a jövő hétfő. 185 00:08:45,761 --> 00:08:49,010 Ez nem feltétlenül kötelező, de nem kell, hogy megkapja a tanítás fickók 186 00:08:49,010 --> 00:08:51,260 jóváhagyás előtt változtatásokat követően. 187 00:08:51,260 --> 00:08:54,280 És akkor előre egy számos egyéb mérföldkövek. 188 00:08:54,280 --> 00:08:56,542 >> Tehát, hogy ugratni is, Néhány lehetőség, 189 00:08:56,542 --> 00:08:58,250 van egy csomó ezek árnyalat izzók. 190 00:08:58,250 --> 00:09:01,190 És néhány srácok most van néhány Ezeknek a kollégiumi szobában is. 191 00:09:01,190 --> 00:09:02,920 És túl van egy API. 192 00:09:02,920 --> 00:09:07,300 Így emlékszem azok bináris izzók hét ezelőtt, hogy a Dan Bradley és Ansel 193 00:09:07,300 --> 00:09:08,780 Duff készített nekünk. 194 00:09:08,780 --> 00:09:12,560 Ezek egy szoftveres felület ez villanykörte, amely abban a pillanatban 195 00:09:12,560 --> 00:09:15,232 be van dugva a villamos energia majd a vezeték nélküli 196 00:09:15,232 --> 00:09:17,690 csatlakozik egy kis dolog az úgynevezett híd le itt, 197 00:09:17,690 --> 00:09:21,280 mint egy kis router saját hogy ezzel az eszközzel. 198 00:09:21,280 --> 00:09:26,540 >> De kiderül, hogy én tudom, hogyan kell küld HTTP-üzenetek, mint mi mindannyian most csinálni, 199 00:09:26,540 --> 00:09:31,670 Tudok üzenetet küldeni, mint ez a ezt villanykörte, hogy kapcsolja be vagy ki 200 00:09:31,670 --> 00:09:34,000 vagy nem akárhány egyéb műveletek rajta. 201 00:09:34,000 --> 00:09:36,110 Figyeljük meg, hogy ez nem fog, ez nem post. 202 00:09:36,110 --> 00:09:37,760 Van egy másik egy úgynevezett put. 203 00:09:37,760 --> 00:09:39,630 Van valójában néhány más hasonló igék. 204 00:09:39,630 --> 00:09:42,920 Vegyük észre, van egy út van, perjel API, slash új fejlesztő, 205 00:09:42,920 --> 00:09:44,990 vágás könnyű, vágás egy, perjel állapot. 206 00:09:44,990 --> 00:09:49,060 >> Ez nyilvánvalóan csak a út, amely a cég, a Philips, 207 00:09:49,060 --> 00:09:51,640 úgy döntött, meg kell, hogy elérje egy HTTP kérés 208 00:09:51,640 --> 00:09:55,010 Ha meg akarja változtatni az állam Az izzó a HTTP 1.1. 209 00:09:55,010 --> 00:09:56,380 Aztán észre az üres sort. 210 00:09:56,380 --> 00:10:00,170 Aztán végül amit úgy néz ki, mint a fajta egy sor valamilyen, 211 00:10:00,170 --> 00:10:04,730 ez megint fog hívják JavaScript Object Notation, vagy Jason. 212 00:10:04,730 --> 00:10:08,000 És mit lát az, hogy három kulcs-érték pár. 213 00:10:08,000 --> 00:10:09,115 >> Az egyik legfontosabb az úgynevezett fel. 214 00:10:09,115 --> 00:10:10,990 És az értéke látszólag lesz igaz. 215 00:10:10,990 --> 00:10:13,612 Fényerő 128, amely valamilyen int. 216 00:10:13,612 --> 00:10:15,820 És akkor átmeneti idő nulla, ami látszólag 217 00:10:15,820 --> 00:10:17,970 mennyi időbe fog vinni be ez a dolog. 218 00:10:17,970 --> 00:10:19,890 >> Akkor most ez izzó nem világít. 219 00:10:19,890 --> 00:10:22,880 De ha én pontosan this-- legyen menjek egy kis puskát 220 00:10:22,880 --> 00:10:25,200 hogy Dan létrehozott advance-- és megyek 221 00:10:25,200 --> 00:10:27,920 hogy menjen előre, és másolja a következő parancsot. 222 00:10:27,920 --> 00:10:30,200 Curl, ahogy néhányan Lehet, hogy a félretett CS50 223 00:10:30,200 --> 00:10:35,080 Beszéljétek meg a típus, mint például Telnet hogy képes szimulálni HTTP kérések 224 00:10:35,080 --> 00:10:36,360 kifejezetten hozza. 225 00:10:36,360 --> 00:10:39,710 Tudok küldeni az adatokat, konkrétan, amit most 226 00:10:39,710 --> 00:10:43,430 látta, hogy egy pillanat ezelőtt kifejezetten hogy erre az URL itt. 227 00:10:43,430 --> 00:10:46,310 És akkor Curl fog kezelni az összes szükséges fejlécek 228 00:10:46,310 --> 00:10:47,600 és ott az elemzés. 229 00:10:47,600 --> 00:10:54,700 >> Tehát minden, amit meg kell tennie, hogy bemásolja egy terminál ablakot, majd nyomja meg az Entert. 230 00:10:54,700 --> 00:10:56,000 És a villanykörte megy. 231 00:10:56,000 --> 00:10:59,060 És ez mind megy keresztül A számítógép vezeték nélkül 232 00:10:59,060 --> 00:11:01,960 valahogy le a híd, amely Ezután beszél ez a lámpa. 233 00:11:01,960 --> 00:11:02,960 Én valami mást. 234 00:11:02,960 --> 00:11:07,050 Tudom, hogy ez a dolog megy a piros például. 235 00:11:07,050 --> 00:11:11,040 Én például, hogy ez a dolog megy a zöld. 236 00:11:11,040 --> 00:11:12,220 Én lehet, hogy megy a kék. 237 00:11:12,220 --> 00:11:14,760 >> És észre minden ilyen esetekben, mind, hogy én vagyok a változó 238 00:11:14,760 --> 00:11:18,540 az úgynevezett árnyalat érték valóban kap némi színt. 239 00:11:18,540 --> 00:11:20,320 Tehát én ezt be egyet is. 240 00:11:20,320 --> 00:11:21,000 Most már kék. 241 00:11:21,000 --> 00:11:24,672 >> És meg tudod csinálni még cifrább dolgok where-- menjünk a zöld. 242 00:11:24,672 --> 00:11:26,630 És én is ezt a Természetesen a saját kódját. 243 00:11:26,630 --> 00:11:30,670 De még az API maga támogatja a funky műveletek 244 00:11:30,670 --> 00:11:35,510 mint ez, ami most zavar nekünk a következő 30 másodpercre. 245 00:11:35,510 --> 00:11:39,170 >> Szóval ez egy íz, amit talán csinálni egy API, ez magában 246 00:11:39,170 --> 00:11:40,010 izzók. 247 00:11:40,010 --> 00:11:42,510 Ne feledje, hogy van egy pár CS50 pár Google Glass, ha azt 248 00:11:42,510 --> 00:11:45,380 szándékodat valami mentén ezeket a sorokat, Arduino unos, amely 249 00:11:45,380 --> 00:11:48,670 apró kis számítógépek, lényegében egy kis áramköri 250 00:11:48,670 --> 00:11:50,470 hogy tud-e csatlakozni vezetékek és egyéb dolgok 251 00:11:50,470 --> 00:11:52,732 és valóban ellenőrzés A valós környezetben. 252 00:11:52,732 --> 00:11:54,940 És akkor van egy pár Az új játékok, hogy van. 253 00:11:54,940 --> 00:11:59,294 Ez az egy szó szerint most érkezett a minap e-mailben, a Myo karszalagot. 254 00:11:59,294 --> 00:12:01,710 És azt gondoltam, hogy ez egy módja annak, hogy neked izgatott projektek 255 00:12:01,710 --> 00:12:03,720 hogy lehet használni ez a hardver lenne 256 00:12:03,720 --> 00:12:08,900 lehet játszani ezt a rövid klipet hogy az általuk használt ugratni emberek 257 00:12:08,900 --> 00:12:10,500 hogy mi most él a jövőben. 258 00:12:10,500 --> 00:12:13,494 259 00:12:13,494 --> 00:12:15,490 >> [Zenelejátszó] 260 00:12:15,490 --> 00:13:33,410 261 00:13:33,410 --> 00:13:37,109 >> DAVID MALAN: Tehát csak néhány hét, akkor is lehet, hogy hideg a CS50 vásár. 262 00:13:37,109 --> 00:13:39,150 A másik eszköz, hogy van egy csomó, hogy mi vagyunk 263 00:13:39,150 --> 00:13:42,090 szívesen kölcsön ki projektek nevezzük mozgást vezérlő. 264 00:13:42,090 --> 00:13:45,030 Ez egy kis USB-eszköz csatlakozik a számítógéphez 265 00:13:45,030 --> 00:13:47,520 lehetővé teszi, hogy kölcsönhatásba lépnek a laptop, Mac vagy PC, 266 00:13:47,520 --> 00:13:51,570 mintha te volt, mint egy Xbox Kinect és valóban fizikai mozgások sokkal 267 00:13:51,570 --> 00:13:54,509 mint látjuk ebben jövőkép. 268 00:13:54,509 --> 00:13:56,505 >> [Zenelejátszó] 269 00:13:56,505 --> 00:15:03,380 270 00:15:03,380 --> 00:15:06,260 >> DAVID MALAN: Tehát akkor is, ha fogalmam sincs, hogy valami ilyesmi 271 00:15:06,260 --> 00:15:10,050 esetleg kitalált vagy munka a hardver szintű, nem számít. 272 00:15:10,050 --> 00:15:13,520 Után is csak néhány hónap CS50, és ismeri programozás 273 00:15:13,520 --> 00:15:19,460 általánosabb, és a webes programozás több az utóbbi időben, és akkor is, API-kat, és a HTTP, 274 00:15:19,460 --> 00:15:21,830 akkor van hozzáférés szoftver API-k, ha 275 00:15:21,830 --> 00:15:24,680 nem akar kölcsönkérni egy ilyen eszközök valójában beszélni vele 276 00:15:24,680 --> 00:15:27,180 és nem kell aggódnia a mögöttes végrehajtás 277 00:15:27,180 --> 00:15:30,220 Részletesen, amely teljesen összhangban ez a fogalom a réteg 278 00:15:30,220 --> 00:15:33,610 absztrakció, hogy mi már látta az egész félévben. 279 00:15:33,610 --> 00:15:37,990 >> Így is a hétvégén, látta, hogy egy-két hír. 280 00:15:37,990 --> 00:15:40,640 Menjünk az első, menjen a szemináriumok, ha Szeretnék tanulni valamit 281 00:15:40,640 --> 00:15:42,160 több, tetszőleges számú téma. 282 00:15:42,160 --> 00:15:43,340 Lásd az URL-t is. 283 00:15:43,340 --> 00:15:45,890 És ezt küldték nekem Chang, aki tudja, 284 00:15:45,890 --> 00:15:47,850 aki nyomtat hadseregünk elefántok. 285 00:15:47,850 --> 00:15:49,910 És ez volt a főcím a következő. 286 00:15:49,910 --> 00:15:51,280 Vagyok rémülve az új TV-t. 287 00:15:51,280 --> 00:15:54,301 Miért félek, hogy ezt a dolog, és azt túl. 288 00:15:54,301 --> 00:15:56,050 Tehát mi most a pont a félévben, 289 00:15:56,050 --> 00:15:58,860 is, ahol akkor is, ha a legkisebb megértés 290 00:15:58,860 --> 00:16:02,620 arról, hogy az interneten működik, és a HTTP, és biztonság, a dolgok, mint ez a 291 00:16:02,620 --> 00:16:03,980 meg kell kezdeni, hogy utolérjék a szemét. 292 00:16:03,980 --> 00:16:07,450 De, meg fogod érteni hogy ezek a dolgok, vagy nem 293 00:16:07,450 --> 00:16:08,430 tényleges fenyegetést. 294 00:16:08,430 --> 00:16:10,940 >> Szóval volt egy pár szemelvények ezt a cikket itt. 295 00:16:10,940 --> 00:16:12,540 És a történet a következő. 296 00:16:12,540 --> 00:16:14,300 Én most a tulajdonos új smart TV, ami 297 00:16:14,300 --> 00:16:18,470 ígér streaming multimédiás tartalmak, játékok, app, 298 00:16:18,470 --> 00:16:21,450 szociális média, és az internet böngészés, oh, és TV-vel is. 299 00:16:21,450 --> 00:16:24,410 Az egyetlen probléma az, hogy én vagyok most félek használni, mondja a szerző. 300 00:16:24,410 --> 00:16:29,592 Ön lenne is, ha elolvasta 46 oldal adatvédelmi irányelveit a TV. 301 00:16:29,592 --> 00:16:31,800 Az adatok mennyisége ezt dolog gyűjti megdöbbentő. 302 00:16:31,800 --> 00:16:35,710 A rönk hol, mikor, hogyan, és mennyi ideig használja a TV-t. 303 00:16:35,710 --> 00:16:38,190 A készletek nyomkövető cookie-kat, ahogy már említettük, 304 00:16:38,190 --> 00:16:40,560 és jeladók tervezett felismerni, ha van 305 00:16:40,560 --> 00:16:43,185 nézett adott tartalom vagy Egy adott e-mail üzenet 306 00:16:43,185 --> 00:16:45,230 Ha szeretné, hogy ellenőrizze e-mail a TV. 307 00:16:45,230 --> 00:16:48,430 Ez rögzíti az alkalmazásokat, használja, a meglátogatott weboldalakat, 308 00:16:48,430 --> 00:16:52,280 és hogyan használják a tartalmakat, mindent megtesz, hogy az okos TV-n keresztül. 309 00:16:52,280 --> 00:16:55,470 Azt is, hátborzongatóbb yet-- ez az én addition-- 310 00:16:55,470 --> 00:16:58,140 van egy beépített kamera arcfelismerő. 311 00:16:58,140 --> 00:17:01,010 >> A cél az, hogy gesztus vezérlés a TV 312 00:17:01,010 --> 00:17:05,490 és lehetővé teszi, hogy jelentkezzen be személyre szabott fiókot arcod. 313 00:17:05,490 --> 00:17:08,940 A fejjel, a képek mentett televízió helyett a feltöltött 314 00:17:08,940 --> 00:17:09,940 a vállalati szerverre. 315 00:17:09,940 --> 00:17:12,520 A hátránya, az internet kapcsolat teszi az egész tv 316 00:17:12,520 --> 00:17:14,811 érzékenyek a hackerek, akik bizonyították, hogy képesek 317 00:17:14,811 --> 00:17:16,700 teljes mértékben átvehetik a gép. 318 00:17:16,700 --> 00:17:20,880 >> További aggasztó, mivel ha ez nem elég okos, a mikrofon. 319 00:17:20,880 --> 00:17:23,599 A TV büszkélkedhet hang felismerés funkció 320 00:17:23,599 --> 00:17:26,859 amely lehetővé teszi a nézők, hogy ellenőrizzék A képernyő hangutasításokkal. 321 00:17:26,859 --> 00:17:30,290 De a szolgáltatás jön meglehetősen baljós figyelmeztetés. 322 00:17:30,290 --> 00:17:33,030 Felhívjuk figyelmét, hogy ha A kimondott szavak közé 323 00:17:33,030 --> 00:17:36,210 személyes vagy más érzékeny információ, hogy az információ 324 00:17:36,210 --> 00:17:40,310 között lesz a rögzített adatokat és továbbítják-e harmadik félnek. 325 00:17:40,310 --> 00:17:40,870 Van, hogy az? 326 00:17:40,870 --> 00:17:45,860 Ne mondd, hogy személyes vagy bizalmas dolog előtt a TV-t. 327 00:17:45,860 --> 00:17:47,280 >> Szóval ez tényleg az igazi. 328 00:17:47,280 --> 00:17:50,530 És nehéz nem látni, ha megy a Best Buy vagy hasonló TV 329 00:17:50,530 --> 00:17:51,030 ezekben a napokban. 330 00:17:51,030 --> 00:17:52,540 Mind okos valamilyen módon. 331 00:17:52,540 --> 00:17:54,740 És ők egyre intelligensebb és hátborzongatóbb. 332 00:17:54,740 --> 00:17:57,490 És ők csak az adatgyűjtés oly módon, hogy beszéltünk 333 00:17:57,490 --> 00:18:01,840 majd feltölti HTTP vagy más protokoll néhány szerverre. 334 00:18:01,840 --> 00:18:05,720 >> Tehát ez volt a móka cikk az online website 335 00:18:05,720 --> 00:18:08,940 itt, amely beszélt különös hiba vagy téves kód 336 00:18:08,940 --> 00:18:11,340 hogy mi is valójában döntetlen a múlt heti vita. 337 00:18:11,340 --> 00:18:15,730 Tehát ez a főcím volt következik, a történet itt, 338 00:18:15,730 --> 00:18:18,720 Josh Breckman dolgozott egy cég, amely leszállt a szerződés 339 00:18:18,720 --> 00:18:22,390 hogy dolgozzon ki egy tartalomkezelő rendszer rendszer, vagy CMS ahogy hívják, 340 00:18:22,390 --> 00:18:24,380 Egy meglehetősen nagy kormány honlapján. 341 00:18:24,380 --> 00:18:27,300 Sok a projekt keretében kialakítása tartalomkezelő rendszert 342 00:18:27,300 --> 00:18:29,840 hogy a munkavállalók lennének képes felépíteni és fenntartani 343 00:18:29,840 --> 00:18:31,877 az állandóan változó tartalom a helyszínen. 344 00:18:31,877 --> 00:18:34,210 A dolgok elég jól ment a Néhány nappal azután, hogy élesben. 345 00:18:34,210 --> 00:18:37,020 De a hatodik napon, a dolgok nem olyan jól. 346 00:18:37,020 --> 00:18:39,500 Minden tartalom weboldal már teljesen eltűnt. 347 00:18:39,500 --> 00:18:42,950 És az összes oldalt vezetett az alapértelmezett, Kérjük, adja tartalom weboldalt. 348 00:18:42,950 --> 00:18:43,810 Hoppá. 349 00:18:43,810 --> 00:18:46,080 Josh nevezték, hogy vizsgálja, és észrevettem, 350 00:18:46,080 --> 00:18:49,390 hogy egy különösen problémás a külső IP-cím volt 351 00:18:49,390 --> 00:18:53,380 elment és törölt minden A tartalom a rendszerben. 352 00:18:53,380 --> 00:18:56,290 >> Az IP-cím nem tartozik Egyes tengerentúli hacker hajlított 353 00:18:56,290 --> 00:18:58,340 A pusztító hasznos kormányzati információkat. 354 00:18:58,340 --> 00:19:05,190 Az döntött, hogy googlebot.com, A Google maga web mászik pók. 355 00:19:05,190 --> 00:19:06,010 Hoppá. 356 00:19:06,010 --> 00:19:09,150 Miután egy kis kutatást, és kézzel-lábbal körül, hogy megtalálják a noncorrupt hát, 357 00:19:09,150 --> 00:19:10,180 Josh talált a problémára. 358 00:19:10,180 --> 00:19:12,700 >> A felhasználó már másolt és beillesztett néhány tartalom egy 359 00:19:12,700 --> 00:19:15,670 oldalról a másikra, beleértve a Szerkesztés Hivatkozás 360 00:19:15,670 --> 00:19:17,577 szerkeszteni a tartalmat az oldalon. 361 00:19:17,577 --> 00:19:20,160 Normális esetben ez nem lehet kérdés, mivel egy külső felhasználónak 362 00:19:20,160 --> 00:19:24,320 meg kell adni a nevet és a jelszót, de a CMS hitelesítési rendszer, 363 00:19:24,320 --> 00:19:27,520 a bejelentkezési rendszer, nem veszi figyelembe 364 00:19:27,520 --> 00:19:30,980 kifinomult hacker technikák Google Spider. 365 00:19:30,980 --> 00:19:31,700 Hoppá. 366 00:19:31,700 --> 00:19:33,610 >> Mint kiderült, a Google Spider nem használja 367 00:19:33,610 --> 00:19:36,950 cookie-kat, ami azt jelenti, hogy képes könnyen megkerülni egy csekket a 368 00:19:36,950 --> 00:19:39,840 bejelentkezett cookie-készlet, hogy hamis. 369 00:19:39,840 --> 00:19:42,620 Ugyancsak nem figyelni JavaScript, ami általában 370 00:19:42,620 --> 00:19:45,170 azonnali és átirányítani a felhasználókat akik nem vagy bejelentkezve. 371 00:19:45,170 --> 00:19:48,610 Ennek ellenére nem követi minden hivatkozás minden oldalon találja, 372 00:19:48,610 --> 00:19:51,700 beleértve a Oldal törlése a címben. 373 00:19:51,700 --> 00:19:52,650 Hoppá. 374 00:19:52,650 --> 00:19:56,070 >> Szóval, mit jelent ez a több műszaki de eléggé hozzáférhető feltételek? 375 00:19:56,070 --> 00:19:58,340 Ez csak annyit jelent, hogy egész weboldal, 376 00:19:58,340 --> 00:20:02,287 ők URL nem ellentétben ez az egyik, hogy lehet látni probléma beállított hét. 377 00:20:02,287 --> 00:20:04,620 Emlékezzünk a probléma meghatározott hét vagy tudni probléma beállítva hét 378 00:20:04,620 --> 00:20:06,411 hogy te kétségbe, többek között, 379 00:20:06,411 --> 00:20:08,570 eladni készletek a felhasználók nevében. 380 00:20:08,570 --> 00:20:14,010 De, hogy a végrehajtó funkció útján Az kap hiperlinkek segítségével a felhasználói 381 00:20:14,010 --> 00:20:16,880 felület, valószínűleg nem a legokosabb ötlet 382 00:20:16,880 --> 00:20:20,300 mert ha a webhely valahogy hozzáférhető vagy egy emberi 383 00:20:20,300 --> 00:20:23,577 aki kattintással körül, vagy vesz egy bot, mint a Google vagy a Spider 384 00:20:23,577 --> 00:20:26,160 ahogy ők nevezik, hogy ez csak mászik az interneten próbál index 385 00:20:26,160 --> 00:20:29,060 az interneten, mint a kereső, tudták nagyon könnyen 386 00:20:29,060 --> 00:20:31,340 hit keresztül kap ez a fajta URL-t. 387 00:20:31,340 --> 00:20:33,770 És ez funkcionálisan egyenértékű, ebben az esetben 388 00:20:33,770 --> 00:20:37,000 értékesítés minden részvény Google. 389 00:20:37,000 --> 00:20:40,030 >> Most őszintén, ez teljesen ostoba, hogy a CMS 390 00:20:40,030 --> 00:20:43,240 használt JavaScript és a cookie-k hogy hajtsák végre a login rendszer 391 00:20:43,240 --> 00:20:47,100 és nem csinálja szerver oldalon, mint ti srácok és akarat Pset 7-- 392 00:20:47,100 --> 00:20:49,940 van egy login.php file-- mindig, mindig, 393 00:20:49,940 --> 00:20:52,789 mindig a biztonság legyen kész a szerver oldalon, 394 00:20:52,789 --> 00:20:56,080 nem a kliens oldalon, mert, mivel ez cikk azt sugallja, és lehet, hogy magad 395 00:20:56,080 --> 00:20:59,600 hogy egy bizonyos ponton, akkor triviális a felhasználó, jó vagy rossz, 396 00:20:59,600 --> 00:21:02,860 hogy csak kapcsolja ki a JavaScript nem is beszélve a cookie-kat. 397 00:21:02,860 --> 00:21:06,020 Annak érdekében, hogy ez a napi WTF. 398 00:21:06,020 --> 00:21:07,970 >> Van még egy, ami csak ijesztő, 399 00:21:07,970 --> 00:21:11,360 így fogom említeni, ha csak az élet leckét. 400 00:21:11,360 --> 00:21:14,850 Valahányszor egy alkalmazás így hívják Snapchat vagy hasonlók 401 00:21:14,850 --> 00:21:19,380 azt mondja, ezek a képek csak az utolsó öt másodperc, tíz másodperc, vagy miegymás. 402 00:21:19,380 --> 00:21:21,680 Ők efemer Ez egyáltalán nem ez a helyzet. 403 00:21:21,680 --> 00:21:25,670 Like nincs mód, digitális, végrehajtani valamilyen videó, 404 00:21:25,670 --> 00:21:30,150 vagy kép, vagy szöveges megosztása ilyen hogy a címzett a másik végén 405 00:21:30,150 --> 00:21:31,660 nem lehet valahogy menteni az adatokat. 406 00:21:31,660 --> 00:21:34,300 >> A legtöbb naiv módon, hogy valaki kerülhet a telefont. 407 00:21:34,300 --> 00:21:36,850 És van egy 10 másodperces ablak miközben néztem néhány pillanat alatt 408 00:21:36,850 --> 00:21:39,410 csak hogy néhány másik telefon és lefényképezni, nyilvánvalóan. 409 00:21:39,410 --> 00:21:41,660 Szóval lehet őrizni valami digitálisan így. 410 00:21:41,660 --> 00:21:44,620 Néhányan tudjátok, hogyan kell screenshotok a telefon. 411 00:21:44,620 --> 00:21:49,290 Sőt, ha nem tudja ezt, észre, hogy legalább Snapchat, 412 00:21:49,290 --> 00:21:51,040 és azt hiszem, más alkalmazások ezekben a napokban, 413 00:21:51,040 --> 00:21:53,720 legalább mondani, ha a címzett ténylegesen 414 00:21:53,720 --> 00:21:55,310 hozott egy screenshot a kép. 415 00:21:55,310 --> 00:22:00,870 >> De ami még rosszabb, ez volt az snappening, mivel valaki megalkotta azt a közelmúltban, 416 00:22:00,870 --> 00:22:04,680 ahol néhány 100.000 patent már megjelent 417 00:22:04,680 --> 00:22:09,310 A mi úgynevezett torrent fájl A különböző honlapokon végül. 418 00:22:09,310 --> 00:22:12,000 És ezek a tartalmazott egy csomó A privát üzenetek és hozzászólások. 419 00:22:12,000 --> 00:22:15,210 Kiderült, a legtöbb jóindulatú, tehát nem az, amit várnánk. 420 00:22:15,210 --> 00:22:17,580 Hanem azért, mert az emberek már használt harmadik fél honlapján, 421 00:22:17,580 --> 00:22:20,270 bejelentkezés azok Snapchat felhasználónevet és jelszót, majd 422 00:22:20,270 --> 00:22:23,470 megtakarítás minden a patentos ezen harmadik fél weboldalán. 423 00:22:23,470 --> 00:22:26,130 És ez volt a harmadik fél honlapján, hogy volt, csapkodott, 424 00:22:26,130 --> 00:22:30,710 ami csak azt jelentette, hogy valaki rájött, hogyan hogy minden 100.000 plusz a képek 425 00:22:30,710 --> 00:22:33,822 a saját merevlemezén későbbi megosztását. 426 00:22:33,822 --> 00:22:36,030 Őszintén szólva, itt is, ez a fajta Az ostoba, hogy a Snapchat 427 00:22:36,030 --> 00:22:39,360 hajtják végre oly módon, hogy egy harmadik fél rendezheti A lehallgatott 428 00:22:39,360 --> 00:22:43,310 az adatokat, és hogy ez nem kötődik a saját alkalmazás fut a telefonon. 429 00:22:43,310 --> 00:22:46,947 De itt is, rájönnek, hogy ezek a dolgokat nem elkapni meglepetésként, 430 00:22:46,947 --> 00:22:49,030 vagy legalábbis ott kell egy élet lecke itt. 431 00:22:49,030 --> 00:22:52,220 Ha azt szeretné, a műszaki Részletek az URL-t is, hogy 432 00:22:52,220 --> 00:22:53,570 ami a mai diák. 433 00:22:53,570 --> 00:23:00,960 Rendben, bármilyen kérdésre mai életben órákat CS? 434 00:23:00,960 --> 00:23:02,710 Kapcsold ki. 435 00:23:02,710 --> 00:23:04,970 Bármi? 436 00:23:04,970 --> 00:23:06,301 Bármi? 437 00:23:06,301 --> 00:23:09,050 Van egy csomó ember ellenőrzése a Snapchat vagy valami most. 438 00:23:09,050 --> 00:23:11,690 >> Rendben, SQL, Structured Query Language. 439 00:23:11,690 --> 00:23:12,509 Nézzük ezt csomagolja. 440 00:23:12,509 --> 00:23:14,300 És azt is, annak ellenére, mi csak karcolás 441 00:23:14,300 --> 00:23:16,310 a felülete nyelv, kapsz 442 00:23:16,310 --> 00:23:18,930 elég a nyelv formájában Pset 7 443 00:23:18,930 --> 00:23:22,140 így meg tudják oldani néhány meglehetősen gyakori funkcionalitás. 444 00:23:22,140 --> 00:23:24,912 De észre, van egy pár dolgokat nem igényel tőled, 445 00:23:24,912 --> 00:23:27,120 de ők lesznek Fontos jön végső projektek 446 00:23:27,120 --> 00:23:30,760 és biztosan jön, hogy a tényleges honlapok tényleges felhasználók 447 00:23:30,760 --> 00:23:32,040 ez a tervezési döntés. 448 00:23:32,040 --> 00:23:34,460 >> Kiderül, hogy a A MySQL adatbázis, akkor 449 00:23:34,460 --> 00:23:37,460 Van csokor választás, mint a az adattípusok az oszlopok 450 00:23:37,460 --> 00:23:41,670 és más dolog, de akkor is van a választás egy úgynevezett tárolás 451 00:23:41,670 --> 00:23:44,570 motor az összes adatot, az a fajta fájlrendszer, 452 00:23:44,570 --> 00:23:46,700 ha ismerős, az összes adatot. 453 00:23:46,700 --> 00:23:48,830 Mi formátum azt végül tárolja? 454 00:23:48,830 --> 00:23:53,300 És a leggyakoribb talán már MyISAM és InnoDB, szakkifejezések 455 00:23:53,300 --> 00:23:56,060 hogy mi érdekel csak olyan mértékben, hogy az egyik, 456 00:23:56,060 --> 00:23:58,500 és az egyik nem A következő szolgáltatások. 457 00:23:58,500 --> 00:24:00,390 >> Tegyük fel, hogy van egy kis kollégiumi hűtőszekrény. 458 00:24:00,390 --> 00:24:03,030 És tegyük fel, hogy Ön és a szobatársam, aki osztja ezt a hűtőszekrény, 459 00:24:03,030 --> 00:24:04,682 nagyon szereti mondjuk a tej. 460 00:24:04,682 --> 00:24:07,140 És ez, sőt, hogy a történet azt mondták, hogy nekem vissza 461 00:24:07,140 --> 00:24:10,890 A nap, amikor vettem egy kurzus úgynevezett CS 161 operációs rendszerek, amelyek 462 00:24:10,890 --> 00:24:12,580 hasonlóan vizsgálja ezt a témát. 463 00:24:12,580 --> 00:24:13,760 Szóval van ez a hűtő. 464 00:24:13,760 --> 00:24:14,630 Te ki a tej. 465 00:24:14,630 --> 00:24:17,000 És jössz haza, a szobatársam még osztály, vagy bármi, 466 00:24:17,000 --> 00:24:19,208 és úgy dönt, hogy megyek menj ki, és egy kis tejet. 467 00:24:19,208 --> 00:24:22,630 Szóval becsukod a hűtőt, börtön a kollégiumi szobában, menjen át az utca 468 00:24:22,630 --> 00:24:25,330 a CVS vagy bárhova, és kap összhangban vásárolni egy kis tejet. 469 00:24:25,330 --> 00:24:28,960 >> Eközben a szobatársam hazaér osztálytól, bejut a kollégiumi szobájában, 470 00:24:28,960 --> 00:24:31,802 Megnyílik a hűtőszekrény is rájön ooph, kifogytunk a tej. 471 00:24:31,802 --> 00:24:33,760 Így ő becsukja a hűtő és akkor történik 472 00:24:33,760 --> 00:24:35,610 menni a másik CVS, amely történetesen 473 00:24:35,610 --> 00:24:38,470 egy saroknyira a többi CVS a téren, és megkapja a sorban 474 00:24:38,470 --> 00:24:40,230 ott egy kis tejet. 475 00:24:40,230 --> 00:24:42,524 Most, persze, néhány perc alatt később, akkor is kap vissza, 476 00:24:42,524 --> 00:24:44,690 és a legrosszabb lehetséges eredmények történt. 477 00:24:44,690 --> 00:24:45,792 Mindketten van tej. 478 00:24:45,792 --> 00:24:47,500 És nem igazán mint a tej, hogy sok. 479 00:24:47,500 --> 00:24:49,625 Tehát az egyik ezek közül csak megy savanyú valamikor. 480 00:24:49,625 --> 00:24:55,941 Tehát most már túl sok A tej a hűtőben minden, mert miért? 481 00:24:55,941 --> 00:24:57,072 >> [Hallható] 482 00:24:57,072 --> 00:24:59,780 DAVID MALAN: Igen, nem valahogy kommunikálni egymással 483 00:24:59,780 --> 00:25:00,904 hogy kezdtek tejet. 484 00:25:00,904 --> 00:25:04,320 Így a legegyszerűbb módon az emberi világban, 485 00:25:04,320 --> 00:25:08,390 hogyan lehet elkerülni a buta forgatókönyv történik ilyen 486 00:25:08,390 --> 00:25:09,750 hogy csak a végén egy. 487 00:25:09,750 --> 00:25:10,840 Szöveg őket, igen jó. 488 00:25:10,840 --> 00:25:12,877 De hogyan máshogy? 489 00:25:12,877 --> 00:25:13,460 Post-it jegyzetek. 490 00:25:13,460 --> 00:25:14,626 DAVID MALAN: A Post-it jegyzet. 491 00:25:14,626 --> 00:25:17,150 Bármilyen forma kommunikáció hogy mondja meg a szobatársam 492 00:25:17,150 --> 00:25:18,670 nem megy be a hűtőbe tej. 493 00:25:18,670 --> 00:25:20,440 Én megyek a saját újratelepítésére. 494 00:25:20,440 --> 00:25:22,770 Szóval valahogy szüksége van zár ehhez az erőforráshoz. 495 00:25:22,770 --> 00:25:27,180 Így lehet, hogy this-- tudjuk milyen tönkreteheti a történet, és kapcsolja be a CS történet 496 00:25:27,180 --> 00:25:30,360 amely gondolni ezt, mint egy változó, ami tárolja bizonyos értéket. 497 00:25:30,360 --> 00:25:32,570 És most, a értéke tej nulla, 498 00:25:32,570 --> 00:25:35,410 amely nem szeretné, hogy a szobatársa, hogy vizsgálja meg a változó 499 00:25:35,410 --> 00:25:38,730 majd döntést saját maga alapján az állam, hogy a változó 500 00:25:38,730 --> 00:25:42,430 ha a folyamat állapotának megváltoztatásával, hogy a változó. 501 00:25:42,430 --> 00:25:46,140 >> Tehát az egyik vonal, amit SQL Önnek a Pset 7 leírásban 502 00:25:46,140 --> 00:25:47,310 ez itt. 503 00:25:47,310 --> 00:25:49,740 És mi nem költenek egy hatalmas időt beszélni róla. 504 00:25:49,740 --> 00:25:55,100 De kiderült, ha megpróbálják hogy vásároljon néhány állomány CS50 pénzügy 505 00:25:55,100 --> 00:25:58,000 hogy már van egyes részvények, akkor 506 00:25:58,000 --> 00:26:01,750 szeretné, hogy képes megtenni több A dolgok azonnal együtt. 507 00:26:01,750 --> 00:26:04,360 Azt akarod, hogy képes legyen hatékonyan, a magas szintű, 508 00:26:04,360 --> 00:26:06,700 ellenőrizze a helyes, ha azt akarom, hogy többet vásárolnak részvényeket szabad, 509 00:26:06,700 --> 00:26:08,780 A penny állomány is beszélni a spec, 510 00:26:08,780 --> 00:26:10,660 Szeretnék első ellenőrzés hány részvényt van. 511 00:26:10,660 --> 00:26:11,810 És hiszem, ez öt. 512 00:26:11,810 --> 00:26:14,600 És tegyük fel, azt akarom, hogy vásárolni 10 több, én végül 513 00:26:14,600 --> 00:26:17,069 szeretné, hogy 15 részvény állomány. 514 00:26:17,069 --> 00:26:18,360 Szóval kell feltenni két kérdést. 515 00:26:18,360 --> 00:26:20,230 Mi az állam a változó? 516 00:26:20,230 --> 00:26:21,470 Mi az állam a sor? 517 00:26:21,470 --> 00:26:22,970 Hány részvények tudom jelenleg? 518 00:26:22,970 --> 00:26:24,636 Akkor akarsz menni előre, és frissíti azt. 519 00:26:24,636 --> 00:26:27,720 Szóval ez az analóg a tej, hogy ellenőrizze a sor, 520 00:26:27,720 --> 00:26:30,730 és akkor szeretnénk frissíteni mert ha meg akarja vásárolni 10 részvény, 521 00:26:30,730 --> 00:26:32,521 nem akar változtatni a sor, hogy 10, akkor 522 00:26:32,521 --> 00:26:35,300 szeretné változtatni, hogy 5 plusz 10 vagy természetesen, 15. 523 00:26:35,300 --> 00:26:40,030 >> Ez a vonal a kód biztosítja, hogy e két elképzeléseket 524 00:26:40,030 --> 00:26:42,810 közösen történik, vagy egyáltalán nem. 525 00:26:42,810 --> 00:26:46,920 Senki, még egy másik felhasználó aki belépett az ugyanazon a honlapon, 526 00:26:46,920 --> 00:26:49,900 valahogy szakítani ellenőrzését a sor 527 00:26:49,900 --> 00:26:52,960 és aktualizálását a sor, a válassza ki a frissítést, ha úgy tetszik. 528 00:26:52,960 --> 00:26:57,360 És a szintaxis nem szuper nyilvánvaló, de ez egy sor, amíg van ez, 529 00:26:57,360 --> 00:27:01,150 garantálja, hogy a két művelet ellenőrizze a változó vagy ellenőrizze a sor 530 00:27:01,150 --> 00:27:04,660 és frissítse a sorban történik atomically. 531 00:27:04,660 --> 00:27:06,849 >> Ó, itt vagyunk megint. 532 00:27:06,849 --> 00:27:07,890 Szöveges üzenet a telefonon. 533 00:27:07,890 --> 00:27:09,954 Szóval, hogy ez a kicsit konkrétabb. 534 00:27:09,954 --> 00:27:12,120 Tegyük fel, hogy te nem megvalósítása hűtőszekrény, 535 00:27:12,120 --> 00:27:16,400 és te nem végrehajtó Pset 7, de a tényleges bank, 536 00:27:16,400 --> 00:27:20,000 vagy egy ATM, egy Automated Teller Gép, amely valahogy 537 00:27:20,000 --> 00:27:22,960 szeretné, hogy képes legyen képessé felhasználók számára, hogy pénzt 538 00:27:22,960 --> 00:27:24,500 az egyik számláról a másikra. 539 00:27:24,500 --> 00:27:25,100 OK, tarts ki. 540 00:27:25,100 --> 00:27:26,683 Fogom némítani ezt most, köszönöm. 541 00:27:26,683 --> 00:27:30,450 Ezért szeretnénk mozgatni a pénzt egy számlaszám 542 00:27:30,450 --> 00:27:33,600 egy másik fiókba szám, különösen a 100 dollárt. 543 00:27:33,600 --> 00:27:37,690 Tehát ez a fajta önkényes Például, ahol te, az ATM, 544 00:27:37,690 --> 00:27:41,060 Lehet, hogy végre két SQL lekérdezések, kivonni az egyik fiókból, 545 00:27:41,060 --> 00:27:42,430 és hozzáadjuk a többi számla. 546 00:27:42,430 --> 00:27:46,766 De szeretnénk, hogy ezek az két vonal mindkét történik, vagy egyáltalán nem. 547 00:27:46,766 --> 00:27:48,640 Nem akar valamit egyre megszakadt. 548 00:27:48,640 --> 00:27:51,440 Ugye nem valami okos rosszfiú valahogy állt a Bank of America 549 00:27:51,440 --> 00:27:53,270 két ATM-ek előtt Az őt és valahogy 550 00:27:53,270 --> 00:27:55,270 fajta beírja a parancsok egy időben, 551 00:27:55,270 --> 00:28:01,230 remélhetőleg megpróbálta levonni 200 $ helyett $ 100, és csak miután 100 $ jóváírásra. 552 00:28:01,230 --> 00:28:04,450 Röviden, ha szeretnénk, hogy ez viselkednek, pontosan úgy, ahogy elvárható. 553 00:28:04,450 --> 00:28:06,540 >> És ahogy te ezt az SQL adatbázisban 554 00:28:06,540 --> 00:28:09,350 tekerje be mi úgynevezett tranzakció. 555 00:28:09,350 --> 00:28:14,290 Szó SQL, akkor hívja a CS50 lekérdezés funkció idézettel idézet vége kezdet 556 00:28:14,290 --> 00:28:15,370 tranzakció. 557 00:28:15,370 --> 00:28:18,640 Akkor végre bármilyen szám A későbbi SQL lekérdezések, 558 00:28:18,640 --> 00:28:20,870 de egyikük sem vesz hatása az adatbázisban 559 00:28:20,870 --> 00:28:25,880 amíg a hívás lekérdezés idézet idézet vége követ el, ha újra a PHP. 560 00:28:25,880 --> 00:28:29,810 És így, tudod, hogy akkor is, ha 1000 felhasználók minden 561 00:28:29,810 --> 00:28:32,080 üti az adatbázis ugyanabban az időben, az SQL 562 00:28:32,080 --> 00:28:34,540 megígérem, hogy ezek a két lekérdezés lesz 563 00:28:34,540 --> 00:28:36,740 megvalósított egyik a másik után. 564 00:28:36,740 --> 00:28:40,330 Szóval nem a végén meghaladja a tej vagy a megfelelő összeget, végül, 565 00:28:40,330 --> 00:28:40,830 a pénz. 566 00:28:40,830 --> 00:28:43,110 >> Tehát ezt tartsd szem előtt, nem annyira Pset 7 567 00:28:43,110 --> 00:28:45,250 de végső projektek ha tényleg 568 00:28:45,250 --> 00:28:49,690 próbálja mozgatni az adatokat körülbelül a táblázatok, ahogy talán itt. 569 00:28:49,690 --> 00:28:53,980 De talán még egyszerűbb, nyilvánvaló, hogy megértsük egy példa 570 00:28:53,980 --> 00:28:54,860 ez itt. 571 00:28:54,860 --> 00:28:57,760 És valaki e-mailben nekünk ez csak a minap 572 00:28:57,760 --> 00:28:59,600 amikor látta, valami hasonlót az interneten. 573 00:28:59,600 --> 00:29:03,480 >> Szóval, hogy tudomásom szerint a csap rendszer nem érinti ez a támadás. 574 00:29:03,480 --> 00:29:06,637 És fogalmam sincs, ha még felhasználásra Az SQL adatbázis a motorháztető alatt. 575 00:29:06,637 --> 00:29:08,470 De nézzük azt használjuk a vita kedvéért. 576 00:29:08,470 --> 00:29:10,178 Itt a képernyőn, Harvard emberek hajlamosak 577 00:29:10,178 --> 00:29:13,620 látni, amikor bejelentkezik a saját Harvard azonosító szám és pin. 578 00:29:13,620 --> 00:29:19,020 És tegyük fel, hogy a csap rendszer volt megvalósításra a PHP és a MySQL 579 00:29:19,020 --> 00:29:22,000 adatbázis, a kódot, hogy valaki Lehet, hogy írt évvel ezelőtt 580 00:29:22,000 --> 00:29:23,270 így néz ki. 581 00:29:23,270 --> 00:29:25,230 Először is kijelentem, a nevű változó felhasználónév. 582 00:29:25,230 --> 00:29:27,560 És csak kap, hogy a a POST szuperglobális. 583 00:29:27,560 --> 00:29:30,140 Aztán még egy változó úgynevezett jelszó, és nem ugyanaz. 584 00:29:30,140 --> 00:29:33,080 És akkor csak végre ez a hosszú lekérdezés itt, 585 00:29:33,080 --> 00:29:36,690 válassza ki a csillag a felhasználóktól, amennyiben felhasználónév megegyezik az ilyen és ilyen 586 00:29:36,690 --> 00:29:38,510 és a jelszó megegyezik az ilyen és ilyen. 587 00:29:38,510 --> 00:29:40,660 >> Figyeljük meg, hogy a göndör nadrágtartó Én is használtam itt 588 00:29:40,660 --> 00:29:42,880 csupán azt jelenti, hogy PHP-t, menjen előre, és a helyettesítő 589 00:29:42,880 --> 00:29:45,400 értéke e két változók ott. 590 00:29:45,400 --> 00:29:50,090 Ők nem feltétlenül szükséges, de hajlamosak kerülni finom szintaktikai hibákat. 591 00:29:50,090 --> 00:29:53,650 Tehát ez úgy néz ki, teljesen megfelelő első pillantásra. 592 00:29:53,650 --> 00:29:54,240 És ez. 593 00:29:54,240 --> 00:29:56,680 Lehet végre a csap rendszer ezen a módon. 594 00:29:56,680 --> 00:30:00,460 >> De tegyük fel, hogy egy szuper okos és rosszindulatú diák 595 00:30:00,460 --> 00:30:03,020 bemenet ezt ő pin. 596 00:30:03,020 --> 00:30:05,550 Szóval eltávolították a golyó jelek itt a modell fel, 597 00:30:05,550 --> 00:30:08,760 és én már feltárták, amit ő lehet gépelni. 598 00:30:08,760 --> 00:30:10,350 És ez egy kicsit furcsa. 599 00:30:10,350 --> 00:30:13,850 De mi ugrik ki téged a lehetségesen aggasztó a felhasználó által megadott, 600 00:30:13,850 --> 00:30:16,450 akkor is, ha fogalma sincs, mit SQL injekciós támadás jelenti. 601 00:30:16,450 --> 00:30:20,300 Miért ez meg egy kicsit gyanús? 602 00:30:20,300 --> 00:30:21,050 Mi ez? 603 00:30:21,050 --> 00:30:21,550 [Hallható] 604 00:30:21,550 --> 00:30:24,260 DAVID MALAN: A, vagy egy kicsit gyanús. 605 00:30:24,260 --> 00:30:26,310 Tény, hogy ez egy kulcsszót SQL. 606 00:30:26,310 --> 00:30:28,105 Annak érdekében, hogy semmi jót nem. 607 00:30:28,105 --> 00:30:29,980 Az a tény, hogy van Mindezen aposztrófot 608 00:30:29,980 --> 00:30:32,646 there-- sőt, az egyik legegyszerűbb módon megtörni egyes adatbázisok 609 00:30:32,646 --> 00:30:35,880 az beírja a nevet, mint O'Reilly hogy van egy aposztróf benne 610 00:30:35,880 --> 00:30:38,600 mert ha az ember, aki írta A kód a színfalak mögött 611 00:30:38,600 --> 00:30:41,570 nem veszi figyelembe, hogy ott Lehet, hogy egyes idézetek nem a felhasználó 612 00:30:41,570 --> 00:30:45,060 bemenet, és ő használ aposztrófot a saját kódját, 613 00:30:45,060 --> 00:30:46,040 rossz dolgok is történnek. 614 00:30:46,040 --> 00:30:47,870 >> Sőt, ami még rosszabb, hogy ezt. 615 00:30:47,870 --> 00:30:50,600 Ha ez ismét a kódot hogy valaki a Harvardon év 616 00:30:50,600 --> 00:30:53,100 ezelőtt írt a csap rendszer, észre mi 617 00:30:53,100 --> 00:30:56,220 arról, hogy kap helyette A felhasználónév és jelszó 618 00:30:56,220 --> 00:30:59,780 ha a felhasználó beír újra skroob azok felhasználónév 619 00:30:59,780 --> 00:31:03,960 majd egy, két, három, négy, öt, idézet vagy idézet idézőjel bezárva egy egyenlő 620 00:31:03,960 --> 00:31:04,660 idézet egy. 621 00:31:04,660 --> 00:31:07,220 És észre, mi a kulcs itt van a felhasználó nem 622 00:31:07,220 --> 00:31:09,900 kezdték jelszót vagy a pin egy idézet. 623 00:31:09,900 --> 00:31:12,610 És még nem ért véget az egy idézet, mert ő 624 00:31:12,610 --> 00:31:16,315 azt feltételezi, hogy ha a programozó nem volt olyan éles, 625 00:31:16,315 --> 00:31:18,690 fognak, hogy e aposztrófot a saját kódját. 626 00:31:18,690 --> 00:31:19,860 >> Tehát itt a kódot. 627 00:31:19,860 --> 00:31:23,820 És az, hogy a helyettesítés Lehet, most ez történik. 628 00:31:23,820 --> 00:31:26,350 És én hangsúlyozta, milyen a felhasználó beírt. 629 00:31:26,350 --> 00:31:28,480 Szóval mielőtt után. 630 00:31:28,480 --> 00:31:33,330 És észre, mi enyhén aggasztó most a jobb fele a SQL-kódot? 631 00:31:33,330 --> 00:31:36,300 Ez egy kicsit bonyolultabb, igaz, mint a lekérdezések láttunk. 632 00:31:36,300 --> 00:31:38,550 De ez nem lehetséges egy jó dolog, ha 633 00:31:38,550 --> 00:31:42,240 mondván válasszuk csillag, ami válasszuk mindent a felhasználó asztal 634 00:31:42,240 --> 00:31:46,630 ahol a felhasználónév és egyenlő skroob jelszó értéke egy, kettő, három, négy, 635 00:31:46,630 --> 00:31:49,610 öt vagy egy egyenlő egy. 636 00:31:49,610 --> 00:31:53,860 Mi a logikai következmény Az, hogy az utolsó záradék feltehetően? 637 00:31:53,860 --> 00:31:55,650 Csak mindig igaz. 638 00:31:55,650 --> 00:31:59,930 >> És mivel mi fajta sejtette vagy kitalálta próbálgatással 639 00:31:59,930 --> 00:32:02,760 hogy a programozó, aki írta ezt a kódot nem 640 00:32:02,760 --> 00:32:07,250 előre egy ember vagy rossz ember gépelés aposztrófot is, 641 00:32:07,250 --> 00:32:10,350 tudjuk szintaktikailag teljes SQL lekérdezés 642 00:32:10,350 --> 00:32:12,260 valami értelmetlen hanem valami, ami 643 00:32:12,260 --> 00:32:15,930 szintaktikailag hibás hogy mindig értékeli az igaz. 644 00:32:15,930 --> 00:32:19,130 Tehát, ha a kódot használják, hogy válaszoljon a kérdés igaz vagy hamis kell 645 00:32:19,130 --> 00:32:22,930 felhasználó átmehet, a válasz mindig látszólag megy 646 00:32:22,930 --> 00:32:26,930 hogy igaz legyen, mert ez mindig megy válassza ki valamit az adatbázisból 647 00:32:26,930 --> 00:32:29,280 mert az egyik persze mindig egyenlő egy. 648 00:32:29,280 --> 00:32:30,360 >> Tehát mi a megoldás? 649 00:32:30,360 --> 00:32:33,290 Nos Pset 7, valójában Ennek elkerülése érdekében minden együtt. 650 00:32:33,290 --> 00:32:37,360 Adunk egy lekérdezés funkciót, és mi javasoljuk, hogy használja a kérdőjel 651 00:32:37,360 --> 00:32:40,430 helyőrzőként, hasonló a szellem a printf% s, 652 00:32:40,430 --> 00:32:43,710 de mi a legfontosabb a kérdőjelek itt, ha tényleg elolvasta 653 00:32:43,710 --> 00:32:46,950 functions.php, hol mi lekérdezés funkció elérhető, 654 00:32:46,950 --> 00:32:52,780 ezek a kérdőjelek vannak megszökött, amely valami potenciálisan veszélyes 655 00:32:52,780 --> 00:32:58,210 mint egy idézet van egy szökött egy idézet. 656 00:32:58,210 --> 00:33:00,590 >> Szóval, ez az, ami tényleg történik, ha 657 00:33:00,590 --> 00:33:04,850 használja CS50 lekérdezés funkciót vagy bármilyen szám Harmadik fél szabad könyvtárak 658 00:33:04,850 --> 00:33:06,000 nem ugyanaz. 659 00:33:06,000 --> 00:33:09,850 Nem számít, ebben az esetben a zöld, ha a felhasználó beírt egyetlen idézet 660 00:33:09,850 --> 00:33:12,070 mert a lekérdezés funkció, amit írtam az 661 00:33:12,070 --> 00:33:15,120 fog hozzá visszaperjelek előtt ilyen veszélyes árajánlatot. 662 00:33:15,120 --> 00:33:17,360 Tehát ez nem a Sőt, lesz legális. 663 00:33:17,360 --> 00:33:20,910 Ez olyan, mint beírni a keresett őrült jelszó, ami, persze, nem megy 664 00:33:20,910 --> 00:33:23,490 hogy skroob aktuális jelszavát. 665 00:33:23,490 --> 00:33:28,260 >> Így az elvihető az CS50 egy, teljesen mindig valamit 666 00:33:28,260 --> 00:33:30,860 mint CS50 lekérdezés funkciója vagy az alapul szolgáló könyvtár, 667 00:33:30,860 --> 00:33:32,560 amely történetesen az úgynevezett OEM. 668 00:33:32,560 --> 00:33:35,880 De soha, soha, Soha nem kód, mint ez 669 00:33:35,880 --> 00:33:39,472 nélkül elkerülni vagy súroló mint mondják a bemenet. 670 00:33:39,472 --> 00:33:42,430 És akkor egy bizonyos ponton valószínűleg ráakad néhány weboldal, mint ez. 671 00:33:42,430 --> 00:33:46,060 Sőt, úgy tűnik, hogy ez a helyzet mint a repülőterek és szállodák helyeken 672 00:33:46,060 --> 00:33:48,880 ahol ingyenes Wi-Fi-vel hozzáférés, hogy kell jelentkezned hogy, 673 00:33:48,880 --> 00:33:51,010 ezek a weboldalak mindig rettenetesen végre. 674 00:33:51,010 --> 00:33:55,680 És így egyfajta szórakozás otthon gyakorolja, nem rosszindulatú célokra vagy több 675 00:33:55,680 --> 00:33:59,170 A móka az úton gyakorlat az, hogy csak a típus 676 00:33:59,170 --> 00:34:02,850 egy aposztróf, egy idézet, egy űrlap a honlap bizonyos 677 00:34:02,850 --> 00:34:03,810 és meglátjuk, mi történik. 678 00:34:03,810 --> 00:34:06,660 És ha a szerver összeomlik, vagy ad Ön valamilyen hibaüzenet, 679 00:34:06,660 --> 00:34:09,690 ez nagyon jól lehet, hogy valaki nem számított erre. 680 00:34:09,690 --> 00:34:15,239 És akkor kell figyelmeztetni a megfelelő hatóságok és folytassa tovább. 681 00:34:15,239 --> 00:34:20,843 >> Tehát most, srácok remélhetőleg megérteni egy kicsit stréber humor itt. 682 00:34:20,843 --> 00:34:24,120 >> [Nevetés] 683 00:34:24,120 --> 00:34:27,571 684 00:34:27,571 --> 00:34:29,070 DAVID MALAN: Tudod, te egy stréber. 685 00:34:29,070 --> 00:34:30,944 A következő néhány év, akkor emlékezni fog 686 00:34:30,944 --> 00:34:33,520 aki kis Bobby táblázatok mert ez a rajzfilm itt. 687 00:34:33,520 --> 00:34:36,760 Tehát, hogy tartsa szem előtt, mint mi kontextus kapcsoló egyszer, utoljára 688 00:34:36,760 --> 00:34:38,770 ma JavaScript. 689 00:34:38,770 --> 00:34:41,600 Már töltött viszonylag kevés idő a szintaxis a PHP 690 00:34:41,600 --> 00:34:43,440 mert valójában szuper hasonló a C. 691 00:34:43,440 --> 00:34:47,300 És szépen elég, JavaScript is szuper hasonlít a C szintaxisa 692 00:34:47,300 --> 00:34:49,639 továbbá fogunk látni Csak egy pillanatra, és mivel mi 693 00:34:49,639 --> 00:34:51,205 lásd később ezen a héten különösen. 694 00:34:51,205 --> 00:34:54,080 Mit lehet csinálni ezen a nyelven, bár, annál is erősebb, 695 00:34:54,080 --> 00:34:55,790 különösen API-k. 696 00:34:55,790 --> 00:34:56,960 >> De először egy gyors túra. 697 00:34:56,960 --> 00:35:00,450 Így egy, a JavaScript, van nem fő funkciója, ami szép. 698 00:35:00,450 --> 00:35:02,650 Mint a PHP, akkor csak írni kódot. 699 00:35:02,650 --> 00:35:04,310 Feltételek kinéznie. 700 00:35:04,310 --> 00:35:07,100 És lehet, hogy logikai kifejezések néz ki, mint ez, vagy ehhez hasonló. 701 00:35:07,100 --> 00:35:09,530 Kapcsolók létezik, és ők így néz ki. 702 00:35:09,530 --> 00:35:10,970 Négy hurok kinéznie. 703 00:35:10,970 --> 00:35:12,390 While kinéznie. 704 00:35:12,390 --> 00:35:14,160 Tetszik mindaddig néz ki. 705 00:35:14,160 --> 00:35:16,850 És akkor tömbök kinézni ez nagyon hasonlít a PHP. 706 00:35:16,850 --> 00:35:20,740 De észre, hogy a JavaScript te hogy egy változót nem a dollár 707 00:35:20,740 --> 00:35:25,190 írja alá, nem pedig egy adattípust, hanem a szó szoros értelmében azzal var változó előtt. 708 00:35:25,190 --> 00:35:27,900 Ez is lazán gépelt annyiban, hogy típusok, 709 00:35:27,900 --> 00:35:29,729 de nem kifejezetten nyilvánítja őket. 710 00:35:29,729 --> 00:35:31,520 És akkor egy karaktersorozatot Például, lehet nézni 711 00:35:31,520 --> 00:35:34,350 ilyen, hogy húr hívott s ebben az esetben. 712 00:35:34,350 --> 00:35:35,410 És akkor egy tárgy. 713 00:35:35,410 --> 00:35:37,010 És ezek fogunk többet látni hamarosan. 714 00:35:37,010 --> 00:35:41,470 És egy tárgy talán az egyik leggyakrabban látott adatszerkezetek 715 00:35:41,470 --> 00:35:44,050 egy JavaScript alapú program, mert lehetővé teszi, hogy 716 00:35:44,050 --> 00:35:46,680 Ön társítani önkényes kulcs érték párok csak 717 00:35:46,680 --> 00:35:51,240 mint a PHP asszociatív tömbök és mint a saját hash tábla 718 00:35:51,240 --> 00:35:54,042 vagy próbálja ahogy végre néhány hete. 719 00:35:54,042 --> 00:35:56,250 Úgyhogy tulajdonképpen mit tehetünk JavaScript. 720 00:35:56,250 --> 00:35:59,410 És különösen, ez mosodai szolgáltatások listája 721 00:35:59,410 --> 00:36:02,300 hogy böngészők hogy lehetővé teszi a horog JavaScript 722 00:36:02,300 --> 00:36:05,470 egy weboldal a következő módon. 723 00:36:05,470 --> 00:36:09,340 JavaScript sokszor használják a kliens oldali programozási nyelv. 724 00:36:09,340 --> 00:36:10,130 Ez nem összeállítani. 725 00:36:10,130 --> 00:36:11,370 Azt is értelmezhető. 726 00:36:11,370 --> 00:36:15,740 De ellentétben a PHP, amely már működik a szerveren, a webszerver, 727 00:36:15,740 --> 00:36:18,220 vagy mélyen a az ügyfelek, JavaScript 728 00:36:18,220 --> 00:36:22,190 különbözik annyiban, hogy általában fut a böngészőben. 729 00:36:22,190 --> 00:36:26,060 >> Tehát bármilyen JavaScript kódot íráshoz A Pset 8 vagy a projekt végső, 730 00:36:26,060 --> 00:36:29,890 vagy a valós világban általában megy kell menteni a szerveren, teljesen 731 00:36:29,890 --> 00:36:33,110 Egy pont a HTML vagy pont JS JavaScript fájlt. 732 00:36:33,110 --> 00:36:35,770 De a böngésző megy letölteni a JavaScript 733 00:36:35,770 --> 00:36:39,530 kód a saját példányának Chrome, vagy IE vagy a Firefox, vagy bármi. 734 00:36:39,530 --> 00:36:43,870 És a kód valóban fog kapni végre belül a saját böngészője. 735 00:36:43,870 --> 00:36:46,560 Csak, hogy ez még a valódi, nézzük ezt a konkrét formában. 736 00:36:46,560 --> 00:36:50,120 >> Fogalmunk sincs, hogy mi ez a kód nem nem igazán olvassa át azt. 737 00:36:50,120 --> 00:36:52,670 De hadd menjek Facebook.com bejelentkezés nélkül. 738 00:36:52,670 --> 00:37:00,440 Hadd menjen Vizsgálja Element, és menjen, mondjuk, a Hálózat és az oldal újratöltődik. 739 00:37:00,440 --> 00:37:04,150 És mi csak-- hadd váltás Reload az Oldal, hogy minden kérést új. 740 00:37:04,150 --> 00:37:08,850 És az első fájl, amit látok, CSS, CSS. 741 00:37:08,850 --> 00:37:10,880 Itt az első JavaScript fájlt, és én 742 00:37:10,880 --> 00:37:14,600 fogalmam sincs, hogy ez mire jó, de itt néhány, a JavaScript kód 743 00:37:14,600 --> 00:37:16,180 ami hajtja a Facebook. 744 00:37:16,180 --> 00:37:18,400 Ez nem is igazán, hogy felfedve a nagyításhoz. 745 00:37:18,400 --> 00:37:20,260 Még mindig ugyanolyan értelmetlen. 746 00:37:20,260 --> 00:37:24,341 >> De látni fogod azt is, lent, ott van még több ilyen JavaScript fájlokat. 747 00:37:24,341 --> 00:37:24,840 Hoppá. 748 00:37:24,840 --> 00:37:25,440 Ez a ping. 749 00:37:25,440 --> 00:37:28,550 Menjünk le egy kicsit további továbbá, tovább. 750 00:37:28,550 --> 00:37:29,894 Van egy. 751 00:37:29,894 --> 00:37:31,238 Van egy. 752 00:37:31,238 --> 00:37:31,880 Van egy. 753 00:37:31,880 --> 00:37:35,820 >> Így, bár a Facebook mögött a jelenetek, van írva részben PHP 754 00:37:35,820 --> 00:37:39,100 és a Facebook a saját verzióját cikkére, van egy hatalmas mennyiségű JavaScript. 755 00:37:39,100 --> 00:37:41,330 Valójában bármely, a beszélgetni te a Facebook-on, 756 00:37:41,330 --> 00:37:45,520 bármelyik inline idővonal frissítések hogy valós időben történik, az összes, hogy 757 00:37:45,520 --> 00:37:47,944 hajtja JavaScript. 758 00:37:47,944 --> 00:37:48,444 Igen? 759 00:37:48,444 --> 00:37:50,235 >> KÖZÖNSÉG: Nem vagyok benne biztos ha ez a Facebook, 760 00:37:50,235 --> 00:37:53,624 de úgy gondoltam, hogy a Facebook kifejlesztett saját házon kód nyelvet? 761 00:37:53,624 --> 00:37:54,540 DAVID MALAN: Tették. 762 00:37:54,540 --> 00:37:58,110 Szóval ezért mondom a variancia PHP nevű Hip Hop, hogy ténylegesen 763 00:37:58,110 --> 00:38:03,440 hozzáadott funkciók, hogy ha Mark először végre a Facebook, 764 00:38:03,440 --> 00:38:04,710 azt írták PHP. 765 00:38:04,710 --> 00:38:07,370 És ez a fajta maradt A fajta front end nyelv 766 00:38:07,370 --> 00:38:09,030 hogy az általuk használt, sokkal azok kódolás, de 767 00:38:09,030 --> 00:38:11,870 nem volt olyan nyelv, ami skálázható különösen jól milliárd 768 00:38:11,870 --> 00:38:12,630 az emberek. 769 00:38:12,630 --> 00:38:15,300 És így hozzá saját fejlesztések a színfalak mögött. 770 00:38:15,300 --> 00:38:17,049 És használja fel a számot más nyelvek 771 00:38:17,049 --> 00:38:19,170 különböző darab az infrastruktúra. 772 00:38:19,170 --> 00:38:24,080 Szóval igen, ez egy szórása amit mi már tudjuk, a PHP. 773 00:38:24,080 --> 00:38:26,610 >> Szóval vessünk egy pillantást egy pár példa 774 00:38:26,610 --> 00:38:28,890 Az hogyan lehet használni JavaScript ide. 775 00:38:28,890 --> 00:38:32,530 A mai forráskódját, hogy van egy csomó kép, amelyek közül az első, 776 00:38:32,530 --> 00:38:34,090 nézzük az úgynevezett DOM nulla. 777 00:38:34,090 --> 00:38:36,770 Így DOM nulla a következőképpen néz ki. 778 00:38:36,770 --> 00:38:40,730 Hadd menjek ebbe a könyvtárba és nyissa fel domzero.html, 779 00:38:40,730 --> 00:38:44,970 a tetején, amely egy doc típus nyilatkozat, mondván, itt jön a HTML 5. 780 00:38:44,970 --> 00:38:46,440 És most itt van egy HTML-címke. 781 00:38:46,440 --> 00:38:47,540 Itt a fejét tag. 782 00:38:47,540 --> 00:38:49,210 És itt van, mi újság ma. 783 00:38:49,210 --> 00:38:52,620 >> Most van egy script tag belsejében a fejét a lap. 784 00:38:52,620 --> 00:38:55,290 És ez nyilvánvalóan nem nagyon kevés, de nyilatkozat 785 00:38:55,290 --> 00:38:58,410 hogy már meghatározta a script, a JavaScript. 786 00:38:58,410 --> 00:39:01,050 És mint félre, mert ez egy közös tévhit, 787 00:39:01,050 --> 00:39:05,220 JavaScript egyáltalán semmi köze a Java, a nyelv 788 00:39:05,220 --> 00:39:08,010 hogy néhányan talán tanultak APCS. 789 00:39:08,010 --> 00:39:10,480 Ez inkább egy marketing dolog, mint bármi, 790 00:39:10,480 --> 00:39:12,980 lovaglás a coattails Java évvel ezelőtt. 791 00:39:12,980 --> 00:39:17,300 De JavaScript, semmi köze Java, csak hasonlóan, és bosszantóan, 792 00:39:17,300 --> 00:39:18,480 zavaróan nevét. 793 00:39:18,480 --> 00:39:21,890 >> Tehát itt van, hogyan állapítsa meg a függvény JavaScript, szó szerint azt mondják funkció, 794 00:39:21,890 --> 00:39:24,556 akkor a függvény neve, akkor olyan érveket is eltarthat, 795 00:39:24,556 --> 00:39:25,530 Csak úgy, mint a PHP. 796 00:39:25,530 --> 00:39:28,990 Kiderült a JavaScript, az egyik bosszantó funkciók, akkor lehet Alert. 797 00:39:28,990 --> 00:39:31,392 Ez egy kis ablak, jelenik meg, és figyelmeztet 798 00:39:31,392 --> 00:39:32,600 néhány darab információt. 799 00:39:32,600 --> 00:39:33,766 Ez általában elítélik. 800 00:39:33,766 --> 00:39:35,980 De majd használni, mint a mi első gyakorlat itt. 801 00:39:35,980 --> 00:39:37,900 >> Figyeljük meg néhány jellemzője JavaScript. 802 00:39:37,900 --> 00:39:41,524 Egyetlen idézetek és dupla idézőjelek valójában nem számít többé. 803 00:39:41,524 --> 00:39:43,690 Egyetlen idézetek és kettős idézetek felcserélhető, 804 00:39:43,690 --> 00:39:46,220 mivel a C, meg kell használni dupla idézőjelek vonósokra, 805 00:39:46,220 --> 00:39:48,150 és van két egyszemélyes A karakter idézi. 806 00:39:48,150 --> 00:39:51,150 A JavaScript világban, Sok ember a legtöbb ember 807 00:39:51,150 --> 00:39:54,970 használjon egy idézőjelbe húrok csak azért, mert ez egy stilisztikai dolog. 808 00:39:54,970 --> 00:39:58,330 De mi az a plusz operátor itt, amit még nem látott? 809 00:39:58,330 --> 00:39:59,836 >> KÖZÖNSÉG: összefűzése. 810 00:39:59,836 --> 00:40:00,960 DAVID MALAN: összefűzése. 811 00:40:00,960 --> 00:40:02,450 Tehát C nem is kell ezt. 812 00:40:02,450 --> 00:40:04,820 A PHP a pont operátor, ami ez. 813 00:40:04,820 --> 00:40:09,710 JavaScript az a plusz üzemeltető ami megtévesztésig olyan, mint a Java. 814 00:40:09,710 --> 00:40:11,440 Most mi folyik itt? 815 00:40:11,440 --> 00:40:14,260 >> Szóval, itt van, ahol az alap megértése, hogy a kép 816 00:40:14,260 --> 00:40:17,010 dobtunk egy pár nappal ezelőtt kerül szóba. 817 00:40:17,010 --> 00:40:19,620 Emlékszel, amikor volt egy egyszerű változata egy HTML page-- 818 00:40:19,620 --> 00:40:20,830 ez csak azt mondta, hello world. 819 00:40:20,830 --> 00:40:22,770 Aztán felhívta a fa jobbra, ami 820 00:40:22,770 --> 00:40:27,320 volt egy csomó téglalapok és vezetékek összekötő őket, mint a családfa. 821 00:40:27,320 --> 00:40:30,820 Szóval ez az úgynevezett DOM vagy Document Object Model. 822 00:40:30,820 --> 00:40:36,759 És kiderül, hogy te férsz hozzá téglalapok azon a fán a szintaxis 823 00:40:36,759 --> 00:40:37,550 mint a következő. 824 00:40:37,550 --> 00:40:41,370 Azt mondják, a szó szoros értelmében a dokumentum, amely a speciális globális változó egy JavaScript 825 00:40:41,370 --> 00:40:45,890 program, amely a funkció társított hogy érheti 826 00:40:45,890 --> 00:40:50,280 hasonló a struct, de egyszerűen mondjuk pont, majd a függvény nevét, 827 00:40:50,280 --> 00:40:52,390 kap elem ID. 828 00:40:52,390 --> 00:40:55,460 >> Az elem akarok az látszólag idézet idézet vége nevét. 829 00:40:55,460 --> 00:40:57,150 És akkor azt akarom, hogy az értékét. 830 00:40:57,150 --> 00:40:58,330 Most már egyre előtt magunkat. 831 00:40:58,330 --> 00:41:00,038 Nem is vagyok biztos benne, mi ez az egész. 832 00:41:00,038 --> 00:41:03,000 Nézzük gyorsan előre, hogy a HTML-t A lap, amely szuper egyszerű. 833 00:41:03,000 --> 00:41:05,370 >> Figyeljük meg, hogy én már definiált a formában le itt. 834 00:41:05,370 --> 00:41:07,940 Figyeljük adtam, hogy egy egyedi ID, bár most már nem használják 835 00:41:07,940 --> 00:41:08,870 ez az attribútum előtt. 836 00:41:08,870 --> 00:41:11,300 De ez van a HTML-ben. 837 00:41:11,300 --> 00:41:15,570 Akkor egyedileg azonosítani néhány darab HTML azonosítójával, mint ez. 838 00:41:15,570 --> 00:41:19,880 >> Közlemény most this-- kiderül HTML támogatja, hogy egy mosodai listát 839 00:41:19,880 --> 00:41:22,490 Egy pillanat ezelőtt, a teljes csomó esemény rakodók. 840 00:41:22,490 --> 00:41:25,060 És ez eseménykezelő mond benyújtására. 841 00:41:25,060 --> 00:41:28,730 A felhasználó benyújtása e forma, hívja az alábbi kódot. 842 00:41:28,730 --> 00:41:31,360 És a kód, ami megy hogy hívják, vagy végre 843 00:41:31,360 --> 00:41:35,260 pontosan ez, a görög funkciót, majd visszatérés hamis. 844 00:41:35,260 --> 00:41:37,360 Minden más kellene elég ismerős. 845 00:41:37,360 --> 00:41:42,050 >> Itt van egy bemeneti típusú szöveg, melynek Azonosító, ebben az esetben lesz nevét. 846 00:41:42,050 --> 00:41:45,430 Nincs tényleges neve tulajdonság ez time-- és a küldés gomb. 847 00:41:45,430 --> 00:41:48,330 Így a kapott oldal úgy néz ki, mint ez. 848 00:41:48,330 --> 00:41:52,890 És a kapott viselkedés, Majd meglátod, hogy úgy néz ki, mint ez. 849 00:41:52,890 --> 00:41:56,940 A lap azt a helyi gazdák mondja, helló David, alig esztétikus 850 00:41:56,940 --> 00:41:58,340 módja annak, hogy üdvözölje a felhasználónak. 851 00:41:58,340 --> 00:41:59,950 De mi történt valójában? 852 00:41:59,950 --> 00:42:01,360 >> Nos, úgy, hogy mi ez. 853 00:42:01,360 --> 00:42:02,310 Ez egy szöveges mező. 854 00:42:02,310 --> 00:42:04,635 És szerint HTML ide, én adtam meg 855 00:42:04,635 --> 00:42:07,350 egy egyedi azonosítót az úgynevezett idézet idézet vége nevét. 856 00:42:07,350 --> 00:42:09,770 Közben mondtam, ha a felhasználó elküldi az űrlapot 857 00:42:09,770 --> 00:42:13,820 által az Enter vagy a Küldés gombra kattintva gomb, hívja a nevezett funkció Greet 858 00:42:13,820 --> 00:42:15,410 majd vissza hamis. 859 00:42:15,410 --> 00:42:16,870 Vizsgáljuk meg ezeket a fordított. 860 00:42:16,870 --> 00:42:20,590 Figyeld meg, amikor kattintson a Küldés gombra, a Az oldal URL címe nem változik. 861 00:42:20,590 --> 00:42:22,420 A böngésző ikonja nem kezd forogni. 862 00:42:22,420 --> 00:42:27,050 Nem megy sehova, és ez Szó szerint, mert azt mondtam vissza False. 863 00:42:27,050 --> 00:42:31,534 Return false rövidzárlat vagy leáll alapértelmezett viselkedése formában. 864 00:42:31,534 --> 00:42:33,700 Annak érdekében, hogy akkor hagy minket ez egy utolsó kérdés. 865 00:42:33,700 --> 00:42:34,764 Mit Greet csinálni? 866 00:42:34,764 --> 00:42:36,680 Nos, úgy tűnik Köszöntsétek meghív egy függvényt nevű 867 00:42:36,680 --> 00:42:39,250 Alert, halad egy hosszú érvet, hogy ez 868 00:42:39,250 --> 00:42:43,950 eredménye egybetoldjuk együtt egy csomó részstring helló vessző tér, 869 00:42:43,950 --> 00:42:45,810 akkor bármi ad vissza. 870 00:42:45,810 --> 00:42:51,490 Így a dokumentum, mint a globális változót, hogy a gyökere az, hogy a fa, 871 00:42:51,490 --> 00:42:55,560 hívás egy speciális funkció, egyébként ma már ismert, mint módszert. 872 00:42:55,560 --> 00:42:57,650 A függvény, ami belsejében egy változó 873 00:42:57,650 --> 00:42:59,640 nevezett eljárás helyett a függvény. 874 00:42:59,640 --> 00:43:01,570 >> Szóval elem ID. 875 00:43:01,570 --> 00:43:03,940 Mi ugye elem szeretnénk, hogy annak azonosító? 876 00:43:03,940 --> 00:43:06,970 Idézet idézőjel bezárva neve és majd külön értékelik. 877 00:43:06,970 --> 00:43:12,000 Tehát más szavakkal, hogy a kód egyszerűen úgy véli, a szöveges mező, melynek azonosító neve 878 00:43:12,000 --> 00:43:13,380 majd megkapja az értékét. 879 00:43:13,380 --> 00:43:16,460 Tehát, ha én változtatni ezt és mondjuk Davin Dávid helyett, 880 00:43:16,460 --> 00:43:20,670 és kattintson a Küldés gombra, most mi Van egy köszöntést Davin. 881 00:43:20,670 --> 00:43:22,890 >> Rendben, szóval minden szép és jó. 882 00:43:22,890 --> 00:43:25,480 De lássuk, ha tudjuk, hogy a ez egy kicsit tisztább, mivel csak 883 00:43:25,480 --> 00:43:28,190 kódot írni, mint ez a általában lesz elítélik. 884 00:43:28,190 --> 00:43:30,060 Ez fog nézni rémisztőbb. 885 00:43:30,060 --> 00:43:32,330 De mi az első különbséggel, hogy itt megjegyezni, 886 00:43:32,330 --> 00:43:35,970 ez a verzió mellett név váltáskor DOM egy? 887 00:43:35,970 --> 00:43:41,110 Mi szerkezetileg máshogy néz ki erről a másikkal szemben? 888 00:43:41,110 --> 00:43:41,932 Igen? 889 00:43:41,932 --> 00:43:43,890 KÖZÖNSÉG: Az űrlapot tetején a script most? 890 00:43:43,890 --> 00:43:46,570 DAVID MALAN: Igen, a forma tetejére A szkript valamilyen furcsa oknál fogva. 891 00:43:46,570 --> 00:43:48,736 Szóval ez az első dolog, hogy ugrik ki engem is. 892 00:43:48,736 --> 00:43:50,990 És szerencsére legalább ez a rész megegyezik. 893 00:43:50,990 --> 00:43:53,470 Tehát az egyetlen dolog, ami úgy tűnik, hogy más ez. 894 00:43:53,470 --> 00:43:55,296 >> Szóval, itt van, ami szép körülbelül 2 JavaScript. 895 00:43:55,296 --> 00:43:57,420 És ez teszi nehéz megérteni első pillantásra, 896 00:43:57,420 --> 00:44:00,670 különösen az utolsó projekteket, amennyiben nézel példakód az interneten, 897 00:44:00,670 --> 00:44:04,200 de ez csapódik le, hogy bizonyos alapvető szintaktikai funkciókat. 898 00:44:04,200 --> 00:44:06,230 Itt ismét az, hogy a globális változót dokumentum. 899 00:44:06,230 --> 00:44:09,540 Itt megint az, hogy a módszer vagy funkció azt mondja, hogy az elem ID. 900 00:44:09,540 --> 00:44:11,570 Ezúttal szeretnék kap az ID nevű demo. 901 00:44:11,570 --> 00:44:12,490 Hol van ez? 902 00:44:12,490 --> 00:44:15,400 Ez nyilvánvalóan jobb itt, a forma is. 903 00:44:15,400 --> 00:44:20,010 >> És most észre, hogy ha látszólag vissza a csomópont a fa 904 00:44:20,010 --> 00:44:22,940 képviseli formájában önmagában nem egy szöveges mező, 905 00:44:22,940 --> 00:44:26,970 kiderül, hogy a forma, hogy csomópont vagy téglalap a fáról, 906 00:44:26,970 --> 00:44:30,450 van, mi fogjuk hívni a tulajdonság, nagyon, nagyon, nagyon hasonló 907 00:44:30,450 --> 00:44:35,390 lélekben egy struct C. Ez csak egy adat tag belsejében a téglalap. 908 00:44:35,390 --> 00:44:38,300 >> Szóval megvan a nyomtatvány itt, és én fűződő, 909 00:44:38,300 --> 00:44:44,650 vagy én vagyok rendel, annak a Submit felvezető vagy inkább On Submit ingatlan 910 00:44:44,650 --> 00:44:45,740 A következő függvény. 911 00:44:45,740 --> 00:44:49,000 És ez, messze a legőrültebb dolog eddig szintaktikai. 912 00:44:49,000 --> 00:44:53,610 Kiderül, a JavaScript és a PHP, és őszintén szólva azt illeti C, 913 00:44:53,610 --> 00:44:58,990 még ha ezt nem tesszük meg, akkor add névtelen, névtelen, vagy AKA lambda 914 00:44:58,990 --> 00:45:03,000 funkciók, amelyek nem rendelkeznek egy nevet de nevezhetjük mégis. 915 00:45:03,000 --> 00:45:07,050 >> Szóval, mit csinálok itt vagyok kijelölése A Küldés e tulajdonság, amely 916 00:45:07,050 --> 00:45:14,330 belsejében van ez a csomópont az én DOM fa, a függvény, függvény pointer ha úgy tetszik. 917 00:45:14,330 --> 00:45:16,310 Ez a funkció nem nevet, de ez nem 918 00:45:16,310 --> 00:45:19,110 számít, mert majd meglátjuk egy pillanat alatt, hogy hogyan hívják. 919 00:45:19,110 --> 00:45:21,780 Ha ez a funkció neve, ez kód kerül végrehajtásra, akkor 920 00:45:21,780 --> 00:45:24,210 hamis visszakerül, mint azelőtt. 921 00:45:24,210 --> 00:45:25,800 >> De figyeld meg, mit tettem. 922 00:45:25,800 --> 00:45:27,830 Ezen a ponton a történet, van egy forma. 923 00:45:27,830 --> 00:45:30,190 Van rajta egy egyedi azonosítóval, úgynevezett demo. 924 00:45:30,190 --> 00:45:33,740 Itt lent, van egy script tag hogy végrehajtja a következő kódot. 925 00:45:33,740 --> 00:45:37,720 Tulajdonít, hogy a csomópont a fa ez On elküldése 926 00:45:37,720 --> 00:45:40,260 Ingatlan itt ez a funkció. 927 00:45:40,260 --> 00:45:44,310 És csak a természet, hogyan böngészők működik, amikor én most kattintson a Küldés gombra vagy nyomja meg az Enter, 928 00:45:44,310 --> 00:45:45,889 hogy funkció fog, hogy hívják. 929 00:45:45,889 --> 00:45:48,680 Nem kell a nevét, mert aki a fene érdekel, mi a neve. 930 00:45:48,680 --> 00:45:52,540 Az egyetlen alkalom, hogy valaha is, hogy hívott mikor küldje el az űrlapot. 931 00:45:52,540 --> 00:45:55,130 Nincs szükség rám, A humán fejlesztő, 932 00:45:55,130 --> 00:45:57,330 hogy valóban hívják máshol. 933 00:45:57,330 --> 00:46:00,720 >> Most csak egy teaser, mintha azt nem bánja hajlítás elég, 934 00:46:00,720 --> 00:46:03,330 tudjuk is, hogy ez meg még a rejtélyes 935 00:46:03,330 --> 00:46:05,850 Egy szuper népszerű nevű könyvtárat jQuery. 936 00:46:05,850 --> 00:46:08,760 Valójában jQuery és JavaScript gyakran keveri. 937 00:46:08,760 --> 00:46:12,790 És mit fogunk tenni szerdán a kezdet ezt a nyelvet, és ezeket a könyvtárakat 938 00:46:12,790 --> 00:46:16,030 építeni egyre aszinkron és dinamikus alkalmazásokhoz 939 00:46:16,030 --> 00:46:18,950 mint szerzés térkép alkalmazások, alkalmazások 940 00:46:18,950 --> 00:46:22,360 hogy frissítse a weboldal valós idő, ugyanúgy, mint a Facebook vagy a Gchat 941 00:46:22,360 --> 00:46:27,130 igen, és nem szorítkozunk eltalálásáról küldése egy GET vagy csak postai úton 942 00:46:27,130 --> 00:46:27,630 egyedül. 943 00:46:27,630 --> 00:46:29,055 Szóval találkozunk szerdán. 944 00:46:29,055 --> 00:46:31,805 945 00:46:31,805 --> 00:46:35,550 >> [Zenelejátszó] 946 00:46:35,550 --> 00:48:09,728