1 00:00:00,000 --> 00:00:01,940 >> [Přehrávání 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čátek týdne devět. 4 00:00:14,620 --> 00:00:18,240 A to, co jsme si mysleli, že tomu dnes není zavřít pouze kapitola minulého týdne 5 00:00:18,240 --> 00:00:22,670 materiál, kde jsme se zaměřili na serveru strana webové programování s PHP a SQL, 6 00:00:22,670 --> 00:00:23,549 některé databáze věci. 7 00:00:23,549 --> 00:00:25,590 Promluvíme si o trochu bezpečnost dnes a pak 8 00:00:25,590 --> 00:00:29,590 Přechod na straně klienta programování jazyk známý jako JavaScript. 9 00:00:29,590 --> 00:00:31,330 Ale nejdřív, někteří vykoupení. 10 00:00:31,330 --> 00:00:35,030 >> Možná si vzpomenete, že na Středa, jsem se vydal 11 00:00:35,030 --> 00:00:37,550 psát webové stránky, které se na vstupu uživatele 12 00:00:37,550 --> 00:00:41,120 pomocí HTML formulářů, které pak uloží že jména uživatelského vstupního, telefon 13 00:00:41,120 --> 00:00:43,124 čísla a mobil nosiče v databázi. 14 00:00:43,124 --> 00:00:45,540 A pak jsem měl trochu příkazu linka skript napsaný v PHP 15 00:00:45,540 --> 00:00:47,956 který měl opakovat nad řádky v databázi 16 00:00:47,956 --> 00:00:49,400 a posílat textové zprávy. 17 00:00:49,400 --> 00:00:53,870 Navzdory několika, několika pokusech jsme nedostal tu práci do konce. 18 00:00:53,870 --> 00:00:57,820 >> Tak jsem strávil celý tento týden pracovat Na tento kód se k nám dostat přes bod 19 00:00:57,820 --> 00:01:01,220 , kde jsme skončili, přičemž všechny Dostal jsem na konci ve středu 20 00:01:01,220 --> 00:01:05,500 byl tento text zprávy od Margo, jak jsem se snažil, 21 00:01:05,500 --> 00:01:09,940 následuje textové zprávy z jiného spolužák, Máte tento Davida. 22 00:01:09,940 --> 00:01:14,030 Následoval tento jeden, úžasně povzbuzující. 23 00:01:14,030 --> 00:01:15,840 Držel dál, velmi povzbudivé. 24 00:01:15,840 --> 00:01:20,960 Málem jsem ho, dokud then-- a to je poznámka jsme skončili ve středu. 25 00:01:20,960 --> 00:01:25,850 A pak vlastně možná moje oblíbená, O chvíli později, to přiš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 jsme se to napravit s rychlým podívat se na to, co jsem udělal od té doby. 28 00:01:31,080 --> 00:01:35,440 Takže vše, co tohoto kódu je k dispozici on-line z minulého týdne, týden osm, 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 jsem prošel, a já jsem vlastně uklidil věci trochu. 31 00:01:39,425 --> 00:01:42,080 Představil jsem pár jiných vlastnosti SQL databáze. 32 00:01:42,080 --> 00:01:45,300 Například, spíše než jen aby dopravce var char 33 00:01:45,300 --> 00:01:47,310 jako já, že jsem to udělal za běhu minulý týden. 34 00:01:47,310 --> 00:01:49,820 Místo toho jsem definoval to jako co se nazývá enum. 35 00:01:49,820 --> 00:01:53,310 >> A někteří z vás možná viděli toto jak jsme zkoumali C. Enum je vlastně 36 00:01:53,310 --> 00:01:56,820 rysem C, kde si můžete vyjmenovat spoustu konstant 37 00:01:56,820 --> 00:01:59,640 a přiřadit je automatické hodnoty, jako jeden, dva, tři, čtyři 38 00:01:59,640 --> 00:02:01,330 aniž by bylo nutné čísel pevný kód. 39 00:02:01,330 --> 00:02:04,780 Takže SQL podporuje stejné, přičemž v případě Máte databázové pole, že jen vy 40 00:02:04,780 --> 00:02:09,389 chtějí, aby se na jedné z konečných hodnoty, můžete doslova specifikovat 41 00:02:09,389 --> 00:02:13,120 jak jsem udělal tam pro čtyři populární mobil dopravci z USA. 42 00:02:13,120 --> 00:02:13,819 >> Tak jsem to udělal. 43 00:02:13,819 --> 00:02:16,610 A já jsem udělal řadu změn, jako no, z nichž nejvýznamnější 44 00:02:16,610 --> 00:02:20,090 bylo, aby se e-mail v práci, protože odvolání, že tento program se spoléhal na které 45 00:02:20,090 --> 00:02:23,470 obecně nazýván email SMS brána, která je právě 46 00:02:23,470 --> 00:02:27,670 ozdobný způsob, jak říkat, že Verizon, a AT & T, a další lidé podporovat server, 47 00:02:27,670 --> 00:02:30,740 přičemž v případě, že obdrží e-mail, že jej převede na SMS 48 00:02:30,740 --> 00:02:33,290 a rozesílá text zprávu do jiného telefonu. 49 00:02:33,290 --> 00:02:37,010 Takže jestli jsem to udělal správně, Zde je nová a lepší forma 50 00:02:37,010 --> 00:02:39,259 která se bude mluvit Nový a vylepšený kód, který 51 00:02:39,259 --> 00:02:40,300 můžete hrát s on-line. 52 00:02:40,300 --> 00:02:44,140 A doufejme, aby můj telefon pípnutí za chvíli. 53 00:02:44,140 --> 00:02:47,240 >> Takže nejprve, budu psát v mém jménu. 54 00:02:47,240 --> 00:02:51,400 Za druhé, já nejdu aby to tentokrát. 55 00:02:51,400 --> 00:02:53,920 Chystám se do Zkontrolujte prvek. 56 00:02:53,920 --> 00:02:56,710 A to je jen maličkost, tak se mi nelíbí 57 00:02:56,710 --> 00:02:59,250 vytvořit hodiny postprodukci pracovat jako jsem to udělal minule. 58 00:02:59,250 --> 00:03:02,300 Tam je nyní moje telefonní číslo. 59 00:03:02,300 --> 00:03:03,560 >> Budu vybrat Verizon. 60 00:03:03,560 --> 00:03:10,260 A tady, pojďme zapnout tento mikrofon tady, a jejich cílem je to na můj telefon zde. 61 00:03:10,260 --> 00:03:13,130 Jdu na tlačítko Registrovat, které by snad 62 00:03:13,130 --> 00:03:14,530 vložit do databáze. 63 00:03:14,530 --> 00:03:16,780 Teď budu chodit do program příkazové řádky, který 64 00:03:16,780 --> 00:03:20,825 odvolání bylo nazýváno tečka lomítko text, a přes prsty. 65 00:03:20,825 --> 00:03:24,092 66 00:03:24,092 --> 00:03:26,527 Jdeme 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 mnohem zábavnější, než tohle-- je to zábava, samozřejmě, když jsem si do ní. 71 00:03:34,940 --> 00:03:38,004 Ale je to větší zábava, pomyslel jsem si, když jsme vytvořil jeden z těch filmových momentů 72 00:03:38,004 --> 00:03:40,420 kde jako něco, co ve skutečnosti špatného se stalo ve světě, 73 00:03:40,420 --> 00:03:42,860 a stejně jako všechny lidové NSA mobily začít pípat 74 00:03:42,860 --> 00:03:44,860 s textovými zprávami upozornění o této skutečnosti. 75 00:03:44,860 --> 00:03:47,026 Tak jsem si myslel, že bych zkusit znovu totéž tady, 76 00:03:47,026 --> 00:03:49,610 kdy nepoužíváte databázi, Jsem místo toho předem 77 00:03:49,610 --> 00:03:51,490 napsal program, který vypadá takto. 78 00:03:51,490 --> 00:03:53,660 >> To je index.php-- a dal jsem tento kód on-line 79 00:03:53,660 --> 00:03:56,710 jako well-- to zřejmě jen omítky form.php, 80 00:03:56,710 --> 00:04:00,990 za použití MVC stylu paradigma, které jsme mluvit podrobněji v problémové sady 81 00:04:00,990 --> 00:04:01,650 sedm. 82 00:04:01,650 --> 00:04:02,910 Tato forma je poměrně jednoduchý. 83 00:04:02,910 --> 00:04:06,634 Bude to předložit soubor s názvem here.php poštou. 84 00:04:06,634 --> 00:04:09,300 A to prý se zeptat na jméno a telefonní číslo, 85 00:04:09,300 --> 00:04:11,400 a pak pomocí takzvaných Vyberte menu, je to 86 00:04:11,400 --> 00:04:14,250 dám vám alespoň čtyři populární mobil dopravci z USA, 87 00:04:14,250 --> 00:04:17,470 a pak vám umožní efektivně docházku kliknutím zde. 88 00:04:17,470 --> 00:04:20,471 >> A tady, mezitím se chystá půjčit kódu od minule. 89 00:04:20,471 --> 00:04:22,553 A jestli si jen sbírat to, uvidíte, že tam je 90 00:04:22,553 --> 00:04:23,900 celá parta kontrolu chyb. 91 00:04:23,900 --> 00:04:26,640 Ale krása na konci, který je nejsme dnes zápis do databáze. 92 00:04:26,640 --> 00:04:29,130 Jsme držet to jednoduchý a Jen doufejme, že rozesílání 93 00:04:29,130 --> 00:04:32,190 textové zprávy pomocí funkce I napsal během posledních několika dní volání 94 00:04:32,190 --> 00:04:36,270 Text, který je ve funkcích. php, což je opět k dispozici on-line. 95 00:04:36,270 --> 00:04:38,210 >> Takže pokud byste chtěli podílet se na tohle. 96 00:04:38,210 --> 00:04:40,190 Nebudeme se ukládání nic. 97 00:04:40,190 --> 00:04:43,809 Přejděte na tuto adresu URL zde v reálném čase. 98 00:04:43,809 --> 00:04:46,850 Nekopírujte to ještě ne, ale pojďme uvidíme, jestli může mít jeden z těchto filmů 99 00:04:46,850 --> 00:04:49,830 momenty, kde každý má mobil začne pípat, doufejme, že jen 100 00:04:49,830 --> 00:04:53,580 jednou letos na rozdíl od v roce 2011 kde to šlo strašně nakřivo. 101 00:04:53,580 --> 00:04:58,910 A když jdete na tuto adresu, měli byste vidět super jednoduchý formulář 102 00:04:58,910 --> 00:05:03,884 že pokud máte jméno, mobilní telefon číslo a mobil dopravce, který 103 00:05:03,884 --> 00:05:06,175 odpovídá seznamu tam jet dopředu a vyplňte formulář. 104 00:05:06,175 --> 00:05:07,880 Ale ne hit předložit ještě ne. 105 00:05:07,880 --> 00:05:10,850 >> Formulář to bude vypadat takto. 106 00:05:10,850 --> 00:05:13,660 Nestyď se a zadejte Vaše jméno, telefonní číslo. 107 00:05:13,660 --> 00:05:17,670 OOP, někdo se děje na špici. 108 00:05:17,670 --> 00:05:18,170 To je v pořádku. 109 00:05:18,170 --> 00:05:19,340 OK, každý to vyplníte formulář. 110 00:05:19,340 --> 00:05:21,400 To by mělo fungovat na telefon, taky, jestli chcete. 111 00:05:21,400 --> 00:05:23,695 V pořádku, připravit, pozor, teď. 112 00:05:23,695 --> 00:05:24,195 Hit ZDE. 113 00:05:24,195 --> 00:05:27,275 114 00:05:27,275 --> 00:05:27,775 Co je? 115 00:05:27,775 --> 00:05:31,140 116 00:05:31,140 --> 00:05:31,640 Ne. 117 00:05:31,640 --> 00:05:34,410 118 00:05:34,410 --> 00:05:40,250 Přísahám Bohu, jsem testoval to vícekrát dnes. 119 00:05:40,250 --> 00:05:41,720 Máš to? 120 00:05:41,720 --> 00:05:43,145 >> [Vřadit hlasy] 121 00:05:43,145 --> 00:05:46,470 122 00:05:46,470 --> 00:05:49,560 >> DAVID Malan: OK, chyba uživatele možná. 123 00:05:49,560 --> 00:05:50,550 To jsou dva. 124 00:05:50,550 --> 00:05:53,300 Že pracoval pro dva z několik set, tři, čtyři. 125 00:05:53,300 --> 00:05:55,940 OK, to je dobré. 126 00:05:55,940 --> 00:05:58,520 Čtyři z pěti na správnost a co. 127 00:05:58,520 --> 00:05:59,810 >> Takže to, co se stalo? 128 00:05:59,810 --> 00:06:02,727 Takže všeho, aniž by viděl svůj obrazovky, proč by to být chybných? 129 00:06:02,727 --> 00:06:05,518 Je pravděpodobné, že jsme byli jen snaží, aby se příliš mnoho připojení 130 00:06:05,518 --> 00:06:08,110 k poštovnímu serveru Harvardu to vše za jednou ze stejné IP adresy. 131 00:06:08,110 --> 00:06:10,740 Já jsem jen hádat, protože jsem neměl luxus testování 132 00:06:10,740 --> 00:06:13,220 tento kód s některými 300 lidí v předem 133 00:06:13,220 --> 00:06:16,040 ale teď si uvědomil, že že alespoň měl 134 00:06:16,040 --> 00:06:18,250 se dostali na práci této doby. 135 00:06:18,250 --> 00:06:22,880 >> Dobře, tak proč je to všechno více relevantní k, co se děje? 136 00:06:22,880 --> 00:06:24,900 Tak první, rychlý pár oznámení. 137 00:06:24,900 --> 00:06:29,350 Takže jeden, pokud chcete připojit Chang, a Nick, a další na oběd v pátek, 138 00:06:29,350 --> 00:06:32,400 dělat RSVP na tam obvyklou URL. 139 00:06:32,400 --> 00:06:35,650 Pokud uvažujete o soustředění nebo dělá sekundární v CS, 140 00:06:35,650 --> 00:06:38,941 ať už jste ve druháku, nebo nováček, nebo dokonce junior nebo senior v tomto bodě 141 00:06:38,941 --> 00:06:42,490 a může ještě zmáčknout v kurzech, Uvědomuji si, že v inženýrské školy 142 00:06:42,490 --> 00:06:45,620 shromažďuje zdarma Ben a Jerry zmrzlina a poradenství 143 00:06:45,620 --> 00:06:48,910 tuto středu krátce po třída v 16:00 v budově CS 144 00:06:48,910 --> 00:06:49,771 na Maxwell Dworkin. 145 00:06:49,771 --> 00:06:51,520 Pokud je to příliš rychle na obrazovce, stačí jít 146 00:06:51,520 --> 00:06:55,260 k cs50.harvard.edu pro odkaz na událost na Facebooku 147 00:06:55,260 --> 00:06:57,140 kde můžete vidět více detailů. 148 00:06:57,140 --> 00:07:01,390 >> Mezitím, myslel jsem si, že opravit ještě jedna věc, kterou jsem podělal ve středu. 149 00:07:01,390 --> 00:07:04,400 Ukázalo se, že Marka ID na Facebooku nebyl tři. 150 00:07:04,400 --> 00:07:05,230 Bylo to čtyři. 151 00:07:05,230 --> 00:07:08,330 Ukázalo se, že měl více zkoušce účty, než jsem si vzpomenout. 152 00:07:08,330 --> 00:07:12,400 Ale co to cítil jako příležitost udělat, je vytáhnout URL, jako 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 což je mechanismus, kterým tě může požadovat data programově 155 00:07:20,070 --> 00:07:24,480 na Facebooku a vrátit stroj čitelné informace, nikoliv webové stránky 156 00:07:24,480 --> 00:07:28,690 ale jen surový text, něco volal JavaScript Object Notation. 157 00:07:28,690 --> 00:07:32,150 A ve skutečnosti, když jsem navštívit tento URL, a přiblížit tím, že ve výchozím nastavení, 158 00:07:32,150 --> 00:07:34,960 To je Mark je veřejně dostupné informace. 159 00:07:34,960 --> 00:07:37,430 >> A zajímavý detail Zde je jen, že jeho ID 160 00:07:37,430 --> 00:07:40,670 je opravdu, číslo čtyři, které jsem Jakmile jsem to udělal realizován. 161 00:07:40,670 --> 00:07:44,260 Můžete to udělat sami, pokud víte, váš Facebook uživatelské jméno, pokud máte jeden. 162 00:07:44,260 --> 00:07:45,440 Prostě to napište do vrcholu. 163 00:07:45,440 --> 00:07:46,640 A nic z toho je soukromý. 164 00:07:46,640 --> 00:07:48,670 Dělám jen to, i v anonymním režimu. 165 00:07:48,670 --> 00:07:49,900 Takže jsem ani přihlášen. 166 00:07:49,900 --> 00:07:54,440 A vidíte, že já zřejmě byl uživatel číslo 6454 167 00:07:54,440 --> 00:07:56,480 na Facebooku, který není Škoda, v těchto dnech. 168 00:07:56,480 --> 00:07:59,900 Tak či onak, budete také vidět další informace zde. 169 00:07:59,900 --> 00:08:02,150 >> A užitečný aspekt z toho, že vás 170 00:08:02,150 --> 00:08:06,890 mohl napsat svůj vlastní software, který nějak integruje data, jako je tento 171 00:08:06,890 --> 00:08:08,170 do vlastní aplikace. 172 00:08:08,170 --> 00:08:10,650 Můžete posílit uživatelům přihlaste na svůj web, 173 00:08:10,650 --> 00:08:14,190 nepoužívají vlastní vlastní uživatelské jméno a heslo, ale možná jejich Facebook login 174 00:08:14,190 --> 00:08:16,170 a získat informace i o své přátele, 175 00:08:16,170 --> 00:08:18,740 pokud se schválí takové, nebo podobné. 176 00:08:18,740 --> 00:08:21,430 Tak na vědomí, že CS50 taky, má některé ze svých vlastních API, 177 00:08:21,430 --> 00:08:24,620 jeden pro katalog předmětů dat, některé pro objetí menu v jídelně 178 00:08:24,620 --> 00:08:26,730 haly, všechny budovy a místa 179 00:08:26,730 --> 00:08:30,930 na akademické půdě máme API pro i které můžete zadat dotaz podobně a získat 180 00:08:30,930 --> 00:08:35,520 zpět textová data, která lze integrovat do PHP nebo JavaScript, nebo dokonce, 181 00:08:35,520 --> 00:08:38,320 i když méně často, C na základě závěrečného projektu. 182 00:08:38,320 --> 00:08:41,190 >> Opravdu dopředu na finále Projekt je několik milníků. 183 00:08:41,190 --> 00:08:42,980 Máš e-mail od nás druhý den. 184 00:08:42,980 --> 00:08:45,761 Uvědomte si, že návrh je splatná letos v pondělí. 185 00:08:45,761 --> 00:08:49,010 Není to nutně závazné, ale Je potřeba přijímat své pedagogické chlapi 186 00:08:49,010 --> 00:08:51,260 schválení před tím, než jakékoliv poté změny. 187 00:08:51,260 --> 00:08:54,280 A pak se před námi jsou řada dalších milníků. 188 00:08:54,280 --> 00:08:56,542 >> Takže Tě škádlit, taky, s některými možnostmi, 189 00:08:56,542 --> 00:08:58,250 máme spoustu Tyto odstín žárovky. 190 00:08:58,250 --> 00:09:01,190 A někteří z vás mají nyní některé z nich ve svém kolejním pokoji stejně. 191 00:09:01,190 --> 00:09:02,920 A oni mají API. 192 00:09:02,920 --> 00:09:07,300 Tak vzpomínám na ty binární žárovky týdny Před, že Dan Bradley a Ansel 193 00:09:07,300 --> 00:09:08,780 Duff vytvořil pro nás. 194 00:09:08,780 --> 00:09:12,560 Oni používali softwarové rozhraní tato žárovka, která v současné době 195 00:09:12,560 --> 00:09:15,232 je zapojen do elektřiny a pak přes bezdrátové 196 00:09:15,232 --> 00:09:17,690 je spojena s malou věc volal most sem, 197 00:09:17,690 --> 00:09:21,280 jako malý router vlastnická práva, do tohoto konkrétního zařízení. 198 00:09:21,280 --> 00:09:26,540 >> Ale ukazuje se, jestli vím, jak se odesílat zprávy HTTP, jako my všichni teď dělat, 199 00:09:26,540 --> 00:09:31,670 Mohu odeslat zprávu jako je tato tato žárovka ji zapnout nebo vypnout 200 00:09:31,670 --> 00:09:34,000 nebo si libovolný počet další operace na něm. 201 00:09:34,000 --> 00:09:36,110 Všimněte si, že to nechápu, že to žádný příspěvek. 202 00:09:36,110 --> 00:09:37,760 Je tu ještě jeden s názvem put. 203 00:09:37,760 --> 00:09:39,630 Je to vlastně několik dalších takových sloves. 204 00:09:39,630 --> 00:09:42,920 Povšimněme si ale, že je to cesta tam, lomítko API, lomítko nové vývojáře, 205 00:09:42,920 --> 00:09:44,990 lomítko světlo, lomítko jeden, lomítko stavu. 206 00:09:44,990 --> 00:09:49,060 >> To je zřejmě jen cesta, kterou společnost Philips, 207 00:09:49,060 --> 00:09:51,640 Rozhodli jste se trefit s HTTP požadavku 208 00:09:51,640 --> 00:09:55,010 Chcete-li změnit stav žárovky pomocí protokolu HTTP 1.1. 209 00:09:55,010 --> 00:09:56,380 Všimněte si, prázdný řádek. 210 00:09:56,380 --> 00:10:00,170 A pak konečně, co vypadá jako druh pole nějakého druhu, 211 00:10:00,170 --> 00:10:04,730 To opět se bude nazýván JavaScript Object Notation, nebo Jason. 212 00:10:04,730 --> 00:10:08,000 A to, co vidíte, je to, že existují tři páry klíč 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 zřejmě bude pravda. 215 00:10:10,990 --> 00:10:13,612 Jas je 128, což je nějaký int. 216 00:10:13,612 --> 00:10:15,820 A pak přechodový čas je nula, což je zřejmě 217 00:10:15,820 --> 00:10:17,970 jak dlouho to bude vzít, aby tuto věc na. 218 00:10:17,970 --> 00:10:19,890 >> Takže teď to žárovka nesvítí. 219 00:10:19,890 --> 00:10:22,880 Ale když to udělám přesně tohle-- nechat mě jít na malý tahák 220 00:10:22,880 --> 00:10:25,200 že Dan nastavit v advance-- a jdu 221 00:10:25,200 --> 00:10:27,920 pokračovat a kopírování následující příkaz. 222 00:10:27,920 --> 00:10:30,200 Curl, jak se někteří z vás mohl získaných na CS50 223 00:10:30,200 --> 00:10:35,080 Diskutovat se o nástroj, jako Telnet takové že můžete simulovat HTTP požadavků, 224 00:10:35,080 --> 00:10:36,360 výslovně uvádí. 225 00:10:36,360 --> 00:10:39,710 Mohu poslat tyto údaje, konkrétně, co jsme právě 226 00:10:39,710 --> 00:10:43,430 viděl před chvílí specificky na této adrese tady. 227 00:10:43,430 --> 00:10:46,310 A pak Curl bude zacházet všech potřebných záhlaví 228 00:10:46,310 --> 00:10:47,600 a analýze tamní. 229 00:10:47,600 --> 00:10:54,700 >> Takže vše, co musíte udělat, je zkopírovat to do okno terminálu a poté stiskněte klávesu Enter. 230 00:10:54,700 --> 00:10:56,000 A žárovka se rozsvítí. 231 00:10:56,000 --> 00:10:59,060 A to je vše prochází můj počítač bezdrátově 232 00:10:59,060 --> 00:11:01,960 nějak se k mostu, který se pak mluví k této žárovky. 233 00:11:01,960 --> 00:11:02,960 Můžu dělat něco jiného. 234 00:11:02,960 --> 00:11:07,050 Mohu tuto věc jít red např. 235 00:11:07,050 --> 00:11:11,040 Mohu například vytvořit tahle věc jít zeleně. 236 00:11:11,040 --> 00:11:12,220 Můžu dělat to jít modré. 237 00:11:12,220 --> 00:11:14,760 >> A všimněte si v každém z nich případy, všechno, co jsem se měním 238 00:11:14,760 --> 00:11:18,540 je tzv odstín hodnotu vlastně dát mu trochu barvy. 239 00:11:18,540 --> 00:11:20,320 Takže mi dovolte vložit tento jeden v i. 240 00:11:20,320 --> 00:11:21,000 Teď je to modré. 241 00:11:21,000 --> 00:11:24,672 >> A můžete to udělat i milovník věci where-- pojďme na zelenou. 242 00:11:24,672 --> 00:11:26,630 A mohl bych to udělat z Samozřejmě s mým vlastním kódem. 243 00:11:26,630 --> 00:11:30,670 Ale i samotné API podporuje funky operace 244 00:11:30,670 --> 00:11:35,510 jako je to, které bude nyní obtěžovat nám v příštích 30 sekund. 245 00:11:35,510 --> 00:11:39,170 >> Takže to je jedna chuť na to, co by mohlo co dělat s API, tohle zahrnující 246 00:11:39,170 --> 00:11:40,010 žárovky. 247 00:11:40,010 --> 00:11:42,510 Všimněte si, že CS50 má pár páry Google Glass, kdybys 248 00:11:42,510 --> 00:11:45,380 chtěli něco řešit spolu tyto řádky, Arduino Únos, který 249 00:11:45,380 --> 00:11:48,670 jsou malinké počítače, v podstatě, na malé desce 250 00:11:48,670 --> 00:11:50,470 že se můžete připojit dráty a další věci 251 00:11:50,470 --> 00:11:52,732 na a vlastně kontrola Váš reálném světě prostředí. 252 00:11:52,732 --> 00:11:54,940 A pak je tu pár z nové hračky, které máme. 253 00:11:54,940 --> 00:11:59,294 Ten doslova přišel druhý den poštou, Myo Armband. 254 00:11:59,294 --> 00:12:01,710 A já si myslel, že je to způsob, jak vám nadšení o projektech 255 00:12:01,710 --> 00:12:03,720 které můžete použít s tento hardware by 256 00:12:03,720 --> 00:12:08,900 bude hrát tento krátký klip že používají škádlit lidi 257 00:12:08,900 --> 00:12:10,500 že jsme nyní žije v budoucnosti. 258 00:12:10,500 --> 00:12:13,494 259 00:12:13,494 --> 00:12:15,490 >> [Přehrávání hudby] 260 00:12:15,490 --> 00:13:33,410 261 00:13:33,410 --> 00:13:37,109 >> DAVID Malan: Takže během několika týdnů, můžete také může být, že v pohodě na CS50 veletrhu. 262 00:13:37,109 --> 00:13:39,150 Další zařízení, které jsme mají spoustu, že jsme 263 00:13:39,150 --> 00:13:42,090 šťastný, že půjčit si pozor na projekty se nazývá řízení pohybu. 264 00:13:42,090 --> 00:13:45,030 Jedná se o malý USB zařízení připojení k počítači 265 00:13:45,030 --> 00:13:47,520 umožňuje komunikovat s notebook, Mac nebo PC, 266 00:13:47,520 --> 00:13:51,570 jako kdyby jste měli jako Xbox Kinect a vlastně dělat fyzické pohyby moc 267 00:13:51,570 --> 00:13:54,509 jako vidíme v tom vize budoucnosti. 268 00:13:54,509 --> 00:13:56,505 >> [Přehrávání hudby] 269 00:13:56,505 --> 00:15:03,380 270 00:15:03,380 --> 00:15:06,260 >> DAVID Malan: Takže i když máte ponětí, jak něco takového 271 00:15:06,260 --> 00:15:10,050 by mohlo být vynalezeno, nebo práce na hardwarové úrovni, bez ohledu na to. 272 00:15:10,050 --> 00:15:13,520 Dokonce i po několika měsících CS50, a porozumění programování 273 00:15:13,520 --> 00:15:19,460 obecněji, a webové programování více v poslední době, a následně i API a HTTP, 274 00:15:19,460 --> 00:15:21,830 budete mít přístup přes softwarové rozhraní API, pokud vás 275 00:15:21,830 --> 00:15:24,680 chci si půjčit jeden z nich zařízení skutečně mluvit s ním 276 00:15:24,680 --> 00:15:27,180 a nemusíte se starat o základní implementace 277 00:15:27,180 --> 00:15:30,220 informace, která je zcela v souladu s tímto pojmem vrstvení 278 00:15:30,220 --> 00:15:33,610 abstrakce, že máme vidět po celou dobu semestru. 279 00:15:33,610 --> 00:15:37,990 >> Takže i přes víkend, viděl pár kousků zprávy. 280 00:15:37,990 --> 00:15:40,640 Jít jako první, přejděte na seminářích, pokud vás se chtěli dozvědět něco 281 00:15:40,640 --> 00:15:42,160 více na libovolný počet témat. 282 00:15:42,160 --> 00:15:43,340 Vidět, že URL. 283 00:15:43,340 --> 00:15:45,890 A ten byl poslán do me Chang, kdo víte, 284 00:15:45,890 --> 00:15:47,850 Kdo je tisk naši armádu slonů. 285 00:15:47,850 --> 00:15:49,910 A to byl titulek takto. 286 00:15:49,910 --> 00:15:51,280 Děsím se mého nového televizoru. 287 00:15:51,280 --> 00:15:54,301 Proč Bojím se, aby tuto věc na a vás to bude taky. 288 00:15:54,301 --> 00:15:56,050 Takže jsme teď v bod v semestru, 289 00:15:56,050 --> 00:15:58,860 i tam, kde i když máte sebemenší pochopení 290 00:15:58,860 --> 00:16:02,620 o tom, jak web funguje, a HTTP, a zabezpečení, věci, jako je tento 291 00:16:02,620 --> 00:16:03,980 by měla začít upoutat tvou pozornost. 292 00:16:03,980 --> 00:16:07,450 Ale také, budete rozumět, zda tyto věci jsou, nebo nejsou 293 00:16:07,450 --> 00:16:08,430 skutečné hrozby. 294 00:16:08,430 --> 00:16:10,940 >> Tak jsem vzal pár ukázek z tohoto článku zde. 295 00:16:10,940 --> 00:16:12,540 A příběh je následující. 296 00:16:12,540 --> 00:16:14,300 Já jsem se stal majitelem Nový inteligentní TV, které 297 00:16:14,300 --> 00:16:18,470 slibuje streaming multimediální obsah, hry, aplikace, 298 00:16:18,470 --> 00:16:21,450 sociální média a internet prohlížení, oh a TV taky. 299 00:16:21,450 --> 00:16:24,410 Jediný problém je, že jsem teď bojí se ho použít, říká autor. 300 00:16:24,410 --> 00:16:29,592 Ty by se taky, když si přečtete přes 46 stránka Privacy Policy pro váš televizor. 301 00:16:29,592 --> 00:16:31,800 Množství dat tohoto věc, shromažďuje je ohromující. 302 00:16:31,800 --> 00:16:35,710 Zaznamenává, kde, kdy, jak a za jak dlouhou dobu používáte televizor. 303 00:16:35,710 --> 00:16:38,190 Stanoví tracking cookies, jak jsme diskutovali, 304 00:16:38,190 --> 00:16:40,560 a majáky určen zjistit, kdy máte 305 00:16:40,560 --> 00:16:43,185 zobrazit konkrétní obsah nebo konkrétní e-mailové zprávy 306 00:16:43,185 --> 00:16:45,230 Chcete-li zkontrolovat e-mail na vašem televizoru. 307 00:16:45,230 --> 00:16:48,430 Zaznamenává aplikace, které používat, webové stránky, které navštívíte, 308 00:16:48,430 --> 00:16:52,280 a jak budete komunikovat s obsahem, dělá to vše pomocí vašeho smart TV. 309 00:16:52,280 --> 00:16:55,470 Rovněž, creepier yet-- to je můj addition-- 310 00:16:55,470 --> 00:16:58,140 má vestavěný fotoaparát s rozpoznávání obličeje. 311 00:16:58,140 --> 00:17:01,010 >> Účelem je poskytnout Ovládání gesty pro televizor 312 00:17:01,010 --> 00:17:05,490 a umožní vám se přihlásit do osobní účet pomocí vaší tváři. 313 00:17:05,490 --> 00:17:08,940 Na druhou stranu, jsou obrázky uloženo na televizoru místo nahrán 314 00:17:08,940 --> 00:17:09,940 na firemním serveru. 315 00:17:09,940 --> 00:17:12,520 Na druhou stranu, internet Připojení je celý televizor 316 00:17:12,520 --> 00:17:14,811 citlivé na hackery, kteří se prokázali schopnost 317 00:17:14,811 --> 00:17:16,700 získat úplnou kontrolu nad strojem. 318 00:17:16,700 --> 00:17:20,880 >> Více znepokojující, jako by to nebylo dost chytrý, je mikrofon. 319 00:17:20,880 --> 00:17:23,599 TV se může pochlubit hlas Funkce rozpoznávání 320 00:17:23,599 --> 00:17:26,859 který umožňuje ovládat diváci obrazovka s hlasovými příkazy. 321 00:17:26,859 --> 00:17:30,290 Ale služba je dodáván s poněkud zlověstné varování. 322 00:17:30,290 --> 00:17:33,030 Mějte prosím na paměti, že pokud vaše mluvená slova jsou 323 00:17:33,030 --> 00:17:36,210 osobní nebo jiné citlivé Informace, že informace 324 00:17:36,210 --> 00:17:40,310 bude mezi daty zachycených a předány třetí straně. 325 00:17:40,310 --> 00:17:40,870 Máte to? 326 00:17:40,870 --> 00:17:45,860 Neříkej, že osobní nebo citlivé materiál v přední části televizoru. 327 00:17:45,860 --> 00:17:47,280 >> Takže je to vlastně doopravdy. 328 00:17:47,280 --> 00:17:50,530 A není těžké zjistit, jestli vás přejít na Best Buy nebo podobně pro televizory 329 00:17:50,530 --> 00:17:51,030 v těchto dnech. 330 00:17:51,030 --> 00:17:52,540 Všichni jsou chytří nějakým způsobem. 331 00:17:52,540 --> 00:17:54,740 A oni jsou stále chytřejší a děsivější. 332 00:17:54,740 --> 00:17:57,490 A oni prostě sběr dat způsobem, který jsme mluvili o 333 00:17:57,490 --> 00:18:01,840 a poté ji nahrát přes HTTP nebo nějaký jiný protokol k nějakému serveru. 334 00:18:01,840 --> 00:18:05,720 >> Takže to byl zábavný článek V této on-line webové stránky 335 00:18:05,720 --> 00:18:08,940 tu, který hovořil o zejména bug nebo mylné kód 336 00:18:08,940 --> 00:18:11,340 že vlastně můžeme uvázat do diskuze minulý týden. 337 00:18:11,340 --> 00:18:15,730 Takže tento titulek byl jako vyplývá, příběh se odehrává zde, 338 00:18:15,730 --> 00:18:18,720 Josh Breckman pracoval pro společnost, která přistála smlouvu 339 00:18:18,720 --> 00:18:22,390 rozvíjet pro správu obsahu systém nebo CMS jak jsou nazýváni, 340 00:18:22,390 --> 00:18:24,380 za poměrně velké vládní webové stránky. 341 00:18:24,380 --> 00:18:27,300 Hodně z projektu účastní vytvoření systému pro správu obsahu 342 00:18:27,300 --> 00:18:29,840 tak, že zaměstnanci by schopni vytvořit a udržovat 343 00:18:29,840 --> 00:18:31,877 stále se měnící obsah na svých stránkách. 344 00:18:31,877 --> 00:18:34,210 To šlo docela dobře pár dní poté, co žít. 345 00:18:34,210 --> 00:18:37,020 Ale v den šest, všechno šlo tak dobře ne. 346 00:18:37,020 --> 00:18:39,500 Veškerý obsah na webové stránky úplně zmizely. 347 00:18:39,500 --> 00:18:42,950 A všechny strany vedly k výchozím zadejte obsahu webové stránky. 348 00:18:42,950 --> 00:18:43,810 Jejda. 349 00:18:43,810 --> 00:18:46,080 Josh byl povolán do vyšetřovat a všiml si, 350 00:18:46,080 --> 00:18:49,390 že jeden obzvláště nepříjemné externí IP adresy bylo 351 00:18:49,390 --> 00:18:53,380 pryč a odstraněny všechny obsah v systému. 352 00:18:53,380 --> 00:18:56,290 >> IP adresa nepatří do jisté zámoří hacker se ohýbal 353 00:18:56,290 --> 00:18:58,340 zničit užitečné Informace vlády. 354 00:18:58,340 --> 00:19:05,190 To se rozhodl googlebot.com, Google velmi vlastní web leze pavouk. 355 00:19:05,190 --> 00:19:06,010 Jejda. 356 00:19:06,010 --> 00:19:09,150 Po chvíli výzkumu a kódování kolem najít noncorrupt zálohy, 357 00:19:09,150 --> 00:19:10,180 Josh našel problém. 358 00:19:10,180 --> 00:19:12,700 >> Uživatel opsal a vložit nějaký obsah z jednoho 359 00:19:12,700 --> 00:19:15,670 stránky na druhou, včetně Upravit hypertextový odkaz 360 00:19:15,670 --> 00:19:17,577 upravit obsah na stránce. 361 00:19:17,577 --> 00:19:20,160 Za normálních okolností by to nebylo problém, protože vnější uživatel by 362 00:19:20,160 --> 00:19:24,320 je třeba zadat jméno a heslo, ale autentizační systém CMS, 363 00:19:24,320 --> 00:19:27,520 přihlašovací systém, nevzal v úvahu 364 00:19:27,520 --> 00:19:30,980 propracovaný hacking Techniky Google Spider. 365 00:19:30,980 --> 00:19:31,700 Jejda. 366 00:19:31,700 --> 00:19:33,610 >> Jak to dopadá, Google Spider nepoužívá 367 00:19:33,610 --> 00:19:36,950 cookies, což znamená, že může snadno obejít kontrolu pro 368 00:19:36,950 --> 00:19:39,840 je přihlášen cookie souboru, že je falešný. 369 00:19:39,840 --> 00:19:42,620 Není také věnovat pozornost tomu, JavaScript, který by za normálních okolností 370 00:19:42,620 --> 00:19:45,170 rychlé a přesměrovat uživatele kteří nejsou přihlášeni. 371 00:19:45,170 --> 00:19:48,610 Neznamená to však sledovat každý hypertextový odkaz na každé stránce nalezne, 372 00:19:48,610 --> 00:19:51,700 včetně těch, které se Odstranit stránku v názvu. 373 00:19:51,700 --> 00:19:52,650 Jejda. 374 00:19:52,650 --> 00:19:56,070 >> Takže co to znamená více technické, ale docela srozumitelně? 375 00:19:56,070 --> 00:19:58,340 To prostě znamená, že po celou dobu jejich webové stránky, 376 00:19:58,340 --> 00:20:02,287 měli URL není na rozdíl od tohoto ten, který můžete vidět na problém nastavit sedm. 377 00:20:02,287 --> 00:20:04,620 Recall v problému nastavit sedm nebo vědět, problém nastavit sedm 378 00:20:04,620 --> 00:20:06,411 že jste zpochybnil, mimo jiné, 379 00:20:06,411 --> 00:20:08,570 prodat akcie jménem uživatele. 380 00:20:08,570 --> 00:20:14,010 Ale prováděcí tuto funkci se formou z dostat přes hypertextové odkazy ve vašem uživatele 381 00:20:14,010 --> 00:20:16,880 rozhraní, pravděpodobně není nejchytřejší nápad 382 00:20:16,880 --> 00:20:20,300 protože pokud jsou vaše stránky nějakým způsobem přístupné buď člověk 383 00:20:20,300 --> 00:20:23,577 kdo Kliknutím kolem nebo koupit bot jako Google je nebo Spider 384 00:20:23,577 --> 00:20:26,160 jak se jim říká, že je to jen procházení webu se snaží index 385 00:20:26,160 --> 00:20:29,060 web jako vyhledávač, mohli snadno 386 00:20:29,060 --> 00:20:31,340 hit prostřednictvím získat tento druh URL. 387 00:20:31,340 --> 00:20:33,770 A to je funkčně rovnocenné, v tomto případě, 388 00:20:33,770 --> 00:20:37,000 prodej všech akcií společnosti Google. 389 00:20:37,000 --> 00:20:40,030 >> Teď upřímně řečeno, je to úplně hloupý, že CMS 390 00:20:40,030 --> 00:20:43,240 Použité JavaScript a cookies k provádění své přihlašovací systém 391 00:20:43,240 --> 00:20:47,100 a ne dělat, že na straně serveru, as vy dělat, a bude v pset 7-- 392 00:20:47,100 --> 00:20:49,940 tam je login.php file-- vždycky, vždycky, 393 00:20:49,940 --> 00:20:52,789 vždy bezpečnost by měly být provádí na straně serveru, 394 00:20:52,789 --> 00:20:56,080 ne na straně klienta, protože, jak to článek naznačuje, a vy byste mohli sami 395 00:20:56,080 --> 00:20:59,600 vidět na nějakém místě, je triviální pro uživatele, dobré nebo špatné, 396 00:20:59,600 --> 00:21:02,860 jen vypnout JavaScript nemluvě 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 ještě jeden, který je jen trochu děsivé, 399 00:21:07,970 --> 00:21:11,360 tak jsem si to uvedeno, zda pouze jako životní lekci. 400 00:21:11,360 --> 00:21:14,850 Vždy, když použijete aplikaci nazývá jako Snapchat a podobně 401 00:21:14,850 --> 00:21:19,380 který říká, že tyto fotografie trvat jen pěti sekund deset sekund nebo kdoví co ještě. 402 00:21:19,380 --> 00:21:21,680 Jsou to pomíjející To je rozhodně není tento případ. 403 00:21:21,680 --> 00:21:25,670 Stejně jako neexistuje žádný způsob, digitálně, zavést nějakou formu videa, 404 00:21:25,670 --> 00:21:30,150 nebo obrázek, nebo textový sdílení, jako že příjemce na druhém konci 405 00:21:30,150 --> 00:21:31,660 nemůže nějak uložit data. 406 00:21:31,660 --> 00:21:34,300 >> V nejvíce naivní způsobem, někdo mohl vzít svůj telefon. 407 00:21:34,300 --> 00:21:36,850 A mají druhé okno 10 při pohledu na nějakou Snap 408 00:21:36,850 --> 00:21:39,410 jen vzít nějaký jiný telefon a vyfotit to, samozřejmě. 409 00:21:39,410 --> 00:21:41,660 Takže si můžete zachovat něco digitálně tímto způsobem. 410 00:21:41,660 --> 00:21:44,620 Někteří z vás vědí, jak se screenshoty na telefonu. 411 00:21:44,620 --> 00:21:49,290 Ve skutečnosti, pokud to nevíte, Uvědomuji si, že alespoň Snapchat, 412 00:21:49,290 --> 00:21:51,040 a myslím, že další Aplikace těchto dnech, 413 00:21:51,040 --> 00:21:53,720 alespoň říct, jestli příjemce má ve skutečnosti 414 00:21:53,720 --> 00:21:55,310 vzít screenshot obrázku. 415 00:21:55,310 --> 00:22:00,870 >> Ale ještě horší, to bylo snappening, jak to někdo vymyslel v poslední době, 416 00:22:00,870 --> 00:22:04,680 kde někteří 100.000 Uchopení byl propuštěn 417 00:22:04,680 --> 00:22:09,310 to, co se nazývá soubor torrent na různých internetových stránkách nakonec. 418 00:22:09,310 --> 00:22:12,000 A to obsahovalo spoustu soukromých zpráv a příspěvků. 419 00:22:12,000 --> 00:22:15,210 Ukázalo se, že většina z nich benigní, takže není to, co byste mohli očekávat. 420 00:22:15,210 --> 00:22:17,580 Ale protože lidé měli použít webové stránky třetí strany, 421 00:22:17,580 --> 00:22:20,270 přihlášení se svým Snapchat uživatelské jméno a heslo a klepněte na 422 00:22:20,270 --> 00:22:23,470 ukládání všech svých patentky na těchto webových stránkách třetích stran. 423 00:22:23,470 --> 00:22:26,130 A to bylo to, že třetí strana webové stránky, které byl hacknutý, 424 00:22:26,130 --> 00:22:30,710 která se právě chtěl někdo přišel na to, jak dostat všechny 100,000 nárůst o těchto obrázků 425 00:22:30,710 --> 00:22:33,822 do své vlastní pevný disk pro následné sdílení. 426 00:22:33,822 --> 00:22:36,030 Upřímně řečeno, i zde, je to něco o hloupý, že Snapchat 427 00:22:36,030 --> 00:22:39,360 se provádí takovým způsobem, aby třetí strana druhu odposlechu 428 00:22:39,360 --> 00:22:43,310 data, a že to není vázána na vaše vlastní aplikace běžící na telefonu. 429 00:22:43,310 --> 00:22:46,947 Ale i zde si uvědomit, že tyto co by vás nechytí překvapením, 430 00:22:46,947 --> 00:22:49,030 nebo alespoň, že by být životní lekci zde. 431 00:22:49,030 --> 00:22:52,220 Pokud byste chtěli technické Podrobnosti naleznete na této adrese URL zde 432 00:22:52,220 --> 00:22:53,570 to je v dnešních snímků. 433 00:22:53,570 --> 00:23:00,960 V pořádku, jakékoliv dotazy týkající se Dnešní životní lekce v CS? 434 00:23:00,960 --> 00:23:02,710 Vypni to. 435 00:23:02,710 --> 00:23:04,970 Vůbec něco? 436 00:23:04,970 --> 00:23:06,301 Vůbec něco? 437 00:23:06,301 --> 00:23:09,050 Mám hodně lidí kontrolu jejich Snapchat nebo tak něco dnes. 438 00:23:09,050 --> 00:23:11,690 >> Dobře, tak SQL, Structured Query Language. 439 00:23:11,690 --> 00:23:12,509 Pojďme zabalit. 440 00:23:12,509 --> 00:23:14,300 A také, i když jsme jen poškrábání 441 00:23:14,300 --> 00:23:16,310 Povrch této jazyka, budeme vám 442 00:23:16,310 --> 00:23:18,930 dost jazyka ve formě pset 7 443 00:23:18,930 --> 00:23:22,140 takže můžete řešit některé docela běžné funkce. 444 00:23:22,140 --> 00:23:24,912 Ale uvědomila, že existují pár věci, které nevyžadují z vás, 445 00:23:24,912 --> 00:23:27,120 ale budeš důležité přijít závěrečných prací 446 00:23:27,120 --> 00:23:30,760 a jistě přijde dělat skutečné webové stránky s aktuálními uživateli 447 00:23:30,760 --> 00:23:32,040 je toto rozhodnutí designu. 448 00:23:32,040 --> 00:23:34,460 >> Ukazuje se, že v MySQL databáze, můžete 449 00:23:34,460 --> 00:23:37,460 mají svazky možností, jako je datové typy pro vaše sloupy 450 00:23:37,460 --> 00:23:41,670 a další věci, ale máte také volba tzv skladování 451 00:23:41,670 --> 00:23:44,570 motor pro všechna vaše data, druh souborového systému, 452 00:23:44,570 --> 00:23:46,700 pokud jste obeznámeni, pro všechna vaše data. 453 00:23:46,700 --> 00:23:48,830 Jaký formát je to nakonec uložena v? 454 00:23:48,830 --> 00:23:53,300 A nejčastější, snad, byl MyISAM a InnoDB, technické termíny 455 00:23:53,300 --> 00:23:56,060 že budeme záleží pouze do té míry, že má člověk 456 00:23:56,060 --> 00:23:58,500 a jeden nemá následující funkce. 457 00:23:58,500 --> 00:24:00,390 >> Předpokládejme, že máte malá lednička koleji. 458 00:24:00,390 --> 00:24:03,030 A předpokládám, že vy a vaše spolubydlící, kteří mají tuto lednici, 459 00:24:03,030 --> 00:24:04,682 opravdu rád řekněme mléka. 460 00:24:04,682 --> 00:24:07,140 A to je, ve skutečnosti, jak příběh bylo řečeno, pro mě cesta zpět 461 00:24:07,140 --> 00:24:10,890 v den, kdy jsem se zúčastnil kurzu tzv CS 161 Operační systémy, které 462 00:24:10,890 --> 00:24:12,580 Podobně zkoumá toto téma. 463 00:24:12,580 --> 00:24:13,760 Takže jste dostal tuto lednici. 464 00:24:13,760 --> 00:24:14,630 Jste z mléka. 465 00:24:14,630 --> 00:24:17,000 A vy jste přišel domů, váš spolubydlící je stále třídu nebo cokoliv, 466 00:24:17,000 --> 00:24:19,208 a vy se rozhodnete jdu jít ven a trochu mléka. 467 00:24:19,208 --> 00:24:22,630 Takže zavřete ledničku, vězení koleji, přejděte přes ulici 468 00:24:22,630 --> 00:24:25,330 k CVS nebo kdekoli, a získat v souladu se koupit nějaké mléko. 469 00:24:25,330 --> 00:24:28,960 >> Mezitím, váš spolubydlící přijde domů ze třídy, se dostane do koleji pokoj, 470 00:24:28,960 --> 00:24:31,802 otevře ledničku, také si uvědomuje, ooph, jsme z mléka. 471 00:24:31,802 --> 00:24:33,760 Tak on nebo ona se zavře lednice a pak se stane, 472 00:24:33,760 --> 00:24:35,610 jít na druhou CVS, který se stane být 473 00:24:35,610 --> 00:24:38,470 jeden blok od ostatních CVS na náměstí, a dostane do souladu 474 00:24:38,470 --> 00:24:40,230 tam trochu mléka. 475 00:24:40,230 --> 00:24:42,524 Teď, samozřejmě, pár minut později, oba se vrátím, 476 00:24:42,524 --> 00:24:44,690 a nejhorší ze všeho je to možné Výsledky se stalo. 477 00:24:44,690 --> 00:24:45,792 Oba dva mají mléko. 478 00:24:45,792 --> 00:24:47,500 A nemáte opravdu jako mléko, že hodně. 479 00:24:47,500 --> 00:24:49,625 Takže jeden z nich je právě bude kyselá v určitém okamžiku. 480 00:24:49,625 --> 00:24:55,941 Takže teď máte nadměrné množství mléka v lednici to všechno proto, proč? 481 00:24:55,941 --> 00:24:57,072 >> [Neslyšitelné] 482 00:24:57,072 --> 00:24:59,780 DAVID Malan: Jo, to ne nějak vzájemně komunikovat 483 00:24:59,780 --> 00:25:00,904 že jste se dostat mléko. 484 00:25:00,904 --> 00:25:04,320 Takže nejjednodušší způsoby, jak v lidském světě, 485 00:25:04,320 --> 00:25:08,390 jak by se vyhnout této hloupé scénář z děje jako 486 00:25:08,390 --> 00:25:09,750 že si jen skončit s jedním. 487 00:25:09,750 --> 00:25:10,840 Text je, ano, dobře. 488 00:25:10,840 --> 00:25:12,877 Ale jak jinak? 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 Jakákoliv forma sdělení že řekne své spolubydlící 492 00:25:17,150 --> 00:25:18,670 nechodí do ledničky na mléko. 493 00:25:18,670 --> 00:25:20,440 Chystám se jít doplnit zásoby na vlastní pěst. 494 00:25:20,440 --> 00:25:22,770 Takže budete nějak potřebovat zamknout tohoto zdroje. 495 00:25:22,770 --> 00:25:27,180 Takže můžeme tohle-- můžeme druh zničit příběh a zase do příběhu CS 496 00:25:27,180 --> 00:25:30,360 kdy myslet na to, jak je, stejně jako proměnná, která ukládá nějakou hodnotu. 497 00:25:30,360 --> 00:25:32,570 A právě teď, hodnota mléka je nula, 498 00:25:32,570 --> 00:25:35,410 které nechcete, aby vaše spolubydlící ke kontrole této proměnné 499 00:25:35,410 --> 00:25:38,730 a pak se rozhodnout jej nebo sebe v závislosti na stavu této proměnné 500 00:25:38,730 --> 00:25:42,430 pokud jste v procesu změnu stavu této proměnné. 501 00:25:42,430 --> 00:25:46,140 >> Takže jeden z řádků SQL, které jsme dát v pset 7 specifikace 502 00:25:46,140 --> 00:25:47,310 je to jeden tady. 503 00:25:47,310 --> 00:25:49,740 A nebudeme utrácet obrovské množství času, o tom mluví. 504 00:25:49,740 --> 00:25:55,100 Ale ukazuje se, pokud se snažíte koupit nějaké akcie CS50 financí 505 00:25:55,100 --> 00:25:58,000 že již máte Některé akcie, vás 506 00:25:58,000 --> 00:26:01,750 chcete být schopni udělat řadu věcí okamžitě dohromady. 507 00:26:01,750 --> 00:26:04,360 Chcete-li být schopni efektivně, na vysoké úrovni, 508 00:26:04,360 --> 00:26:06,700 zkontrolovat v pořádku, když chci koupit více akcií zdarma, 509 00:26:06,700 --> 00:26:08,780 penny zásoby mluvit o ve specifikaci, 510 00:26:08,780 --> 00:26:10,660 Chci první kontrole kolik akcií mám. 511 00:26:10,660 --> 00:26:11,810 A předpokládám, že je to pět. 512 00:26:11,810 --> 00:26:14,600 A předpokládám, že chci, aby koupit dalších 10, jsem nakonec 513 00:26:14,600 --> 00:26:17,069 chtějí mít 15 akcií skladem. 514 00:26:17,069 --> 00:26:18,360 Tak jsem se zeptat na dvě otázky. 515 00:26:18,360 --> 00:26:20,230 Jaký je stav proměnné? 516 00:26:20,230 --> 00:26:21,470 Jaký je stav řádku? 517 00:26:21,470 --> 00:26:22,970 Kolik akcií mám v současné době? 518 00:26:22,970 --> 00:26:24,636 Pak budete chtít pokračovat a aktualizovat. 519 00:26:24,636 --> 00:26:27,720 Tak to je analog na mléko zkontrolovat řádek, 520 00:26:27,720 --> 00:26:30,730 a pak chcete aktualizovat protože pokud si chcete koupit 10 akcí, 521 00:26:30,730 --> 00:26:32,521 Nechcete-li změnit řádek 10, je 522 00:26:32,521 --> 00:26:35,300 chcete jej změnit na 5 a 10, nebo, samozřejmě, 15. 523 00:26:35,300 --> 00:26:40,030 >> Tento řádek kódu zajišťuje, že tyto dvě koncepční nápady 524 00:26:40,030 --> 00:26:42,810 stát, společně, nebo vůbec ne. 525 00:26:42,810 --> 00:26:46,920 Nikdo, včetně nějakého jiného uživatele Kdo je přihlášen do stejné webové stránky, 526 00:26:46,920 --> 00:26:49,900 nějak přerušit kontrola řádku 527 00:26:49,900 --> 00:26:52,960 a aktualizace řádku, vybrat a aktualizace, pokud chcete. 528 00:26:52,960 --> 00:26:57,360 A syntaxe není výborný zřejmé, ale tahle linka, dlouho to je, 529 00:26:57,360 --> 00:27:01,150 zajišťuje, že tyto dvě operace zkontrolujte proměnnou nebo zkontrolujte řádek 530 00:27:01,150 --> 00:27:04,660 a aktualizovat řádek se stalo atomicky. 531 00:27:04,660 --> 00:27:06,849 >> Oh je to tady zase. 532 00:27:06,849 --> 00:27:07,890 Textová zpráva na můj telefon. 533 00:27:07,890 --> 00:27:09,954 Tak pojďme, aby to trochu konkrétnější. 534 00:27:09,954 --> 00:27:12,120 Předpokládejme, že nejste provádění ledničku, 535 00:27:12,120 --> 00:27:16,400 a nejste provádění Pset 7, ale skutečná banka, 536 00:27:16,400 --> 00:27:20,000 nebo bankomat, bankomat Stroj, čímž vám nějak 537 00:27:20,000 --> 00:27:22,960 chcete mít možnost posílit uživatelům přenášet peněz 538 00:27:22,960 --> 00:27:24,500 z jednoho úč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 se ztlumit to teď, děkuji. 541 00:27:26,683 --> 00:27:30,450 Takže chceme přesunout peníze z jednoho čísla účtu 542 00:27:30,450 --> 00:27:33,600 do jiného účtu číslo, konkrétně 100 dolarů. 543 00:27:33,600 --> 00:27:37,690 Tak to je druh libovolný příklad, kdy jste, ATM, 544 00:27:37,690 --> 00:27:41,060 chtít vykonat dva SQL dotazy, odečíst z jednoho účtu, 545 00:27:41,060 --> 00:27:42,430 a přidat na jiný účet. 546 00:27:42,430 --> 00:27:46,766 Ale vy chcete, aby zajistily, že tyto dva řádky jak se stalo, nebo vůbec ne. 547 00:27:46,766 --> 00:27:48,640 Nechcete, aby něco dostat přerušen. 548 00:27:48,640 --> 00:27:51,440 Nemáte nějaký chytrý špatný člověk nějak stojí v Bank of America 549 00:27:51,440 --> 00:27:53,270 se dvěma bankomatů v přední ním a nějak 550 00:27:53,270 --> 00:27:55,270 druh psaní v příkazy ve stejnou dobu, 551 00:27:55,270 --> 00:28:01,230 doufejme, že se snaží odečíst 200 dolarů místo 100 dolarů a jen s 100 dolary připočítán. 552 00:28:01,230 --> 00:28:04,450 Stručně řečeno, pokud chcete, aby se chovají přesně tak, jak jste očekávali. 553 00:28:04,450 --> 00:28:06,540 >> A jak vy to v SQL databáze 554 00:28:06,540 --> 00:28:09,350 ji zabalit do co je volal transakce. 555 00:28:09,350 --> 00:28:14,290 Doslova v SQL, můžete volat CS50 je funkce dotazu s citátem konec citátu startem 556 00:28:14,290 --> 00:28:15,370 transakce. 557 00:28:15,370 --> 00:28:18,640 Pak můžete spustit libovolný počet následných SQL dotazů, 558 00:28:18,640 --> 00:28:20,870 ale žádný z nich se vliv na databázi 559 00:28:20,870 --> 00:28:25,880 dokud nezavoláte dotazu citace unquote dopustí-li znovu pomocí PHP. 560 00:28:25,880 --> 00:28:29,810 A tímto způsobem, můžete zajistit, že i když máte 1000 Všichni uživatelé 561 00:28:29,810 --> 00:28:32,080 bít databáze ve stejnou dobu, SQL 562 00:28:32,080 --> 00:28:34,540 bude slibovat, že tyto dva dotazy bude 563 00:28:34,540 --> 00:28:36,740 realizován jeden za druhým. 564 00:28:36,740 --> 00:28:40,330 Takže nemusíte skončit s přebytkem mléko nebo špatné množství, nakonec, 565 00:28:40,330 --> 00:28:40,830 peněz. 566 00:28:40,830 --> 00:28:43,110 >> Takže mějte na paměti, ani ne tak pro pset 7 567 00:28:43,110 --> 00:28:45,250 ale závěrečných prací pokud jste skutečně 568 00:28:45,250 --> 00:28:49,690 snaží se pohybovat kolem dat přes tabulky, jak si možná zde. 569 00:28:49,690 --> 00:28:53,980 Ale možná ještě jednodušší a více zřejmé porozumět s příkladem 570 00:28:53,980 --> 00:28:54,860 je to jeden tady. 571 00:28:54,860 --> 00:28:57,760 A někdo nám e-mailem o to jen další den 572 00:28:57,760 --> 00:28:59,600 když viděl něco podobného online. 573 00:28:59,600 --> 00:29:03,480 >> Takže vím, pin systému není náchylné k útoku. 574 00:29:03,480 --> 00:29:06,637 A já nemám ponětí, jestli IT i použití SQL databáze pod kapotou. 575 00:29:06,637 --> 00:29:08,470 Ale pojďme ji použít pro saké diskuse. 576 00:29:08,470 --> 00:29:10,178 Zde je obrazovka, která Harvard lidé mají tendenci 577 00:29:10,178 --> 00:29:13,620 vidět při přihlašování s jejich Harvard identifikační číslo a PIN. 578 00:29:13,620 --> 00:29:19,020 A předpokládám, že pin systém byl implementovány v PHP a MySQL s 579 00:29:19,020 --> 00:29:22,000 databáze, kód, který někdo Před mohlo písemné roky 580 00:29:22,000 --> 00:29:23,270 může vypadat například takto. 581 00:29:23,270 --> 00:29:25,230 Za prvé, prohlásit proměnná s názvem uživatelské jméno. 582 00:29:25,230 --> 00:29:27,560 A jen tak, že od POST superglobal. 583 00:29:27,560 --> 00:29:30,140 Pak si další proměnnou volal heslo a totéž. 584 00:29:30,140 --> 00:29:33,080 A pak už jen spustit tak dlouho dotaz zde 585 00:29:33,080 --> 00:29:36,690 vyberte hvězda od uživatelů případně Uživatelské jméno rovná takový a takový 586 00:29:36,690 --> 00:29:38,510 a heslo rovná takový a takový. 587 00:29:38,510 --> 00:29:40,660 >> Všimněte si, že kudrnatý šle jsem zde použit 588 00:29:40,660 --> 00:29:42,880 jen znamená PHP, jít dopředu a náhradní 589 00:29:42,880 --> 00:29:45,400 hodnota z těchto dvou proměnné právě tam. 590 00:29:45,400 --> 00:29:50,090 Jsou to není nezbytně nutné, ale mají tendenci, aby se zabránilo jemné syntaktické chyby. 591 00:29:50,090 --> 00:29:53,650 Takže to vypadá úplně Správná na první pohled. 592 00:29:53,650 --> 00:29:54,240 A je to. 593 00:29:54,240 --> 00:29:56,680 Dalo by se realizovat čep systém tímto způsobem. 594 00:29:56,680 --> 00:30:00,460 >> Ale předpokládám, že super chytrý a nebezpečný studenta 595 00:30:00,460 --> 00:30:03,020 Vstupní to jako jeho kolík. 596 00:30:03,020 --> 00:30:05,550 Tak jsem odstranil kulku známky zde v mock-up, 597 00:30:05,550 --> 00:30:08,760 a já jsem vlastně odhalil to, co on nebo ona může být psaní. 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, co vyskočí na vás na potenciálně znepokojující o vstup uživatele, 600 00:30:13,850 --> 00:30:16,450 i když nemáte tušení, co útok SQL injection znamená. 601 00:30:16,450 --> 00:30:20,300 Proč to vypadá trochu podezřele? 602 00:30:20,300 --> 00:30:21,050 Co je to? 603 00:30:21,050 --> 00:30:21,550 [Neslyšitelné] 604 00:30:21,550 --> 00:30:24,260 DAVID Malan: nebo je trochu podezřelé. 605 00:30:24,260 --> 00:30:26,310 Ve skutečnosti, to je klíčové slovo z SQL. 606 00:30:26,310 --> 00:30:28,105 Tak, že to nevěstí nic dobrého. 607 00:30:28,105 --> 00:30:29,980 Skutečnost, že je všechny tyto jednoduché uvozovky 608 00:30:29,980 --> 00:30:32,646 there-- ve skutečnosti, jeden z nejjednodušších způsoby, jak zlomit některé databáze 609 00:30:32,646 --> 00:30:35,880 se zadáním jména jako O'Reilly který má apostrof v něm 610 00:30:35,880 --> 00:30:38,600 proto, že v případě, že člověk, který napsal Kód zákulisí 611 00:30:38,600 --> 00:30:41,570 nebere v úvahu, že může být jednoduché uvozovky v uživatele 612 00:30:41,570 --> 00:30:45,060 vstup, a on nebo ona je s použitím jednoduché uvozovky v jejich kódu, 613 00:30:45,060 --> 00:30:46,040 špatné věci se může stát. 614 00:30:46,040 --> 00:30:47,870 >> Ve skutečnosti ještě horší, zvažte to. 615 00:30:47,870 --> 00:30:50,600 Pokud to bylo opět kód že někdo na Harvardu let 616 00:30:50,600 --> 00:30:53,100 Před psal pro kolík Systém si všimněte, co je 617 00:30:53,100 --> 00:30:56,220 o dostat substituovaný uživatelské jméno a heslo 618 00:30:56,220 --> 00:30:59,780 pokud uživatel zadá znovu skroob, protože jejich jména 619 00:30:59,780 --> 00:31:03,960 a pak jeden, dva, tři, čtyři, pět, citát nebo citace unquote jedna rovná se 620 00:31:03,960 --> 00:31:04,660 citovat. 621 00:31:04,660 --> 00:31:07,220 A všimněte si, co je klíč Zde je uživatel nemá 622 00:31:07,220 --> 00:31:09,900 začal své heslo, nebo jejich pin s citátem. 623 00:31:09,900 --> 00:31:12,610 A neskončily ji s citátem, protože on nebo ona 624 00:31:12,610 --> 00:31:16,315 je za předpokladu, že v případě, že programátor nebyl tak ostrý, 625 00:31:16,315 --> 00:31:18,690 že budou mít ty jednoduché uvozovky v jejich kódu. 626 00:31:18,690 --> 00:31:19,860 >> Tak tady je kód. 627 00:31:19,860 --> 00:31:23,820 A náhrada, která Nyní se může stát je to. 628 00:31:23,820 --> 00:31:26,350 A já jsem zdůraznil to, co uživatel zadat. 629 00:31:26,350 --> 00:31:28,480 Tak před, po. 630 00:31:28,480 --> 00:31:33,330 A všimněte si, co je mírně znepokojující nyní o pravé polovině tohoto kódu SQL? 631 00:31:33,330 --> 00:31:36,300 Je to trochu složitější, pravda, než dotazů jsme viděli. 632 00:31:36,300 --> 00:31:38,550 Ale to nemůže být dobrá věc, pokud jste 633 00:31:38,550 --> 00:31:42,240 řekl vyberte hvězdu, která je vyberte vše z tabulky uživatele 634 00:31:42,240 --> 00:31:46,630 kde uživatelské jméno odpovídá skroob a heslo se rovná jeden, dva, tři, čtyři, 635 00:31:46,630 --> 00:31:49,610 pět nebo jeden roven jedné. 636 00:31:49,610 --> 00:31:53,860 Co je to logický důsledek tohoto posledního ustanovení všeho? 637 00:31:53,860 --> 00:31:55,650 Je to prostě vždy pravda. 638 00:31:55,650 --> 00:31:59,930 >> A proto, že jsme tak nějak tušil nebo přišel na to, metodou pokusu a omylu 639 00:31:59,930 --> 00:32:02,760 že programátor, který napsal tento kód ne 640 00:32:02,760 --> 00:32:07,250 předvídat lidské nebo špatný člověk psát v jednoduchých uvozovkách stejně, 641 00:32:07,250 --> 00:32:10,350 můžeme syntakticky dokončení dotazu SQL 642 00:32:10,350 --> 00:32:12,260 s něčím nesmyslné ale něco, co 643 00:32:12,260 --> 00:32:15,930 je syntakticky nesprávný že vždy vyhodnotí na true. 644 00:32:15,930 --> 00:32:19,130 Takže pokud je tento kód se používá k zodpovězení otázka true nebo false by 645 00:32:19,130 --> 00:32:22,930 tento uživatel moci projít, Odpověď je vždy zřejmě bude 646 00:32:22,930 --> 00:32:26,930 je to pravda, protože to je vždycky vybrat něco z databáze 647 00:32:26,930 --> 00:32:29,280 protože jeden samozřejmě vždy roven jedné. 648 00:32:29,280 --> 00:32:30,360 >> Takže jaké je řešení? 649 00:32:30,360 --> 00:32:33,290 No v pset 7, jsme vlastně vyhnout se to všechno dohromady. 650 00:32:33,290 --> 00:32:37,360 Dáme vám funkce dotazu a my Doporučujeme vám použít otazníky 651 00:32:37,360 --> 00:32:40,430 jako zástupné symboly, podobné duchem printf je% s, 652 00:32:40,430 --> 00:32:43,710 ale to, co je klíčem k otazníky Zde je, když jste vlastně přečetli 653 00:32:43,710 --> 00:32:46,950 functions.php, kde naše funkce dotazu je implementována, 654 00:32:46,950 --> 00:32:52,780 ty otazníky jsou unikl, kdy něco potenciálně nebezpečné 655 00:32:52,780 --> 00:32:58,210 jako jediný citát je zapnuto do uprchlý jednoduchou uvozovku. 656 00:32:58,210 --> 00:33:00,590 >> Tak tohle je to, co je skutečně děje, pokud vás 657 00:33:00,590 --> 00:33:04,850 použít funkci dotazu CS50, nebo libovolný počet volných knihoven třetích stran, které 658 00:33:04,850 --> 00:33:06,000 to samé. 659 00:33:06,000 --> 00:33:09,850 Nezáleží na tom, v tomto případě, v zelené barvě, v případě, že uživatel zadal jednoduchou uvozovku 660 00:33:09,850 --> 00:33:12,070 protože dotazu funkce, které jsme psali, je 661 00:33:12,070 --> 00:33:15,120 přidáme zpětná lomítka před každá taková nebezpečná citace. 662 00:33:15,120 --> 00:33:17,360 Tak to není, v Skutečnost, bude důvěryhodně. 663 00:33:17,360 --> 00:33:20,910 Je to jako psát v blázen hledá Heslo, které je, samozřejmě, nebude 664 00:33:20,910 --> 00:33:23,490 být aktuální heslo skroob lidové. 665 00:33:23,490 --> 00:33:28,260 >> Takže stánek s jídlem pro CS50 je jedna, naprosto vždy něco 666 00:33:28,260 --> 00:33:30,860 jako funkce dotazu CS50 je nebo základní knihovna, 667 00:33:30,860 --> 00:33:32,560 který se stane být nazýván CHOP. 668 00:33:32,560 --> 00:33:35,880 Ale nikdy, nikdy, nikdy neudělal kód, jako je tento 669 00:33:35,880 --> 00:33:39,472 bez úniku nebo čištění jak se říká vaše vstupy. 670 00:33:39,472 --> 00:33:42,430 A budete v určitém okamžiku pravděpodobně narazíte na nějaké webové stránky, jako je tento. 671 00:33:42,430 --> 00:33:46,060 Ve skutečnosti se zdá, že tomu tak je jako na letištích a hotely v místech 672 00:33:46,060 --> 00:33:48,880 kde mají bezplatné Wi-Fi připojení k internetu přístup, který musíte se přihlásit do, 673 00:33:48,880 --> 00:33:51,010 Tyto webové stránky jsou vždy strašně provedena. 674 00:33:51,010 --> 00:33:55,680 A tak trochu zábavy doma cvičení, Není k nekalým účelům nebo více 675 00:33:55,680 --> 00:33:59,170 ze zábavy na cestě cvičení, je prostě typ 676 00:33:59,170 --> 00:34:02,850 apostrof, jeden citát, do formy na určité webové stránce 677 00:34:02,850 --> 00:34:03,810 a uvidíte, co se stane. 678 00:34:03,810 --> 00:34:06,660 A pokud server havaruje, nebo dává jste nějaká chybová zpráva, 679 00:34:06,660 --> 00:34:09,690 to může být to, že velmi dobře někdo Nepředpokládá se to. 680 00:34:09,690 --> 00:34:15,239 A pak byste měli upozornit správné orgány a pokračovat dál. 681 00:34:15,239 --> 00:34:20,843 >> Takže teď vy by snad rozumět trochu víc geek humor zde. 682 00:34:20,843 --> 00:34:24,120 >> [SMÍCH] 683 00:34:24,120 --> 00:34:27,571 684 00:34:27,571 --> 00:34:29,070 DAVID Malan: Víte, že jste geek. 685 00:34:29,070 --> 00:34:30,944 Pro příští několik let, budete pamatovat 686 00:34:30,944 --> 00:34:33,520 kdo málo Bobby Tables je kvůli této karikatuře zde. 687 00:34:33,520 --> 00:34:36,760 Takže mějte na paměti, že když jsme přepnutí kontextu naposled 688 00:34:36,760 --> 00:34:38,770 dnes JavaScript. 689 00:34:38,770 --> 00:34:41,600 Strávili jsme poměrně málo čas na syntaxi PHP 690 00:34:41,600 --> 00:34:43,440 protože je to ve skutečnosti Hodně podobný C. 691 00:34:43,440 --> 00:34:47,300 A dost dobře, JavaScript taky je super podobná syntaxi C je 692 00:34:47,300 --> 00:34:49,639 stejně jako uvidíme v jen na chvíli, a jak jsme to 693 00:34:49,639 --> 00:34:51,205 viz v tomto týdnu především. 694 00:34:51,205 --> 00:34:54,080 Co můžete dělat s tímto jazykem, i když, je vše silnější, 695 00:34:54,080 --> 00:34:55,790 zejména s API. 696 00:34:55,790 --> 00:34:56,960 >> Ale nejdřív rychle tour. 697 00:34:56,960 --> 00:35:00,450 Takže člověk, v JavaScriptu, je tu není hlavní funkcí, což je hezké. 698 00:35:00,450 --> 00:35:02,650 Stejně jako u PHP, stačí napsat kód. 699 00:35:02,650 --> 00:35:04,310 Podmínky vypadat takto. 700 00:35:04,310 --> 00:35:07,100 A logické výrazy by mohl vypadat takto nebo takto. 701 00:35:07,100 --> 00:35:09,530 Přepínače existují, a může vypadat například takto. 702 00:35:09,530 --> 00:35:10,970 Čtyři poutka vypadat takto. 703 00:35:10,970 --> 00:35:12,390 While vypadat takto. 704 00:35:12,390 --> 00:35:14,160 Líbí chvíle vypadat takto. 705 00:35:14,160 --> 00:35:16,850 A pak se pole vypadat Tato, velmi podobné PHP. 706 00:35:16,850 --> 00:35:20,740 Povšimněme si ale, že v JavaScriptu vás deklarujete proměnnou ne s dolarem 707 00:35:20,740 --> 00:35:25,190 podepsat, a to s typem dat, ale doslova tím VaR pro proměnné před ním. 708 00:35:25,190 --> 00:35:27,900 To také je volně zadali v tom, že má druhy, 709 00:35:27,900 --> 00:35:29,729 ale není explicitně deklarovat. 710 00:35:29,729 --> 00:35:31,520 A pak řetězec, pro instance, může vypadat 711 00:35:31,520 --> 00:35:34,350 takhle, že řetězec volána s v tomto případě. 712 00:35:34,350 --> 00:35:35,410 A pak objekt. 713 00:35:35,410 --> 00:35:37,010 A tito uvidíme více, než dlouho. 714 00:35:37,010 --> 00:35:41,470 A objekt je pravděpodobně jedním z nejčastěji vidět datové struktury 715 00:35:41,470 --> 00:35:44,050 v JavaScriptu na základě Program, protože umožňuje 716 00:35:44,050 --> 00:35:46,680 můžete přiřadit libovolný Klíčové páry hodnota jen 717 00:35:46,680 --> 00:35:51,240 jako PHP asociativní pole a stejně jako své vlastní hash tabulky 718 00:35:51,240 --> 00:35:54,042 nebo vyzkoušet, jak jsme zavedli pár týdnů zpět. 719 00:35:54,042 --> 00:35:56,250 Takže pojďme se podívat, co vlastně můžeme dělat s jazykem JavaScript. 720 00:35:56,250 --> 00:35:59,410 A zejména, je to Seznam prací funkcí 721 00:35:59,410 --> 00:36:02,300 že prohlížeče mají, že nám umožňují připojit JavaScript 722 00:36:02,300 --> 00:36:05,470 na webových stránkách v následujícím způsobem. 723 00:36:05,470 --> 00:36:09,340 JavaScript je často používán jako na straně klienta skriptovací jazyk. 724 00:36:09,340 --> 00:36:10,130 To není kompilován. 725 00:36:10,130 --> 00:36:11,370 To také je interpretován. 726 00:36:11,370 --> 00:36:15,740 Ale na rozdíl od PHP, která byla spuštěna na serveru, na webový server, 727 00:36:15,740 --> 00:36:18,220 nebo hluboko uvnitř klienti, JavaScript 728 00:36:18,220 --> 00:36:22,190 se liší v tom, že obvykle běží v prohlížeči. 729 00:36:22,190 --> 00:36:26,060 >> Takže jakýkoli kód JavaScript začnete psát pro pset 8 nebo konečného projektu, 730 00:36:26,060 --> 00:36:29,890 nebo v reálném světě se obecně děje musí být uloženy na serveru, absolutně 731 00:36:29,890 --> 00:36:33,110 v dot HTML nebo tečka JS pro soubor JavaScript. 732 00:36:33,110 --> 00:36:35,770 Ale prohlížeč se děje ke stažení, který JavaScript 733 00:36:35,770 --> 00:36:39,530 Kód na vlastní instanci Chrome, nebo IE nebo Firefox, nebo cokoliv jiného. 734 00:36:39,530 --> 00:36:43,870 A kód je vlastně dostane proveden uvnitř své vlastní prohlížeči. 735 00:36:43,870 --> 00:36:46,560 Jen aby to reálnější, pojďme se podívat na tuto konkrétní podobě. 736 00:36:46,560 --> 00:36:50,120 >> Nemáme tušení, co tento kód dělá aniž by skutečně číst přes to. 737 00:36:50,120 --> 00:36:52,670 Ale nech mě jít na Facebook.com bez přihlášení. 738 00:36:52,670 --> 00:37:00,440 Nech mě jít do Zkontrolujte Element a jít do, řekněme, Síť a obnovte stránku. 739 00:37:00,440 --> 00:37:04,150 A budeme see-- dovolte mi, abych posunout znovu načíst Page získat všechny požadavky na nové. 740 00:37:04,150 --> 00:37:08,850 A první soubor vidím CSS, CSS. 741 00:37:08,850 --> 00:37:10,880 Zde je první JavaScript soubor, a já jsem 742 00:37:10,880 --> 00:37:14,600 žádný nápad, co to dělá, ale tady Je to jedna z kódu JavaScript 743 00:37:14,600 --> 00:37:16,180 který pohání Facebook. 744 00:37:16,180 --> 00:37:18,400 Není to ani ve skutečnosti, že odhalující přiblížit. 745 00:37:18,400 --> 00:37:20,260 Je to stále stejně nesmyslné. 746 00:37:20,260 --> 00:37:24,341 >> Ale uvidíte i dole, je tu ještě více těchto souborů 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 Pojďme trochu dolů Dále, dále další. 750 00:37:28,550 --> 00:37:29,894 Je tu ještě jedna. 751 00:37:29,894 --> 00:37:31,238 Je tu ještě jedna. 752 00:37:31,238 --> 00:37:31,880 Je tu ještě jedna. 753 00:37:31,880 --> 00:37:35,820 >> Takže i když Facebook, za scény, je napsán v části v PHP 754 00:37:35,820 --> 00:37:39,100 Facebook a vlastní verze této smlouvy, je tu obrovské množství JavaScript. 755 00:37:39,100 --> 00:37:41,330 Ve skutečnosti, některé z chatování děláte na Facebooku, 756 00:37:41,330 --> 00:37:45,520 některé aktualizace inline časové osy že se stalo v reálném čase, to vše 757 00:37:45,520 --> 00:37:47,944 je řízen JavaScript. 758 00:37:47,944 --> 00:37:48,444 Jo? 759 00:37:48,444 --> 00:37:50,235 >> Diváků: Nejsem si jistý, pokud je to Facebook, 760 00:37:50,235 --> 00:37:53,624 ale myslel jsem si, že Facebook vyvinut vlastní in-house kód jazyka? 761 00:37:53,624 --> 00:37:54,540 DAVID Malan: Dělali. 762 00:37:54,540 --> 00:37:58,110 Takže to je důvod, proč říkám rozptyl PHP s názvem Hip Hop, že ve skutečnosti 763 00:37:58,110 --> 00:38:03,440 přidané funkce až tak, že při Mark nejprve realizován Facebook, 764 00:38:03,440 --> 00:38:04,710 to bylo napsaný v PHP. 765 00:38:04,710 --> 00:38:07,370 A to tak nějak zůstalo druh čelní jazyka 766 00:38:07,370 --> 00:38:09,030 že používají mnohem jejich kódování, ale to 767 00:38:09,030 --> 00:38:11,870 nebyl jazyk, který je váhy obzvláště dobře na miliardy 768 00:38:11,870 --> 00:38:12,630 lidí. 769 00:38:12,630 --> 00:38:15,300 A tak se přidali jejich vlastní zlepšení v zákulisí. 770 00:38:15,300 --> 00:38:17,049 A používat libovolný počet dalších jazyků 771 00:38:17,049 --> 00:38:19,170 pro různé kusy jejich infrastruktura. 772 00:38:19,170 --> 00:38:24,080 Takže ano, je to rozptyl to, co dnes známe jako PHP. 773 00:38:24,080 --> 00:38:26,610 >> Takže pojďme se podívat na pár příkladů 774 00:38:26,610 --> 00:38:28,890 o tom, jak můžeme zde použít JavaScript. 775 00:38:28,890 --> 00:38:32,530 V dnešním zdrojového kódu, máme banda souborů, z nichž první, 776 00:38:32,530 --> 00:38:34,090 pojďme tzv DOM nula. 777 00:38:34,090 --> 00:38:36,770 Takže DOM nula vypadá následovně. 778 00:38:36,770 --> 00:38:40,730 Nech mě jít do tohoto adresáře a otevřít domzero.html, 779 00:38:40,730 --> 00:38:44,970 v horní části, který má typ doc prohlášení s tím, tady je HTML 5. 780 00:38:44,970 --> 00:38:46,440 A teď tady je tag HTML. 781 00:38:46,440 --> 00:38:47,540 Zde je tag hlava. 782 00:38:47,540 --> 00:38:49,210 A tady je to, co je nového dnes. 783 00:38:49,210 --> 00:38:52,620 >> Nyní máme tag script Uvnitř hlavy stránky. 784 00:38:52,620 --> 00:38:55,290 A to zřejmě dělá velmi málo, ale oznámení 785 00:38:55,290 --> 00:38:58,410 že jsem definováno skript JavaScript. 786 00:38:58,410 --> 00:39:01,050 A jak je stranou, protože tato Je mylná představa, 787 00:39:01,050 --> 00:39:05,220 JavaScript nemá nic co dělat s Java, jazyk 788 00:39:05,220 --> 00:39:08,010 že někteří z vás by mohlo naučili v APC. 789 00:39:08,010 --> 00:39:10,480 Bylo to spíš o marketing věc než cokoliv jiného, 790 00:39:10,480 --> 00:39:12,980 jet na coattails Java let. 791 00:39:12,980 --> 00:39:17,300 Ale JavaScript, nemá nic společného s Java, jen podobně, a protivně, 792 00:39:17,300 --> 00:39:18,480 zmateně jmenován. 793 00:39:18,480 --> 00:39:21,890 >> Tak tady je, jak deklarovat funkci v JavaScriptu, doslova říkají funkce, 794 00:39:21,890 --> 00:39:24,556 pak název funkce, potom všechny argumenty, že to může trvat, 795 00:39:24,556 --> 00:39:25,530 stejně jako v PHP. 796 00:39:25,530 --> 00:39:28,990 Ukázalo se, že v JavaScriptu, jeden z nejvíce otravné funkce, které existují, je Alert. 797 00:39:28,990 --> 00:39:31,392 To je trochu okno, které vyskočí a upozorní vás, 798 00:39:31,392 --> 00:39:32,600 na části informace. 799 00:39:32,600 --> 00:39:33,766 To je obecně odsuzována. 800 00:39:33,766 --> 00:39:35,980 Ale budeme používat jako naše První cvičení zde. 801 00:39:35,980 --> 00:39:37,900 >> Všimněte si několik funkcí JavaScript. 802 00:39:37,900 --> 00:39:41,524 Jednotlivé citace a dvojité uvozovky nejsou ve skutečnosti už je jedno. 803 00:39:41,524 --> 00:39:43,690 Jednotlivé citace a double citace mohou být vyměněny, 804 00:39:43,690 --> 00:39:46,220 zatímco v C, budete muset použít uvozovky pro řetězce, 805 00:39:46,220 --> 00:39:48,150 a máte dvě samostatné citace pro znaků. 806 00:39:48,150 --> 00:39:51,150 Ve světě JavaScript, mnoho lidí, většina lidí 807 00:39:51,150 --> 00:39:54,970 použít jednoduché uvozovky kolem řetězce jen proto, že je to stylová záležitost. 808 00:39:54,970 --> 00:39:58,330 Ale co je operátor a tady, které jsme ještě neviděli? 809 00:39:58,330 --> 00:39:59,836 >> Diváků: řetězení. 810 00:39:59,836 --> 00:40:00,960 DAVID Malan: řetězení. 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 tečky, který to dělá. 813 00:40:04,820 --> 00:40:09,710 JavaScript má operátor plus, který zmateně je stejně jako Java. 814 00:40:09,710 --> 00:40:11,440 Tak co se to tu děje? 815 00:40:11,440 --> 00:40:14,260 >> Tak tady je místo, kde základní chápání tohoto obrázku 816 00:40:14,260 --> 00:40:17,010 jsme vyhodil pár dny vstoupí do hry. 817 00:40:17,010 --> 00:40:19,620 Pamatuji si, když jsme měli jednoduchý verze HTML page-- 818 00:40:19,620 --> 00:40:20,830 to právě řekl, hello world. 819 00:40:20,830 --> 00:40:22,770 A pak jsme nakreslil strom doprava, která 820 00:40:22,770 --> 00:40:27,320 měl spoustu obdélníků a linek jejich připojení jako rodokmen. 821 00:40:27,320 --> 00:40:30,820 Tak to je takzvaný DOM nebo Document Object Model. 822 00:40:30,820 --> 00:40:36,759 A ukázalo se, že máte přístup obdélníky v tomto stromu se syntaxí 823 00:40:36,759 --> 00:40:37,550 jako následující. 824 00:40:37,550 --> 00:40:41,370 Doslova říká dokument, který je speciální globální proměnné v JavaScriptu 825 00:40:41,370 --> 00:40:45,890 program, který má funkci s ním spojené, které můžete přistupovat 826 00:40:45,890 --> 00:40:50,280 podobně jako struct, ale prostě říci, tečka a název funkce je, 827 00:40:50,280 --> 00:40:52,390 dostat element podle ID. 828 00:40:52,390 --> 00:40:55,460 >> Prvek Chci se dostat je zřejmě citovat konec citátu jméno. 829 00:40:55,460 --> 00:40:57,150 A pak chci, aby si jeho hodnotu. 830 00:40:57,150 --> 00:40:58,330 Nyní se dostáváme před sebe. 831 00:40:58,330 --> 00:41:00,038 Nejsem si ani jistý, co to vše je. 832 00:41:00,038 --> 00:41:03,000 Pojďme rychle vpřed do formátu HTML strana, která je super jednoduché. 833 00:41:03,000 --> 00:41:05,370 >> Všimněte si, že jsem definováno tvoří tady dole. 834 00:41:05,370 --> 00:41:07,940 Všimněte si, dal jsem to jedinečný ID, i když jsme se nepoužívá 835 00:41:07,940 --> 00:41:08,870 tento atribut před. 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čně identifikovat nějaký kus HTML s identifikátorem, jako je tento. 838 00:41:15,570 --> 00:41:19,880 >> Upozornění nyní tohle-- dopadá HTML podporuje, na tomto seznamu na prádlo 839 00:41:19,880 --> 00:41:22,490 před chvílí, celý banda obslužné rutiny událostí. 840 00:41:22,490 --> 00:41:25,060 A to handler události říká na odeslat. 841 00:41:25,060 --> 00:41:28,730 V uživatelském podání této formulář, zavolejte následující kód. 842 00:41:28,730 --> 00:41:31,360 A kód, který se děje být nazýván ani popraven 843 00:41:31,360 --> 00:41:35,260 je přesně to, řecké Funkce a následně return false. 844 00:41:35,260 --> 00:41:37,360 Všechno ostatní by být docela povědomě. 845 00:41:37,360 --> 00:41:42,050 >> Zde je vstupní typu textu, jehož ID, v tomto případě, bude jméno. 846 00:41:42,050 --> 00:41:45,430 Nemáme aktuální atribut name tento time-- a tlačítko odeslat. 847 00:41:45,430 --> 00:41:48,330 Takže výsledná stránka vypadá takhle. 848 00:41:48,330 --> 00:41:52,890 A výsledné chování, uvidíte, vypadá takto. 849 00:41:52,890 --> 00:41:56,940 Stránky, na místních hostitelů říká, ahoj David, sotva esteticky 850 00:41:56,940 --> 00:41:58,340 způsob, jak pozdravit uživatele. 851 00:41:58,340 --> 00:41:59,950 Ale co to vlastně děje? 852 00:41:59,950 --> 00:42:01,360 >> Dobře zvažte, co to je. 853 00:42:01,360 --> 00:42:02,310 Jedná se o textové pole. 854 00:42:02,310 --> 00:42:04,635 A podle HTML tady, jsem ho dal 855 00:42:04,635 --> 00:42:07,350 jedinečný identifikátor volal quote unquote název. 856 00:42:07,350 --> 00:42:09,770 Mezitím, co jsem řekl, když uživatel odešle tento formulář 857 00:42:09,770 --> 00:42:13,820 tím, že udeří Enter nebo klepnutím na tlačítko Odeslat tlačítko, volání funkce s názvem Greet 858 00:42:13,820 --> 00:42:15,410 a pak se vrátit na hodnotu FALSE. 859 00:42:15,410 --> 00:42:16,870 Podívejme se na ty, které v opačném směru. 860 00:42:16,870 --> 00:42:20,590 Všimněte si, když jsem klepněte na tlačítko Odeslat, URL této stránky se nemění. 861 00:42:20,590 --> 00:42:22,420 Ikona prohlížeče nezačal točit. 862 00:42:22,420 --> 00:42:27,050 Nechtěl jsem nikam, a to doslova, protože jsem řekl, vrátí False. 863 00:42:27,050 --> 00:42:31,534 Return false zkraty nebo zastavuje výchozí chování formuláře. 864 00:42:31,534 --> 00:42:33,700 Tak, že nás pak nechává tato poslední otázka. 865 00:42:33,700 --> 00:42:34,764 Co Greet dělat? 866 00:42:34,764 --> 00:42:36,680 No, zřejmě Pozdravte volá funkci nazvanou 867 00:42:36,680 --> 00:42:39,250 Alert, prochází v jednom dlouhé argument, že je to 868 00:42:39,250 --> 00:42:43,950 Výsledkem zřetězení společně banda podřetězce, ahoj čárka prostor, 869 00:42:43,950 --> 00:42:45,810 poté, co to vrátí. 870 00:42:45,810 --> 00:42:51,490 Takže dokument je jako globální Proměnná tohoto kořene tohoto stromu, 871 00:42:51,490 --> 00:42:55,560 volání speciální funkce, jinak nyní známý jako metoda. 872 00:42:55,560 --> 00:42:57,650 Funkce, která je uvnitř proměnná 873 00:42:57,650 --> 00:42:59,640 nazývá metoda namísto funkce. 874 00:42:59,640 --> 00:43:01,570 >> Tak se element podle ID. 875 00:43:01,570 --> 00:43:03,940 Co element děláte chtějí získat jeho ID? 876 00:43:03,940 --> 00:43:06,970 Citáty konec citátu jméno a pak konkrétně hodnotu. 877 00:43:06,970 --> 00:43:12,000 Takže jinými slovy, že kód jednoduše nachází textové pole, jehož ID je název 878 00:43:12,000 --> 00:43:13,380 a pak dostane jeho hodnotu. 879 00:43:13,380 --> 00:43:16,460 Takže pokud bych měl změnit a říkají Davin místo Davida, 880 00:43:16,460 --> 00:43:20,670 a klepněte na tlačítko Odeslat teď mají pozdrav pro Davin. 881 00:43:20,670 --> 00:43:22,890 >> Dobře, takže vše v pořádku a dobré. 882 00:43:22,890 --> 00:43:25,480 Ale uvidíme, jestli můžeme udělat to trochu čistší, protože jen 883 00:43:25,480 --> 00:43:28,190 psaní kódu, jako je to obecně bude odsuzován. 884 00:43:28,190 --> 00:43:30,060 To bude vypadat děsivější. 885 00:43:30,060 --> 00:43:32,330 Ale to, co je první Rozdíl, abyste si zde 886 00:43:32,330 --> 00:43:35,970 V této verzi kromě jméno mění na DOM jeden? 887 00:43:35,970 --> 00:43:41,110 Co strukturálně vypadá jinak o tom ve srovnání s ostatními? 888 00:43:41,110 --> 00:43:41,932 Jo? 889 00:43:41,932 --> 00:43:43,890 Diváků: Je forma na Horní část skriptu teď? 890 00:43:43,890 --> 00:43:46,570 DAVID Malan: Ano, formulář je na vrcholu scénáře z nějakého důvodu zvědavý. 891 00:43:46,570 --> 00:43:48,736 Takže to je první věc, že vyskočí na mě taky. 892 00:43:48,736 --> 00:43:50,990 A naštěstí alespoň tato část je totožná. 893 00:43:50,990 --> 00:43:53,470 Takže jediná věc, která se zdá být jiný, je to. 894 00:43:53,470 --> 00:43:55,296 >> Tak tady je to, co je hezké o JavaScriptu 2. 895 00:43:55,296 --> 00:43:57,420 A to je těžké pochopit na první pohled, 896 00:43:57,420 --> 00:44:00,670 zejména u závěrečných prací pokud díváte se na ukázkový kód on-line, 897 00:44:00,670 --> 00:44:04,200 ale to se scvrkává na některé základní syntaktické funkce. 898 00:44:04,200 --> 00:44:06,230 Zde opět je, že globální proměnná dokument. 899 00:44:06,230 --> 00:44:09,540 Zde opět je, že metoda nebo funkce který říká, že si prvek podle ID. 900 00:44:09,540 --> 00:44:11,570 Tentokrát chci získat ID s názvem demo. 901 00:44:11,570 --> 00:44:12,490 Kde je to? 902 00:44:12,490 --> 00:44:15,400 To je zřejmě pravdu zde, formulář sám. 903 00:44:15,400 --> 00:44:20,010 >> A teď si všimněte, že prý když jsem vrátit se, že uzel ze stromu, který 904 00:44:20,010 --> 00:44:22,940 představuje formulář sama o sobě, není textové pole, 905 00:44:22,940 --> 00:44:26,970 Ukazuje se, že tvar, který uzel nebo obdélník ze stromu, 906 00:44:26,970 --> 00:44:30,450 má vše, co budeme nazývat vlastnost, velmi, velmi, velmi podobné 907 00:44:30,450 --> 00:44:35,390 duchem struct v C Je to jen datový člen uvnitř tohoto obdélníku. 908 00:44:35,390 --> 00:44:38,300 >> Tak jsem dostal formulář tady, a já připojení, 909 00:44:38,300 --> 00:44:44,650 nebo jsem přiřazení k jeho On Odeslat handler nebo spíše na Odeslat majetku 910 00:44:44,650 --> 00:44:45,740 Následující funkce. 911 00:44:45,740 --> 00:44:49,000 A to je, zdaleka, nejbláznivější věc tak daleko syntakticky. 912 00:44:49,000 --> 00:44:53,610 Ukazuje se, že v JavaScriptu a PHP, a upřímně řečeno, když na to přijde v C, 913 00:44:53,610 --> 00:44:58,990 i když to neuděláte, můžete přidat bezejmenné, anonymní, nebo AKA lambda 914 00:44:58,990 --> 00:45:03,000 funkce, které nemají jména ale může být nazýván nicméně. 915 00:45:03,000 --> 00:45:07,050 >> Takže to, co tu dělám je, že jsem přiřazení Tento On Odeslat majetek, který 916 00:45:07,050 --> 00:45:14,330 je uvnitř tohoto uzlu mého stromu DOM, funkce, ukazatel na funkci, pokud chcete. 917 00:45:14,330 --> 00:45:16,310 Tato funkce nemá žádný jméno, ale to neznamená, 918 00:45:16,310 --> 00:45:19,110 nevadí, protože uvidíme ve chvíli, jak to nazvat. 919 00:45:19,110 --> 00:45:21,780 Je-li tato funkce se nazývá, tento kód dostane popraven, pak 920 00:45:21,780 --> 00:45:24,210 false je vrácena stejně jako předtím. 921 00:45:24,210 --> 00:45:25,800 >> Povšimněme si ale, co jsem udělal. 922 00:45:25,800 --> 00:45:27,830 V tomto bodě příběh, mám formu. 923 00:45:27,830 --> 00:45:30,190 Má to jedinečný identifikátor s názvem demo. 924 00:45:30,190 --> 00:45:33,740 Tady dole, mám tag script který provede následující kód. 925 00:45:33,740 --> 00:45:37,720 To se váže k tomuto uzlu v strom je to na Odeslat 926 00:45:37,720 --> 00:45:40,260 Vlastnost tato funkce zde. 927 00:45:40,260 --> 00:45:44,310 A právě od přírody, jak prohlížeče práce, když jsem teď na tlačítko Odeslat nebo stiskněte klávesu Enter, 928 00:45:44,310 --> 00:45:45,889 že funkce bude dorovnán. 929 00:45:45,889 --> 00:45:48,680 Nepotřebuje jméno protože kdo sakra zajímá, jak se to jmenovalo. 930 00:45:48,680 --> 00:45:52,540 Jediný okamžik, kdy to někdy dostanu volal je, když odešlete formulář. 931 00:45:52,540 --> 00:45:55,130 Není třeba pro mě, člověk developer, 932 00:45:55,130 --> 00:45:57,330 skutečně volat kdekoliv jinde. 933 00:45:57,330 --> 00:46:00,720 >> Nyní jen jako ukázku, jako v případě, že byly nevadí dost ohýbání, 934 00:46:00,720 --> 00:46:03,330 můžeme dokonce to vypadají spíše mystický použití 935 00:46:03,330 --> 00:46:05,850 Super populární knihovna s názvem jQuery. 936 00:46:05,850 --> 00:46:08,760 Ve skutečnosti jQuery a JavaScript často se sjednotil. 937 00:46:08,760 --> 00:46:12,790 A co budeme dělat, ve středu je začátek pomocí tohoto jazyka a tyto knihovny 938 00:46:12,790 --> 00:46:16,030 stavět stále asynchronní a dynamické aplikace 939 00:46:16,030 --> 00:46:18,950 jako mapu dostat aplikace, aplikace 940 00:46:18,950 --> 00:46:22,360 že aktualizovat webové stránky v reálném čas, podobně jako Facebook nebo Gchat 941 00:46:22,360 --> 00:46:27,130 dělat, a už omezit na bít Odeslat pomocí GET nebo jen poštou 942 00:46:27,130 --> 00:46:27,630 sám. 943 00:46:27,630 --> 00:46:29,055 Tak jsem vás vidět ve středu. 944 00:46:29,055 --> 00:46:31,805 945 00:46:31,805 --> 00:46:35,550 >> [Přehrávání hudby] 946 00:46:35,550 --> 00:48:09,728