1 00:00:00,000 --> 00:00:01,940 >> [Prehrávanie hudby] 2 00:00:01,940 --> 00:00:11,130 3 00:00:11,130 --> 00:00:14,620 >> DAVID Malan: Toto je CS 50, a to je začiatok týždňa deväť. 4 00:00:14,620 --> 00:00:18,240 A to, čo sme si mysleli, že to dnes nie je zavrieť len kapitola minulého týždňa 5 00:00:18,240 --> 00:00:22,670 materiál, kde sme sa zamerali na serveri strana webové programovanie s PHP a SQL, 6 00:00:22,670 --> 00:00:23,549 niektoré databázy veci. 7 00:00:23,549 --> 00:00:25,590 Porozprávame si o trochu bezpečnosť dnes a potom 8 00:00:25,590 --> 00:00:29,590 Prechod na strane klienta programovanie jazyk známy ako JavaScript. 9 00:00:29,590 --> 00:00:31,330 Ale najprv, niektorí vykúpenie. 10 00:00:31,330 --> 00:00:35,030 >> Možno si spomeniete, že na Streda, som sa vydal 11 00:00:35,030 --> 00:00:37,550 písať webové stránky, ktoré sa na vstupe užívateľa 12 00:00:37,550 --> 00:00:41,120 pomocou HTML formulárov, ktoré potom uloží že mená užívateľského vstupného, ​​telefón 13 00:00:41,120 --> 00:00:43,124 čísla a mobil nosiče v databáze. 14 00:00:43,124 --> 00:00:45,540 A potom som mal trochu príkazu linka skript napísaný v PHP 15 00:00:45,540 --> 00:00:47,956 ktorý mal opakovať nad riadky v databáze 16 00:00:47,956 --> 00:00:49,400 a posielať textové správy. 17 00:00:49,400 --> 00:00:53,870 Napriek niekoľkým, niekoľkých pokusoch sme nedostal tú prácu do konca. 18 00:00:53,870 --> 00:00:57,820 >> Tak som strávil celý tento týždeň pracovať Na tento kód sa k nám dostať cez bod 19 00:00:57,820 --> 00:01:01,220 , Kde sme skončili, pričom všetky Dostal som na konci v stredu 20 00:01:01,220 --> 00:01:05,500 bol tento text správy od Margo, ako som sa snažil, 21 00:01:05,500 --> 00:01:09,940 nasleduje textové správy z iného spolužiak, Máte tento Davida. 22 00:01:09,940 --> 00:01:14,030 Nasledoval tento jeden, úžasne povzbudzujúce. 23 00:01:14,030 --> 00:01:15,840 Držal ďalej, veľmi povzbudivé. 24 00:01:15,840 --> 00:01:20,960 Skoro som ho, kým then-- a to je poznámka sme skončili v stredu. 25 00:01:20,960 --> 00:01:25,850 A potom vlastne možno moja obľúbená, O chvíľu neskôr, to prišlo v. 26 00:01:25,850 --> 00:01:27,000 Sakra live stream. 27 00:01:27,000 --> 00:01:31,080 >> Takže dnes sme sa to napraviť s rýchlym pozrieť sa na to, čo som urobil od tej doby. 28 00:01:31,080 --> 00:01:35,440 Takže všetko, čo tohto kódu je k dispozícii on-line z minulého týždňa, týždeň osem, 29 00:01:35,440 --> 00:01:36,300 zdrojový kód. 30 00:01:36,300 --> 00:01:39,425 A uvidíte, že som prešiel, a ja som vlastne upratal veci trochu. 31 00:01:39,425 --> 00:01:42,080 Predstavil som pár iných vlastnosti SQL databázy. 32 00:01:42,080 --> 00:01:45,300 Napríklad, skôr než len aby dopravca var char 33 00:01:45,300 --> 00:01:47,310 ako ja, že som to urobil za behu minulý týždeň. 34 00:01:47,310 --> 00:01:49,820 Namiesto toho som definoval to ako čo sa nazýva enum. 35 00:01:49,820 --> 00:01:53,310 >> A niektorí z vás možno videli toto ako sme skúmali C. Enum je vlastne 36 00:01:53,310 --> 00:01:56,820 rysom C, kde si môžete vymenovať veľa konštánt 37 00:01:56,820 --> 00:01:59,640 a priradiť ich automatické hodnoty, ako jeden, dva, tri, štyri 38 00:01:59,640 --> 00:02:01,330 aby bolo nutné čísel pevný kód. 39 00:02:01,330 --> 00:02:04,780 Takže SQL podporuje rovnaké, pričom v prípade Máte databázové polia, že len vy 40 00:02:04,780 --> 00:02:09,389 chcú, aby sa na jednej z konečných hodnoty, môžete doslova špecifikovať 41 00:02:09,389 --> 00:02:13,120 ako som urobil tam pre štyri populárne mobil dopravcovia z USA. 42 00:02:13,120 --> 00:02:13,819 >> Tak som to urobil. 43 00:02:13,819 --> 00:02:16,610 A ja som urobil viacero zmien, ako no, z ktorých najvýznamnejšie 44 00:02:16,610 --> 00:02:20,090 bolo, aby sa e-mail v práci, pretože odvolanie, že tento program sa spoliehal na ktoré 45 00:02:20,090 --> 00:02:23,470 všeobecne nazývaný email SMS brána, ktorá je práve 46 00:02:23,470 --> 00:02:27,670 ozdobný spôsob, ako hovoriť, že Verizon, a AT & T, a ďalší ľudia podporovať server, 47 00:02:27,670 --> 00:02:30,740 pričom v prípade, že dostane e-mail, že ho prevedie na SMS 48 00:02:30,740 --> 00:02:33,290 a rozosiela text správu do iného telefónu. 49 00:02:33,290 --> 00:02:37,010 Takže či som to urobil správne, Tu je nová a lepšia forma 50 00:02:37,010 --> 00:02:39,259 ktorá sa bude hovoriť Nový a vylepšený kód, ktorý 51 00:02:39,259 --> 00:02:40,300 môžete hrať s on-line. 52 00:02:40,300 --> 00:02:44,140 A dúfajme, aby môj telefón pípnutie za chvíľu. 53 00:02:44,140 --> 00:02:47,240 >> Takže najprv, budem písať v mojom mene. 54 00:02:47,240 --> 00:02:51,400 Za druhé, ja nejdem aby to tentoraz. 55 00:02:51,400 --> 00:02:53,920 Chystám sa do Skontrolujte prvok. 56 00:02:53,920 --> 00:02:56,710 A to je len maličkosť, tak sa mi nepáči 57 00:02:56,710 --> 00:02:59,250 vytvoriť hodiny postprodukcii pracovať ako som to urobil minule. 58 00:02:59,250 --> 00:03:02,300 Tam je teraz moje telefónne číslo. 59 00:03:02,300 --> 00:03:03,560 >> Budem vybrať Verizon. 60 00:03:03,560 --> 00:03:10,260 A tu, poďme zapnúť tento mikrofón tu, a ich cieľom je to na môj telefón tu. 61 00:03:10,260 --> 00:03:13,130 Idem na tlačidlo Registrovať, ktoré by snáď 62 00:03:13,130 --> 00:03:14,530 vložiť do databázy. 63 00:03:14,530 --> 00:03:16,780 Teraz budem chodiť do program príkazového riadku, ktorý 64 00:03:16,780 --> 00:03:20,825 odvolanie bolo nazývané bodka lomítko text, a cez prsty. 65 00:03:20,825 --> 00:03:24,092 66 00:03:24,092 --> 00:03:26,527 Ideme na to. 67 00:03:26,527 --> 00:03:27,501 >> [PHONE Dings] 68 00:03:27,501 --> 00:03:28,962 >> [APPLAUSE] 69 00:03:28,962 --> 00:03:31,815 70 00:03:31,815 --> 00:03:34,940 DAVID Malan: Takže oveľa zábavnejšie, než tohle-- je to zábava, samozrejme, keď som si do nej. 71 00:03:34,940 --> 00:03:38,004 Ale je to väčšia zábava, pomyslel som si, keď sme vytvoril jeden z tých filmových momentov 72 00:03:38,004 --> 00:03:40,420 kde ako niečo, čo v skutočnosti zlé sa stalo vo svete, 73 00:03:40,420 --> 00:03:42,860 a rovnako ako všetky ľudové NSA mobily začať pípať 74 00:03:42,860 --> 00:03:44,860 s textovými správami upozornenie o tejto skutočnosti. 75 00:03:44,860 --> 00:03:47,026 Tak som si myslel, že by som skúsiť znova to isté tu, 76 00:03:47,026 --> 00:03:49,610 kedy nepoužívate databázu, Som namiesto toho vopred 77 00:03:49,610 --> 00:03:51,490 napísal program, ktorý vyzerá takto. 78 00:03:51,490 --> 00:03:53,660 >> To je index.php-- a dal som tento kód on-line 79 00:03:53,660 --> 00:03:56,710 ako well-- to zrejme len omietky form.php, 80 00:03:56,710 --> 00:04:00,990 za použitia MVC štýlu paradigma, ktoré sme hovoriť podrobnejšie v problémovej sady 81 00:04:00,990 --> 00:04:01,650 sedem. 82 00:04:01,650 --> 00:04:02,910 Táto forma je pomerne jednoduchý. 83 00:04:02,910 --> 00:04:06,634 Bude to predložiť súbor s názvom here.php poštou. 84 00:04:06,634 --> 00:04:09,300 A to vraj sa opýtať na meno a telefónne číslo, 85 00:04:09,300 --> 00:04:11,400 a potom pomocou takzvaných Vyberte menu, je to 86 00:04:11,400 --> 00:04:14,250 dám vám aspoň štyri populárne mobil dopravcovia z USA, 87 00:04:14,250 --> 00:04:17,470 a potom vám umožní efektívne dochádzku kliknutím tu. 88 00:04:17,470 --> 00:04:20,471 >> A tu, medzitým sa chystá požičať kódu od minule. 89 00:04:20,471 --> 00:04:22,553 A ak si len zbierať to, uvidíte, že tam je 90 00:04:22,553 --> 00:04:23,900 celá partia kontrolu chýb. 91 00:04:23,900 --> 00:04:26,640 Ale krása na konci, ktorý je nie sme dnes zápis do databázy. 92 00:04:26,640 --> 00:04:29,130 Sme držať to jednoduchý a Len dúfajme, že rozosielanie 93 00:04:29,130 --> 00:04:32,190 textové správy pomocou funkcie I napísal počas posledných niekoľkých dní volanie 94 00:04:32,190 --> 00:04:36,270 Text, ktorý je vo funkciách. php, čo je opäť k dispozícii on-line. 95 00:04:36,270 --> 00:04:38,210 >> Takže ak by ste chceli podieľať sa na toto. 96 00:04:38,210 --> 00:04:40,190 Nebudeme sa ukladanie nič. 97 00:04:40,190 --> 00:04:43,809 Prejdite na túto adresu URL tu v reálnom čase. 98 00:04:43,809 --> 00:04:46,850 Nekopírujte to ešte nie, ale poďme uvidíme, či môže mať jeden z týchto filmov 99 00:04:46,850 --> 00:04:49,830 momenty, kde každý má mobil začne pípať, dúfajme, že len 100 00:04:49,830 --> 00:04:53,580 raz tento rok na rozdiel od v roku 2011 kde to šlo strašne nakrivo. 101 00:04:53,580 --> 00:04:58,910 A keď idete na túto adresu, mali by ste vidieť super jednoduchý formulár 102 00:04:58,910 --> 00:05:03,884 že ak máte meno, mobilný telefón číslo a mobil dopravcu, ktorý 103 00:05:03,884 --> 00:05:06,175 zodpovedá zoznamu tam ísť dopredu a vyplňte formulár. 104 00:05:06,175 --> 00:05:07,880 Ale nie hit predložiť ešte nie. 105 00:05:07,880 --> 00:05:10,850 >> Formulár to bude vyzerať takto. 106 00:05:10,850 --> 00:05:13,660 Nehanbite sa a zadajte Vaše meno, telefónne číslo. 107 00:05:13,660 --> 00:05:17,670 OOP, niekto sa deje na špici. 108 00:05:17,670 --> 00:05:18,170 To je v poriadku. 109 00:05:18,170 --> 00:05:19,340 OK, každý to vyplníte formulár. 110 00:05:19,340 --> 00:05:21,400 To by malo fungovať na telefón, taky, či chcete. 111 00:05:21,400 --> 00:05:23,695 V poriadku, pripraviť, pozor, teraz. 112 00:05:23,695 --> 00:05:24,195 Hit TU. 113 00:05:24,195 --> 00:05:27,275 114 00:05:27,275 --> 00:05:27,775 Čo je? 115 00:05:27,775 --> 00:05:31,140 116 00:05:31,140 --> 00:05:31,640 Nie. 117 00:05:31,640 --> 00:05:34,410 118 00:05:34,410 --> 00:05:40,250 Prisahám Bohu, som testoval to viackrát dnes. 119 00:05:40,250 --> 00:05:41,720 Máš to? 120 00:05:41,720 --> 00:05:43,145 >> [Vradiť hlasy] 121 00:05:43,145 --> 00:05:46,470 122 00:05:46,470 --> 00:05:49,560 >> DAVID Malan: OK, chyba používateľa možná. 123 00:05:49,560 --> 00:05:50,550 To sú dva. 124 00:05:50,550 --> 00:05:53,300 Že pracoval pre dvoch z niekoľko sto, tri, štyri. 125 00:05:53,300 --> 00:05:55,940 OK, to je dobré. 126 00:05:55,940 --> 00:05:58,520 Štyri z piatich na správnosť a čo. 127 00:05:58,520 --> 00:05:59,810 >> Takže to, čo sa stalo? 128 00:05:59,810 --> 00:06:02,727 Takže všetkého, bez toho, aby videl svoj obrazovky, prečo by to byť chybných? 129 00:06:02,727 --> 00:06:05,518 Je pravdepodobné, že sme boli len snaží, aby sa príliš veľa pripojení 130 00:06:05,518 --> 00:06:08,110 k poštovému serveru Harvarde to všetko za jednou z rovnakej IP adresy. 131 00:06:08,110 --> 00:06:10,740 Ja som len hádať, pretože som nemal luxus testovanie 132 00:06:10,740 --> 00:06:13,220 tento kód s niektorými 300 ľudí vo vopred 133 00:06:13,220 --> 00:06:16,040 ale teraz si uvedomil, že že aspoň mal 134 00:06:16,040 --> 00:06:18,250 sa dostali na prácu tejto doby. 135 00:06:18,250 --> 00:06:22,880 >> Dobre, tak prečo je to všetko viac relevantné k, čo sa deje? 136 00:06:22,880 --> 00:06:24,900 Tak prvý, rýchly pár oznámenia. 137 00:06:24,900 --> 00:06:29,350 Takže jeden, ak chcete pripojiť Chang, a Nick, a ďalšie na obed v piatok, 138 00:06:29,350 --> 00:06:32,400 robiť RSVP na tam obvyklú URL. 139 00:06:32,400 --> 00:06:35,650 Ak uvažujete o sústredení alebo robí sekundárne v SK, 140 00:06:35,650 --> 00:06:38,941 či už ste vo druháku, alebo nováčik, alebo dokonca junior alebo senior v tomto bode 141 00:06:38,941 --> 00:06:42,490 a môže ešte stlačiť v kurzoch, Uvedomujem si, že v inžinierske školy 142 00:06:42,490 --> 00:06:45,620 zhromažďuje zadarmo Ben a Jerry zmrzlina a poradenstvo 143 00:06:45,620 --> 00:06:48,910 túto stredu krátko po trieda o 16:00 v budove SK 144 00:06:48,910 --> 00:06:49,771 na Maxwell Dworkin. 145 00:06:49,771 --> 00:06:51,520 Ak je to príliš rýchlo na obrazovke, stačí ísť 146 00:06:51,520 --> 00:06:55,260 k cs50.harvard.edu pre odkaz na udalosť na Facebooku 147 00:06:55,260 --> 00:06:57,140 kde môžete vidieť viac detailov. 148 00:06:57,140 --> 00:07:01,390 >> Medzitým, myslel som si, že opraviť ešte jedna vec, ktorú som podelal v stredu. 149 00:07:01,390 --> 00:07:04,400 Ukázalo sa, že Marka ID na Facebooku nebol tri. 150 00:07:04,400 --> 00:07:05,230 Bolo to štyri. 151 00:07:05,230 --> 00:07:08,330 Ukázalo sa, že mal viac skúške účty, než som si spomenúť. 152 00:07:08,330 --> 00:07:12,400 Ale čo to cítil ako príležitosť urobiť, je vytiahnuť URL, ako je tento. 153 00:07:12,400 --> 00:07:16,680 >> Tak to dopadá, že Facebook má API, Application Programming Interface, 154 00:07:16,680 --> 00:07:20,070 čo je mechanizmus, ktorým ťa môže požadovať dáta programovo 155 00:07:20,070 --> 00:07:24,480 na Facebooku a vrátiť stroj čitateľné informácie, nie webové stránky 156 00:07:24,480 --> 00:07:28,690 ale len surový text, niečo volal JavaScript Object Notation. 157 00:07:28,690 --> 00:07:32,150 A v skutočnosti, keď som navštíviť tento URL, a priblížiť tým, že v predvolenom nastavení, 158 00:07:32,150 --> 00:07:34,960 To je Mark je verejne dostupné informácie. 159 00:07:34,960 --> 00:07:37,430 >> A zaujímavý detail Tu je len, že jeho ID 160 00:07:37,430 --> 00:07:40,670 je naozaj, číslo štyri, ktoré som Akonáhle som to urobil realizovaný. 161 00:07:40,670 --> 00:07:44,260 Môžete to urobiť sami, ak viete, váš Facebook užívateľské meno, ak máte jeden. 162 00:07:44,260 --> 00:07:45,440 Proste to napíšte do vrcholu. 163 00:07:45,440 --> 00:07:46,640 A nič z toho je súkromný. 164 00:07:46,640 --> 00:07:48,670 Robím len to, aj inkognito. 165 00:07:48,670 --> 00:07:49,900 Takže som ani prihlásený. 166 00:07:49,900 --> 00:07:54,440 A vidíte, že ja zrejme bol používateľ číslo 6454 167 00:07:54,440 --> 00:07:56,480 na Facebooku, ktorý nie je Škoda, v týchto dňoch. 168 00:07:56,480 --> 00:07:59,900 Tak či onak, budete tiež vidieť ďalšie informácie tu. 169 00:07:59,900 --> 00:08:02,150 >> A užitočný aspekt z toho, že vás 170 00:08:02,150 --> 00:08:06,890 mohol napísať svoj vlastný softvér, ktorý nejako integruje dáta, ako je tento 171 00:08:06,890 --> 00:08:08,170 do vlastnej aplikácie. 172 00:08:08,170 --> 00:08:10,650 Môžete posilniť užívateľom prihláste na svoj web, 173 00:08:10,650 --> 00:08:14,190 nepoužívajú vlastné vlastné užívateľské meno a heslo, ale možno ich Facebook login 174 00:08:14,190 --> 00:08:16,170 a získať informácie aj o svojich priateľov, 175 00:08:16,170 --> 00:08:18,740 ak sa schváli také, alebo podobné. 176 00:08:18,740 --> 00:08:21,430 Tak na vedomie, že CS50 taky, má niektoré zo svojich vlastných API, 177 00:08:21,430 --> 00:08:24,620 jeden pre katalóg predmetov dát, niektoré pre objatí menu v jedálni 178 00:08:24,620 --> 00:08:26,730 haly, všetky budovy a miesta 179 00:08:26,730 --> 00:08:30,930 na akademickej pôde máme API pre i ktoré môžete zadať otázku podobne a získať 180 00:08:30,930 --> 00:08:35,520 späť textové dáta, ktoré je možné integrovať do PHP alebo JavaScript, alebo dokonca, 181 00:08:35,520 --> 00:08:38,320 aj keď menej často, C na základe záverečného projektu. 182 00:08:38,320 --> 00:08:41,190 >> Naozaj dopredu na finále Projekt je niekoľko míľnikov. 183 00:08:41,190 --> 00:08:42,980 Máš e-mail od nás druhý deň. 184 00:08:42,980 --> 00:08:45,761 Uvedomte si, že návrh je splatná tento rok v pondelok. 185 00:08:45,761 --> 00:08:49,010 Nie je to nutne záväzné, ale Je potreba prijímať svoje pedagogické chlapi 186 00:08:49,010 --> 00:08:51,260 schválenie pred tým, než akékoľvek potom zmeny. 187 00:08:51,260 --> 00:08:54,280 A potom sa pred nami sú rada ďalších míľnikov. 188 00:08:54,280 --> 00:08:56,542 >> Takže Ťa podpichovať, taky, s niektorými možnosťami, 189 00:08:56,542 --> 00:08:58,250 máme veľa Tieto odtieň žiarovky. 190 00:08:58,250 --> 00:09:01,190 A niektorí z vás majú teraz niektoré z nich vo svojom kolejním izbe rovnako. 191 00:09:01,190 --> 00:09:02,920 A oni majú API. 192 00:09:02,920 --> 00:09:07,300 Tak spomínam na tie binárne žiarovky týždne Pred, že Dan Bradley a Ansel 193 00:09:07,300 --> 00:09:08,780 Duff vytvoril pre nás. 194 00:09:08,780 --> 00:09:12,560 Oni používali softvérové ​​rozhranie táto žiarovka, ktorá v súčasnej dobe 195 00:09:12,560 --> 00:09:15,232 je zapojený do elektriny a potom cez bezdrôtové 196 00:09:15,232 --> 00:09:17,690 je spojená s malou vec volal most sem, 197 00:09:17,690 --> 00:09:21,280 ako malý router vlastnícke práva, do tohto konkrétneho zariadenia. 198 00:09:21,280 --> 00:09:26,540 >> Ale ukazuje sa, či viem, ako sa odosielať správy HTTP, ako my všetci teraz robiť, 199 00:09:26,540 --> 00:09:31,670 Môžem odoslať správu ako je táto táto žiarovka ju zapnúť alebo vypnúť 200 00:09:31,670 --> 00:09:34,000 alebo si ľubovoľný počet ďalšie operácie na ňom. 201 00:09:34,000 --> 00:09:36,110 Všimnite si, že to nechápem, že to žiadny príspevok. 202 00:09:36,110 --> 00:09:37,760 Je tu ešte jeden s názvom put. 203 00:09:37,760 --> 00:09:39,630 Je to vlastne niekoľko ďalších takých slovies. 204 00:09:39,630 --> 00:09:42,920 Povšimnime si ale, že je to cesta tam, lomka API, lomítko nové vývojárov, 205 00:09:42,920 --> 00:09:44,990 lomka svetlo, lomítko jeden, lomítko stave. 206 00:09:44,990 --> 00:09:49,060 >> To je zrejme len cesta, ktorú spoločnosť Philips, 207 00:09:49,060 --> 00:09:51,640 Rozhodli ste sa trafiť s HTTP požiadavky 208 00:09:51,640 --> 00:09:55,010 Ak chcete zmeniť stav žiarovky pomocou protokolu HTTP 1.1. 209 00:09:55,010 --> 00:09:56,380 Všimnite si, prázdny riadok. 210 00:09:56,380 --> 00:10:00,170 A potom konečne, čo vyzerá ako druh poľa nejakého druhu, 211 00:10:00,170 --> 00:10:04,730 To opäť sa bude nazývaný JavaScript Object Notation, alebo Jason. 212 00:10:04,730 --> 00:10:08,000 A to, čo vidíte, je to, že existujú tri páry kľúč hodnota. 213 00:10:08,000 --> 00:10:09,115 >> Jedným z hlavných je vyzval. 214 00:10:09,115 --> 00:10:10,990 A jeho hodnota zrejme bude pravda. 215 00:10:10,990 --> 00:10:13,612 Jas je 128, čo je nejaký int. 216 00:10:13,612 --> 00:10:15,820 A potom prechodový čas je nula, čo je zrejme 217 00:10:15,820 --> 00:10:17,970 ako dlho to bude vziať, aby túto vec na. 218 00:10:17,970 --> 00:10:19,890 >> Takže teraz to žiarovka nesvieti. 219 00:10:19,890 --> 00:10:22,880 Ale keď to urobím presne tohle-- nechať ma ísť na malý ťahák 220 00:10:22,880 --> 00:10:25,200 že Dan nastaviť v advance-- a idem 221 00:10:25,200 --> 00:10:27,920 pokračovať a kopírovanie nasledujúci príkaz. 222 00:10:27,920 --> 00:10:30,200 Curl, ako sa niektorí z vás mohol získaných na CS50 223 00:10:30,200 --> 00:10:35,080 Diskutovať sa o nástroj, ako Telnet také že môžete simulovať HTTP požiadaviek, 224 00:10:35,080 --> 00:10:36,360 výslovne uvádza. 225 00:10:36,360 --> 00:10:39,710 Môžem poslať tieto údaje, konkrétne, čo sme práve 226 00:10:39,710 --> 00:10:43,430 videl pred chvíľou špecificky na tejto adrese tu. 227 00:10:43,430 --> 00:10:46,310 A potom Curl bude zaobchádzať všetkých potrebných záhlavia 228 00:10:46,310 --> 00:10:47,600 a analýze tamojšej. 229 00:10:47,600 --> 00:10:54,700 >> Takže všetko, čo musíte urobiť, je skopírovať to do okno terminálu a potom stlačte kláves Enter. 230 00:10:54,700 --> 00:10:56,000 A žiarovka sa rozsvieti. 231 00:10:56,000 --> 00:10:59,060 A to je všetko prechádza môj počítač bezdrôtovo 232 00:10:59,060 --> 00:11:01,960 nejako sa k mostu, ktorý sa potom hovorí k tejto žiarovky. 233 00:11:01,960 --> 00:11:02,960 Môžem robiť niečo iné. 234 00:11:02,960 --> 00:11:07,050 Môžem túto vec ísť red napr. 235 00:11:07,050 --> 00:11:11,040 Môžem napríklad vytvoriť táto vec ísť zelene. 236 00:11:11,040 --> 00:11:12,220 Môžem robiť to ísť modrej. 237 00:11:12,220 --> 00:11:14,760 >> A všimnite si v každom z nich prípady, všetko, čo som sa mením 238 00:11:14,760 --> 00:11:18,540 je tzv odtieň hodnotu vlastne dať mu trochu farby. 239 00:11:18,540 --> 00:11:20,320 Takže mi dovoľte vložiť tento jeden v i. 240 00:11:20,320 --> 00:11:21,000 Teraz je to modré. 241 00:11:21,000 --> 00:11:24,672 >> A môžete to urobiť aj milovník veci where-- poďme na zelenú. 242 00:11:24,672 --> 00:11:26,630 A mohol by som to urobiť z Samozrejme s mojím vlastným kódom. 243 00:11:26,630 --> 00:11:30,670 Ale aj samotné API podporuje funky operácie 244 00:11:30,670 --> 00:11:35,510 ako je to, ktoré bude teraz obťažovať nám v najbližších 30 sekúnd. 245 00:11:35,510 --> 00:11:39,170 >> Takže to je jedna chuť na to, čo by mohlo čo robiť s API, tohle zahŕňajúce 246 00:11:39,170 --> 00:11:40,010 žiarovky. 247 00:11:40,010 --> 00:11:42,510 Všimnite si, že CS50 má pár pary Google Glass, keby si 248 00:11:42,510 --> 00:11:45,380 chceli niečo riešiť spolu tieto riadky, Arduino Únos, ktorý 249 00:11:45,380 --> 00:11:48,670 sú malinké počítače, v podstate, na malej doske 250 00:11:48,670 --> 00:11:50,470 že sa môžete pripojiť drôty a ďalšie veci 251 00:11:50,470 --> 00:11:52,732 na a vlastne kontrola Váš reálnom svete prostredia. 252 00:11:52,732 --> 00:11:54,940 A potom je tu pár z novej hračky, ktoré máme. 253 00:11:54,940 --> 00:11:59,294 Ten doslova prišiel druhý deň poštou, Myo Armband. 254 00:11:59,294 --> 00:12:01,710 A ja si myslel, že je to spôsob, ako vám nadšenie o projektoch 255 00:12:01,710 --> 00:12:03,720 ktoré môžete použiť s tento hardvér by 256 00:12:03,720 --> 00:12:08,900 bude hrať tento krátky klip že používajú podpichovať ľudí 257 00:12:08,900 --> 00:12:10,500 že sme teraz žije v budúcnosti. 258 00:12:10,500 --> 00:12:13,494 259 00:12:13,494 --> 00:12:15,490 >> [Prehrávanie hudby] 260 00:12:15,490 --> 00:13:33,410 261 00:13:33,410 --> 00:13:37,109 >> DAVID Malan: Takže počas niekoľkých týždňov, môžete tiež môže byť, že v pohode na CS50 veľtrhu. 262 00:13:37,109 --> 00:13:39,150 Ďalšie zariadenia, ktoré sme majú veľa, že sme 263 00:13:39,150 --> 00:13:42,090 šťastný, že požičať si pozor na projekty sa nazýva riadenie pohybu. 264 00:13:42,090 --> 00:13:45,030 Jedná sa o malý USB zariadení pripojenie k počítaču 265 00:13:45,030 --> 00:13:47,520 umožňuje komunikovať s notebook, Mac alebo PC, 266 00:13:47,520 --> 00:13:51,570 ako keby ste mali ako Xbox Kinect a vlastne robiť fyzické pohyby moc 267 00:13:51,570 --> 00:13:54,509 ako vidíme v tom vízie budúcnosti. 268 00:13:54,509 --> 00:13:56,505 >> [Prehrávanie hudby] 269 00:13:56,505 --> 00:15:03,380 270 00:15:03,380 --> 00:15:06,260 >> DAVID Malan: Takže aj keď máte potuchy, ako niečo také 271 00:15:06,260 --> 00:15:10,050 by mohlo byť vynájdené, alebo práca na hardwarovej úrovni, bez ohľadu na to. 272 00:15:10,050 --> 00:15:13,520 Dokonca aj po niekoľkých mesiacoch CS50, a porozumenie programovanie 273 00:15:13,520 --> 00:15:19,460 všeobecnejšie, a webové programovanie viac v poslednej dobe, a následne aj API a HTTP, 274 00:15:19,460 --> 00:15:21,830 budete mať prístup cez softvérové ​​rozhrania API, ak vás 275 00:15:21,830 --> 00:15:24,680 chcem si požičať jeden z nich zariadenie skutočne hovoriť s ním 276 00:15:24,680 --> 00:15:27,180 a nemusíte sa starať o základnej implementácie 277 00:15:27,180 --> 00:15:30,220 informácie, ktorá je úplne v súlade s týmto pojmom vrstvenia 278 00:15:30,220 --> 00:15:33,610 abstrakcie, že máme vidieť po celú dobu semestra. 279 00:15:33,610 --> 00:15:37,990 >> Takže aj cez víkend, videl pár kúskov správy. 280 00:15:37,990 --> 00:15:40,640 Ísť ako prvý, prejdite na seminároch, ak vás sa chceli dozvedieť niečo 281 00:15:40,640 --> 00:15:42,160 viac na ľubovoľný počet tém. 282 00:15:42,160 --> 00:15:43,340 Vidieť, že URL. 283 00:15:43,340 --> 00:15:45,890 A ten bol poslaný do me Chang, kto viete, 284 00:15:45,890 --> 00:15:47,850 Kto je tlač našu armádu slonov. 285 00:15:47,850 --> 00:15:49,910 A to bol titulok takto. 286 00:15:49,910 --> 00:15:51,280 Desím sa môjho nového televízora. 287 00:15:51,280 --> 00:15:54,301 Prečo Bojím sa, aby túto vec na a vás to bude taky. 288 00:15:54,301 --> 00:15:56,050 Takže sme teraz v bod v semestri, 289 00:15:56,050 --> 00:15:58,860 aj tam, kde aj keď máte ani najmenšie pochopenie 290 00:15:58,860 --> 00:16:02,620 o tom, ako web funguje, a HTTP, a zabezpečenia, veci, ako je tento 291 00:16:02,620 --> 00:16:03,980 by mala začať upútať tvoju pozornosť. 292 00:16:03,980 --> 00:16:07,450 Ale tiež, budete rozumieť, či tieto veci sú, alebo nie sú 293 00:16:07,450 --> 00:16:08,430 skutočné hrozby. 294 00:16:08,430 --> 00:16:10,940 >> Tak som vzal pár ukážok z tohto článku tu. 295 00:16:10,940 --> 00:16:12,540 A príbeh je nasledujúci. 296 00:16:12,540 --> 00:16:14,300 Ja som sa stal majiteľom Nový inteligentný TV, ktoré 297 00:16:14,300 --> 00:16:18,470 sľubuje streaming multimediálny obsah, hry, aplikácie, 298 00:16:18,470 --> 00:16:21,450 sociálne médiá a internet prehliadanie, oh a TV taky. 299 00:16:21,450 --> 00:16:24,410 Jediný problém je, že som teraz bojí sa ho použiť, hovorí autor. 300 00:16:24,410 --> 00:16:29,592 Tie by sa taky, keď si prečítate cez 46 stránka Privacy Policy pre váš televízor. 301 00:16:29,592 --> 00:16:31,800 Množstvo dát tohto vec, zhromažďuje je ohromujúci. 302 00:16:31,800 --> 00:16:35,710 Zaznamenáva, kde, kedy, ako a za akú dlhú dobu používate televízor. 303 00:16:35,710 --> 00:16:38,190 Stanovuje tracking cookies, ako sme diskutovali, 304 00:16:38,190 --> 00:16:40,560 a majáky určený zistiť, kedy máte 305 00:16:40,560 --> 00:16:43,185 zobraziť konkrétny obsah alebo konkrétne e-mailové správy 306 00:16:43,185 --> 00:16:45,230 Ak chcete skontrolovať e-mail na vašom televízore. 307 00:16:45,230 --> 00:16:48,430 Zaznamenáva aplikácie, ktoré používať, webové stránky, ktoré navštívite, 308 00:16:48,430 --> 00:16:52,280 a ako budete komunikovať s obsahom, robí to všetko pomocou vášho smart TV. 309 00:16:52,280 --> 00:16:55,470 Rovnako, creepier yet-- to je môj addition-- 310 00:16:55,470 --> 00:16:58,140 má vstavaný fotoaparát s rozpoznávania tváre. 311 00:16:58,140 --> 00:17:01,010 >> Účelom je poskytnúť Ovládanie gestami pre televízor 312 00:17:01,010 --> 00:17:05,490 a umožní vám sa prihlásiť do osobný účet pomocou vašej tvári. 313 00:17:05,490 --> 00:17:08,940 Na druhú stranu, sú obrázky uložené na televízore miesto nahraný 314 00:17:08,940 --> 00:17:09,940 na firemnom serveri. 315 00:17:09,940 --> 00:17:12,520 Na druhú stranu, internet Pripojenie je celý televízor 316 00:17:12,520 --> 00:17:14,811 citlivé na hackerov, ktorí sa preukázali schopnosť 317 00:17:14,811 --> 00:17:16,700 získať úplnú kontrolu nad strojom. 318 00:17:16,700 --> 00:17:20,880 >> Viac znepokojujúce, ako by to nebolo dosť chytrý, je mikrofón. 319 00:17:20,880 --> 00:17:23,599 TV sa môže pochváliť hlas Funkcia rozpoznávania 320 00:17:23,599 --> 00:17:26,859 ktorý umožňuje ovládať diváci obrazovka s hlasovými príkazmi. 321 00:17:26,859 --> 00:17:30,290 Ale služba je dodávaný s trochu zlovestné varovanie. 322 00:17:30,290 --> 00:17:33,030 Majte prosím na pamäti, že ak vaše hovorené slová sú 323 00:17:33,030 --> 00:17:36,210 osobné alebo iné citlivé Informácie, že informácie 324 00:17:36,210 --> 00:17:40,310 bude medzi dátami zachytených a odovzdané tretej strane. 325 00:17:40,310 --> 00:17:40,870 Máte to? 326 00:17:40,870 --> 00:17:45,860 Nehovor, že osobné alebo citlivé materiál v prednej časti televízora. 327 00:17:45,860 --> 00:17:47,280 >> Takže je to vlastne naozaj. 328 00:17:47,280 --> 00:17:50,530 A nie je ťažké zistiť, či vás prejsť na Best Buy alebo podobne pre televízory 329 00:17:50,530 --> 00:17:51,030 v týchto dňoch. 330 00:17:51,030 --> 00:17:52,540 Všetci sú chytrí nejakým spôsobom. 331 00:17:52,540 --> 00:17:54,740 A oni sú stále múdrejší a desivejšie. 332 00:17:54,740 --> 00:17:57,490 A oni jednoducho zber dát spôsobom, ktorý sme hovorili o 333 00:17:57,490 --> 00:18:01,840 a potom ju nahrať cez HTTP alebo nejaký iný protokol k nejakému serveru. 334 00:18:01,840 --> 00:18:05,720 >> Takže to bol zábavný článok V tejto on-line webové stránky 335 00:18:05,720 --> 00:18:08,940 tu, ktorý hovoril o najmä bug alebo mylné kód 336 00:18:08,940 --> 00:18:11,340 že vlastne môžeme uviazať do diskusie minulý týždeň. 337 00:18:11,340 --> 00:18:15,730 Takže tento titulok bol ako vyplýva, príbeh sa odohráva tu, 338 00:18:15,730 --> 00:18:18,720 Josh Breckman pracoval pre spoločnosť, ktorá pristála zmluvu 339 00:18:18,720 --> 00:18:22,390 rozvíjať pre správu obsahu systém alebo CMS ako sú nazývaní, 340 00:18:22,390 --> 00:18:24,380 za pomerne veľké vládne webové stránky. 341 00:18:24,380 --> 00:18:27,300 Veľa z projektu zúčastňujú vytvorenie systému pre správu obsahu 342 00:18:27,300 --> 00:18:29,840 tak, že zamestnanci by schopní vytvoriť a udržiavať 343 00:18:29,840 --> 00:18:31,877 stále sa meniace obsah na svojich stránkach. 344 00:18:31,877 --> 00:18:34,210 To išlo celkom dobre pár dní potom, čo žiť. 345 00:18:34,210 --> 00:18:37,020 Ale v deň šesť, všetko išlo tak dobre nie. 346 00:18:37,020 --> 00:18:39,500 Všetok obsah na webové stránky úplne zmizli. 347 00:18:39,500 --> 00:18:42,950 A všetky strany viedli k východiskovým zadajte obsahu webovej stránky. 348 00:18:42,950 --> 00:18:43,810 Jejda. 349 00:18:43,810 --> 00:18:46,080 Josh bol povolaný do vyšetrovať a všimol si, 350 00:18:46,080 --> 00:18:49,390 že jeden obzvlášť nepríjemné externé IP adresy bolo 351 00:18:49,390 --> 00:18:53,380 preč a odstránené všetky obsah v systéme. 352 00:18:53,380 --> 00:18:56,290 >> IP adresa nepatrí do istej zámoria hacker sa ohýbal 353 00:18:56,290 --> 00:18:58,340 zničiť užitočné Informácie vlády. 354 00:18:58,340 --> 00:19:05,190 To sa rozhodol googlebot.com, Google veľmi vlastný web lezie pavúk. 355 00:19:05,190 --> 00:19:06,010 Jejda. 356 00:19:06,010 --> 00:19:09,150 Po chvíli výskumu a kódovanie okolo nájsť noncorrupt zálohy, 357 00:19:09,150 --> 00:19:10,180 Josh našiel problém. 358 00:19:10,180 --> 00:19:12,700 >> Užívateľ opísal a vložiť nejaký obsah z jedného 359 00:19:12,700 --> 00:19:15,670 stránky na druhú, vrátane Upraviť hypertextové prepojenie 360 00:19:15,670 --> 00:19:17,577 upraviť obsah na stránke. 361 00:19:17,577 --> 00:19:20,160 Za normálnych okolností by to nebolo problém, pretože vonkajšia používateľ by 362 00:19:20,160 --> 00:19:24,320 je potrebné zadať meno a heslo, ale autentizačný systém CMS, 363 00:19:24,320 --> 00:19:27,520 prihlasovací systém, nevzal do úvahy 364 00:19:27,520 --> 00:19:30,980 prepracovaný hacking Techniky Google Spider. 365 00:19:30,980 --> 00:19:31,700 Jejda. 366 00:19:31,700 --> 00:19:33,610 >> Ako to dopadá, Google Spider nepoužíva 367 00:19:33,610 --> 00:19:36,950 cookies, čo znamená, že môže ľahko obísť kontrolu pre 368 00:19:36,950 --> 00:19:39,840 je prihlásený cookie súboru, že je falošný. 369 00:19:39,840 --> 00:19:42,620 Nie je tiež venovať pozornosť tomu, JavaScript, ktorý by za normálnych okolností 370 00:19:42,620 --> 00:19:45,170 rýchle a presmerovať užívateľa ktorí nie sú prihlásení. 371 00:19:45,170 --> 00:19:48,610 Neznamená to však sledovať každý hypertextový odkaz na každej stránke nájde, 372 00:19:48,610 --> 00:19:51,700 vrátane tých, ktoré sa Odstrániť stránku v názve. 373 00:19:51,700 --> 00:19:52,650 Jejda. 374 00:19:52,650 --> 00:19:56,070 >> Takže čo to znamená viac technické, ale celkom zrozumiteľne? 375 00:19:56,070 --> 00:19:58,340 To jednoducho znamená, že po celú dobu ich webové stránky, 376 00:19:58,340 --> 00:20:02,287 mali URL nie je na rozdiel od tohto ten, ktorý môžete vidieť na problém nastaviť sedem. 377 00:20:02,287 --> 00:20:04,620 Recall v probléme nastaviť sedem alebo vedieť, problém nastaviť sedem 378 00:20:04,620 --> 00:20:06,411 že ste spochybnil, okrem iného, 379 00:20:06,411 --> 00:20:08,570 predať akcie menom užívateľa. 380 00:20:08,570 --> 00:20:14,010 Ale vykonávacie túto funkciu sa formou z dostať cez hypertextové odkazy vo vašom užívateľa 381 00:20:14,010 --> 00:20:16,880 rozhranie, pravdepodobne nie je nejchytřejší nápad 382 00:20:16,880 --> 00:20:20,300 pretože ak sú vaše stránky nejakým spôsobom prístupné buď človek 383 00:20:20,300 --> 00:20:23,577 kto Kliknutím okolo alebo kúpiť topánok ako Google je alebo Spider 384 00:20:23,577 --> 00:20:26,160 ako sa im hovorí, že je to len prehliadania webu sa snažia index 385 00:20:26,160 --> 00:20:29,060 web ako vyhľadávač, mohli ľahko 386 00:20:29,060 --> 00:20:31,340 hit prostredníctvom získať tento druh URL. 387 00:20:31,340 --> 00:20:33,770 A to je funkčne rovnocenné, v tomto prípade, 388 00:20:33,770 --> 00:20:37,000 predaj všetkých akcií spoločnosti Google. 389 00:20:37,000 --> 00:20:40,030 >> Teraz úprimne povedané, je to úplne hlúpy, že CMS 390 00:20:40,030 --> 00:20:43,240 Použité JavaScript a cookies k vykonávaniu svojej prihlasovací systém 391 00:20:43,240 --> 00:20:47,100 a nie robiť, že na strane servera, as vy robiť, a bude v pset 7-- 392 00:20:47,100 --> 00:20:49,940 tam je login.php file-- vždy, vždy, 393 00:20:49,940 --> 00:20:52,789 vždy bezpečnosť by mali byť vykonáva na strane servera, 394 00:20:52,789 --> 00:20:56,080 nie na strane klienta, pretože, ako to článok naznačuje, a vy by ste mohli sami 395 00:20:56,080 --> 00:20:59,600 vidieť na nejakom mieste, je triviálne pre používateľa, dobré alebo zlé, 396 00:20:59,600 --> 00:21:02,860 len vypnúť JavaScript nehovoriac o cookies. 397 00:21:02,860 --> 00:21:06,020 Tak to je váš denný WTF. 398 00:21:06,020 --> 00:21:07,970 >> Je tu ešte jeden, ktorý je len trochu desivé, 399 00:21:07,970 --> 00:21:11,360 tak som si to uvedené, či iba ako životnú lekciu. 400 00:21:11,360 --> 00:21:14,850 Vždy, keď použijete aplikáciu nazýva ako Snapchat a podobne 401 00:21:14,850 --> 00:21:19,380 ktorý hovorí, že tieto fotografie trvať len piatich sekúnd desať sekúnd alebo ktovie čo ešte. 402 00:21:19,380 --> 00:21:21,680 Sú to pominuteľné To je rozhodne nie je tento prípad. 403 00:21:21,680 --> 00:21:25,670 Rovnako ako neexistuje žiadny spôsob, digitálne, zaviesť nejakú formu videa, 404 00:21:25,670 --> 00:21:30,150 alebo obrázok, alebo textový zdieľanie, ako že príjemca na druhom konci 405 00:21:30,150 --> 00:21:31,660 nemôže nejako uložiť dáta. 406 00:21:31,660 --> 00:21:34,300 >> V najviac naivné spôsobom, niekto mohol zobrať svoj telefón. 407 00:21:34,300 --> 00:21:36,850 A majú druhé okno 10 pri pohľade na nejakú Snap 408 00:21:36,850 --> 00:21:39,410 len vziať nejaký iný telefón a odfotiť to, samozrejme. 409 00:21:39,410 --> 00:21:41,660 Takže si môžete zachovať niečo digitálne týmto spôsobom. 410 00:21:41,660 --> 00:21:44,620 Niektorí z vás vedia, ako sa screenshoty na telefóne. 411 00:21:44,620 --> 00:21:49,290 V skutočnosti, ak to neviete, Uvedomujem si, že aspoň Snapchat, 412 00:21:49,290 --> 00:21:51,040 a myslím, že ďalšie Aplikácia týchto dňoch, 413 00:21:51,040 --> 00:21:53,720 aspoň povedať, či príjemca má v skutočnosti 414 00:21:53,720 --> 00:21:55,310 vziať screenshot obrázku. 415 00:21:55,310 --> 00:22:00,870 >> Ale ešte horšie, to bolo snappening, ako to niekto vymyslel v poslednej dobe, 416 00:22:00,870 --> 00:22:04,680 kde niektorí 100.000 Uchopenie bol prepustený 417 00:22:04,680 --> 00:22:09,310 to, čo sa nazýva súbor torrent na rôznych internetových stránkach nakoniec. 418 00:22:09,310 --> 00:22:12,000 A to obsahovalo veľa súkromných správ a príspevkov. 419 00:22:12,000 --> 00:22:15,210 Ukázalo sa, že väčšina z nich benígne, takže nie je to, čo by ste mohli očakávať. 420 00:22:15,210 --> 00:22:17,580 Ale pretože ľudia mali použiť webové stránky tretej strany, 421 00:22:17,580 --> 00:22:20,270 prihlásenie sa svojím Snapchat užívateľské meno a heslo a kliknite na 422 00:22:20,270 --> 00:22:23,470 ukladanie všetkých svojich patentky na týchto webových stránkach tretích strán. 423 00:22:23,470 --> 00:22:26,130 A to bolo to, že tretia strana webové stránky, ktoré bol hacknut, 424 00:22:26,130 --> 00:22:30,710 ktorá sa práve chcel niekto prišiel na to, ako dostať všetky 100,000 nárast o týchto obrázkov 425 00:22:30,710 --> 00:22:33,822 do svojej vlastnej pevný disk pre následné zdieľanie. 426 00:22:33,822 --> 00:22:36,030 Úprimne povedané, aj tu, je to niečo o hlúpy, že Snapchat 427 00:22:36,030 --> 00:22:39,360 sa uskutočňuje takým spôsobom, aby tretia strana druhu odpočúvania 428 00:22:39,360 --> 00:22:43,310 dáta, a že to nie je viazaná na vaše vlastné aplikácie bežiace na telefóne. 429 00:22:43,310 --> 00:22:46,947 Ale aj tu si uvedomiť, že tieto čo by vás nechytí prekvapením, 430 00:22:46,947 --> 00:22:49,030 alebo aspoň, že by byť životnú lekciu tu. 431 00:22:49,030 --> 00:22:52,220 Ak by ste chceli technickej Podrobnosti nájdete na tejto adrese URL tu 432 00:22:52,220 --> 00:22:53,570 to je v dnešných snímok. 433 00:22:53,570 --> 00:23:00,960 V poriadku, akékoľvek otázky týkajúce sa Dnešné životné lekcie v SK? 434 00:23:00,960 --> 00:23:02,710 Vypni to. 435 00:23:02,710 --> 00:23:04,970 Vôbec niečo? 436 00:23:04,970 --> 00:23:06,301 Vôbec niečo? 437 00:23:06,301 --> 00:23:09,050 Mám veľa ľudí kontrolu ich Snapchat alebo tak niečo dnes. 438 00:23:09,050 --> 00:23:11,690 >> Dobre, tak SQL, Structured Query Language. 439 00:23:11,690 --> 00:23:12,509 Poďme zabaliť. 440 00:23:12,509 --> 00:23:14,300 A tiež, aj keď sme len poškriabaniu 441 00:23:14,300 --> 00:23:16,310 Povrch tejto jazyka, budeme vám 442 00:23:16,310 --> 00:23:18,930 dosť jazyka vo forme pset 7 443 00:23:18,930 --> 00:23:22,140 takže môžete riešiť niektoré celkom bežné funkcie. 444 00:23:22,140 --> 00:23:24,912 Ale uvedomila, že existujú pár veci, ktoré nevyžadujú z vás, 445 00:23:24,912 --> 00:23:27,120 ale budeš dôležité prísť záverečných prác 446 00:23:27,120 --> 00:23:30,760 a určite príde robiť skutočné webové stránky s aktuálnymi užívateľmi 447 00:23:30,760 --> 00:23:32,040 je toto rozhodnutie dizajnu. 448 00:23:32,040 --> 00:23:34,460 >> Ukazuje sa, že v MySQL databázy, môžete 449 00:23:34,460 --> 00:23:37,460 majú zväzky možností, ako je dátové typy pre vaše stĺpy 450 00:23:37,460 --> 00:23:41,670 a ďalšie veci, ale máte tiež voľba tzv skladovanie 451 00:23:41,670 --> 00:23:44,570 motor pre všetky vaše dáta, druh súborového systému, 452 00:23:44,570 --> 00:23:46,700 ak ste oboznámení, pre všetky vaše dáta. 453 00:23:46,700 --> 00:23:48,830 Aký formát je to nakoniec uložená v? 454 00:23:48,830 --> 00:23:53,300 A najčastejšia, snáď, bol MyISAM a InnoDB, technické termíny 455 00:23:53,300 --> 00:23:56,060 že budeme záleží iba do tej miery, že má človek 456 00:23:56,060 --> 00:23:58,500 a jeden nemá nasledujúce funkcie. 457 00:23:58,500 --> 00:24:00,390 >> Predpokladajme, že máte malá chladnička koľaji. 458 00:24:00,390 --> 00:24:03,030 A predpokladám, že vy a vaša spolubývajúci, ktorí majú túto chladničku, 459 00:24:03,030 --> 00:24:04,682 naozaj rád povedzme mlieka. 460 00:24:04,682 --> 00:24:07,140 A to je, v skutočnosti, ako príbeh bolo povedané, pre mňa cesta späť 461 00:24:07,140 --> 00:24:10,890 v deň, kedy som sa zúčastnil kurzu tzv SK 161 Operačné systémy, ktoré 462 00:24:10,890 --> 00:24:12,580 Podobne skúma túto tému. 463 00:24:12,580 --> 00:24:13,760 Takže ste dostal túto chladničku. 464 00:24:13,760 --> 00:24:14,630 Ste z mlieka. 465 00:24:14,630 --> 00:24:17,000 A vy ste prišiel domov, váš spolubývajúci je stále triedu alebo čokoľvek, 466 00:24:17,000 --> 00:24:19,208 a vy sa rozhodnete idem ísť von a trochu mlieka. 467 00:24:19,208 --> 00:24:22,630 Takže zatvorte chladničku, väzenia koľaji, prejdite cez ulicu 468 00:24:22,630 --> 00:24:25,330 k CVS alebo kdekoľvek, a získať v súlade so kúpiť nejaké mlieko. 469 00:24:25,330 --> 00:24:28,960 >> Medzitým, váš spolubývajúci príde domov z triedy, sa dostane do koľaji izba, 470 00:24:28,960 --> 00:24:31,802 otvorí chladničku, tiež si uvedomuje, ooph, sme z mlieka. 471 00:24:31,802 --> 00:24:33,760 Tak on alebo ona sa zatvorí chladničky a potom sa stane, 472 00:24:33,760 --> 00:24:35,610 ísť na druhú CVS, ktorý sa stane byť 473 00:24:35,610 --> 00:24:38,470 jeden blok od ostatných CVS na námestí, a dostane do súladu 474 00:24:38,470 --> 00:24:40,230 tam trochu mlieka. 475 00:24:40,230 --> 00:24:42,524 Teraz, samozrejme, pár minút neskôr, obaja sa vrátim, 476 00:24:42,524 --> 00:24:44,690 a najhoršie zo všetkého je to možné Výsledky sa stalo. 477 00:24:44,690 --> 00:24:45,792 Obidva majú mlieko. 478 00:24:45,792 --> 00:24:47,500 A nemáte naozaj ako mlieko, že veľa. 479 00:24:47,500 --> 00:24:49,625 Takže jeden z nich je práve bude kyslá v určitom okamihu. 480 00:24:49,625 --> 00:24:55,941 Takže teraz máte nadmerné množstvo mlieka v chladničke to všetko preto, prečo? 481 00:24:55,941 --> 00:24:57,072 >> [Nepočuteľné] 482 00:24:57,072 --> 00:24:59,780 DAVID Malan: Jo, to nie nejako vzájomne komunikovať 483 00:24:59,780 --> 00:25:00,904 že ste sa dostať mlieko. 484 00:25:00,904 --> 00:25:04,320 Takže najjednoduchšie spôsoby, ako v ľudskom svete, 485 00:25:04,320 --> 00:25:08,390 ako by sa vyhnúť tejto hlúpe scenár z deja ako 486 00:25:08,390 --> 00:25:09,750 že si len skončiť s jedným. 487 00:25:09,750 --> 00:25:10,840 Text je, áno, dobre. 488 00:25:10,840 --> 00:25:12,877 Ale ako inak? 489 00:25:12,877 --> 00:25:13,460 Post-it poznámky. 490 00:25:13,460 --> 00:25:14,626 DAVID Malan: Post-it note. 491 00:25:14,626 --> 00:25:17,150 Každá forma komunikácie že povie svoje spolubývajúci 492 00:25:17,150 --> 00:25:18,670 nechodia do chladničky na mlieko. 493 00:25:18,670 --> 00:25:20,440 Chystám sa ísť doplniť zásoby na vlastnú päsť. 494 00:25:20,440 --> 00:25:22,770 Takže budete nejako potrebovať zamknúť tohto zdroja. 495 00:25:22,770 --> 00:25:27,180 Takže môžeme tohle-- môžeme druh zničiť príbeh a zase do príbehu SK 496 00:25:27,180 --> 00:25:30,360 kedy myslieť na to, ako je, rovnako ako premenná, ktorá ukladá nejakú hodnotu. 497 00:25:30,360 --> 00:25:32,570 A práve teraz, hodnota mlieka je nula, 498 00:25:32,570 --> 00:25:35,410 ktoré nechcete, aby vaše spolubývajúci na kontrolu tejto premennej 499 00:25:35,410 --> 00:25:38,730 a potom sa rozhodnúť ho alebo seba v závislosti na stave tejto premennej 500 00:25:38,730 --> 00:25:42,430 ak ste v procese zmenu stavu tejto premennej. 501 00:25:42,430 --> 00:25:46,140 >> Takže jeden z riadkov SQL, ktoré sme dať v pset 7 špecifikácia 502 00:25:46,140 --> 00:25:47,310 je to jeden tu. 503 00:25:47,310 --> 00:25:49,740 A nebudeme míňať obrovské množstvo času, o tom hovorí. 504 00:25:49,740 --> 00:25:55,100 Ale ukazuje sa, ak sa snažíte kúpiť nejaké akcie CS50 financií 505 00:25:55,100 --> 00:25:58,000 že už máte Niektoré akcie, vás 506 00:25:58,000 --> 00:26:01,750 chcete byť schopní urobiť rad vecí okamžite dohromady. 507 00:26:01,750 --> 00:26:04,360 Ak chcete byť schopní efektívne, na vysokej úrovni, 508 00:26:04,360 --> 00:26:06,700 skontrolovať v poriadku, keď chcem kúpiť viac akcií zadarmo, 509 00:26:06,700 --> 00:26:08,780 penny zásoby hovoriť o v špecifikácii, 510 00:26:08,780 --> 00:26:10,660 Chcem prvej kontrole koľko akcií mám. 511 00:26:10,660 --> 00:26:11,810 A predpokladám, že je to päť. 512 00:26:11,810 --> 00:26:14,600 A predpokladám, že chcem, aby kúpiť ďalších 10, som nakoniec 513 00:26:14,600 --> 00:26:17,069 chcú mať 15 akcií skladom. 514 00:26:17,069 --> 00:26:18,360 Tak som sa opýtať na dve otázky. 515 00:26:18,360 --> 00:26:20,230 Aký je stav premenné? 516 00:26:20,230 --> 00:26:21,470 Aký je stav riadku? 517 00:26:21,470 --> 00:26:22,970 Koľko akcií mám v súčasnej dobe? 518 00:26:22,970 --> 00:26:24,636 Potom budete chcieť pokračovať a aktualizovať. 519 00:26:24,636 --> 00:26:27,720 Tak to je analóg na mlieko skontrolovať riadok, 520 00:26:27,720 --> 00:26:30,730 a potom chcete aktualizovať pretože ak si chcete kúpiť 10 akcií, 521 00:26:30,730 --> 00:26:32,521 Ak nechcete zmeniť riadok 10, je 522 00:26:32,521 --> 00:26:35,300 chcete ho zmeniť na 5 a 10, alebo, samozrejme, 15. 523 00:26:35,300 --> 00:26:40,030 >> Tento riadok kódu zaisťuje, že tieto dve koncepčné nápady 524 00:26:40,030 --> 00:26:42,810 stáť, spoločne, alebo vôbec nie. 525 00:26:42,810 --> 00:26:46,920 Nikto, vrátane nejakého iného užívateľa Kto je prihlásený do rovnakej webovej stránky, 526 00:26:46,920 --> 00:26:49,900 nejako prerušiť kontrola riadku 527 00:26:49,900 --> 00:26:52,960 a aktualizácia riadka, vybrať a aktualizácie, ak chcete. 528 00:26:52,960 --> 00:26:57,360 A syntax nie je výborný zrejmé, ale táto linka, dlho to je, 529 00:26:57,360 --> 00:27:01,150 zaisťuje, že tieto dve operácie skontrolujte premennú alebo skontrolujte riadok 530 00:27:01,150 --> 00:27:04,660 a aktualizovať riadok sa stalo atomárny. 531 00:27:04,660 --> 00:27:06,849 >> Oh je to tu zase. 532 00:27:06,849 --> 00:27:07,890 Textová správa na môj telefón. 533 00:27:07,890 --> 00:27:09,954 Tak poďme, aby to trochu konkrétnejší. 534 00:27:09,954 --> 00:27:12,120 Predpokladajme, že nie ste vykonávanie chladničku, 535 00:27:12,120 --> 00:27:16,400 a nie ste vykonávania Pset 7, ale skutočná banka, 536 00:27:16,400 --> 00:27:20,000 alebo bankomat, bankomat Stroj, čím vám nejako 537 00:27:20,000 --> 00:27:22,960 chcete mať možnosť posilniť používateľom prenášať peňazí 538 00:27:22,960 --> 00:27:24,500 z jedného účtu na druhý. 539 00:27:24,500 --> 00:27:25,100 OK, vydrž. 540 00:27:25,100 --> 00:27:26,683 Chystám sa stlmiť to teraz, ďakujem. 541 00:27:26,683 --> 00:27:30,450 Takže chceme presunúť peniaze z jedného čísla účtu 542 00:27:30,450 --> 00:27:33,600 do iného účtu číslo, konkrétne 100 dolárov. 543 00:27:33,600 --> 00:27:37,690 Tak to je druh ľubovoľný príklad, kedy ste, ATM, 544 00:27:37,690 --> 00:27:41,060 chcieť vykonať dva SQL otázky, odpočítať z jedného účtu, 545 00:27:41,060 --> 00:27:42,430 a pridať na iný účet. 546 00:27:42,430 --> 00:27:46,766 Ale vy chcete, aby zabezpečili, že tieto dva riadky ako sa stalo, alebo vôbec nie. 547 00:27:46,766 --> 00:27:48,640 Nechcete, aby niečo dostať prerušený. 548 00:27:48,640 --> 00:27:51,440 Nemáte nejaký šikovný zlý človek nejako stojí v Bank of America 549 00:27:51,440 --> 00:27:53,270 s dvoma bankomatov v prednej ním a nejako 550 00:27:53,270 --> 00:27:55,270 druh písania v príkazy v rovnakú dobu, 551 00:27:55,270 --> 00:28:01,230 dúfajme, že sa snaží odpočítať 200 dolárov miesto 100 dolárov a len s 100 dolármi pripočítaný. 552 00:28:01,230 --> 00:28:04,450 Stručne povedané, ak chcete, aby sa správajú presne tak, ako ste očakávali. 553 00:28:04,450 --> 00:28:06,540 >> A ako vy to v SQL databázy 554 00:28:06,540 --> 00:28:09,350 ju zabaliť do čo je volal transakcie. 555 00:28:09,350 --> 00:28:14,290 Doslova v SQL, môžete volať CS50 je funkcie dotaze s citátom koniec citátu štartom 556 00:28:14,290 --> 00:28:15,370 transakcie. 557 00:28:15,370 --> 00:28:18,640 Potom môžete spustiť ľubovoľný počet následných SQL dotazov, 558 00:28:18,640 --> 00:28:20,870 ale žiadny z nich sa vplyv na databázu 559 00:28:20,870 --> 00:28:25,880 kým nezavoláte dotazu citácie unquote ak spácha znovu pomocou PHP. 560 00:28:25,880 --> 00:28:29,810 A týmto spôsobom, môžete zaistiť, že aj keď máte 1000 Všetci užívatelia 561 00:28:29,810 --> 00:28:32,080 biť databázy v rovnakom čase, SQL 562 00:28:32,080 --> 00:28:34,540 bude sľubovať, že tieto dva dotazy bude 563 00:28:34,540 --> 00:28:36,740 realizovaný jeden za druhým. 564 00:28:36,740 --> 00:28:40,330 Takže nemusíte skončiť s prebytkom mlieko alebo zlé množstvo, nakoniec, 565 00:28:40,330 --> 00:28:40,830 peňazí. 566 00:28:40,830 --> 00:28:43,110 >> Takže majte na pamäti, ani nie tak pre pset 7 567 00:28:43,110 --> 00:28:45,250 ale záverečných prác ak ste skutočne 568 00:28:45,250 --> 00:28:49,690 snaží sa pohybovať okolo dát cez tabuľky, ako si možno tu. 569 00:28:49,690 --> 00:28:53,980 Ale možno ešte jednoduchšie a viac zrejmé porozumieť s príkladom 570 00:28:53,980 --> 00:28:54,860 je to jeden tu. 571 00:28:54,860 --> 00:28:57,760 A niekto nám e-mailom o to len ďalší deň 572 00:28:57,760 --> 00:28:59,600 keď videl niečo podobné online. 573 00:28:59,600 --> 00:29:03,480 >> Takže viem, pin systému nie je náchylné k útoku. 574 00:29:03,480 --> 00:29:06,637 A ja nemám potuchy, či IT aj použitie SQL databázy pod kapotou. 575 00:29:06,637 --> 00:29:08,470 Ale poďme ju použiť pre saké diskusie. 576 00:29:08,470 --> 00:29:10,178 Tu je obrazovka, ktorá Harvard ľudia majú tendenciu 577 00:29:10,178 --> 00:29:13,620 vidieť pri prihlasovaní s ich Harvard identifikačné číslo a PIN. 578 00:29:13,620 --> 00:29:19,020 A predpokladám, že pin systém bol implementované v PHP a MySQL s 579 00:29:19,020 --> 00:29:22,000 databázy, kód, ktorý niekto Pred mohlo písomné roky 580 00:29:22,000 --> 00:29:23,270 môže vyzerať napríklad takto. 581 00:29:23,270 --> 00:29:25,230 Po prvé, vyhlásiť premenná s názvom užívateľské meno. 582 00:29:25,230 --> 00:29:27,560 A len tak, že od POST superglobal. 583 00:29:27,560 --> 00:29:30,140 Potom si ďalšiu premennú volal heslo a to isté. 584 00:29:30,140 --> 00:29:33,080 A potom už len spustiť tak dlho otázku tu 585 00:29:33,080 --> 00:29:36,690 vyberte hviezda od užívateľov prípadne Užívateľské meno rovná taký a taký 586 00:29:36,690 --> 00:29:38,510 a heslo rovná taký a taký. 587 00:29:38,510 --> 00:29:40,660 >> Všimnite si, že kučeravý traky som tu použitý 588 00:29:40,660 --> 00:29:42,880 len znamená PHP, ísť dopredu a náhradné 589 00:29:42,880 --> 00:29:45,400 hodnota z týchto dvoch premenné práve tam. 590 00:29:45,400 --> 00:29:50,090 Sú to nie je nevyhnutne nutné, ale majú tendenciu, aby sa zabránilo jemné syntaktické chyby. 591 00:29:50,090 --> 00:29:53,650 Takže to vyzerá úplne Správna na prvý pohľad. 592 00:29:53,650 --> 00:29:54,240 A je to. 593 00:29:54,240 --> 00:29:56,680 Dalo by sa realizovať čap systém týmto spôsobom. 594 00:29:56,680 --> 00:30:00,460 >> Ale predpokladám, že super šikovný a nebezpečný študenta 595 00:30:00,460 --> 00:30:03,020 Vstupné to ako jeho kolík. 596 00:30:03,020 --> 00:30:05,550 Tak som odstránil guľku známky tu v mock-up, 597 00:30:05,550 --> 00:30:08,760 a ja som vlastne odhalil to, čo on alebo ona môže byť písanie. 598 00:30:08,760 --> 00:30:10,350 A je to trochu divné. 599 00:30:10,350 --> 00:30:13,850 Ale to, čo vyskočí na vás na potenciálne znepokojujúce o vstup užívateľa, 600 00:30:13,850 --> 00:30:16,450 aj keď nemáte tušenie, čo útok SQL injection znamená. 601 00:30:16,450 --> 00:30:20,300 Prečo to vyzerá trochu podozrivo? 602 00:30:20,300 --> 00:30:21,050 Čo je to? 603 00:30:21,050 --> 00:30:21,550 [Nepočuteľné] 604 00:30:21,550 --> 00:30:24,260 DAVID Malan: alebo je trochu podozrivé. 605 00:30:24,260 --> 00:30:26,310 V skutočnosti, to je kľúčové slovo z SQL. 606 00:30:26,310 --> 00:30:28,105 Tak, že to neveští nič dobré. 607 00:30:28,105 --> 00:30:29,980 Skutočnosť, že je všetky tieto jednoduché úvodzovky 608 00:30:29,980 --> 00:30:32,646 there-- v skutočnosti, jeden z najjednoduchších spôsoby, ako zlomiť niektoré databázy 609 00:30:32,646 --> 00:30:35,880 sa zadaním mena ako O'Reilly ktorý má apostrof v ňom 610 00:30:35,880 --> 00:30:38,600 preto, že v prípade, že človek, ktorý napísal Kód zákulisia 611 00:30:38,600 --> 00:30:41,570 neberie do úvahy, že môže byť jednoduché úvodzovky v užívateľa 612 00:30:41,570 --> 00:30:45,060 vstup, a on alebo ona je s použitím jednoduché úvodzovky v ich kóde, 613 00:30:45,060 --> 00:30:46,040 zlé veci sa môže stať. 614 00:30:46,040 --> 00:30:47,870 >> V skutočnosti ešte horšie, zvážte to. 615 00:30:47,870 --> 00:30:50,600 Ak to bolo opäť kód že niekto na Harvarde rokov 616 00:30:50,600 --> 00:30:53,100 Pred písal pre kolík Systém si všimnite, čo je 617 00:30:53,100 --> 00:30:56,220 o dostať substituovaný užívateľské meno a heslo 618 00:30:56,220 --> 00:30:59,780 pokiaľ užívateľ zadá znova skroob, pretože ich mená 619 00:30:59,780 --> 00:31:03,960 a potom jeden, dva, tri, štyri, päť, citát alebo citácie unquote jedna rovná sa 620 00:31:03,960 --> 00:31:04,660 citovať. 621 00:31:04,660 --> 00:31:07,220 A všimnite si, čo je kľúč Tu je užívateľ nemá 622 00:31:07,220 --> 00:31:09,900 začal svoje heslo, alebo ich pin s citátom. 623 00:31:09,900 --> 00:31:12,610 A neskončili ju s citátom, pretože on alebo ona 624 00:31:12,610 --> 00:31:16,315 je za predpokladu, že v prípade, že programátor nebol tak ostrý, 625 00:31:16,315 --> 00:31:18,690 že budú mať tie jednoduché úvodzovky v ich kóde. 626 00:31:18,690 --> 00:31:19,860 >> Tak tu je kód. 627 00:31:19,860 --> 00:31:23,820 A náhrada, ktorá Teraz sa môže stať je to. 628 00:31:23,820 --> 00:31:26,350 A ja som zdôraznil to, čo užívateľ zadať. 629 00:31:26,350 --> 00:31:28,480 Tak pred, po. 630 00:31:28,480 --> 00:31:33,330 A všimnite si, čo je mierne znepokojujúce teraz o pravej polovici tohto kódu SQL? 631 00:31:33,330 --> 00:31:36,300 Je to trochu zložitejšie, pravda, než dotazov sme videli. 632 00:31:36,300 --> 00:31:38,550 Ale to nemôže byť dobrá vec, ak ste 633 00:31:38,550 --> 00:31:42,240 povedal vyberte hviezdu, ktorá je vyberte všetko z tabuľky užívateľa 634 00:31:42,240 --> 00:31:46,630 kde používateľské meno odpovedá skroob a heslo sa rovná jeden, dva, tri, štyri, 635 00:31:46,630 --> 00:31:49,610 päť alebo jeden rovný jednej. 636 00:31:49,610 --> 00:31:53,860 Čo je to logický dôsledok tohto posledného ustanovenia všetkého? 637 00:31:53,860 --> 00:31:55,650 Je to proste vždy pravda. 638 00:31:55,650 --> 00:31:59,930 >> A preto, že sme tak nejako tušil alebo prišiel na to, metódou pokusu a omylu 639 00:31:59,930 --> 00:32:02,760 že programátor, ktorý napísal tento kód nie 640 00:32:02,760 --> 00:32:07,250 predvídať ľudské alebo zlý človek písať v jednoduchých úvodzovkách rovnako, 641 00:32:07,250 --> 00:32:10,350 môžeme syntakticky dokončenie dotazu SQL 642 00:32:10,350 --> 00:32:12,260 s niečím nezmyselné ale niečo, čo 643 00:32:12,260 --> 00:32:15,930 je syntakticky nesprávny že vždy vyhodnotí na true. 644 00:32:15,930 --> 00:32:19,130 Takže ak je tento kód sa používa na zodpovedanie otázka true alebo false by 645 00:32:19,130 --> 00:32:22,930 tento užívateľ môcť prejsť, Odpoveď je vždy zrejme bude 646 00:32:22,930 --> 00:32:26,930 je to pravda, pretože to je vždy vybrať niečo z databázy 647 00:32:26,930 --> 00:32:29,280 pretože jeden samozrejme vždy rovná jednej. 648 00:32:29,280 --> 00:32:30,360 >> Takže aké je riešenie? 649 00:32:30,360 --> 00:32:33,290 No v pset 7, sme vlastne vyhnúť sa to všetko dohromady. 650 00:32:33,290 --> 00:32:37,360 Dáme vám funkcie dopytu a my Odporúčame vám použiť otázniky 651 00:32:37,360 --> 00:32:40,430 ako zástupné symboly, podobné duchom printf je% s, 652 00:32:40,430 --> 00:32:43,710 ale to, čo je kľúčom k otázniky Tu je, keď ste vlastne prečítali 653 00:32:43,710 --> 00:32:46,950 functions.php, kde naša funkcia dotazu je implementovaná, 654 00:32:46,950 --> 00:32:52,780 tie otázniky sú unikol, kedy niečo potenciálne nebezpečné 655 00:32:52,780 --> 00:32:58,210 ako jediný citát je zapnuté do utiekli jednoduchú úvodzovky. 656 00:32:58,210 --> 00:33:00,590 >> Tak toto je to, čo je skutočne deje, ak vás 657 00:33:00,590 --> 00:33:04,850 použiť funkciu dotazu CS50, alebo ľubovoľný počet voľných knižníc tretích strán, ktoré 658 00:33:04,850 --> 00:33:06,000 to isté. 659 00:33:06,000 --> 00:33:09,850 Nezáleží na tom, v tomto prípade, v zelenej farbe, v prípade, že používateľ zadal jednoduchú úvodzovky 660 00:33:09,850 --> 00:33:12,070 pretože dotaze funkcie, ktoré sme písali, je 661 00:33:12,070 --> 00:33:15,120 pridáme spätné lomítka pred každá taká nebezpečná citácie. 662 00:33:15,120 --> 00:33:17,360 Tak to nie je, v Skutočnosť, bude dôveryhodne. 663 00:33:17,360 --> 00:33:20,910 Je to ako písať v blázon hľadá Heslo, ktoré je, samozrejme, nebude 664 00:33:20,910 --> 00:33:23,490 byť aktuálne heslo skroob ľudovej. 665 00:33:23,490 --> 00:33:28,260 >> Takže stánok s jedlom pre CS50 je jedna, úplne vždy niečo 666 00:33:28,260 --> 00:33:30,860 ako funkcia dotazu CS50 je alebo základná knižnica, 667 00:33:30,860 --> 00:33:32,560 ktorý sa stane byť nazývaný CHOP. 668 00:33:32,560 --> 00:33:35,880 Ale nikdy, nikdy, nikdy neurobil kód, ako je tento 669 00:33:35,880 --> 00:33:39,472 bez úniku alebo čistenie ako sa hovorí vaše vstupy. 670 00:33:39,472 --> 00:33:42,430 A budete v určitom okamihu pravdepodobne narazíte na nejaké webové stránky, ako je tento. 671 00:33:42,430 --> 00:33:46,060 V skutočnosti sa zdá, že to tak je ako na letiskách a hotely v miestach 672 00:33:46,060 --> 00:33:48,880 kde majú bezplatné Wi-Fi pripojenie k internetu prístup, ktorý musíte sa prihlásiť do, 673 00:33:48,880 --> 00:33:51,010 Tieto webové stránky sú vždy strašne vykonaná. 674 00:33:51,010 --> 00:33:55,680 A tak trochu zábavy doma cvičenie, Nie je na nekalé účely alebo viac 675 00:33:55,680 --> 00:33:59,170 zo zábavy na ceste cvičenie, je jednoducho typ 676 00:33:59,170 --> 00:34:02,850 apostrof, jeden citát, do formy na určitej webovej stránke 677 00:34:02,850 --> 00:34:03,810 a uvidíte, čo sa stane. 678 00:34:03,810 --> 00:34:06,660 A ak server havaruje, alebo dáva ste nejaké chybové hlásenie, 679 00:34:06,660 --> 00:34:09,690 to môže byť to, že veľmi dobre niekto Nepredpokladá sa to. 680 00:34:09,690 --> 00:34:15,239 A potom by ste mali upozorniť správne orgány a pokračovať ďalej. 681 00:34:15,239 --> 00:34:20,843 >> Takže teraz vy by snáď rozumieť trochu viac geek humor tu. 682 00:34:20,843 --> 00:34:24,120 >> [SMIECH] 683 00:34:24,120 --> 00:34:27,571 684 00:34:27,571 --> 00:34:29,070 DAVID Malan: Viete, že ste geek. 685 00:34:29,070 --> 00:34:30,944 Pre budúci niekoľko rokov, budete pamätať 686 00:34:30,944 --> 00:34:33,520 kto málo Bobby Tables je kvôli tejto karikatúre tu. 687 00:34:33,520 --> 00:34:36,760 Takže majte na pamäti, že keď sme prepnutie kontextu naposled 688 00:34:36,760 --> 00:34:38,770 dnes JavaScript. 689 00:34:38,770 --> 00:34:41,600 Strávili sme pomerne málo čas na syntax PHP 690 00:34:41,600 --> 00:34:43,440 pretože je to v skutočnosti Veľmi podobný C. 691 00:34:43,440 --> 00:34:47,300 A dosť dobre, JavaScript taky je super podobná syntax C je 692 00:34:47,300 --> 00:34:49,639 rovnako ako uvidíme v len na chvíľu, a ako sme to 693 00:34:49,639 --> 00:34:51,205 pozri v tomto týždni predovšetkým. 694 00:34:51,205 --> 00:34:54,080 Čo môžete robiť s týmto jazykom, aj keď, je všetko silnejší, 695 00:34:54,080 --> 00:34:55,790 najmä s API. 696 00:34:55,790 --> 00:34:56,960 >> Ale najprv rýchlo tour. 697 00:34:56,960 --> 00:35:00,450 Takže človek, v JavaScripte, je tu nie je hlavnou funkciou, čo je pekné. 698 00:35:00,450 --> 00:35:02,650 Rovnako ako u PHP, stačí napísať kód. 699 00:35:02,650 --> 00:35:04,310 Podmienky vyzerať takto. 700 00:35:04,310 --> 00:35:07,100 A logické výrazy by mohol vyzerať takto alebo takto. 701 00:35:07,100 --> 00:35:09,530 Prepínače existujú, a môže vyzerať napríklad takto. 702 00:35:09,530 --> 00:35:10,970 Štyri pútka vyzerať takto. 703 00:35:10,970 --> 00:35:12,390 While vyzerať takto. 704 00:35:12,390 --> 00:35:14,160 Páči chvíle vyzerať takto. 705 00:35:14,160 --> 00:35:16,850 A potom sa pole vyzerať Táto, veľmi podobné PHP. 706 00:35:16,850 --> 00:35:20,740 Povšimnime si však, že v JavaScripte vás deklarujete premennú nie s dolárom 707 00:35:20,740 --> 00:35:25,190 podpísať, a to s typom dát, ale doslova tým VaR pre premenné pred ním. 708 00:35:25,190 --> 00:35:27,900 To tiež je voľne zadali v tom, že má druhy, 709 00:35:27,900 --> 00:35:29,729 ale nie je explicitne deklarovať. 710 00:35:29,729 --> 00:35:31,520 A potom reťazec, pre inštancie, môže vyzerať 711 00:35:31,520 --> 00:35:34,350 takto, že reťazec volaná s v tomto prípade. 712 00:35:34,350 --> 00:35:35,410 A potom objekt. 713 00:35:35,410 --> 00:35:37,010 A títo uvidíme viac, ako dlho. 714 00:35:37,010 --> 00:35:41,470 A objekt je pravdepodobne jedným z najčastejšie vidieť dátové štruktúry 715 00:35:41,470 --> 00:35:44,050 v JavaScripte na základe Program, pretože umožňuje 716 00:35:44,050 --> 00:35:46,680 môžete priradiť ľubovoľný Kľúčové páry hodnota len 717 00:35:46,680 --> 00:35:51,240 ako PHP asociatívne pole a rovnako ako svoje vlastné hash tabuľky 718 00:35:51,240 --> 00:35:54,042 alebo vyskúšať, ako sme zaviedli pár týždňov späť. 719 00:35:54,042 --> 00:35:56,250 Takže poďme sa pozrieť, čo vlastne môžeme robiť s jazykom JavaScript. 720 00:35:56,250 --> 00:35:59,410 A hlavne, je to Zoznam prác funkcií 721 00:35:59,410 --> 00:36:02,300 že prehliadače majú, že nám umožňujú pripojiť JavaScript 722 00:36:02,300 --> 00:36:05,470 na webových stránkach v nasledujúcim spôsobom. 723 00:36:05,470 --> 00:36:09,340 JavaScript je často používaný ako na strane klienta skriptovací jazyk. 724 00:36:09,340 --> 00:36:10,130 To nie je vybudovaný. 725 00:36:10,130 --> 00:36:11,370 To tiež je interpretovaný. 726 00:36:11,370 --> 00:36:15,740 Ale na rozdiel od PHP, ktorá bola spustená na serveri, na webový server, 727 00:36:15,740 --> 00:36:18,220 alebo hlboko vnútri klienti, JavaScript 728 00:36:18,220 --> 00:36:22,190 sa líši v tom, že zvyčajne beží v prehliadači. 729 00:36:22,190 --> 00:36:26,060 >> Takže akýkoľvek kód JavaScript začnete písať pre pset 8 alebo konečného projektu, 730 00:36:26,060 --> 00:36:29,890 alebo v reálnom svete sa všeobecne deje musia byť uložené na serveri, absolútne 731 00:36:29,890 --> 00:36:33,110 v dot HTML alebo bodka JS pre súbor JavaScript. 732 00:36:33,110 --> 00:36:35,770 Ale prehliadač sa deje na prevzatie, ktorý JavaScript 733 00:36:35,770 --> 00:36:39,530 Kód na vlastnú inštanciu Chrome, alebo IE alebo Firefox, alebo čokoľvek iného. 734 00:36:39,530 --> 00:36:43,870 A kód je vlastne dostane vykonaný vnútri svojej vlastnej prehliadači. 735 00:36:43,870 --> 00:36:46,560 Len aby to reálnejšie, poďme sa pozrieť na túto konkrétnu podobe. 736 00:36:46,560 --> 00:36:50,120 >> Nemáme tušenie, čo tento kód robí bez skutočne čítať cez to. 737 00:36:50,120 --> 00:36:52,670 Ale nechaj ma ísť na Facebook.com bez prihlásenia. 738 00:36:52,670 --> 00:37:00,440 Nechaj ma ísť do Skontrolujte Element a ísť do, povedzme, Sieť a obnovte stránku. 739 00:37:00,440 --> 00:37:04,150 A budeme see-- dovoľte mi, aby som posunúť znova načítať Page získať všetky požiadavky na nové. 740 00:37:04,150 --> 00:37:08,850 A prvý súbor vidím CSS, CSS. 741 00:37:08,850 --> 00:37:10,880 Tu je prvá JavaScript súbor, a ja som 742 00:37:10,880 --> 00:37:14,600 žiadny nápad, čo to robí, ale tu Je to jedna z kódu JavaScript 743 00:37:14,600 --> 00:37:16,180 ktorý poháňa Facebook. 744 00:37:16,180 --> 00:37:18,400 Nie je to ani v skutočnosti, že odhaľujúce priblížiť. 745 00:37:18,400 --> 00:37:20,260 Je to stále rovnako nezmyselné. 746 00:37:20,260 --> 00:37:24,341 >> Ale uvidíte aj dole, je tu ešte viac týchto súborov JavaScript. 747 00:37:24,341 --> 00:37:24,840 Jejda. 748 00:37:24,840 --> 00:37:25,440 To je ping. 749 00:37:25,440 --> 00:37:28,550 Poďme trochu dole Ďalej, ďalej ďalšie. 750 00:37:28,550 --> 00:37:29,894 Je tu ešte jedna. 751 00:37:29,894 --> 00:37:31,238 Je tu ešte jedna. 752 00:37:31,238 --> 00:37:31,880 Je tu ešte jedna. 753 00:37:31,880 --> 00:37:35,820 >> Takže aj keď Facebook, za scény, je napísaný v časti v PHP 754 00:37:35,820 --> 00:37:39,100 Facebook a vlastné verzie tejto zmluvy, je tu obrovské množstvo JavaScript. 755 00:37:39,100 --> 00:37:41,330 V skutočnosti, niektoré z chatovanie robíte na Facebooku, 756 00:37:41,330 --> 00:37:45,520 niektoré aktualizácie inline časovej osi že sa stalo v reálnom čase, to všetko 757 00:37:45,520 --> 00:37:47,944 je riadený JavaScript. 758 00:37:47,944 --> 00:37:48,444 Jo? 759 00:37:48,444 --> 00:37:50,235 >> Divákov: Nie som si istý, ak je to Facebook, 760 00:37:50,235 --> 00:37:53,624 ale myslel som si, že Facebook vyvinutý vlastné in-house kód jazyka? 761 00:37:53,624 --> 00:37:54,540 DAVID Malan: Robili. 762 00:37:54,540 --> 00:37:58,110 Takže to je dôvod, prečo hovorím rozptyl PHP s názvom Hip Hop, že v skutočnosti 763 00:37:58,110 --> 00:38:03,440 pridané funkcie až tak, že pri Mark najprv realizovaný Facebook, 764 00:38:03,440 --> 00:38:04,710 to bolo napísaný v PHP. 765 00:38:04,710 --> 00:38:07,370 A to tak nejako zostalo druh čelné jazyka 766 00:38:07,370 --> 00:38:09,030 že používajú oveľa ich kódovania, ale to 767 00:38:09,030 --> 00:38:11,870 nebol jazyk, ktorý je váhy obzvlášť dobre na miliardy 768 00:38:11,870 --> 00:38:12,630 ľudí. 769 00:38:12,630 --> 00:38:15,300 A tak sa pridali ich vlastné zlepšenie v zákulisí. 770 00:38:15,300 --> 00:38:17,049 A používať ľubovoľný počet ďalších jazykov 771 00:38:17,049 --> 00:38:19,170 pre rôzne kusy ich infraštruktúra. 772 00:38:19,170 --> 00:38:24,080 Takže áno, je to rozptyl to, čo dnes poznáme ako PHP. 773 00:38:24,080 --> 00:38:26,610 >> Takže poďme sa pozrieť na pár príkladov 774 00:38:26,610 --> 00:38:28,890 o tom, ako môžeme tu použiť JavaScript. 775 00:38:28,890 --> 00:38:32,530 V dnešnom zdrojového kódu, máme banda súborov, z ktorých prvá, 776 00:38:32,530 --> 00:38:34,090 poďme tzv DOM nula. 777 00:38:34,090 --> 00:38:36,770 Takže DOM nula vyzerá nasledovne. 778 00:38:36,770 --> 00:38:40,730 Nechaj ma ísť do tohto adresára a otvoriť domzero.html, 779 00:38:40,730 --> 00:38:44,970 v hornej časti, ktorý má typ doc vyhlásenie s tým, tu je HTML 5. 780 00:38:44,970 --> 00:38:46,440 A teraz tu je tag HTML. 781 00:38:46,440 --> 00:38:47,540 Tu je tag hlava. 782 00:38:47,540 --> 00:38:49,210 A tu je to, čo je nové dnes. 783 00:38:49,210 --> 00:38:52,620 >> Teraz máme tag script Vnútri hlavy stránky. 784 00:38:52,620 --> 00:38:55,290 A to zrejme robí veľmi málo, ale oznámenia 785 00:38:55,290 --> 00:38:58,410 že som definované skript JavaScript. 786 00:38:58,410 --> 00:39:01,050 A ako je stranou, pretože táto Je mylná predstava, 787 00:39:01,050 --> 00:39:05,220 JavaScript nemá nič čo robiť s Java, jazyk 788 00:39:05,220 --> 00:39:08,010 že niektorí z vás by mohlo naučili v APC. 789 00:39:08,010 --> 00:39:10,480 Bolo to skôr o marketing vec než čokoľvek iné, 790 00:39:10,480 --> 00:39:12,980 ísť na coattails Java rokov. 791 00:39:12,980 --> 00:39:17,300 Ale JavaScript, nemá nič spoločného s Java, len podobne, a protivne, 792 00:39:17,300 --> 00:39:18,480 zmätene menovaný. 793 00:39:18,480 --> 00:39:21,890 >> Tak tu je, ako deklarovať funkciu v JavaScripte, doslova hovoria funkcie, 794 00:39:21,890 --> 00:39:24,556 potom názov funkcie, potom všetky argumenty, že to môže trvať, 795 00:39:24,556 --> 00:39:25,530 rovnako ako v PHP. 796 00:39:25,530 --> 00:39:28,990 Ukázalo sa, že v JavaScripte, jeden z najviac otravné funkcie, ktoré existujú, je Alert. 797 00:39:28,990 --> 00:39:31,392 To je trochu okno, ktoré vyskočí a upozorní vás, 798 00:39:31,392 --> 00:39:32,600 na časti informácie. 799 00:39:32,600 --> 00:39:33,766 To je všeobecne odsudzovaná. 800 00:39:33,766 --> 00:39:35,980 Ale budeme používať ako naše Prvé cvičenie tu. 801 00:39:35,980 --> 00:39:37,900 >> Všimnite si niekoľko funkcií JavaScript. 802 00:39:37,900 --> 00:39:41,524 Jednotlivé citácie a dvojité úvodzovky nie sú v skutočnosti už je jedno. 803 00:39:41,524 --> 00:39:43,690 Jednotlivé citácie a double citácie môžu byť vymenené, 804 00:39:43,690 --> 00:39:46,220 zatiaľ čo v C, budete musieť použiť úvodzovky pre reťazca, 805 00:39:46,220 --> 00:39:48,150 a máte dve samostatné citácie pre znakov. 806 00:39:48,150 --> 00:39:51,150 Vo svete JavaScript veľa ľudí, väčšina ľudí 807 00:39:51,150 --> 00:39:54,970 použiť jednoduché úvodzovky okolo reťazca len preto, že je to štýlová záležitosť. 808 00:39:54,970 --> 00:39:58,330 Ale čo je operátor a tu, ktoré sme ešte nevideli? 809 00:39:58,330 --> 00:39:59,836 >> Divákov: reťazenie. 810 00:39:59,836 --> 00:40:00,960 DAVID Malan: reťazenie. 811 00:40:00,960 --> 00:40:02,450 Takže C nemá ani to. 812 00:40:02,450 --> 00:40:04,820 PHP má operátor bodky, ktorý to robí. 813 00:40:04,820 --> 00:40:09,710 JavaScript má operátor plus, ktorý zmätene je rovnako ako Java. 814 00:40:09,710 --> 00:40:11,440 Tak čo sa to tu deje? 815 00:40:11,440 --> 00:40:14,260 >> Tak tu je miesto, kde základné chápanie tohto obrázku 816 00:40:14,260 --> 00:40:17,010 sme vyhodil pár dni vstúpi do hry. 817 00:40:17,010 --> 00:40:19,620 Pamätám si, keď sme mali jednoduchý verzia HTML page-- 818 00:40:19,620 --> 00:40:20,830 to práve povedal, hello world. 819 00:40:20,830 --> 00:40:22,770 A potom sme nakreslil strom doprava, ktorá 820 00:40:22,770 --> 00:40:27,320 mal veľa obdĺžnikov a liniek ich pripojenie ako rodokmeň. 821 00:40:27,320 --> 00:40:30,820 Tak to je takzvaný DOM alebo Document Object Model. 822 00:40:30,820 --> 00:40:36,759 A ukázalo sa, že máte prístup obdĺžniky v tomto strome so syntaxou 823 00:40:36,759 --> 00:40:37,550 ako nasledujúce. 824 00:40:37,550 --> 00:40:41,370 Doslova hovorí dokument, ktorý je špeciálna globálne premenné v JavaScripte 825 00:40:41,370 --> 00:40:45,890 program, ktorý má funkciu s ním spojené, ktoré môžete pristupovať 826 00:40:45,890 --> 00:40:50,280 podobne ako struct, ale jednoducho povedať, bodka a názov funkcie je, 827 00:40:50,280 --> 00:40:52,390 dostať element podľa ID. 828 00:40:52,390 --> 00:40:55,460 >> Prvok Chcem sa dostať je zrejme citovať koniec citátu meno. 829 00:40:55,460 --> 00:40:57,150 A potom chcem, aby si jeho hodnotu. 830 00:40:57,150 --> 00:40:58,330 Teraz sa dostávame pred seba. 831 00:40:58,330 --> 00:41:00,038 Nie som si ani istý, čo to všetko je. 832 00:41:00,038 --> 00:41:03,000 Poďme rýchlo vpred do formátu HTML strana, ktorá je super jednoduché. 833 00:41:03,000 --> 00:41:05,370 >> Všimnite si, že som definované tvorí tu dole. 834 00:41:05,370 --> 00:41:07,940 Všimnite si, dal som to jedinečný ID, aj keď sme sa nepoužíva 835 00:41:07,940 --> 00:41:08,870 tento atribút pred. 836 00:41:08,870 --> 00:41:11,300 Ale to existuje v HTML. 837 00:41:11,300 --> 00:41:15,570 Môžete jednoznačne identifikovať nejaký kus HTML s identifikátorom, ako je tento. 838 00:41:15,570 --> 00:41:19,880 >> Upozornenie teraz tohle-- dopadá HTML podporuje, na tomto zozname na bielizeň 839 00:41:19,880 --> 00:41:22,490 pred chvíľou, celý banda obsluhy udalostí. 840 00:41:22,490 --> 00:41:25,060 A to handler udalosti hovorí na odoslať. 841 00:41:25,060 --> 00:41:28,730 V užívateľskom podania tejto formulár, zavolajte nasledujúci kód. 842 00:41:28,730 --> 00:41:31,360 A kód, ktorý sa deje byť nazývaný ani popravený 843 00:41:31,360 --> 00:41:35,260 je presne to, gréckej Funkcie a následne return false. 844 00:41:35,260 --> 00:41:37,360 Všetko ostatné by byť celkom povedome. 845 00:41:37,360 --> 00:41:42,050 >> Tu je vstupná typu textu, ktorého ID, v tomto prípade, bude meno. 846 00:41:42,050 --> 00:41:45,430 Nemáme aktuálny atribút name tento time-- a tlačidlo odoslať. 847 00:41:45,430 --> 00:41:48,330 Takže výsledná stránka vyzerá takto. 848 00:41:48,330 --> 00:41:52,890 A výsledné správanie, uvidíte, vyzerá takto. 849 00:41:52,890 --> 00:41:56,940 Stránky, na miestnych hostiteľov hovorí, ahoj David, sotva esteticky 850 00:41:56,940 --> 00:41:58,340 spôsob, ako pozdraviť užívateľa. 851 00:41:58,340 --> 00:41:59,950 Ale čo to vlastne deje? 852 00:41:59,950 --> 00:42:01,360 >> Dobre zvážte, čo to je. 853 00:42:01,360 --> 00:42:02,310 Jedná sa o textové pole. 854 00:42:02,310 --> 00:42:04,635 A podľa HTML tu, som ho dal 855 00:42:04,635 --> 00:42:07,350 jedinečný identifikátor volal quote unquote názov. 856 00:42:07,350 --> 00:42:09,770 Medzitým, čo som povedal, keď užívateľ odošle tento formulár 857 00:42:09,770 --> 00:42:13,820 tým, že udrie Enter alebo kliknutím na tlačidlo Odoslať tlačidlo, volanie funkcie s názvom Greet 858 00:42:13,820 --> 00:42:15,410 a potom sa vrátiť na FALSE. 859 00:42:15,410 --> 00:42:16,870 Pozrime sa na tie, ktoré v opačnom smere. 860 00:42:16,870 --> 00:42:20,590 Všimnite si, keď som kliknite na tlačidlo Odoslať, URL tejto stránky sa nemení. 861 00:42:20,590 --> 00:42:22,420 Ikona prehliadača nezačal točiť. 862 00:42:22,420 --> 00:42:27,050 Nechcel som nikam, a to doslova, pretože som povedal, vráti False. 863 00:42:27,050 --> 00:42:31,534 Return false skraty alebo zastavuje predvolené správanie formulára. 864 00:42:31,534 --> 00:42:33,700 Tak, že nás potom necháva táto posledná otázka. 865 00:42:33,700 --> 00:42:34,764 Čo Greet robiť? 866 00:42:34,764 --> 00:42:36,680 No, zrejme Pozdravte volá funkciu nazvanú 867 00:42:36,680 --> 00:42:39,250 Alert, prechádza v jednom dlhé argument, že je to 868 00:42:39,250 --> 00:42:43,950 Výsledkom zreťazenie spoločne banda podreťazca, ahoj čiarka priestor, 869 00:42:43,950 --> 00:42:45,810 potom, čo to vráti. 870 00:42:45,810 --> 00:42:51,490 Takže dokument je ako globálny Premenná tohto koreňa tohto stromu, 871 00:42:51,490 --> 00:42:55,560 volanie špeciálne funkcie, inak teraz známy ako metóda. 872 00:42:55,560 --> 00:42:57,650 Funkcia, ktorá je vnútri premenná 873 00:42:57,650 --> 00:42:59,640 nazýva metóda namiesto funkcie. 874 00:42:59,640 --> 00:43:01,570 >> Tak sa element podľa ID. 875 00:43:01,570 --> 00:43:03,940 Čo element robíte chcú získať jeho ID? 876 00:43:03,940 --> 00:43:06,970 Citáty koniec citátu meno a potom konkrétne hodnotu. 877 00:43:06,970 --> 00:43:12,000 Takže inými slovami, že kód jednoducho nachádza textové pole, ktorého ID je názov 878 00:43:12,000 --> 00:43:13,380 a potom dostane jeho hodnotu. 879 00:43:13,380 --> 00:43:16,460 Takže ak by som mal zmeniť a hovoria Davin miesto Dávida, 880 00:43:16,460 --> 00:43:20,670 a kliknite na tlačidlo Odoslať teraz majú pozdrav pre Davin. 881 00:43:20,670 --> 00:43:22,890 >> Dobre, takže všetko v poriadku a dobré. 882 00:43:22,890 --> 00:43:25,480 Ale uvidíme, či môžeme urobiť to trochu čistejšie, pretože len 883 00:43:25,480 --> 00:43:28,190 písanie kódu, ako je to všeobecne bude odsudzovaný. 884 00:43:28,190 --> 00:43:30,060 To bude vyzerať desivejšie. 885 00:43:30,060 --> 00:43:32,330 Ale to, čo je prvá Rozdiel, aby ste si tu 886 00:43:32,330 --> 00:43:35,970 V tejto verzii okrem meno mení na DOM jeden? 887 00:43:35,970 --> 00:43:41,110 Čo štrukturálne vyzerá inak o tom v porovnaní s ostatnými? 888 00:43:41,110 --> 00:43:41,932 Jo? 889 00:43:41,932 --> 00:43:43,890 Divákov: Je forma na Horná časť skriptu teraz? 890 00:43:43,890 --> 00:43:46,570 DAVID Malan: Áno, formulár je na vrchole scenáre z nejakého dôvodu zvedavý. 891 00:43:46,570 --> 00:43:48,736 Takže to je prvá vec, že vyskočí na mňa tiež. 892 00:43:48,736 --> 00:43:50,990 A našťastie aspoň táto časť je totožná. 893 00:43:50,990 --> 00:43:53,470 Takže jediná vec, ktorá sa zdá byť iný, je to. 894 00:43:53,470 --> 00:43:55,296 >> Tak tu je to, čo je pekné o JavaScriptu 2. 895 00:43:55,296 --> 00:43:57,420 A to je ťažké pochopiť na prvý pohľad, 896 00:43:57,420 --> 00:44:00,670 najmä pri záverečných prác ak pozeráte sa na ukážkový kód on-line, 897 00:44:00,670 --> 00:44:04,200 ale to sa scvrkáva na niektoré základné syntaktické funkcie. 898 00:44:04,200 --> 00:44:06,230 Tu opäť je, že globálna premenná dokument. 899 00:44:06,230 --> 00:44:09,540 Tu opäť je, že metóda alebo funkcie ktorý hovorí, že si prvok podľa ID. 900 00:44:09,540 --> 00:44:11,570 Tentoraz chcem získať ID s názvom demo. 901 00:44:11,570 --> 00:44:12,490 Kde je to? 902 00:44:12,490 --> 00:44:15,400 To je zrejme pravdu tu, formulár sám. 903 00:44:15,400 --> 00:44:20,010 >> A teraz si všimnite, že vraj keď som vrátiť sa, že uzol zo stromu, ktorý 904 00:44:20,010 --> 00:44:22,940 predstavuje formulár sama o sebe, nie je textové pole, 905 00:44:22,940 --> 00:44:26,970 Ukazuje sa, že tvar, ktorý uzol alebo obdĺžnik zo stromu, 906 00:44:26,970 --> 00:44:30,450 má všetko, čo budeme nazývať vlastnosť, veľmi, veľmi, veľmi podobné 907 00:44:30,450 --> 00:44:35,390 duchom struct v C Je to len dátový člen vnútri tohto obdĺžnika. 908 00:44:35,390 --> 00:44:38,300 >> Tak som dostal formulár tu, a ja pripojenie, 909 00:44:38,300 --> 00:44:44,650 alebo som priradenie k jeho On Odoslať handler alebo skôr na Odoslať majetku 910 00:44:44,650 --> 00:44:45,740 Nasledujúce funkcie. 911 00:44:45,740 --> 00:44:49,000 A to je, zďaleka, najbláznivejšie vec tak ďaleko syntakticky. 912 00:44:49,000 --> 00:44:53,610 Ukazuje sa, že v JavaScripte a PHP, a úprimne povedané, keď na to príde v C, 913 00:44:53,610 --> 00:44:58,990 aj keď to neurobíte, môžete pridať bezmennej, anonymný, alebo AKA lambda 914 00:44:58,990 --> 00:45:03,000 funkcie, ktoré nemajú mená ale môže byť nazývaný však. 915 00:45:03,000 --> 00:45:07,050 >> Takže to, čo tu robím je, že som priradenie Tento On Odoslať majetok, ktorý 916 00:45:07,050 --> 00:45:14,330 je vnútri tohto uzla môjho stromu DOM, funkcie, ukazovateľ na funkciu, ak chcete. 917 00:45:14,330 --> 00:45:16,310 Táto funkcia nemá žiadny meno, ale to neznamená, 918 00:45:16,310 --> 00:45:19,110 nevadí, pretože uvidíme vo chvíli, ako to nazvať. 919 00:45:19,110 --> 00:45:21,780 Ak je táto funkcia sa nazýva, tento kód dostane popravený, potom 920 00:45:21,780 --> 00:45:24,210 false je vrátená rovnako ako predtým. 921 00:45:24,210 --> 00:45:25,800 >> Povšimnime si ale, čo som urobil. 922 00:45:25,800 --> 00:45:27,830 V tomto bode príbeh, mám formu. 923 00:45:27,830 --> 00:45:30,190 Má to jedinečný identifikátor s názvom demo. 924 00:45:30,190 --> 00:45:33,740 Tu dole, mám tag script ktorý vykoná nasledujúci kód. 925 00:45:33,740 --> 00:45:37,720 To sa viaže k tomuto uzlu v strom je to na Odoslať 926 00:45:37,720 --> 00:45:40,260 Vlastnosť táto funkcia tu. 927 00:45:40,260 --> 00:45:44,310 A práve od prírody, ako prehliadača práce, keď som teraz na tlačidlo Odoslať alebo stlačte klávesu Enter, 928 00:45:44,310 --> 00:45:45,889 že funkcia bude dorovnaný. 929 00:45:45,889 --> 00:45:48,680 Nepotrebuje meno pretože kto sakra zaujíma, ako sa to volalo. 930 00:45:48,680 --> 00:45:52,540 Jediný okamih, kedy to niekedy dostanem volal je, keď odošlite formulár. 931 00:45:52,540 --> 00:45:55,130 Nie je potrebné pre mňa, človek developer, 932 00:45:55,130 --> 00:45:57,330 skutočne volať kdekoľvek inde. 933 00:45:57,330 --> 00:46:00,720 >> Teraz len ako ukážku, ako v prípade, že boli nevadí dosť ohýbanie, 934 00:46:00,720 --> 00:46:03,330 môžeme dokonca to vyzerajú skôr mystický použitie 935 00:46:03,330 --> 00:46:05,850 Super populárnej knižnica s názvom jQuery. 936 00:46:05,850 --> 00:46:08,760 V skutočnosti jQuery a JavaScript často sa zjednotil. 937 00:46:08,760 --> 00:46:12,790 A čo budeme robiť, v strede je začiatok pomocou tohto jazyka a tieto knižnice 938 00:46:12,790 --> 00:46:16,030 stavať stále asynchrónne a dynamické aplikácie 939 00:46:16,030 --> 00:46:18,950 ako mapu dostať aplikácie, aplikácie 940 00:46:18,950 --> 00:46:22,360 že aktualizovať webové stránky v reálnom čas, podobne ako Facebook alebo Gchat 941 00:46:22,360 --> 00:46:27,130 robiť, a už obmedziť na biť Odoslať pomocou GET alebo len poštou 942 00:46:27,130 --> 00:46:27,630 sám. 943 00:46:27,630 --> 00:46:29,055 Tak som vás vidieť v stredu. 944 00:46:29,055 --> 00:46:31,805 945 00:46:31,805 --> 00:46:35,550 >> [Prehrávanie hudby] 946 00:46:35,550 --> 00:48:09,728