1 00:00:00,000 --> 00:00:01,940 >> [Muusika mängimine] 2 00:00:01,940 --> 00:00:11,130 3 00:00:11,130 --> 00:00:14,620 >> DAVID Humala: See on CS 50 ja see on algus nädalal üheksa. 4 00:00:14,620 --> 00:00:18,240 Ja me arvasime me tahaks teha, ei ole täna ainult sulgeda peatükki eelmisel nädalal 5 00:00:18,240 --> 00:00:22,670 materjali, kus keskendusime server pool veebi programmeerimine PHP ja SQL 6 00:00:22,670 --> 00:00:23,549 mõned andmebaasi kraami. 7 00:00:23,549 --> 00:00:25,590 Me räägime natuke turvalisus täna ja siis 8 00:00:25,590 --> 00:00:29,590 Üleminek kliendipoolse programmeerimine keeles tuntud kui JavaScript. 9 00:00:29,590 --> 00:00:31,330 Aga kõigepealt mõned lunastus. 10 00:00:31,330 --> 00:00:35,030 >> Nette et Kolmapäev, I sätestatud 11 00:00:35,030 --> 00:00:37,550 kirjutada kodulehel, et võttis kasutaja sisend 12 00:00:37,550 --> 00:00:41,120 poolt HTML kujul, et siis salvestatud et kasutaja sisend nimesid, 13 00:00:41,120 --> 00:00:43,124 numbrid ja mobiiltelefon Vedajate andmebaasis. 14 00:00:43,124 --> 00:00:45,540 Ja siis oli mul veidi käsk line script kirjutatud PHP 15 00:00:45,540 --> 00:00:47,956 mis pidi itereerima üle rida andmebaasis 16 00:00:47,956 --> 00:00:49,400 ja saata tekstsõnumeid. 17 00:00:49,400 --> 00:00:53,870 Vaatamata mitmetele, mitmeid katseid, me ei saada, et töö lõpuks. 18 00:00:53,870 --> 00:00:57,820 >> Nii et ma veetsin kogu selle nädala tööpäeva selle koodi meid viimase punkti 19 00:00:57,820 --> 00:01:01,220 kus meil pooleli jäi, kusjuures kõik Sain lõpuks kolmapäev 20 00:01:01,220 --> 00:01:05,500 oli selle teksti sõnum alates Margo nagu ma võidelnud, 21 00:01:05,500 --> 00:01:09,940 järgneb tekstisõnumi teise klassivend, Sul on see David. 22 00:01:09,940 --> 00:01:14,030 Järgneb selle ühe, imeliselt julgustav. 23 00:01:14,030 --> 00:01:15,840 Hoida läheb, väga julgustav. 24 00:01:15,840 --> 00:01:20,960 Ma peaaegu sain selle alles then-- ja see märkus me lõppes kolmapäeval. 25 00:01:20,960 --> 00:01:25,850 Ja siis tegelikult võib-olla mu lemmik, Hetk hiljem see tuli. 26 00:01:25,850 --> 00:01:27,000 Damn Live Stream. 27 00:01:27,000 --> 00:01:31,080 >> Nii et täna me määrata see kiire vaadata, mida ma olen teinud alates. 28 00:01:31,080 --> 00:01:35,440 Nii et kõik see kood on olemas Internetis eelmise nädala, nädala kaheksa, 29 00:01:35,440 --> 00:01:36,300 lähtekoodi. 30 00:01:36,300 --> 00:01:39,425 Ja te näete, et ma läksin läbi, ja ma tegelikult puhastada asju natuke. 31 00:01:39,425 --> 00:01:42,080 I tutvustas paar muud funktsioonid SQL andmebaasi. 32 00:01:42,080 --> 00:01:45,300 Näiteks mitte lihtsalt kandja var char 33 00:01:45,300 --> 00:01:47,310 nagu ma arvan, et ma tegin lennult eelmisel nädalal. 34 00:01:47,310 --> 00:01:49,820 Ma asemel määratleda seda mida nimetatakse enum. 35 00:01:49,820 --> 00:01:53,310 >> Ja mõned teist ehk näinud seda uurisime C. Väärtustik on tegelikult 36 00:01:53,310 --> 00:01:56,820 tunnuseks C, kus saab loetleda terve hulk konstante 37 00:01:56,820 --> 00:01:59,640 ning määrata need automaatselt väärtused, nagu üks, kaks, kolm, neli 38 00:01:59,640 --> 00:02:01,330 ilma et peaks kõvasti koodi numbrid. 39 00:02:01,330 --> 00:02:04,780 Nii SQL toetab sama, kusjuures kui teil on andmebaasis väli, et te ainult 40 00:02:04,780 --> 00:02:09,389 taha võtta ühe piiratud väärtused, mida saab sõna-sõnalt, määra see 41 00:02:09,389 --> 00:02:13,120 nagu ma olen teinud seal neli populaarne USA size kandjad. 42 00:02:13,120 --> 00:02:13,819 >> Nii et ma tegin seda. 43 00:02:13,819 --> 00:02:16,610 Ja ma teinud mitmeid muudatusi hästi, millest olulisemad 44 00:02:16,610 --> 00:02:20,090 oli saada email tööta, sest turult, et see programm tugines mis 45 00:02:20,090 --> 00:02:23,470 tavaliselt nimetatakse e- SMS gateway, mis on vaid 46 00:02:23,470 --> 00:02:27,670 fancy viis öelda, et Verizon, ja AT & T ja teised inimesed toetavad server, 47 00:02:27,670 --> 00:02:30,740 kusjuures, kui ta saab e teisendab selle SMS 48 00:02:30,740 --> 00:02:33,290 ja saadab teksti teade kellegi telefoni. 49 00:02:33,290 --> 00:02:37,010 Nii et kui ma tegin seda õigesti, siin on uus ja parandatud kujul 50 00:02:37,010 --> 00:02:39,259 et läheb rääkima uue ja parema kood, mis 51 00:02:39,259 --> 00:02:40,300 saab mängida võrgus. 52 00:02:40,300 --> 00:02:44,140 Ja loodetavasti teeb mu telefon helisignaali vaid hetk. 53 00:02:44,140 --> 00:02:47,240 >> Nii et esimene, ma lähen kirjuta oma nime. 54 00:02:47,240 --> 00:02:51,400 Teiseks, ma ei kavatse seda teha seekord. 55 00:02:51,400 --> 00:02:53,920 Ma lähen ära Kontrollige Element. 56 00:02:53,920 --> 00:02:56,710 Ja see on lihtsalt väike asi, et ma seda ei tee 57 00:02:56,710 --> 00:02:59,250 luua tundi post tootmine töö tegin viimast korda. 58 00:02:59,250 --> 00:03:02,300 Seal nüüd on minu telefoninumber. 59 00:03:02,300 --> 00:03:03,560 >> Ma valida Verizon. 60 00:03:03,560 --> 00:03:10,260 Ja siin, lähme lülitage see mikrofon siin ja eesmärk see minu telefoni siin. 61 00:03:10,260 --> 00:03:13,130 Ma lähen klõpsake registri mis peaks loodetavasti 62 00:03:13,130 --> 00:03:14,530 pane see andmebaasi. 63 00:03:14,530 --> 00:03:16,780 Nüüd ma lähen minema käsurea programm, mis 64 00:03:16,780 --> 00:03:20,825 turult kutsuti dot kaldkriips teksti ja risti sõrmede. 65 00:03:20,825 --> 00:03:24,092 66 00:03:24,092 --> 00:03:26,527 Siin me läheme. 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 Humala: Nii lõbusam kui see-- see on lõbus, muidugi, kui ma saan seda. 71 00:03:34,940 --> 00:03:38,004 Aga see on rohkem lõbu, ma arvasin, et kui me loodud üks neist filmi hetked 72 00:03:38,004 --> 00:03:40,420 kus nagu midagi tõesti halb juhtus maailmas 73 00:03:40,420 --> 00:03:42,860 ja nagu kõik NSA inimeste mobiiltelefonides alustada piiksumist 74 00:03:42,860 --> 00:03:44,860 sõnumiühenduses hoiatatakse neid sellest. 75 00:03:44,860 --> 00:03:47,026 Nii et ma arvasin, et me peame püüdma taasloomine sama siin, 76 00:03:47,026 --> 00:03:49,610 milles mitte kasutades andmebaasi, Ma asemel ette 77 00:03:49,610 --> 00:03:51,490 kirjutas programmi, mis näeb välja selline. 78 00:03:51,490 --> 00:03:53,660 >> See on index.php-- ja panin selle koodi Internetis 79 00:03:53,660 --> 00:03:56,710 kui well-- et ilmselt lihtsalt muudab form.php, 80 00:03:56,710 --> 00:04:00,990 kasutades MVC stiil paradigma, mida me räägime üksikasjalikumalt probleem komplekt 81 00:04:00,990 --> 00:04:01,650 seitse. 82 00:04:01,650 --> 00:04:02,910 See vorm on üsna lihtne. 83 00:04:02,910 --> 00:04:06,634 See saab esitada fail nimega here.php posti teel. 84 00:04:06,634 --> 00:04:09,300 Ja see on ilmselt küsin Nime ja telefoninumbri 85 00:04:09,300 --> 00:04:11,400 ja seejärel läbi niinimetatud Valige menüü, siis on 86 00:04:11,400 --> 00:04:14,250 annan teile vähemalt neli populaarne USA size vedajad, 87 00:04:14,250 --> 00:04:17,470 ja seejärel võimaldab teil tõhusalt võtta kohalolijate klikkides siia. 88 00:04:17,470 --> 00:04:20,471 >> Ja siin, vahepeal läheb laenata kood viimast korda. 89 00:04:20,471 --> 00:04:22,553 Ja kui sa lihtsalt koorima see, näete, et seal on 90 00:04:22,553 --> 00:04:23,900 terve hunnik vigu kontrollimata. 91 00:04:23,900 --> 00:04:26,640 Aga ilu lõpus on see, et me ei kirjuta andmebaasi täna. 92 00:04:26,640 --> 00:04:29,130 Me hoides seda lihtne ja lihtsalt saates loodetavasti 93 00:04:29,130 --> 00:04:32,190 tekstisõnumi kaudu funktsiooni I kirjutas viimastel päevadel kõne 94 00:04:32,190 --> 00:04:36,270 Tekst, mis on funktsioonid. php, mis on jälle saadaval internetis. 95 00:04:36,270 --> 00:04:38,210 >> Nii et kui soovid osa saada sellest. 96 00:04:38,210 --> 00:04:40,190 Me ei kavatse olla ladustamiseks midagi. 97 00:04:40,190 --> 00:04:43,809 Mine seda URL siia reaalajas. 98 00:04:43,809 --> 00:04:46,850 Ärge esitage see lihtsalt veel, aga olgem kas meil on üks neist filmi 99 00:04:46,850 --> 00:04:49,830 hetki, kus igaühe mobiiltelefon hakkab piiksuma, loodetavasti lihtsalt 100 00:04:49,830 --> 00:04:53,580 kui sel aastal erinevalt 2011. aastal kui see läks kohutavalt viltu. 101 00:04:53,580 --> 00:04:58,910 Ja kui sa lähed sellele aadressile, sa näed super lihtne vorm 102 00:04:58,910 --> 00:05:03,884 et kui sul on nimi, mobiiltelefoni number ja mobiiltelefon vedaja, et 103 00:05:03,884 --> 00:05:06,175 sobib nimekirja seal minna minna ja täitke vorm. 104 00:05:06,175 --> 00:05:07,880 Kuid ei tabanud esitada veel. 105 00:05:07,880 --> 00:05:10,850 >> Vorm läheb välja nägema selline. 106 00:05:10,850 --> 00:05:13,660 Lase käia ja kirjuta oma nimi ja telefoninumber. 107 00:05:13,660 --> 00:05:17,670 Oop, keegi läheb ees kõver. 108 00:05:17,670 --> 00:05:18,170 See on OK. 109 00:05:18,170 --> 00:05:19,340 OK, kõik on täis vorm. 110 00:05:19,340 --> 00:05:21,400 See peaks töötama telefon ka, kui tahad. 111 00:05:21,400 --> 00:05:23,695 Olgu, teie kaubamärkide saada valitud, minna. 112 00:05:23,695 --> 00:05:24,195 Tulemus siin. 113 00:05:24,195 --> 00:05:27,275 114 00:05:27,275 --> 00:05:27,775 Mis? 115 00:05:27,775 --> 00:05:31,140 116 00:05:31,140 --> 00:05:31,640 Ei. 117 00:05:31,640 --> 00:05:34,410 118 00:05:34,410 --> 00:05:40,250 Ma vannun, ma katsetada see mitu korda täna. 119 00:05:40,250 --> 00:05:41,720 Sa said selle? 120 00:05:41,720 --> 00:05:43,145 >> [Astudes VOICES] 121 00:05:43,145 --> 00:05:46,470 122 00:05:46,470 --> 00:05:49,560 >> DAVID Humala: OK, kasutaja viga olla. 123 00:05:49,560 --> 00:05:50,550 See on kaks. 124 00:05:50,550 --> 00:05:53,300 Ta töötas kaks välja mõnisada, kolm, neli. 125 00:05:53,300 --> 00:05:55,940 OK, see on hea. 126 00:05:55,940 --> 00:05:58,520 Neli viiest jaoks õigsuse kuidas. 127 00:05:58,520 --> 00:05:59,810 >> Mis siis juhtus? 128 00:05:59,810 --> 00:06:02,727 Nii et arvatavasti, nägemata oma ekraanid, miks võiks see on errored? 129 00:06:02,727 --> 00:06:05,518 See on ilmselt, et me olime lihtsalt püüavad teha liiga palju ühendusi 130 00:06:05,518 --> 00:06:08,110 Harvardi posti server kõik on üks kord sama IP aadress. 131 00:06:08,110 --> 00:06:10,740 Ma lihtsalt aim sest ma ei ole on luksus testimine 132 00:06:10,740 --> 00:06:13,220 Selle koodi mõned 300 inimest ette 133 00:06:13,220 --> 00:06:16,040 aga nüüd aru, et et vähemalt peaks 134 00:06:16,040 --> 00:06:18,250 on saanud tööd teha seekord. 135 00:06:18,250 --> 00:06:22,880 >> Olgu, aga miks see kõik rohkem Sobiv mis toimub? 136 00:06:22,880 --> 00:06:24,900 Noh esiteks, kiire Paar teadaandeid. 137 00:06:24,900 --> 00:06:29,350 Nii üks, kui soovite liituda Chang, ja Nick ja teised lõunasöögi sel reedel, 138 00:06:29,350 --> 00:06:32,400 teha RSVP tavalisel URL seal. 139 00:06:32,400 --> 00:06:35,650 Kui te olete mõelnud, et keskenduda või teeme teisejärgulised CS, 140 00:06:35,650 --> 00:06:38,941 kas sa oled üliõpilane või uustulnuk, või isegi noorem või vanem siinkohal 141 00:06:38,941 --> 00:06:42,490 ja saab veel pigistada kursused, aru, et insener koolis 142 00:06:42,490 --> 00:06:45,620 on kogumas tasuta Ben ja Jerry jäätis ja nõu 143 00:06:45,620 --> 00:06:48,910 Kolmapäeval vahetult pärast klassi kell 04:00 CS hoone 144 00:06:48,910 --> 00:06:49,771 kell Maxwell Dworkin. 145 00:06:49,771 --> 00:06:51,520 Kui see on liiga kiire ekraanil, minge 146 00:06:51,520 --> 00:06:55,260 et cs50.harvard.edu eest link Facebook sündmus 147 00:06:55,260 --> 00:06:57,140 kus saab näha rohkem üksikasju. 148 00:06:57,140 --> 00:07:01,390 >> Vahepeal ma mõtlesin parandada üks teine ​​asi, mida ma goofed kolmapäeval. 149 00:07:01,390 --> 00:07:04,400 Selgub, et Markuse ID Facebook ei olnud kolm. 150 00:07:04,400 --> 00:07:05,230 See oli neli. 151 00:07:05,230 --> 00:07:08,330 Selgub, et ta oli rohkem test kontode kui ma mäletan. 152 00:07:08,330 --> 00:07:12,400 Aga mida see tundsin võimalus teha on tõmmata URL niimoodi. 153 00:07:12,400 --> 00:07:16,680 >> Nii selgub, et Facebook on API, Application Programming Interface, 154 00:07:16,680 --> 00:07:20,070 mis on mehhanism, mille abil sa võib nõuda andmete programmiliselt 155 00:07:20,070 --> 00:07:24,480 Facebookis ja saada tagasi masin loetava info ei veebilehtede 156 00:07:24,480 --> 00:07:28,690 aga lihtsalt tavalist teksti, midagi nimetatakse JavaScript Object Märge. 157 00:07:28,690 --> 00:07:32,150 Ja tegelikult, kui ma külastan seda URL ja suumida vaikimisi 158 00:07:32,150 --> 00:07:34,960 see on Markuse avalikult kättesaadavat teavet. 159 00:07:34,960 --> 00:07:37,430 >> Ja huvitav detail siin just tema ID 160 00:07:37,430 --> 00:07:40,670 tõepoolest, number neli, mis on minu mõistsin kohe, kui ma tegin seda. 161 00:07:40,670 --> 00:07:44,260 Seda saab teha ise, kui sa tead, oma Facebook kasutajanimi, kui teil on üks. 162 00:07:44,260 --> 00:07:45,440 Lihtsalt kirjuta see üles top seal. 163 00:07:45,440 --> 00:07:46,640 Ja ükski see on privaatne. 164 00:07:46,640 --> 00:07:48,670 Ma lihtsalt teen seda isegi inkognito režiimis. 165 00:07:48,670 --> 00:07:49,900 Nii et ma ei ole isegi veel sisenenud. 166 00:07:49,900 --> 00:07:54,440 Ja te näete, et ma ilmselt oli kasutaja number 6454 167 00:07:54,440 --> 00:07:56,480 Facebook, mis ei ole liiga halb nendel päevadel. 168 00:07:56,480 --> 00:07:59,900 Nii et igal juhul, näete ka täiendavat teavet seal. 169 00:07:59,900 --> 00:08:02,150 >> Ja kasulik aspekt selle, et sa 170 00:08:02,150 --> 00:08:06,890 võiks kirjutada oma tarkvara, et kuidagi ühendab andmed, nagu see 171 00:08:06,890 --> 00:08:08,170 teie enda taotluse. 172 00:08:08,170 --> 00:08:10,650 Võite anda kasutajatele õiguse logida oma veebilehel, 173 00:08:10,650 --> 00:08:14,190 ei kasuta oma kohandatud kasutajanime ja parooli, kuid äkki oma Facebook login 174 00:08:14,190 --> 00:08:16,170 ja saada teavet isegi nende sõbrad, 175 00:08:16,170 --> 00:08:18,740 kui nad on heaks kiitnud sellised või sarnased. 176 00:08:18,740 --> 00:08:21,430 Nii et pange tähele, et CS50 Ka on mõnel tema API 177 00:08:21,430 --> 00:08:24,620 üks muidugi kataloogi andmetel mõned neist kallistusi menüüd söögituba 178 00:08:24,620 --> 00:08:26,730 hallid, kõik hooned ja kohad 179 00:08:26,730 --> 00:08:30,930 ülikoolilinnakus meil API samuti et saate päringu sarnaselt ja saada 180 00:08:30,930 --> 00:08:35,520 tagasi tekstilised andmed, mida saab integreerida arvesse PHP või JavaScripti, või isegi, 181 00:08:35,520 --> 00:08:38,320 kuigi harvemini C põhineb lõplik projekt. 182 00:08:38,320 --> 00:08:41,190 >> Tõepoolest enne lõpliku Projekt on mõned verstapostid. 183 00:08:41,190 --> 00:08:42,980 Sul meilt e teisel päeval. 184 00:08:42,980 --> 00:08:45,761 Aru, et ettepanek on tingitud tuleval esmaspäeval. 185 00:08:45,761 --> 00:08:49,010 See ei ole tingimata siduvad, kuid te ei pea saada oma õpetamise stipendiaatide 186 00:08:49,010 --> 00:08:51,260 heakskiitu enne mis tahes muudatuste järel. 187 00:08:51,260 --> 00:08:54,280 Ja siis edasi on mitmed teised verstapostid. 188 00:08:54,280 --> 00:08:56,542 >> Nii et kiusa ka mõned võimalustest, 189 00:08:56,542 --> 00:08:58,250 meil on hunnik Nende tooni lambid. 190 00:08:58,250 --> 00:09:01,190 Ja mõned kutid on nüüd mõned Nende oma Dorm tuba samuti. 191 00:09:01,190 --> 00:09:02,920 Ja ka neil on API. 192 00:09:02,920 --> 00:09:07,300 Nii meenutavad need binaarsed pirnid nädalat tagasi, et Dan Bradley ja Ansel 193 00:09:07,300 --> 00:09:08,780 Duff loodud meile. 194 00:09:08,780 --> 00:09:12,560 Nad kasutasid tarkvara liides see lamp, mis hetkel 195 00:09:12,560 --> 00:09:15,232 on ühendatud elekter ja siis läbi traadita 196 00:09:15,232 --> 00:09:17,690 on ühendatud väike asi nimega Bridge siin, 197 00:09:17,690 --> 00:09:21,280 nagu väike ruuter varaliste selle konkreetse seadmega. 198 00:09:21,280 --> 00:09:26,540 >> Aga selgub, kui ma tean, kuidas Kirjuta HTTP sõnumeid, nagu me kõik nüüd teha, 199 00:09:26,540 --> 00:09:31,670 Võin saata sõnum niimoodi Selle lambi sisse- ja väljalülitamine 200 00:09:31,670 --> 00:09:34,000 või teha mis tahes arv muid toiminguid ta. 201 00:09:34,000 --> 00:09:36,110 Pange tähele, et see ei saa, see ei saa postitada. 202 00:09:36,110 --> 00:09:37,760 Seal on veel üks nn panna. 203 00:09:37,760 --> 00:09:39,630 Seal on tegelikult mõned muud sellised verbid. 204 00:09:39,630 --> 00:09:42,920 Aga teate seal teed seal, kaldkriips API, kaldkriips uus arendaja, 205 00:09:42,920 --> 00:09:44,990 kaldkriips valgus, kärpida üks, kärpida riik. 206 00:09:44,990 --> 00:09:49,060 >> See on ilmselt lihtsalt tee, et firma, Philips, 207 00:09:49,060 --> 00:09:51,640 otsustasid sa pead vajuta koos HTTP taotluse 208 00:09:51,640 --> 00:09:55,010 Kui soovite muuta riigi pirn HTTP 1.1. 209 00:09:55,010 --> 00:09:56,380 Siis teate tühi rida. 210 00:09:56,380 --> 00:10:00,170 Ja siis lõpuks, mida näeb sellist massiivi mingisugune, 211 00:10:00,170 --> 00:10:04,730 see jälle läheb nimetada JavaScript Object Märge, või Jason. 212 00:10:04,730 --> 00:10:08,000 Ja mida sa näed on see, et on kolm põhiväärtus paari. 213 00:10:08,000 --> 00:10:09,115 >> Üks võti on kutsunud. 214 00:10:09,115 --> 00:10:10,990 Ja selle raha ilmselt läheb, et olla tõsi. 215 00:10:10,990 --> 00:10:13,612 Heledus on 128, mis on mingi int. 216 00:10:13,612 --> 00:10:15,820 Ja siis ülemineku aeg on null, mis on ilmselt 217 00:10:15,820 --> 00:10:17,970 kui kaua see aega võtta, et muuta see asi. 218 00:10:17,970 --> 00:10:19,890 >> Nii et just nüüd see lamp on välja lülitatud. 219 00:10:19,890 --> 00:10:22,880 Aga kui ma teen täpselt see-- lasta mul minna veidi petma lehte 220 00:10:22,880 --> 00:10:25,200 et Dan loodud advance-- ja ma lähen 221 00:10:25,200 --> 00:10:27,920 minna ja kopeerida järgmine käsk. 222 00:10:27,920 --> 00:10:30,200 Curl, nagu mõned teist oleks võinud väita kohta CS50 223 00:10:30,200 --> 00:10:35,080 Arutle on utiliit nagu Telnet sellise et saate simuleerida HTTP päringuid, 224 00:10:35,080 --> 00:10:36,360 eriti paneb. 225 00:10:36,360 --> 00:10:39,710 Võin saata neid andmeid, konkreetselt, mida me lihtsalt 226 00:10:39,710 --> 00:10:43,430 nägin hetk tagasi just Selle URL siia. 227 00:10:43,430 --> 00:10:46,310 Ja siis Curl läheb käepide kõik vajalikud päised 228 00:10:46,310 --> 00:10:47,600 ja sõelumine seal. 229 00:10:47,600 --> 00:10:54,700 >> Nii et kõik, mida ma pean tegema, on kopeerida seda arvesse terminali aken ja vajuta Enter. 230 00:10:54,700 --> 00:10:56,000 Ja lamp põlema. 231 00:10:56,000 --> 00:10:59,060 Ja see kõik on läbimas minu arvuti juhtmevabalt 232 00:10:59,060 --> 00:11:01,960 kuidagi alla silla, mis Seejärel räägi see lamp. 233 00:11:01,960 --> 00:11:02,960 Ma võin teha midagi muud. 234 00:11:02,960 --> 00:11:07,050 Võin teha seda asja mine punane näiteks. 235 00:11:07,050 --> 00:11:11,040 Võin näiteks teha see asi minna roheline. 236 00:11:11,040 --> 00:11:12,220 Ma saan selle käima sinine. 237 00:11:12,220 --> 00:11:14,760 >> Ja teate kõik need juhtumeid, kõik, mis ma olen muutumas 238 00:11:14,760 --> 00:11:18,540 on nn toon väärtust tegelikult annab see teatud värvi. 239 00:11:18,540 --> 00:11:20,320 Nii et lubage mul kleebi see üks samuti. 240 00:11:20,320 --> 00:11:21,000 Nüüd on sinine. 241 00:11:21,000 --> 00:11:24,672 >> Ja seda saab teha isegi Kasvataja asjad where-- lähme roheliseks. 242 00:11:24,672 --> 00:11:26,630 Ja ma võiks seda kohta muidugi mu enda koodi. 243 00:11:26,630 --> 00:11:30,670 Aga isegi API ise toetab funky toimingud 244 00:11:30,670 --> 00:11:35,510 nagu see, mis nüüd vaeva meil järgmiseks 30 sekundit. 245 00:11:35,510 --> 00:11:39,170 >> Nii et see on üks maitse, mida sa võiksid pistmist API, see hõlmab 246 00:11:39,170 --> 00:11:40,010 lambipirnid. 247 00:11:40,010 --> 00:11:42,510 Pange tähele, et CS50 on paar paari Google Glass Kui soovite 248 00:11:42,510 --> 00:11:45,380 meeldib tegeleda midagi mööda need read, Arduino unos, mis 249 00:11:45,380 --> 00:11:48,670 on tilluke arvutid Sisuliselt on veidi trükiplaatide 250 00:11:48,670 --> 00:11:50,470 et saate ühendada juhtmed ja muud asjad 251 00:11:50,470 --> 00:11:52,732 ja tegelikult kontroll oma reaalses maailmas keskkonda. 252 00:11:52,732 --> 00:11:54,940 Ja siis seal on paar Uute mänguasjad, mis meil on. 253 00:11:54,940 --> 00:11:59,294 See üks sõna otseses mõttes just saabunud Teisel päeval posti, Müo Armbandist. 254 00:11:59,294 --> 00:12:01,710 Ja ma arvasin, et see on viis, kuidas sulle põnevil projektid 255 00:12:01,710 --> 00:12:03,720 mida te võite kasutada see riist oleks 256 00:12:03,720 --> 00:12:08,900 on mängida selle lühikese klipi et nad kasutavad tease inimesed 257 00:12:08,900 --> 00:12:10,500 et me oleme nüüd elavad tulevikus. 258 00:12:10,500 --> 00:12:13,494 259 00:12:13,494 --> 00:12:15,490 >> [Muusika mängimine] 260 00:12:15,490 --> 00:13:33,410 261 00:13:33,410 --> 00:13:37,109 >> DAVID Humala: Nii vaid paar nädalat, siis Ka võib olla, et jahedas CS50 õiglane. 262 00:13:37,109 --> 00:13:39,150 Teine seade, mis me on hunnik, et me oleme 263 00:13:39,150 --> 00:13:42,090 õnnelik laenata läbi projektide nimetatakse algatusel töötleja. 264 00:13:42,090 --> 00:13:45,030 See on väike USB seade ühendate arvutiga, 265 00:13:45,030 --> 00:13:47,520 võimaldab teil suhelda sülearvuti, Mac või PC, 266 00:13:47,520 --> 00:13:51,570 nagu sa olid nagu Xbox Kinect ja tegelikult teha füüsiline liikumine palju 267 00:13:51,570 --> 00:13:54,509 nagu me näeme seda tulevikunägemus. 268 00:13:54,509 --> 00:13:56,505 >> [Muusika mängimine] 269 00:13:56,505 --> 00:15:03,380 270 00:15:03,380 --> 00:15:06,260 >> DAVID Humala: Nii et isegi kui teil on ei tea, kuidas midagi sellist 271 00:15:06,260 --> 00:15:10,050 võiks leiutas või töö on riistvara tasandil, ükskõik. 272 00:15:10,050 --> 00:15:13,520 Isegi pärast paari kuu CS50, ja arusaam programmeerimine 273 00:15:13,520 --> 00:15:19,460 üldisemalt ja veebi programmeerimine rohkem hiljuti ja seejärel ka API-sid ja HTTP, 274 00:15:19,460 --> 00:15:21,830 on teil juurdepääs kaudu tarkvara API-sid, kui te 275 00:15:21,830 --> 00:15:24,680 ei taha laenata üks neist seadmete tegelikult rääkida ta 276 00:15:24,680 --> 00:15:27,180 ja ei pea muretsema alusvara rakendamine 277 00:15:27,180 --> 00:15:30,220 üksikasju, mis on täiesti kooskõlas käesoleva mõiste kihilisus 278 00:15:30,220 --> 00:15:33,610 võtmiseks, et me oleme näha kogu semestri. 279 00:15:33,610 --> 00:15:37,990 >> Nii ka nädalavahetusel nägin paar tükki uudis. 280 00:15:37,990 --> 00:15:40,640 Mine esimese minge seminare kui te tahaks midagi õppida 281 00:15:40,640 --> 00:15:42,160 rohkem iga mitmesugustel teemadel. 282 00:15:42,160 --> 00:15:43,340 Vaata URL seal. 283 00:15:43,340 --> 00:15:45,890 Ja see üks saadeti mulle Chang, kes te teate, 284 00:15:45,890 --> 00:15:47,850 kes printimine meie armee elevandid. 285 00:15:47,850 --> 00:15:49,910 Ja see oli ka peamiseks järgmiselt. 286 00:15:49,910 --> 00:15:51,280 Ma olen hirmunud minu uus TV. 287 00:15:51,280 --> 00:15:54,301 Miks ma kardan, et muuta see asi ja siis oleksin ka. 288 00:15:54,301 --> 00:15:56,050 Nii et me oleme nüüd osutavad semestri 289 00:15:56,050 --> 00:15:58,860 Ka juhul, kui ka siis, kui teil on vähimatki arusaamist 290 00:15:58,860 --> 00:16:02,620 kuidas web töötab ja HTTP, ja turvalisuse asjad niimoodi 291 00:16:02,620 --> 00:16:03,980 tuleks hakata saagi oma silmaga. 292 00:16:03,980 --> 00:16:07,450 Aga ka, siis saad aru, kas need asjad on või ei ole 293 00:16:07,450 --> 00:16:08,430 tegelikku ohtu. 294 00:16:08,430 --> 00:16:10,940 >> Nii ma võtsin mõned katkendid see artikkel siin. 295 00:16:10,940 --> 00:16:12,540 Ja lugu on järgmine. 296 00:16:12,540 --> 00:16:14,300 Ma olen nüüd omanik Uue Smart TV, mis 297 00:16:14,300 --> 00:16:18,470 lubab anda streaming multimeedia sisu, mängud, app, 298 00:16:18,470 --> 00:16:21,450 sotsiaalse meedia ja internet sirvimise oh ja TV ka. 299 00:16:21,450 --> 00:16:24,410 Ainus probleem on see, et ma olen nüüd karda seda kasutada, ütleb autor. 300 00:16:24,410 --> 00:16:29,592 Sa oleks ka, kui sa loed läbi 46 Privacy Policy oma TV. 301 00:16:29,592 --> 00:16:31,800 Andmemaht see asi kogub on vapustav. 302 00:16:31,800 --> 00:16:35,710 Ta logib, kus, millal, kuidas ja kui kaua te kasutate telerit. 303 00:16:35,710 --> 00:16:38,190 See seab jälgimise küpsiseid, nagu me oleme arutanud, 304 00:16:38,190 --> 00:16:40,560 ja majakad kavandatud avastada, kui teil on 305 00:16:40,560 --> 00:16:43,185 vaadatud eelkõige sisu või eriti e-kiri 306 00:16:43,185 --> 00:16:45,230 kui sa tahad, et kontrollida e-posti oma TV. 307 00:16:45,230 --> 00:16:48,430 See salvestab teie poolt kasutada teie külastatavad veebisaidid, 308 00:16:48,430 --> 00:16:52,280 ja kuidas sa suhtled sisu teeme kõik, et tänu oma Smart TV. 309 00:16:52,280 --> 00:16:55,470 Samuti, creepier yet-- see on minu addition-- 310 00:16:55,470 --> 00:16:58,140 on ehitatud kaamera näo tunnustamist. 311 00:16:58,140 --> 00:17:01,010 >> Eesmärk on pakkuda žest kontrolli TV 312 00:17:01,010 --> 00:17:05,490 ja võimaldab teil logida sisse isikliku konto, kasutades oma nägu. 313 00:17:05,490 --> 00:17:08,940 Positiivsest küljest pildid salvestatud TV asemel üleslaaditud 314 00:17:08,940 --> 00:17:09,940 et ettevõtte server. 315 00:17:09,940 --> 00:17:12,520 Puuduseks on internet ühendus muudab kogu TV 316 00:17:12,520 --> 00:17:14,811 haavatavaks häkkerite kes on tõendanud oma suutlikkust 317 00:17:14,811 --> 00:17:16,700 võtta täieliku kontrolli seadme üle. 318 00:17:16,700 --> 00:17:20,880 >> Rohkem murettekitav, sest see ei olnud piisavalt targad, on mikrofon. 319 00:17:20,880 --> 00:17:23,599 TV uhke hääl tunnustamise funktsioon 320 00:17:23,599 --> 00:17:26,859 mis võimaldab vaatajatel kontrollida Ekraani häälkäsklustega. 321 00:17:26,859 --> 00:17:30,290 Aga teenuse kaasas üsna kurjakuulutav hoiatus. 322 00:17:30,290 --> 00:17:33,030 Pange tähele, et kui oma kõnet hulka 323 00:17:33,030 --> 00:17:36,210 isiklikku või muud tundlikku teavet, et teave 324 00:17:36,210 --> 00:17:40,310 on üks neid andmeid pildistatud ja edastada kolmandale osapoolele. 325 00:17:40,310 --> 00:17:40,870 Said aru? 326 00:17:40,870 --> 00:17:45,860 Ärge öelge, isiklikke või tundlikke kraam ees oma TV. 327 00:17:45,860 --> 00:17:47,280 >> Nii et see on tegelikult päris. 328 00:17:47,280 --> 00:17:50,530 Ja see on raske mitte näha, kas te minna Best Buy vms teleritele 329 00:17:50,530 --> 00:17:51,030 nendel päevadel. 330 00:17:51,030 --> 00:17:52,540 Nad kõik on tark mingil moel. 331 00:17:52,540 --> 00:17:54,740 Ja nad saavad targemaks ja creepier. 332 00:17:54,740 --> 00:17:57,490 Ja nad lihtsalt andmete kogumine viisil, mida me rääkisime 333 00:17:57,490 --> 00:18:01,840 ja siis üles laadida see HTTP või mõne teise protokolli mõned server. 334 00:18:01,840 --> 00:18:05,720 >> Nii et see oli lõbus artikkel Selles veebisaidile 335 00:18:05,720 --> 00:18:08,940 siin, mis rääkis eriti veast või eksinud kood 336 00:18:08,940 --> 00:18:11,340 et me saame tegelikult siduda arvesse eelmisel nädalal toimunud arutelu. 337 00:18:11,340 --> 00:18:15,730 Nii et see pealkiri oli järgmine lugu läheb siia, 338 00:18:15,730 --> 00:18:18,720 Josh Breckman töötanud Ettevõte ei jõudnud lepingu 339 00:18:18,720 --> 00:18:22,390 arendada sisuhaldustarkvara süsteemi või CMS kui nad kutsutakse, 340 00:18:22,390 --> 00:18:24,380 jaoks üsna suur valitsuse veebilehel. 341 00:18:24,380 --> 00:18:27,300 Suur osa projekti kaasatud arendada sisuhaldustarkvara 342 00:18:27,300 --> 00:18:29,840 et töötajad oleksid võimalik luua ja säilitada 343 00:18:29,840 --> 00:18:31,877 pidevalt muutuva sisu oma veebilehel. 344 00:18:31,877 --> 00:18:34,210 Asjad läksid päris hästi Mõne päeva pärast minnakse elama. 345 00:18:34,210 --> 00:18:37,020 Aga kuuendal päeval, asjad ei läinud nii hästi. 346 00:18:37,020 --> 00:18:39,500 Kõik sisu kohta kodulehel oli täiesti kadunud. 347 00:18:39,500 --> 00:18:42,950 Ja kõik lehed viinud Vaikimisi sisestage sisu veebilehel. 348 00:18:42,950 --> 00:18:43,810 Oih. 349 00:18:43,810 --> 00:18:46,080 Josh oli kutsutud uurima ja märkasin 350 00:18:46,080 --> 00:18:49,390 et üks eriti häirivaks väline IP aadress oli 351 00:18:49,390 --> 00:18:53,380 läinud ja kustutatakse kõik sisu süsteemi. 352 00:18:53,380 --> 00:18:56,290 >> IP-aadress ei kuulu et meretaguste häkker painutatud 353 00:18:56,290 --> 00:18:58,340 hävitades kasulik valitsuse informatsiooni. 354 00:18:58,340 --> 00:19:05,190 Ta otsustas googlebot.com, Google'i enda veebi indekseerimise ämblik. 355 00:19:05,190 --> 00:19:06,010 Oih. 356 00:19:06,010 --> 00:19:09,150 Pärast natuke uurimistööd ja skrambleerimise ringi, et leida noncorrupt backup, 357 00:19:09,150 --> 00:19:10,180 Josh leitud probleemi. 358 00:19:10,180 --> 00:19:12,700 >> Kasutaja oli kopeeritud ja kleebitud mõned sisu ühest 359 00:19:12,700 --> 00:19:15,670 leht teise, sealhulgas Muuda link 360 00:19:15,670 --> 00:19:17,577 muuta lehe sisu. 361 00:19:17,577 --> 00:19:20,160 Tavaliselt see ei oleks küsimus, sest väljaspool kasutaja oleks 362 00:19:20,160 --> 00:19:24,320 vaja sisestada ja parool kuid CMS autentimise süsteem, 363 00:19:24,320 --> 00:19:27,520 sisselogimise süsteemi, ei võtnud arvesse 364 00:19:27,520 --> 00:19:30,980 keerukamaid häkkimine tehnikaid Google Spider. 365 00:19:30,980 --> 00:19:31,700 Oih. 366 00:19:31,700 --> 00:19:33,610 >> Nagu selgub, Google Spider ei kasuta 367 00:19:33,610 --> 00:19:36,950 küpsised, mis tähendab, et ta saab lihtsalt mööda tšeki 368 00:19:36,950 --> 00:19:39,840 on sisse loginud küpsis seatud valeks. 369 00:19:39,840 --> 00:19:42,620 Samuti ei pöörata tähelepanu JavaScript, mis tavapäraselt 370 00:19:42,620 --> 00:19:45,170 kiire ja suunata kasutajad kes pole veel sisenenud. 371 00:19:45,170 --> 00:19:48,610 Ta peab siiski järgima iga hüperlink igal leheküljel ta leiab, 372 00:19:48,610 --> 00:19:51,700 sealhulgas Kustuta Page pealkirjas. 373 00:19:51,700 --> 00:19:52,650 Oih. 374 00:19:52,650 --> 00:19:56,070 >> Nii et mida see tähendab rohkem tehniline, kuid üsna kättesaadavad terminoloogia? 375 00:19:56,070 --> 00:19:58,340 See tähendab lihtsalt, et kogu oma veebilehel, 376 00:19:58,340 --> 00:20:02,287 nad olid URL ei ole erinevalt see, et võite näha probleemi pani seitse. 377 00:20:02,287 --> 00:20:04,620 Meenuta probleem pani seitse või teada, probleem seatud seitse 378 00:20:04,620 --> 00:20:06,411 et sa oled vaidlustanud, muuhulgas 379 00:20:06,411 --> 00:20:08,570 müüa varud nimel kasutajad. 380 00:20:08,570 --> 00:20:14,010 Aga rakendavate funktsioon teel kohta saada kaudu hüperlinke oma kasutajanime 381 00:20:14,010 --> 00:20:16,880 liides, ilmselt ei ole kõige targem mõte 382 00:20:16,880 --> 00:20:20,300 sest kui teie sait on kuidagi kättesaadavad kas inimese 383 00:20:20,300 --> 00:20:23,577 kes klõpsates ümber või osta bot nagu Google või Spider 384 00:20:23,577 --> 00:20:26,160 kui nad kutsutakse see on lihtsalt indekseerimise web püüab indeks 385 00:20:26,160 --> 00:20:29,060 veebi otsingumootori nad võiksid väga kergesti 386 00:20:29,060 --> 00:20:31,340 tabas kaudu saada selline URL. 387 00:20:31,340 --> 00:20:33,770 Ja see on funktsionaalselt samaväärne, antud juhul 388 00:20:33,770 --> 00:20:37,000 müüa kõik aktsiad Google. 389 00:20:37,000 --> 00:20:40,030 >> Nüüd ausalt öeldes, see on täiesti rumal, et CMS 390 00:20:40,030 --> 00:20:43,240 kasutatud JavaScript ja küpsised rakendada oma sisselogimise süsteemi 391 00:20:43,240 --> 00:20:47,100 ja ei tee seda serveri poolel, kui kutid teha ning peavad pset 7-- 392 00:20:47,100 --> 00:20:49,940 seal on login.php file-- alati, alati, 393 00:20:49,940 --> 00:20:52,789 alati turvalisus peaks olema teha serveripoolne, 394 00:20:52,789 --> 00:20:56,080 mitte kliendi poolel, sest see artikkel näitab, ja te võite ennast 395 00:20:56,080 --> 00:20:59,600 vaata mingil ajahetkel, siis on triviaalne kasutaja, hea või halb, 396 00:20:59,600 --> 00:21:02,860 lihtsalt välja lülitada JavaScript rääkimata küpsised. 397 00:21:02,860 --> 00:21:06,020 Nii et on oma igapäevast WTF. 398 00:21:06,020 --> 00:21:07,970 >> Seal on veel üks, mis on lihtsalt selline hirmutav, 399 00:21:07,970 --> 00:21:11,360 nii et ma mainida seda, kui ainult elu õppetund. 400 00:21:11,360 --> 00:21:14,850 Kui kasutad taotluse kutsus nagu Snapchat vms 401 00:21:14,850 --> 00:21:19,380 mis ütleb, et need pildid alles möödunud viie sekundi, kümne sekundi või etažeer. 402 00:21:19,380 --> 00:21:21,680 Nad on üürike Just absoluutselt ei ole. 403 00:21:21,680 --> 00:21:25,670 Nagu ei ole võimalik digitaalselt, rakendada mingil kujul video, 404 00:21:25,670 --> 00:21:30,150 või pilt või teksti jagamiseks selline et saaja teises otsas 405 00:21:30,150 --> 00:21:31,660 saa kuidagi salvestada andmeid. 406 00:21:31,660 --> 00:21:34,300 >> Kõige naiivne tee, keegi võiks oma telefonile. 407 00:21:34,300 --> 00:21:36,850 Ja nad on 10 teine ​​osa samas vaadates mõned snap 408 00:21:36,850 --> 00:21:39,410 lihtsalt võtta mõne muu telefoni ja pildistada seda, ilmselt. 409 00:21:39,410 --> 00:21:41,660 Nii saab säilitada midagi digitaalselt nii. 410 00:21:41,660 --> 00:21:44,620 Mõned teist teavad, kuidas võtta Ekraanikuvad telefoni. 411 00:21:44,620 --> 00:21:49,290 Tegelikult, kui sa ei tea seda, aru, et vähemalt Snapchat, 412 00:21:49,290 --> 00:21:51,040 ja ma arvan, et teised rakendused nendel päevadel, 413 00:21:51,040 --> 00:21:53,720 vähemalt öelda, kui saajal on tegelikult 414 00:21:53,720 --> 00:21:55,310 võtta screenshot oma pilt. 415 00:21:55,310 --> 00:22:00,870 >> Aga veel hullem oli see snappening, kui keegi mõtles ta hiljuti, 416 00:22:00,870 --> 00:22:04,680 kus mõned 100000 klõpsatusega oli vabastatud 417 00:22:04,680 --> 00:22:09,310 mida nimetatakse torrent faili erinevatel veebilehtedel lõpuks. 418 00:22:09,310 --> 00:22:12,000 Ja need sisaldasid terve hunnik privaatsõnumeid ja ametikohta. 419 00:22:12,000 --> 00:22:15,210 Selgub, enamik neist healoomuline, nii ei ole, mida te võite arvata. 420 00:22:15,210 --> 00:22:17,580 Aga kuna inimesed olid kasutada kolmanda osapoole veebilehel, 421 00:22:17,580 --> 00:22:20,270 Logides sisse oma Snapchat kasutajanimi ja parool ning seejärel 422 00:22:20,270 --> 00:22:23,470 säästa kõik oma klõpsatusega Selle kolmanda osapoole veebilehel. 423 00:22:23,470 --> 00:22:26,130 Ja see oli see, et kolmas isik veebileht, mis oli häkkinud, 424 00:22:26,130 --> 00:22:30,710 mis just mõeldud keegi arvasin, kuidas saada kõik 100.000 pluss nende pilte 425 00:22:30,710 --> 00:22:33,822 Iseenda kõvaketas järgnevaks jagamine. 426 00:22:33,822 --> 00:22:36,030 Ausalt, siin, see on omamoodi on rumal, et Snapchat 427 00:22:36,030 --> 00:22:39,360 rakendatakse sellisel viisil, et kolmas isik saab järjestada ning lõikepunktide 428 00:22:39,360 --> 00:22:43,310 andmete ja et see ei ole seotud teie enda rakendus telefonis. 429 00:22:43,310 --> 00:22:46,947 Aga ka siin aru, et need asjad ei saagi sa üllatusena, 430 00:22:46,947 --> 00:22:49,030 või vähemalt ei peaks olla elu õppetund siin. 431 00:22:49,030 --> 00:22:52,220 Kui soovite tehnilise Lisateavet minna, et URL on 432 00:22:52,220 --> 00:22:53,570 see on tänapäeva slaidid. 433 00:22:53,570 --> 00:23:00,960 Olgu, mis tahes küsimustele Tänapäeva elu õppetunni CS? 434 00:23:00,960 --> 00:23:02,710 Lülita see välja. 435 00:23:02,710 --> 00:23:04,970 Üldse midagi? 436 00:23:04,970 --> 00:23:06,301 Üldse midagi? 437 00:23:06,301 --> 00:23:09,050 Mul on palju inimesi kontrollida nende Snapchat või midagi nüüd. 438 00:23:09,050 --> 00:23:11,690 >> Olgu, nii SQL, Structured Query Language. 439 00:23:11,690 --> 00:23:12,509 Olgem murrab see. 440 00:23:12,509 --> 00:23:14,300 Ja ka, kuigi me lihtsalt kriimustada 441 00:23:14,300 --> 00:23:16,310 pind keelt, anname teile 442 00:23:16,310 --> 00:23:18,930 piisavalt keelt kujul pset 7 443 00:23:18,930 --> 00:23:22,140 nii, et saate lahendada mõned üsna levinud funktsionaalsust. 444 00:23:22,140 --> 00:23:24,912 Aga siis on paar asjad, mida me ei vaja sind, 445 00:23:24,912 --> 00:23:27,120 aga nad ei kavatse olla oluline tulla Lõputööde 446 00:23:27,120 --> 00:23:30,760 ja kindlasti tulevad tegemise tegelik veebisaitide tegelikke kasutajaid 447 00:23:30,760 --> 00:23:32,040 on see disain otsus. 448 00:23:32,040 --> 00:23:34,460 >> Selgub, et MySQL andmebaasi, siis 449 00:23:34,460 --> 00:23:37,460 on kobarad valikuid nagu andmetüübid oma veerud 450 00:23:37,460 --> 00:23:41,670 ja muid asju, kuid siis on ka valik nn ladustamise 451 00:23:41,670 --> 00:23:44,570 mootor kõik oma andmed, omamoodi failisüsteemi 452 00:23:44,570 --> 00:23:46,700 kui sa oled tuttav, kõik oma andmed. 453 00:23:46,700 --> 00:23:48,830 Mis formaati ta lõpuks salvestatakse? 454 00:23:48,830 --> 00:23:53,300 Ja kõige levinum, võib-olla on olnud MyISAM ja InnoDB, tehnilised terminid 455 00:23:53,300 --> 00:23:56,060 et me hoolime ainult sel määral, et üks on 456 00:23:56,060 --> 00:23:58,500 ja üks ei ole järgmine funktsioon. 457 00:23:58,500 --> 00:24:00,390 >> Oletame, et teil on veidi Dorm külmik. 458 00:24:00,390 --> 00:24:03,030 Ja oletame, et teie ja teie toakaaslane, kes jagavad seda külmik, 459 00:24:03,030 --> 00:24:04,682 on tõesti armastab rääkida piima. 460 00:24:04,682 --> 00:24:07,140 Ja see on tegelikult, kuidas lugu öeldi mulle teed tagasi 461 00:24:07,140 --> 00:24:10,890 sel päeval, kui ma võtsin muidugi nimega CS 161 operatsioonisüsteemid, mis 462 00:24:10,890 --> 00:24:12,580 sarnaselt uurib seda teemat. 463 00:24:12,580 --> 00:24:13,760 Nii et sul on see külmkappi. 464 00:24:13,760 --> 00:24:14,630 Sa oled piima. 465 00:24:14,630 --> 00:24:17,000 Ja sa tuled koju, oma toakaaslane on veel klassi või mis iganes, 466 00:24:17,000 --> 00:24:19,208 ja teil otsustada, ma lähen minema ja saaksin piima. 467 00:24:19,208 --> 00:24:22,630 Nii et sa sulgeda külmik, eellukustusega Dorm tuba, minna üle tänava 468 00:24:22,630 --> 00:24:25,330 CVS või kus iganes, ja saada kooskõlas osta piima. 469 00:24:25,330 --> 00:24:28,960 >> Vahepeal oma toakaaslane koju jõuab klassi, satub Dorm tuba, 470 00:24:28,960 --> 00:24:31,802 avab külmik, mõistab ka ooph, oleme välja piima. 471 00:24:31,802 --> 00:24:33,760 Nii et ta sulgeb külmkapp ja siis juhtub 472 00:24:33,760 --> 00:24:35,610 minna teise CVS, mis juhtub olema 473 00:24:35,610 --> 00:24:38,470 ühe kvartali kaugusel muud CVS ruudus, ja saab vastavalt 474 00:24:38,470 --> 00:24:40,230 seal saaksin piima. 475 00:24:40,230 --> 00:24:42,524 Nüüd, muidugi, paar minutit hiljem, siis saavad mõlemad tagasi 476 00:24:42,524 --> 00:24:44,690 ja halvim kõik võimalik tulemused on juhtunud. 477 00:24:44,690 --> 00:24:45,792 Mõlemad teil on piim. 478 00:24:45,792 --> 00:24:47,500 Ja sa tõesti ei nagu piim, et palju. 479 00:24:47,500 --> 00:24:49,625 Nii et üks neist on lihtsalt läheb hapuks mingil ajahetkel. 480 00:24:49,625 --> 00:24:55,941 Nüüd olete liiga palju piima külmkappi kõik, sest miks? 481 00:24:55,941 --> 00:24:57,072 >> [Kuuldamatu] 482 00:24:57,072 --> 00:24:59,780 DAVID Humala: Jah, sa ei kuidagi üksteisega suhelda 483 00:24:59,780 --> 00:25:00,904 et te ei saada piima. 484 00:25:00,904 --> 00:25:04,320 Nii et lihtsaim kuidas inimeste maailma, 485 00:25:04,320 --> 00:25:08,390 kuidas võiks teil vältida seda rumal stsenaarium juhtub selline 486 00:25:08,390 --> 00:25:09,750 et te ainult lõpuks üks. 487 00:25:09,750 --> 00:25:10,840 Tekst neid, jah hea. 488 00:25:10,840 --> 00:25:12,877 Aga kuidas siis veel? 489 00:25:12,877 --> 00:25:13,460 Post-it märkmepaberid. 490 00:25:13,460 --> 00:25:14,626 DAVID Humala: Post-it note. 491 00:25:14,626 --> 00:25:17,150 Igasugune kommunikatsioon mis ütleb teie toakaaslane 492 00:25:17,150 --> 00:25:18,670 ei lähe külmkappi piima. 493 00:25:18,670 --> 00:25:20,440 Ma lähen merega minu oma. 494 00:25:20,440 --> 00:25:22,770 Nii et sa kuidagi vaja lukustada seda ressurssi. 495 00:25:22,770 --> 00:25:27,180 Nii saame teha see-- saame omamoodi rikud lugu ja muutuda CS lugu 496 00:25:27,180 --> 00:25:30,360 kusjuures mõtlen seda nagu muutuja, mis salvestab teatud väärtus. 497 00:25:30,360 --> 00:25:32,570 Ja just nüüd, väärtus piim on null, 498 00:25:32,570 --> 00:25:35,410 mida te ei soovi oma toakaaslane kontrollida, et muutuja 499 00:25:35,410 --> 00:25:38,730 ja siis teha otsus ennast põhineb riigi muutuja 500 00:25:38,730 --> 00:25:42,430 kui sa oled selles protsessis oleku muutmisel, et muutuv. 501 00:25:42,430 --> 00:25:46,140 >> Nii et üks rida SQL, et me anda teile pset 7 spetsifikatsioon 502 00:25:46,140 --> 00:25:47,310 on see siin. 503 00:25:47,310 --> 00:25:49,740 Ja me ei kuluta suur aega rääkinud seda. 504 00:25:49,740 --> 00:25:55,100 Aga selgub, kui sa üritad osta mõned varu CS50 rahandus 505 00:25:55,100 --> 00:25:58,000 mis teil juba on mõned aktsiad, siis 506 00:25:58,000 --> 00:26:01,750 tahan, et oleks võimalik teha mitmeid asju kohe kokku. 507 00:26:01,750 --> 00:26:04,360 Sa tahad, et oleks võimalik tõhusalt, kõrgel tasemel, 508 00:26:04,360 --> 00:26:06,700 vaadake kõik korras, kui ma tahan osta rohkem aktsiaid Free, 509 00:26:06,700 --> 00:26:08,780 Penny varude me rääkida ka spec, 510 00:26:08,780 --> 00:26:10,660 Tahan kõigepealt kontrollida kui palju aktsiaid mul on. 511 00:26:10,660 --> 00:26:11,810 Ja arvan, et see on viis. 512 00:26:11,810 --> 00:26:14,600 Ja arvan, et ma tahan osta 10 rohkem, ma lõpuks 513 00:26:14,600 --> 00:26:17,069 tahad olla 15 aktsiaid. 514 00:26:17,069 --> 00:26:18,360 Nii et mul on kaks küsimust. 515 00:26:18,360 --> 00:26:20,230 Mis riik muutuja? 516 00:26:20,230 --> 00:26:21,470 Mis on riigi rida? 517 00:26:21,470 --> 00:26:22,970 Kui palju aktsiaid ma praegu? 518 00:26:22,970 --> 00:26:24,636 Siis sa tahad minna ja seda ajakohastama. 519 00:26:24,636 --> 00:26:27,720 Nii et analoog piima, et teil vaadata järjest, 520 00:26:27,720 --> 00:26:30,730 ja siis sa tahad seda uuendada sest kui sa tahad osta 10 aktsiat, 521 00:26:30,730 --> 00:26:32,521 sa ei taha muuta rida 10, siis 522 00:26:32,521 --> 00:26:35,300 soovite seda muuta kuni 5 pluss 10 või muidugi 15. 523 00:26:35,300 --> 00:26:40,030 >> See koodirida tagab Nende kahe ideestik 524 00:26:40,030 --> 00:26:42,810 juhtuda koos või üldse mitte. 525 00:26:42,810 --> 00:26:46,920 Keegi, ka mõne teise kasutaja kes on sisse loginud samal veebilehel, 526 00:26:46,920 --> 00:26:49,900 saab kuidagi katkestada kontrollimise rida 527 00:26:49,900 --> 00:26:52,960 ja ajakohastamisega järjest valida ja update kui soovite. 528 00:26:52,960 --> 00:26:57,360 Ja süntaks ei ole super selge, aga see üks rida, pikk on see, 529 00:26:57,360 --> 00:27:01,150 tagab selle, et need kaks operatsiooni kontrollida muutuja või vaadata järjest 530 00:27:01,150 --> 00:27:04,660 ja ajakohastada rida juhtuda atomically. 531 00:27:04,660 --> 00:27:06,849 >> Oh siin me läheme uuesti. 532 00:27:06,849 --> 00:27:07,890 Lühisõnum mu telefon. 533 00:27:07,890 --> 00:27:09,954 Nii et teeme seda natuke konkreetsem. 534 00:27:09,954 --> 00:27:12,120 Oletame, et sa ei ole rakendamise külmkapp, 535 00:27:12,120 --> 00:27:16,400 ja sa ei rakenda Pset 7, kuid tegelik pank, 536 00:27:16,400 --> 00:27:20,000 või ATM, Automated Teller Machine, mille sa kuidagi 537 00:27:20,000 --> 00:27:22,960 tahan, et oleks võimalik anda kasutajad saavad raha 538 00:27:22,960 --> 00:27:24,500 ühelt kontolt teisele. 539 00:27:24,500 --> 00:27:25,100 OK, riputada. 540 00:27:25,100 --> 00:27:26,683 Ma lähen vaigistamiseks seda nüüd, aitäh. 541 00:27:26,683 --> 00:27:30,450 Nii et me tahame liikuda raha ühest kontonumber 542 00:27:30,450 --> 00:27:33,600 teisele kontole number, täpsemalt 100 $. 543 00:27:33,600 --> 00:27:37,690 Nii et see on omamoodi suvaline Näiteks, millega te, ATM, 544 00:27:37,690 --> 00:27:41,060 Võiksid täita kaks SQL päringuid, lahutama üks konto, 545 00:27:41,060 --> 00:27:42,430 ja lisada teise konto. 546 00:27:42,430 --> 00:27:46,766 Aga sa tahad, et need kaks rida nii juhtub või üldse mitte. 547 00:27:46,766 --> 00:27:48,640 Sa ei taha midagi saada katkestada. 548 00:27:48,640 --> 00:27:51,440 Sul ei ole mingi tark paha poiss kuidagi seisab Bank of America 549 00:27:51,440 --> 00:27:53,270 kaks pangaautomaati ees Temast ja kuidagi 550 00:27:53,270 --> 00:27:55,270 omamoodi kirjutades käsud samal ajal, 551 00:27:55,270 --> 00:28:01,230 loodetavasti üritab maha $ 200 asemel $ 100 ja neil on ainult $ 100 krediiti. 552 00:28:01,230 --> 00:28:04,450 Ühesõnaga, sa tahad seda käituda täpselt nii, nagu te ootate. 553 00:28:04,450 --> 00:28:06,540 >> Ja kuidas te teete see SQL andmebaasi 554 00:28:06,540 --> 00:28:09,350 te murrab ta, mis on nimetatakse tehingu. 555 00:28:09,350 --> 00:28:14,290 Sõna otseses mõttes SQL, võite helistada CS50 on päringu funktsiooni viitega lõppeb algus 556 00:28:14,290 --> 00:28:15,370 tehing. 557 00:28:15,370 --> 00:28:18,640 Siis saab käivitada mis tahes arv Järgnevate SQL päringuid, 558 00:28:18,640 --> 00:28:20,870 kuid ükski neist ei võta mõju andmebaas 559 00:28:20,870 --> 00:28:25,880 kuni helistate päringu quote lõppeb toime, kui uuesti kasutades PHP. 560 00:28:25,880 --> 00:28:29,810 Ja sel moel saab tagada, et isegi kui teil on 1000 kasutajad kõik 561 00:28:29,810 --> 00:28:32,080 lööb oma andmebaasi samal ajal SQL 562 00:28:32,080 --> 00:28:34,540 luban, et need kaks päringut on 563 00:28:34,540 --> 00:28:36,740 rakendatud ühe peale teine. 564 00:28:36,740 --> 00:28:40,330 Nii et sa ei lõpetame üle piima või vale summa lõppkokkuvõttes 565 00:28:40,330 --> 00:28:40,830 raha. 566 00:28:40,830 --> 00:28:43,110 >> Nii et pidage seda meeles, mitte niivõrd pset 7 567 00:28:43,110 --> 00:28:45,250 kuid lõpliku projekti kui sa oled tegelikult 568 00:28:45,250 --> 00:28:49,690 püüab liikuda andmed ümber kogu tabelid nagu te võite siin. 569 00:28:49,690 --> 00:28:53,980 Aga võib-olla isegi lihtsam ja selgelt mõistetav, näite 570 00:28:53,980 --> 00:28:54,860 on see siin. 571 00:28:54,860 --> 00:28:57,760 Ja keegi saadetakse meile seda just paar päeva tagasi 572 00:28:57,760 --> 00:28:59,600 kui ta nägi midagi sarnast võrgus. 573 00:28:59,600 --> 00:29:03,480 >> Nii et minu teada pin süsteem ei ole ka haavatavad. 574 00:29:03,480 --> 00:29:06,637 Ja ma ei tea, kas see isegi kasutusalad SQL andmebaasi all kapuuts. 575 00:29:06,637 --> 00:29:08,470 Kuid olgem seda kasutada Huvides arutelu. 576 00:29:08,470 --> 00:29:10,178 Siin on ekraan, mis Harvard inimesed kipuvad 577 00:29:10,178 --> 00:29:13,620 näha, kui logite sisse oma Harvard ID number ja PIN-kood. 578 00:29:13,620 --> 00:29:19,020 Ja oletame, et pin süsteem oli rakendada PHP ja MySQL 579 00:29:19,020 --> 00:29:22,000 andmebaas, kood, et keegi oleks kirjutatud aastat tagasi 580 00:29:22,000 --> 00:29:23,270 tunduda see. 581 00:29:23,270 --> 00:29:25,230 Esiteks tunnistada muutuja nimega kasutajanime. 582 00:29:25,230 --> 00:29:27,560 Ja just selle said POST superglobal. 583 00:29:27,560 --> 00:29:30,140 Siis saad teise muutuja nimetatakse salasõna ja sama tegema. 584 00:29:30,140 --> 00:29:33,080 Ja siis lihtsalt ellu Selle pika päring siin 585 00:29:33,080 --> 00:29:36,690 valige star kasutajate kus kasutajanimi võrdub sellise ja sellise 586 00:29:36,690 --> 00:29:38,510 ja salasõna võrdub selline ja selline. 587 00:29:38,510 --> 00:29:40,660 >> Pange tähele, et lokkis traksid Olen kasutanud siin 588 00:29:40,660 --> 00:29:42,880 tähenda ainult PHP minna edasi ja asenda 589 00:29:42,880 --> 00:29:45,400 väärtus nende kahe muutujad seal. 590 00:29:45,400 --> 00:29:50,090 Need ei ole tingimata vajalik, kuid nad kipuvad vältima peen süntaksi vigu. 591 00:29:50,090 --> 00:29:53,650 Nii et see tundub täiesti õige esimesel pilgul. 592 00:29:53,650 --> 00:29:54,240 Ja see on. 593 00:29:54,240 --> 00:29:56,680 Sa võiksid rakendada pin süsteem niimoodi. 594 00:29:56,680 --> 00:30:00,460 >> Aga oletame, et super tark ja pahatahtlikud õpilane 595 00:30:00,460 --> 00:30:03,020 input seda oma pin. 596 00:30:03,020 --> 00:30:05,550 Nii et ma olen ära bullet märgid siin mõnitama üles 597 00:30:05,550 --> 00:30:08,760 ja ma olen tegelikult selgus mida ta võiks olla kirjutamist. 598 00:30:08,760 --> 00:30:10,350 Ja see on natuke imelik. 599 00:30:10,350 --> 00:30:13,850 Aga mis hüppab välja ennast potentsiaalselt murettekitav umbes kasutaja sisend, 600 00:30:13,850 --> 00:30:16,450 isegi kui sa ei tea, mida SQL süst rünnak tähendab. 601 00:30:16,450 --> 00:30:20,300 Miks see tunduda veidi kahtlane? 602 00:30:20,300 --> 00:30:21,050 Mis see on? 603 00:30:21,050 --> 00:30:21,550 [Kuuldamatu] 604 00:30:21,550 --> 00:30:24,260 DAVID Humala: või on veidi kahtlane. 605 00:30:24,260 --> 00:30:26,310 Tegelikult, see on märksõna SQL. 606 00:30:26,310 --> 00:30:28,105 Nii et ei tõota. 607 00:30:28,105 --> 00:30:29,980 Asjaolu, et seal on kõik need ülakoma 608 00:30:29,980 --> 00:30:32,646 there-- tegelikult üks lihtsamaid kuidas murda mõned andmebaasid 609 00:30:32,646 --> 00:30:35,880 on kirjutades nime nagu O'Reilly mis on ülakomaga see 610 00:30:35,880 --> 00:30:38,600 sest kui inimene, kes kirjutas kood kulisside taga 611 00:30:38,600 --> 00:30:41,570 ei võta arvesse seda, et võib olla ülakoma kasutaja juures 612 00:30:41,570 --> 00:30:45,060 sisend ja ta kasutab ülakoma oma koodi 613 00:30:45,060 --> 00:30:46,040 halbu asju võib juhtuda. 614 00:30:46,040 --> 00:30:47,870 >> Tegelikult hullem veel, et sellest. 615 00:30:47,870 --> 00:30:50,600 Kui see oli jälle koodi et keegi Harvardis aastat 616 00:30:50,600 --> 00:30:53,100 tagasi kirjutas pin süsteemi, teate, mis on 617 00:30:53,100 --> 00:30:56,220 umbes saada asendatud kasutajanime ja salasõna 618 00:30:56,220 --> 00:30:59,780 kui kasutaja liigid uuesti skroob oma kasutajanime 619 00:30:59,780 --> 00:31:03,960 ja siis üks, kaks, kolm, neli, viis, tsitaat või tsitaat lõppeb üks võrdsete 620 00:31:03,960 --> 00:31:04,660 Tsiteerin ühte. 621 00:31:04,660 --> 00:31:07,220 Ja teate, mis on võti siin on kasutaja pole 622 00:31:07,220 --> 00:31:09,900 alustas oma salasõna või oma pin tsiteerida. 623 00:31:09,900 --> 00:31:12,610 Ja nad ei ole lõppenud see tsiteerida, sest ta 624 00:31:12,610 --> 00:31:16,315 Eeldame, et kui programmeerija ei olnud nii terav, 625 00:31:16,315 --> 00:31:18,690 nad ei kavatse on need ülakoma oma koodi. 626 00:31:18,690 --> 00:31:19,860 >> Nii et siin on kood. 627 00:31:19,860 --> 00:31:23,820 Ja asendus et Nüüd võib juhtuda, on see. 628 00:31:23,820 --> 00:31:26,350 Ja ma olen rõhutanud, mida kasutaja on sisestatud. 629 00:31:26,350 --> 00:31:28,480 Nii enne, pärast. 630 00:31:28,480 --> 00:31:33,330 Ja teate, mis on pisut murettekitav nüüd umbes parempoolses SQL koodi? 631 00:31:33,330 --> 00:31:36,300 See on veidi keerulisem, küll kui päringuid oleme näinud. 632 00:31:36,300 --> 00:31:38,550 Aga see ei saa olla oleks hea, kui sa oled 633 00:31:38,550 --> 00:31:42,240 öeldes, valige täht, mis on valige kõike kasutaja tabelis 634 00:31:42,240 --> 00:31:46,630 kus kasutajanimi võrdub skroob ja parooli võrdub ühe, kahe, kolme, nelja, 635 00:31:46,630 --> 00:31:49,610 viis või üks võrdub üks. 636 00:31:49,610 --> 00:31:53,860 Mis on loogiline jätk selle viimase lause arvatavasti? 637 00:31:53,860 --> 00:31:55,650 See on lihtsalt alati tõsi. 638 00:31:55,650 --> 00:31:59,930 >> Ja kuna me oleme omamoodi arvata või arvasin, katse-eksituse meetodil 639 00:31:59,930 --> 00:32:02,760 et programmeerija, kes kirjutasin selle koodi ei 640 00:32:02,760 --> 00:32:07,250 ennetada inimeste või halb inimene kirjutades ülakoma samuti, 641 00:32:07,250 --> 00:32:10,350 saame süntaktiliselt lõpule SQL päring 642 00:32:10,350 --> 00:32:12,260 millegi mõttetu kuid midagi, mis 643 00:32:12,260 --> 00:32:15,930 on süntaktiliselt vale et alati hindab true. 644 00:32:15,930 --> 00:32:19,130 Nii et kui see kood on kasutatud vastata Küsimus on õige või vale peaks 645 00:32:19,130 --> 00:32:22,930 Selle kasutaja anda võimalus läbida, Vastus on alati ilmselt läheb 646 00:32:22,930 --> 00:32:26,930 et olla tõsi, sest see on alati läheb valida midagi andmebaasis 647 00:32:26,930 --> 00:32:29,280 sest üks kursus võrdub alati üks. 648 00:32:29,280 --> 00:32:30,360 >> Mis siis lahendus? 649 00:32:30,360 --> 00:32:33,290 Noh pset 7, me tegelikult Selle vältimiseks kõik koos. 650 00:32:33,290 --> 00:32:37,360 Anname teile päringu funktsiooni ja me Soovitame Teil kasutada küsimärke 651 00:32:37,360 --> 00:32:40,430 kui kohatäitjaid, mis on sarnane sisuga printf s% s, 652 00:32:40,430 --> 00:32:43,710 kuid milline on võti umbes küsimärke siin on, kui sa tegelikult läbi lugeda 653 00:32:43,710 --> 00:32:46,950 functions.php, kus meie päringu funktsioon on rakendatud, 654 00:32:46,950 --> 00:32:52,780 need küsimärgid on põgenenud, kusjuures midagi potentsiaalselt ohtlike 655 00:32:52,780 --> 00:32:58,210 nagu ülakoma lülitatakse sisse pääsesid ülakoma. 656 00:32:58,210 --> 00:33:00,590 >> Nii et see on see, mis tegelikult toimub, kui 657 00:33:00,590 --> 00:33:04,850 kasutada CS50 päringu funktsioon või number kolmandate isikute vaba raamatukogud, mis 658 00:33:04,850 --> 00:33:06,000 sama tegema. 659 00:33:06,000 --> 00:33:09,850 Vahet pole antud juhul roheline kui kasutaja on sisestanud ülakoma 660 00:33:09,850 --> 00:33:12,070 sest päringu funktsioon, mis me kirjutasime on 661 00:33:12,070 --> 00:33:15,120 läheb lisada längkriipse enne selliseid ohtlikke tsiteerida. 662 00:33:15,120 --> 00:33:17,360 Nii see ei ole, on Tegelikult saab olema õigustatud. 663 00:33:17,360 --> 00:33:20,910 See on nagu kirjutades hull otsin Parooli see muidugi ei kavatse 664 00:33:20,910 --> 00:33:23,490 olema skroob tegelik parool. 665 00:33:23,490 --> 00:33:28,260 >> Nii Buffee jaoks CS50 on üks, absoluutselt alati kasutada midagi 666 00:33:28,260 --> 00:33:30,860 nagu CS50 päringu funktsiooni või selle aluseks olev raamatukogu 667 00:33:30,860 --> 00:33:32,560 mis juhtub nimetada KPN. 668 00:33:32,560 --> 00:33:35,880 Aga kunagi, mitte kunagi, ei tee kunagi koodi niimoodi 669 00:33:35,880 --> 00:33:39,472 ilma põgenedes või puhastamine nagu nad ütlevad oma sisendeid. 670 00:33:39,472 --> 00:33:42,430 Ja sa mingil hetkel ilmselt kohanud mõningaid veebilehel niimoodi. 671 00:33:42,430 --> 00:33:46,060 Tegelikult tundub, et antud juhul nagu lennujaamades ja hotellides kohtades 672 00:33:46,060 --> 00:33:48,880 kui neil on tasuta Wi-Fi juurdepääs, et sa pead sisse logima, 673 00:33:48,880 --> 00:33:51,010 need veebilehed on alati jubedalt rakendada. 674 00:33:51,010 --> 00:33:55,680 Ja nii omamoodi lõbus kodus kasutamise, ei kuritegelikel eesmärkidel või rohkem 675 00:33:55,680 --> 00:33:59,170 on lõbus teedel kasutamise, on lihtsalt tüüp 676 00:33:59,170 --> 00:34:02,850 ülakomaga, ülakoma, kujule mõnel veebilehel 677 00:34:02,850 --> 00:34:03,810 ja vaata, mis juhtub. 678 00:34:03,810 --> 00:34:06,660 Ja kui server jookseb või annab sa mingi veateate, 679 00:34:06,660 --> 00:34:09,690 see võib väga hästi olla, et keegi ei ole seda ette näinud. 680 00:34:09,690 --> 00:34:15,239 Ja siis tuleb hoiatada õige asutuste ja edasi enam. 681 00:34:15,239 --> 00:34:20,843 >> Nüüd kutid peaks loodetavasti mõista veidi geek huumor siin. 682 00:34:20,843 --> 00:34:24,120 >> [NAER] 683 00:34:24,120 --> 00:34:27,571 684 00:34:27,571 --> 00:34:29,070 DAVID Humala: Tead sa oled geek. 685 00:34:29,070 --> 00:34:30,944 Järgmise mitu aastat, mäletate 686 00:34:30,944 --> 00:34:33,520 kes vähe Bobby tabelid on sest see multikas siin. 687 00:34:33,520 --> 00:34:36,760 Nii et hoidke seda meeles, kui me kontekstis lüliti viimast korda 688 00:34:36,760 --> 00:34:38,770 täna JavaScript. 689 00:34:38,770 --> 00:34:41,600 Veetsime suhteliselt vähe aega süntaksit PHP 690 00:34:41,600 --> 00:34:43,440 sest see on tegelikult super sarnane C. 691 00:34:43,440 --> 00:34:47,300 Ja kenasti kombel JavaScript liiga on super sarnane C süntaks 692 00:34:47,300 --> 00:34:49,639 samuti me näeme hetk ja jagame 693 00:34:49,639 --> 00:34:51,205 Vaata hiljem sel nädalal eriti. 694 00:34:51,205 --> 00:34:54,080 Mida saab teha selles keeles, aga on veelgi võimsam, 695 00:34:54,080 --> 00:34:55,790 eriti rakendusliideste. 696 00:34:55,790 --> 00:34:56,960 >> Aga kõigepealt kiirülevaate. 697 00:34:56,960 --> 00:35:00,450 Nii et üks, JavaScript, seal ei põhifunktsiooni, mis on kena. 698 00:35:00,450 --> 00:35:02,650 Nagu PHP, võid lihtsalt kirjutada koodi. 699 00:35:02,650 --> 00:35:04,310 Tingimused näeb välja selline. 700 00:35:04,310 --> 00:35:07,100 Ja Loogiline väljendeid võiks näeb välja selline või selline. 701 00:35:07,100 --> 00:35:09,530 Lülitid olemas ja nad tunduda see. 702 00:35:09,530 --> 00:35:10,970 Neli silmad nägema selline. 703 00:35:10,970 --> 00:35:12,390 Kuigi silmad nägema selline. 704 00:35:12,390 --> 00:35:14,160 Kas whiles näeb välja selline. 705 00:35:14,160 --> 00:35:16,850 Ja siis massiivid nägema Selle väga sarnane PHP. 706 00:35:16,850 --> 00:35:20,740 Aga teate, et JavaScript sa kuulutada muutuja mitte dollar 707 00:35:20,740 --> 00:35:25,190 kirjutada, mitte andmete tüüpi, kuid sõna-sõnalt öeldes var muutuja enne seda. 708 00:35:25,190 --> 00:35:27,900 See liiga lõdvalt kirjutatud et sellel on tüübid, 709 00:35:27,900 --> 00:35:29,729 aga sa ei ole selgesõnaliselt deklareerida neid. 710 00:35:29,729 --> 00:35:31,520 Ja siis string jaoks Näiteks võiks vaadata 711 00:35:31,520 --> 00:35:34,350 meeldib see, et string kutsutakse s käesolevas asjas. 712 00:35:34,350 --> 00:35:35,410 Ja siis objekt. 713 00:35:35,410 --> 00:35:37,010 Ja need me näeme veel enne pikk. 714 00:35:37,010 --> 00:35:41,470 Ja objekt on ilmselt üks Kõige sagedamini täheldatud andmestruktuuride 715 00:35:41,470 --> 00:35:44,050 sisse JavaScript põhineb programmi, sest see võimaldab 716 00:35:44,050 --> 00:35:46,680 sa siduda suvalise põhiväärtus paari lihtsalt 717 00:35:46,680 --> 00:35:51,240 nagu PHP assotsiatiivne massiivid ja nagu oma hash tabelit 718 00:35:51,240 --> 00:35:54,042 või proovida kui me ellu paar nädalat tagasi. 719 00:35:54,042 --> 00:35:56,250 Nii et olgem tegelikult näha, mida me saame teha JavaScript. 720 00:35:56,250 --> 00:35:59,410 Ja eelkõige on see pesu omaduste loetelu 721 00:35:59,410 --> 00:36:02,300 et brauserid on, et võimaldavad meil konksu JavaScript 722 00:36:02,300 --> 00:36:05,470 arvesse veebilehel järgmisel viisil. 723 00:36:05,470 --> 00:36:09,340 JavaScript kasutatakse tihti Kliendi skript keel. 724 00:36:09,340 --> 00:36:10,130 See ei ole koostatud. 725 00:36:10,130 --> 00:36:11,370 See liiga on tõlgendanud. 726 00:36:11,370 --> 00:36:15,740 Kuid erinevalt PHP, mis on kestnud server, veebiserver, 727 00:36:15,740 --> 00:36:18,220 või sügav sisemus kliendid, JavaScript 728 00:36:18,220 --> 00:36:22,190 on erinev, et see Tavaliselt jookseb brauser. 729 00:36:22,190 --> 00:36:26,060 >> Seega igasugused JavaScripti koodi hakkate kirjalikult jaoks pset 8 või oma lõpliku projekti 730 00:36:26,060 --> 00:36:29,890 või reaalses maailmas üldiselt läheb salvestatakse serveris, absoluutselt 731 00:36:29,890 --> 00:36:33,110 aasta dot HTML või dot JS JavaScripti fail. 732 00:36:33,110 --> 00:36:35,770 Aga brauser läheb alla laadida, et JavaScript 733 00:36:35,770 --> 00:36:39,530 koodi oma enda astme Chrome, või IE või Firefox, või mis iganes. 734 00:36:39,530 --> 00:36:43,870 Ja kood on tegelikult hakka hukati sees oma brauserit. 735 00:36:43,870 --> 00:36:46,560 Lihtsalt teha see rohkem reaalne, Vaatame selle konkreetse vormi. 736 00:36:46,560 --> 00:36:50,120 >> Me ei tea, mida see kood teeb ilma tõesti lugedes seda. 737 00:36:50,120 --> 00:36:52,670 Kuid lubage mul minna Facebook.com ilma sisse logimata. 738 00:36:52,670 --> 00:37:00,440 Lubage mul minna Kontrollige Element ja minna, oletame, Võrgustik ja laadige leht uuesti. 739 00:37:00,440 --> 00:37:04,150 Ja me see-- lase mul minna Reload Page saada kõik taotlused uus. 740 00:37:04,150 --> 00:37:08,850 Ja kõige esimene fail ma näen, on CSS, CSS. 741 00:37:08,850 --> 00:37:10,880 Siin on esimene JavaScript fail, ja mul on 742 00:37:10,880 --> 00:37:14,600 ei tea, mida see teeb, kuid siin on mõned JavaScripti koodi 743 00:37:14,600 --> 00:37:16,180 mis ajendab Facebook. 744 00:37:16,180 --> 00:37:18,400 See ei ole isegi tõesti, et paljastavad, et suumida. 745 00:37:18,400 --> 00:37:20,260 See on ikka sama absurdne. 746 00:37:20,260 --> 00:37:24,341 >> Aga näete, isegi allapoole, seal on isegi mitu neist JavaScript faile. 747 00:37:24,341 --> 00:37:24,840 Oih. 748 00:37:24,840 --> 00:37:25,440 See on ping. 749 00:37:25,440 --> 00:37:28,550 Lähme alla veidi veelgi, veelgi, veelgi. 750 00:37:28,550 --> 00:37:29,894 Seal on üks. 751 00:37:29,894 --> 00:37:31,238 Seal on üks. 752 00:37:31,238 --> 00:37:31,880 Seal on üks. 753 00:37:31,880 --> 00:37:35,820 >> Nii et kuigi Facebook, taga stseene, on kirjutatud osaliselt PHP 754 00:37:35,820 --> 00:37:39,100 ja Facebook oma versiooni sellest, seal on tohutu JavaScript. 755 00:37:39,100 --> 00:37:41,330 Tegelikult ükskõik jututoas sa Facebookis 756 00:37:41,330 --> 00:37:45,520 ükskõik inline ajakava uuendused mis juhtub reaalajas, kõik see 757 00:37:45,520 --> 00:37:47,944 on ajendatud JavaScript. 758 00:37:47,944 --> 00:37:48,444 Jah? 759 00:37:48,444 --> 00:37:50,235 >> Sihtrühm: Ma ei ole kindel kui see on Facebook, 760 00:37:50,235 --> 00:37:53,624 aga ma mõtlesin, et Facebook arenenud oma in-house kood keelt? 761 00:37:53,624 --> 00:37:54,540 DAVID Humala: Nad tegid. 762 00:37:54,540 --> 00:37:58,110 Nii et miks ma ütlen hälbega PHP nimega Hip Hop, et nad tegelikult 763 00:37:58,110 --> 00:38:03,440 lisafunktsioonid sellised, et kui Mark esmakordsel rakendamisel Facebook, 764 00:38:03,440 --> 00:38:04,710 oli kirjutatud PHP. 765 00:38:04,710 --> 00:38:07,370 Ja see omamoodi on jäänud omamoodi esiotsa keel 766 00:38:07,370 --> 00:38:09,030 et nad kasutavad palju nende kodeerimist, kuid see 767 00:38:09,030 --> 00:38:11,870 ei ole keel, mis on kaalud eriti hästi miljardeid 768 00:38:11,870 --> 00:38:12,630 inimesi. 769 00:38:12,630 --> 00:38:15,300 Ja nii nad lisasid oma parandusi kulisside taga. 770 00:38:15,300 --> 00:38:17,049 Ja nad kasutada mis tahes arv teiste keelte 771 00:38:17,049 --> 00:38:19,170 erinevat tükki oma infrastruktuuri. 772 00:38:19,170 --> 00:38:24,080 Nii et jah, see on dispersiooni mida me teame nüüd, kui PHP. 773 00:38:24,080 --> 00:38:26,610 >> Võtame pilk on paar näidet 774 00:38:26,610 --> 00:38:28,890 kuidas me võiksime kasutada JavaScripti siin. 775 00:38:28,890 --> 00:38:32,530 Tänapäeva lähtekoodi meil hunnik faile, millest esimene, 776 00:38:32,530 --> 00:38:34,090 olgem nimetatakse DOM null. 777 00:38:34,090 --> 00:38:36,770 Nii DOM null näeb välja järgmine. 778 00:38:36,770 --> 00:38:40,730 Lubage mul minna selle kataloogi ja avada domzero.html, 779 00:38:40,730 --> 00:38:44,970 mille peale on doc tüüp deklaratsioon, öeldes, siin on HTML 5. 780 00:38:44,970 --> 00:38:46,440 Ja nüüd siin on HTML tag. 781 00:38:46,440 --> 00:38:47,540 Siin on pea tag. 782 00:38:47,540 --> 00:38:49,210 Ja siin on, mida uut täna. 783 00:38:49,210 --> 00:38:52,620 >> Meil on nüüd script tag sees juht lehel. 784 00:38:52,620 --> 00:38:55,290 Ja see ilmselt ei väga vähe, kuid teade 785 00:38:55,290 --> 00:38:58,410 et ma olen määratletud script, JavaScript. 786 00:38:58,410 --> 00:39:01,050 Ja kui kõrvale, kuna see on levinud väärarvamus, 787 00:39:01,050 --> 00:39:05,220 JavaScript ei ole absoluutselt mitte midagi pistmist Java keeles 788 00:39:05,220 --> 00:39:08,010 et mõned võite õppinud APCS. 789 00:39:08,010 --> 00:39:10,480 See oli mitu turundus asi kui midagi, 790 00:39:10,480 --> 00:39:12,980 ratsutamine coattails Java aastat tagasi. 791 00:39:12,980 --> 00:39:17,300 Aga JavaScript, midagi pistmist Java, just samamoodi ja tüütult, 792 00:39:17,300 --> 00:39:18,480 äravahetamiseni nimega. 793 00:39:18,480 --> 00:39:21,890 >> Nii et siin on, kuidas deklareerida funktsiooni JavaScript sõnalt öelda funktsiooni 794 00:39:21,890 --> 00:39:24,556 Seejärel nime funktsiooni siis ühtegi argumenti, see võib võtta, 795 00:39:24,556 --> 00:39:25,530 just nagu PHP. 796 00:39:25,530 --> 00:39:28,990 Selgub JavaScript, üks tüütu ülesandeid, mis on olemas, on teade. 797 00:39:28,990 --> 00:39:31,392 See on väike aken, mis avaneb ja ärataks 798 00:39:31,392 --> 00:39:32,600 teatud osa teabest. 799 00:39:32,600 --> 00:39:33,766 See on tavaliselt kortsutas kulmu. 800 00:39:33,766 --> 00:39:35,980 Aga me kasutame seda, kui meie Esimene harjutus. 801 00:39:35,980 --> 00:39:37,900 >> Pane mõned omadused JavaScript. 802 00:39:37,900 --> 00:39:41,524 Ülakoma ja jutumärkide tegelikult ei hooli enam sellest. 803 00:39:41,524 --> 00:39:43,690 Single hinnapakkumisi ja topelt hinnapakkumisi omavahel vahetatavad, 804 00:39:43,690 --> 00:39:46,220 arvestades, C, sa pead kasutama jutumärgid keelpillidele, 805 00:39:46,220 --> 00:39:48,150 ja sul on kaks ühekohalist hinnapakkumisi tähemärki. 806 00:39:48,150 --> 00:39:51,150 In JavaScript maailmas paljud inimesed, et enamik inimesi 807 00:39:51,150 --> 00:39:54,970 Kasutada ülakoma ümber stringid lihtsalt sellepärast, et see on stilistiline asi. 808 00:39:54,970 --> 00:39:58,330 Aga mis on pluss operaator siin mida me ei ole näinud? 809 00:39:58,330 --> 00:39:59,836 >> Sihtrühm: ketistamine. 810 00:39:59,836 --> 00:40:00,960 DAVID Humala: ketistamine. 811 00:40:00,960 --> 00:40:02,450 Nii C ei ole isegi seda. 812 00:40:02,450 --> 00:40:04,820 PHP on dot operaator, mis seda teeb. 813 00:40:04,820 --> 00:40:09,710 JavaScript on pluss operaator, mis äravahetamiseni on nagu Java. 814 00:40:09,710 --> 00:40:11,440 Nüüd sellest, mis siin toimub? 815 00:40:11,440 --> 00:40:14,260 >> Nii et siin on, kui põhiline arusaam, et pilt 816 00:40:14,260 --> 00:40:17,010 me oksendasin paar päeva tagasi hakkavad. 817 00:40:17,010 --> 00:40:19,620 Mäletad, kui meil oli lihtne versioon HTML page-- 818 00:40:19,620 --> 00:40:20,830 ta just ütles, hello world. 819 00:40:20,830 --> 00:40:22,770 Ja siis me tõmbas puu üles paremale, 820 00:40:22,770 --> 00:40:27,320 oli hunnik ristkülikud ja liinid ühendab neid nagu sugupuu. 821 00:40:27,320 --> 00:40:30,820 Nii et nn DOM või Document Object Model. 822 00:40:30,820 --> 00:40:36,759 Ja selgub, et pääsete ruutude et puu süntaks 823 00:40:36,759 --> 00:40:37,550 nagu järgmine. 824 00:40:37,550 --> 00:40:41,370 Sa sõna otseses mõttes öelda dokument, mis on eriline globaalse muutuja JavaScript 825 00:40:41,370 --> 00:40:45,890 programm, mis on funktsioon sellega seotud, mida saab kasutada 826 00:40:45,890 --> 00:40:50,280 sarnaseid struktuure, aga sa lihtsalt öelda dot ja siis funktsioon nimi, 827 00:40:50,280 --> 00:40:52,390 saada elemendi ID. 828 00:40:52,390 --> 00:40:55,460 >> Element ma tahan saada on ilmselt tsiteerida lõppeb nimi. 829 00:40:55,460 --> 00:40:57,150 Ja siis ma tahan saada selle väärtust. 830 00:40:57,150 --> 00:40:58,330 Nüüd me saada enne ise. 831 00:40:58,330 --> 00:41:00,038 Ma pole isegi kindel, mida see kõik on umbes. 832 00:41:00,038 --> 00:41:03,000 Lähme edasi rutates HTML lehel, mis on super lihtne. 833 00:41:03,000 --> 00:41:05,370 >> Pange tähele, et ma olen määratletud moodustavad siin. 834 00:41:05,370 --> 00:41:07,940 Teadaanne olen andnud talle kordumatu ID, kuigi meil ei kasutata 835 00:41:07,940 --> 00:41:08,870 seda omadust varem. 836 00:41:08,870 --> 00:41:11,300 Aga see on olemas HTML. 837 00:41:11,300 --> 00:41:15,570 Võite üheselt määratleda mõned patakas HTML tunnus niimoodi. 838 00:41:15,570 --> 00:41:19,880 >> Teate nüüd see-- välja HTML toetab kohta, et pesu nimekirja 839 00:41:19,880 --> 00:41:22,490 Hetk tagasi kogu hunnik korral käitleja. 840 00:41:22,490 --> 00:41:25,060 Ja see sündmus ütleb esitama. 841 00:41:25,060 --> 00:41:28,730 Kasutaja esitamist selle vorm, helista järgmine kood. 842 00:41:28,730 --> 00:41:31,360 Ja kood, mis läheb mida nimetatakse ega hukata 843 00:41:31,360 --> 00:41:35,260 Just see, et Kreeka funktsioon, millele järgneb tagasipöördumine vale. 844 00:41:35,260 --> 00:41:37,360 Kõik muu peaks päris tuttav. 845 00:41:37,360 --> 00:41:42,050 >> Siin on sisend teksti tüüp, kelle ID, sellisel juhul saab olema nimi. 846 00:41:42,050 --> 00:41:45,430 Meil ei ole tegelik nimi atribuut Selle AEG_ ja detailid. 847 00:41:45,430 --> 00:41:48,330 Nii saadud lehekülg näeb välja selline. 848 00:41:48,330 --> 00:41:52,890 Ja tulemuseks käitumise näete, näeb välja selline. 849 00:41:52,890 --> 00:41:56,940 Lehte see kohalikele masinatele ütleb tere David, vaevalt esteetiliselt meeldiv 850 00:41:56,940 --> 00:41:58,340 viis tervitada kasutaja. 851 00:41:58,340 --> 00:41:59,950 Aga mis tegelikult toimub? 852 00:41:59,950 --> 00:42:01,360 >> Noh, mõtle, mis see on. 853 00:42:01,360 --> 00:42:02,310 See on tekstiväljale. 854 00:42:02,310 --> 00:42:04,635 Ja vastavalt HTML siin, ma olen teinud selle 855 00:42:04,635 --> 00:42:07,350 kordumatu tunnus nimetatakse quote lõppeb nimi. 856 00:42:07,350 --> 00:42:09,770 Vahepeal ma olen öelnud, kui kasutaja leiab selle vormi 857 00:42:09,770 --> 00:42:13,820 lööb Enter või klõpsates Esita nupp, kõne funktsioon nimega Greet 858 00:42:13,820 --> 00:42:15,410 ja siis tagasi False. 859 00:42:15,410 --> 00:42:16,870 Vaatleme neid vastupidises. 860 00:42:16,870 --> 00:42:20,590 Pange tähele, kui ma vajutad nupule Saada, URL selle lehekülje ei muutu. 861 00:42:20,590 --> 00:42:22,420 Brauseri ikooni ei hakanud ketramine. 862 00:42:22,420 --> 00:42:27,050 Ma ei lähe kuhugi, ja see on sõna otseses mõttes, sest ma ütlesin tagasi False. 863 00:42:27,050 --> 00:42:31,534 Tagasi False lühise või seiskub vaikimisi käitumise vorm. 864 00:42:31,534 --> 00:42:33,700 Nii et siis jätab meid see viimane küsimus. 865 00:42:33,700 --> 00:42:34,764 Mis Greet teha? 866 00:42:34,764 --> 00:42:36,680 Noh, Tervitage ilmselt kutsub funktsioon nimega 867 00:42:36,680 --> 00:42:39,250 Alert läbib ühes pikk argument, mis on 868 00:42:39,250 --> 00:42:43,950 tulemus concatenating kokku hunnik alamstringide, hello komaga ruumi, 869 00:42:43,950 --> 00:42:45,810 siis mis iganes see tagasi. 870 00:42:45,810 --> 00:42:51,490 Nii et dokument on nagu globaalne muutuja, mis juure, et puu, 871 00:42:51,490 --> 00:42:55,560 helistades eriline funktsioon, vastasel nüüd tuntud meetodit. 872 00:42:55,560 --> 00:42:57,650 Funktsioon, mis on sees muutuja on 873 00:42:57,650 --> 00:42:59,640 nimetatakse meetodi asemel funktsiooni. 874 00:42:59,640 --> 00:43:01,570 >> Nii et saada elemendi ID. 875 00:43:01,570 --> 00:43:03,940 Mis element sa tahan saada oma ID? 876 00:43:03,940 --> 00:43:06,970 Tsitaat lõppeb nimi ja siis konkreetselt väärtustada. 877 00:43:06,970 --> 00:43:12,000 Nii et teiste sõnadega, et koodi lihtsalt leiab tekstiväljale kelle ID on nimi 878 00:43:12,000 --> 00:43:13,380 ja siis saab selle väärtust. 879 00:43:13,380 --> 00:43:16,460 Kui ma seda muuta ja öelda Davin Taaveti asemel, 880 00:43:16,460 --> 00:43:20,670 ja vajutad nupule Saada, nüüd on tervitus Davin. 881 00:43:20,670 --> 00:43:22,890 >> Olgu, nii et kõik on hea ja hea. 882 00:43:22,890 --> 00:43:25,480 Aga vaatame, kas me saame teha see veidi puhtam, sest lihtsalt 883 00:43:25,480 --> 00:43:28,190 kirjalikult kood, nagu see on üldiselt saab olema kortsutas kulmu. 884 00:43:28,190 --> 00:43:30,060 See läheb otsima scarier. 885 00:43:30,060 --> 00:43:32,330 Aga mis on esimene erinevusega, et sa tähele siin 886 00:43:32,330 --> 00:43:35,970 selles versioonis lisaks nimi lendama DOM üks? 887 00:43:35,970 --> 00:43:41,110 Mida struktuurilt näeb välja teistsugune sellest versus muud? 888 00:43:41,110 --> 00:43:41,932 Jah? 889 00:43:41,932 --> 00:43:43,890 Sihtrühm: Kas formaadis top script nüüd? 890 00:43:43,890 --> 00:43:46,570 DAVID Humala: Jah, vorm on peal skripti mõned uudishimulikud põhjusel. 891 00:43:46,570 --> 00:43:48,736 Nii et esimene asi, et hüppab mulle ka. 892 00:43:48,736 --> 00:43:50,990 Ja õnneks vähemalt see osa on identsed. 893 00:43:50,990 --> 00:43:53,470 Nii et ainus asi, mis tundub olla erinev on see. 894 00:43:53,470 --> 00:43:55,296 >> Nii et siin on, mida on puhas umbes JavaScript 2. 895 00:43:55,296 --> 00:43:57,420 Ja see muudab raskeks mõista esmapilgul 896 00:43:57,420 --> 00:44:00,670 eriti viimane, kui projekti te vaatate proovi kood online, 897 00:44:00,670 --> 00:44:04,200 kuid see taandub mõne põhilised süntaktilised funktsioonid. 898 00:44:04,200 --> 00:44:06,230 Ka siin on see, et Globaalse muutuja dokument. 899 00:44:06,230 --> 00:44:09,540 Ka siin on see, et meetod või ülesanne mis ütleb, et saada elemendi ID. 900 00:44:09,540 --> 00:44:11,570 Seekord ma tahan saada ID nimega demo. 901 00:44:11,570 --> 00:44:12,490 Kus see on? 902 00:44:12,490 --> 00:44:15,400 See on ilmselt õigus Siit vormi ise. 903 00:44:15,400 --> 00:44:20,010 >> Ja nüüd teate, et ilmselt kui ma saada tagasi, et sõlme puu 904 00:44:20,010 --> 00:44:22,940 esindab kujul Iseenesest ei ole tekstiväljale 905 00:44:22,940 --> 00:44:26,970 selgub, et vorm, mis sõlme või ristkülik puult, 906 00:44:26,970 --> 00:44:30,450 on see, mida me kutsume vara, väga, väga, väga sarnased 907 00:44:30,450 --> 00:44:35,390 sisuga struct C. See on lihtsalt andmed liige sees selle ristküliku. 908 00:44:35,390 --> 00:44:38,300 >> Nii et mul on vormis siin, ja ma olen seotud, 909 00:44:38,300 --> 00:44:44,650 või ma määrates, et tema On Esita käitleja või pigem Esita kinnisvara 910 00:44:44,650 --> 00:44:45,740 järgmised funktsiooni. 911 00:44:45,740 --> 00:44:49,000 Ja see on kaugelt craziest asi siiani süntaktiliselt. 912 00:44:49,000 --> 00:44:53,610 Selgub, JavaScript ja PHP, ja ausalt öeldes, et asi on C, 913 00:44:53,610 --> 00:44:58,990 kuigi me seda ei tee, võite lisada nimetu, anonüümse või AKA lambda 914 00:44:58,990 --> 00:45:03,000 funktsioone, mis ei ole nime kuid selle võib sellegipoolest. 915 00:45:03,000 --> 00:45:07,050 >> Nii et mida ma teen siin ma määrates see On Esita vara, mis 916 00:45:07,050 --> 00:45:14,330 on sees see sõlm minu DOM puu, funktsioon, funktsiooni pointer kui soovite. 917 00:45:14,330 --> 00:45:16,310 See funktsioon ei ole nimetada, kuid see ei 918 00:45:16,310 --> 00:45:19,110 oluline, sest me näeme ühel hetkel, kuidas seda nimetada. 919 00:45:19,110 --> 00:45:21,780 Kui see funktsioon on kutsutud, Selle koodi saab täita, siis 920 00:45:21,780 --> 00:45:24,210 vale tagasi nagu enne. 921 00:45:24,210 --> 00:45:25,800 >> Aga teate, mis ma olen teinud. 922 00:45:25,800 --> 00:45:27,830 Sel hetkel lugu, mul on vormis. 923 00:45:27,830 --> 00:45:30,190 See ju unikaalne ID nimega demo. 924 00:45:30,190 --> 00:45:33,740 Alla siia, mul on script tag mis täidab järgmine kood. 925 00:45:33,740 --> 00:45:37,720 See kinnitub, et sõlm puu on On Esita 926 00:45:37,720 --> 00:45:40,260 vara see funktsioon siin. 927 00:45:40,260 --> 00:45:44,310 Ja just olemuselt kuidas brauserid töötavad, kui ma nüüd nuppu Saada või vajutage Enter, 928 00:45:44,310 --> 00:45:45,889 et funktsioon ei hakka kutsutud. 929 00:45:45,889 --> 00:45:48,680 See ei vaja nime, sest kes kuradit huvitab, mida see nn. 930 00:45:48,680 --> 00:45:52,540 Ainus kord, kui ta on kunagi hakka kutsunud on, kui ma saatke vorm. 931 00:45:52,540 --> 00:45:55,130 Ei ole vaja minu jaoks, inimese arendaja, 932 00:45:55,130 --> 00:45:57,330 tegelikult nimetada seda kusagil mujal. 933 00:45:57,330 --> 00:46:00,720 >> Nüüd nagu teaser, sest kui see ei pahanda painutamine piisavalt, 934 00:46:00,720 --> 00:46:03,330 saame isegi teha seda Vaata rohkem segasena kasutades 935 00:46:03,330 --> 00:46:05,850 super populaarne raamatukogu kutsus jQuery. 936 00:46:05,850 --> 00:46:08,760 Tegelikult jQuery ja JavaScript Sageli conflated. 937 00:46:08,760 --> 00:46:12,790 Ja mida me teeme kolmapäeval on start kasutavad seda keelt ja neid raamatukogud 938 00:46:12,790 --> 00:46:16,030 ehitada üha asünkroonse ja dünaamilisi rakendusi 939 00:46:16,030 --> 00:46:18,950 nagu kaardi saamine rakendused, rakenduste 940 00:46:18,950 --> 00:46:22,360 et uuendada veebilehe reaalne ajal palju nagu Facebook või Gchati 941 00:46:22,360 --> 00:46:27,130 teha ja mitte enam piirduda seintele esitama get või lihtsalt postitus 942 00:46:27,130 --> 00:46:27,630 üksi. 943 00:46:27,630 --> 00:46:29,055 Nii et ma näen sind kolmapäeval. 944 00:46:29,055 --> 00:46:31,805 945 00:46:31,805 --> 00:46:35,550 >> [Muusika mängimine] 946 00:46:35,550 --> 00:48:09,728