1 00:00:00,000 --> 00:00:01,940 >> [Mūzikas atskaņošanai] 2 00:00:01,940 --> 00:00:11,130 3 00:00:11,130 --> 00:00:14,620 >> DAVID Malan: Tas ir CS 50, un šis ir sākums nedēļas deviņi. 4 00:00:14,620 --> 00:00:18,240 Un tas, ko mēs domājam, ka mēs gribētu darīt šodien nav tikai slēgt nodaļu par pagājušajā nedēļā 5 00:00:18,240 --> 00:00:22,670 materiāls, kur mēs vērsta uz servera side web programmēšana ar PHP un SQL, 6 00:00:22,670 --> 00:00:23,549 daži datu bāzē sīkumi. 7 00:00:23,549 --> 00:00:25,590 Mēs runājam par mazliet drošība šodien un pēc tam 8 00:00:25,590 --> 00:00:29,590 Pāreja uz klienta puses programmēšanas valoda pazīstams kā JavaScript. 9 00:00:29,590 --> 00:00:31,330 Bet vispirms, daži izpirkšana. 10 00:00:31,330 --> 00:00:35,030 >> Jūs varat atgādināt, ka Trešdiena, es noteikti 11 00:00:35,030 --> 00:00:37,550 rakstīt tīmekļa vietni, kas uzņēma lietotāja ievadi 12 00:00:37,550 --> 00:00:41,120 ar HTML formā, pēc tam uzglabā ka lietotāja ievadierīces nosaukumi, tālrunis 13 00:00:41,120 --> 00:00:43,124 numurus, un izmērs pārvadātājiem datu bāzē. 14 00:00:43,124 --> 00:00:45,540 Un tad man bija mazliet komandu line skripts uzrakstīts PHP 15 00:00:45,540 --> 00:00:47,956 kas bija paredzēts atkārtot pāri rindām datu bāzē 16 00:00:47,956 --> 00:00:49,400 un izsūtīt īsziņas. 17 00:00:49,400 --> 00:00:53,870 Neskatoties uz vairākām, vairākiem mēģinājumiem, mēs nesaņēma šo darbu līdz galam. 18 00:00:53,870 --> 00:00:57,820 >> Tāpēc es pavadīju visu šonedēļ strādā par šo kodu, lai mūs iepriekšējo punktu 19 00:00:57,820 --> 00:01:01,220 kur mēs left off, kur visi Man beigās trešdien 20 00:01:01,220 --> 00:01:05,500 bija šī īsziņa no Margo kā es cīnījos, 21 00:01:05,500 --> 00:01:09,940 seko īsziņu no cita klasesbiedrene, Jūs esat ieguvuši šo Dāvidu. 22 00:01:09,940 --> 00:01:14,030 Seko šo vienu, lieliski iepriecinoši. 23 00:01:14,030 --> 00:01:15,840 Tur par notiekošo, ir ļoti iepriecinoši. 24 00:01:15,840 --> 00:01:20,960 Es gandrīz got to līdz then-- un tas ir piezīme mēs beidzās trešdien. 25 00:01:20,960 --> 00:01:25,850 Un tad tiešām varbūt mans favorīts, Brīdi vēlāk, tas nāca. 26 00:01:25,850 --> 00:01:27,000 Damn tiešraides. 27 00:01:27,000 --> 00:01:31,080 >> Tātad šodien, mēs varam noteikt to ar ātri apskatīt to, ko es esmu darījusi kopš. 28 00:01:31,080 --> 00:01:35,440 Lai visi šo kodu ir pieejama tiešsaistē no pagājušās nedēļas, nedēļas astoņi, 29 00:01:35,440 --> 00:01:36,300 pirmkodu. 30 00:01:36,300 --> 00:01:39,425 Un jūs redzēsiet, ka es gāju cauri, un es tiešām sakopta lietas mazliet. 31 00:01:39,425 --> 00:01:42,080 Es iepazīstināja pāris citu iezīmes SQL datu bāzi. 32 00:01:42,080 --> 00:01:45,300 Piemēram, nevis tikai veikt pārvadātāju VAR palijas 33 00:01:45,300 --> 00:01:47,310 kā es domāju, ka es darīju lidot pagājušajā nedēļā. 34 00:01:47,310 --> 00:01:49,820 Es tā vietā definēja kā ko sauc enum. 35 00:01:49,820 --> 00:01:53,310 >> Un daži no jums varētu būt redzējis šo kā mēs izpētīt C. ​​Enum ir faktiski 36 00:01:53,310 --> 00:01:56,820 C iezīme, kur jūs varat uzskaitīt visu ķekars konstantes 37 00:01:56,820 --> 00:01:59,640 un piešķirt tos automātiskās vērtības, piemēram, viens, divi, trīs, četri 38 00:01:59,640 --> 00:02:01,330 bez cieto koda numurus. 39 00:02:01,330 --> 00:02:04,780 Tāpēc SQL atbalsta pats, ar kuru tad, ja Jums ir datu bāzes lauks, kas jums tikai 40 00:02:04,780 --> 00:02:09,389 vēlaties veikt par vienu no bezgalīgi vērtības, jūs varat burtiski norādīt to 41 00:02:09,389 --> 00:02:13,120 kā es esmu darījis tur četriem populāri ASV Mobilais pārvadātājiem. 42 00:02:13,120 --> 00:02:13,819 >> Tāpēc es to izdarīju. 43 00:02:13,819 --> 00:02:16,610 Un es veica vairākas izmaiņas, kā labi, no kuriem svarīgākā 44 00:02:16,610 --> 00:02:20,090 bija, lai saņemtu e-pasta darbu, jo atsaukšanu, ka šī programma balstījās uz kuras 45 00:02:20,090 --> 00:02:23,470 parasti sauc par e-pastu SMS vārteju, kas ir tikai 46 00:02:23,470 --> 00:02:27,670 iedomātā veids, kā pateikt, ka Verizon, un AT & T, un citi ļaudis atbalstīt serveri, 47 00:02:27,670 --> 00:02:30,740 saskaņā ar kuru, ja tā saņem e-pastu, tas pārveido to SMS 48 00:02:30,740 --> 00:02:33,290 un raida tekstu ziņa kāda tālruni. 49 00:02:33,290 --> 00:02:37,010 Tātad, ja es to izdarīja pareizi, šeit ir jauna un uzlabota forma 50 00:02:37,010 --> 00:02:39,259 kas gatavojas runāt ar jauni un uzlaboti kods, kas 51 00:02:39,259 --> 00:02:40,300 Jūs varat spēlēt ar online. 52 00:02:40,300 --> 00:02:44,140 Un tas, cerams, padara manu tālrunis pīkstiens tikai brīdi. 53 00:02:44,140 --> 00:02:47,240 >> Tātad, pirmkārt, es esmu gatavojas rakstīt manā vārdā. 54 00:02:47,240 --> 00:02:51,400 Otrkārt, es neesmu gatavojas lai to paveiktu šoreiz. 55 00:02:51,400 --> 00:02:53,920 Es esmu gatavojas darīt Pārbaudīt elementu. 56 00:02:53,920 --> 00:02:56,710 Un tas ir tikai maz lieta tāpēc man nav 57 00:02:56,710 --> 00:02:59,250 izveidot stundas pēc ražošanas strādā kā es pēdējo reizi. 58 00:02:59,250 --> 00:03:02,300 Tagad ir mans telefona numurs. 59 00:03:02,300 --> 00:03:03,560 >> Es izvēlētos Verizon. 60 00:03:03,560 --> 00:03:10,260 Un šeit, pieņemsim ieslēgtu šo mikrofonu šeit, un to mērķis šo pie mana tālruņa šeit. 61 00:03:10,260 --> 00:03:13,130 Es esmu gatavojas klikšķi reģistru, kas būtu cerams 62 00:03:13,130 --> 00:03:14,530 ielieciet to datu bāzē. 63 00:03:14,530 --> 00:03:16,780 Tagad es iešu uz komandrindas programma, kas 64 00:03:16,780 --> 00:03:20,825 atgādināt sauca dot slash tekstu, un pāri pirkstiem. 65 00:03:20,825 --> 00:03:24,092 66 00:03:24,092 --> 00:03:26,527 Šeit mēs iet. 67 00:03:26,527 --> 00:03:27,501 >> [PHONE DINGS] 68 00:03:27,501 --> 00:03:28,962 >> [Aplausi] 69 00:03:28,962 --> 00:03:31,815 70 00:03:31,815 --> 00:03:34,940 DAVID Malan: Tātad vairāk jautrības nekā this-- tas ir jautri, protams, ja man tajā. 71 00:03:34,940 --> 00:03:38,004 Bet tas ir vairāk jautri, es domāju, ja mēs izveidots viens no šiem filmu momentiem 72 00:03:38,004 --> 00:03:40,420 kur, piemēram, kaut ko patiešām kas slikts ir noticis pasaulē, 73 00:03:40,420 --> 00:03:42,860 un tāpat kā visi VDI Tautas mobilo telefonu sāk pīkstēt 74 00:03:42,860 --> 00:03:44,860 ar īsziņas brīdinot tos šo faktu. 75 00:03:44,860 --> 00:03:47,026 Tāpēc es domāju, ka mēs varētu mēģināt atjaunot pats šeit, 76 00:03:47,026 --> 00:03:49,610 kad ne, izmantojot datu bāzi, Es tā vietā iepriekš 77 00:03:49,610 --> 00:03:51,490 uzrakstīja programmu, kas izskatās šādi. 78 00:03:51,490 --> 00:03:53,660 >> Tas ir index.php-- un es šo kodu tiešsaistē 79 00:03:53,660 --> 00:03:56,710 kā well-- ka acīmredzot tikai padara form.php, 80 00:03:56,710 --> 00:04:00,990 izmantojot MVC stila paradigma, kas mums runāt sīkāk problēmu kopumu 81 00:04:00,990 --> 00:04:01,650 septiņi. 82 00:04:01,650 --> 00:04:02,910 Ka forma ir diezgan vienkāršs. 83 00:04:02,910 --> 00:04:06,634 Tā gatavojas iesniegt failu sauc here.php pa pastu. 84 00:04:06,634 --> 00:04:09,300 Un tas acīmredzot gatavojas lūgt par nosaukumu, un tālruņa numuru, 85 00:04:09,300 --> 00:04:11,400 un pēc tam, izmantojot tā saukto Izvēlieties izvēlni, tas ir 86 00:04:11,400 --> 00:04:14,250 gatavojas sniegt jums vismaz četri populāri ASV Mobilais pārvadātājiem, 87 00:04:14,250 --> 00:04:17,470 un pēc tam ļauj jums, lai efektīvi veikt apmeklējumu, klikšķinot šeit. 88 00:04:17,470 --> 00:04:20,471 >> Un šeit, tikmēr gatavojas aizņemties daži kodu no pēdējo reizi. 89 00:04:20,471 --> 00:04:22,553 Un, ja jūs vienkārši nosmelt to, Jūs redzēsiet, ka tur ir 90 00:04:22,553 --> 00:04:23,900 viss ķekars kļūdu labošanas. 91 00:04:23,900 --> 00:04:26,640 Bet skaistums beigās ir tas, ka mēs neesam rakstiski datubāzē šodien. 92 00:04:26,640 --> 00:04:29,130 Mēs saglabāt to vienkārši un vienkārši izsūtot cerams 93 00:04:29,130 --> 00:04:32,190 īsziņu, izmantojot funkciju I rakstīja pēdējo pāris dienu zvanu 94 00:04:32,190 --> 00:04:36,270 Teksts, kas ir funkcijas. php, kas atkal ir pieejama tiešsaistē. 95 00:04:36,270 --> 00:04:38,210 >> Tātad, ja jūs vēlaties piedalīties šajā darbā. 96 00:04:38,210 --> 00:04:40,190 Mēs nebrauksim, lai uzglabātu neko. 97 00:04:40,190 --> 00:04:43,809 Iet uz šo URL šeit reālajā laikā. 98 00:04:43,809 --> 00:04:46,850 Neiesniedz to tikai vēl, bet pieņemsim redzēt, ja mēs varam būt viens no šiem filmas 99 00:04:46,850 --> 00:04:49,830 brīži, kad ikviena izmērs sāk pīkstēt, cerams tikai 100 00:04:49,830 --> 00:04:53,580 reizi šajā gadā atšķirībā no 2011. gadā ja tas gāja briesmīgi greizi. 101 00:04:53,580 --> 00:04:58,910 Un, kad jūs iet uz šo adresi, Jums vajadzētu redzēt super vienkāršu formu 102 00:04:58,910 --> 00:05:03,884 ka, ja jums ir vārds, mobilo telefonu numurs, un Mobilais pārvadātājs, kas 103 00:05:03,884 --> 00:05:06,175 atbilst sarakstu tur, dodieties priekšu un aizpildīt formu. 104 00:05:06,175 --> 00:05:07,880 Bet nav hit iesniegt tikai pagaidām. 105 00:05:07,880 --> 00:05:10,850 >> Forma ir gatavojas izskatās šādi. 106 00:05:10,850 --> 00:05:13,660 Iet uz priekšu un ierakstiet savu vārdu, tālruņa numuru. 107 00:05:13,660 --> 00:05:17,670 OOP, kāds notiek pirms līknes. 108 00:05:17,670 --> 00:05:18,170 Tas ir OK. 109 00:05:18,170 --> 00:05:19,340 Labi, visi ir aizpilda veidlapu. 110 00:05:19,340 --> 00:05:21,400 Tam vajadzētu strādāt tālrunis, arī, ja vēlaties. 111 00:05:21,400 --> 00:05:23,695 Labi, jūsu zīmēm, saņemt noteiktas, iet. 112 00:05:23,695 --> 00:05:24,195 Rezultāts šeit. 113 00:05:24,195 --> 00:05:27,275 114 00:05:27,275 --> 00:05:27,775 Kas? 115 00:05:27,775 --> 00:05:31,140 116 00:05:31,140 --> 00:05:31,640 Nē. 117 00:05:31,640 --> 00:05:34,410 118 00:05:34,410 --> 00:05:40,250 Es zvēru pie Dieva, es testē Tas vairākas reizes šodien. 119 00:05:40,250 --> 00:05:41,720 Jums to? 120 00:05:41,720 --> 00:05:43,145 >> [Interposing Voices] 121 00:05:43,145 --> 00:05:46,470 122 00:05:46,470 --> 00:05:49,560 >> DAVID Malan: Labi, lietotāja kļūda varbūt. 123 00:05:49,560 --> 00:05:50,550 Tas ir divi. 124 00:05:50,550 --> 00:05:53,300 Tā strādāja divos no dažiem simtiem, trīs, četri. 125 00:05:53,300 --> 00:05:55,940 Labi, tas ir labi. 126 00:05:55,940 --> 00:05:58,520 Četri no pieciem uz pareizību, kā par. 127 00:05:58,520 --> 00:05:59,810 >> Tātad, kas tikko notika? 128 00:05:59,810 --> 00:06:02,727 Tātad, iespējams, neredzot jūsu ekrāni, kāpēc tas varētu būt errored? 129 00:06:02,727 --> 00:06:05,518 Tas ir iespējams, ka mēs bijām tikko cenšoties izdarīt pārāk daudz savienojumus 130 00:06:05,518 --> 00:06:08,110 Harvard pasta serverī visus pēc tam, kad no vienas IP adreses. 131 00:06:08,110 --> 00:06:10,740 Es esmu tikai guessing, jo man nav ir luksusa testēšanas 132 00:06:10,740 --> 00:06:13,220 šo kodu ar dažiem 300 cilvēki iepriekš 133 00:06:13,220 --> 00:06:16,040 bet tagad saprotu, ka ka vismaz šādi 134 00:06:16,040 --> 00:06:18,250 gotten darbu veic šo laiku. 135 00:06:18,250 --> 00:06:22,880 >> Viss ir labi, tad kāpēc tas viss vairāk piederīgs, kas notiek? 136 00:06:22,880 --> 00:06:24,900 Nu, pirmkārt, ātri pāris paziņojumiem. 137 00:06:24,900 --> 00:06:29,350 Tik viens, ja vēlaties pievienoties Chang, un Nika, un citi pusdienās šo piektdien, 138 00:06:29,350 --> 00:06:32,400 do RSVP parastajā URL tur. 139 00:06:32,400 --> 00:06:35,650 Ja tu domā, lai koncentrētos vai darot sekundārā CS, 140 00:06:35,650 --> 00:06:38,941 vai jūs esat otrā kursa students, vai pirmkursnieks, vai pat junioru vai vecākais šajā brīdī 141 00:06:38,941 --> 00:06:42,490 un vēl var izspiest kursos, saprotam, ka inženierzinātņu skolā 142 00:06:42,490 --> 00:06:45,620 ir vākšana par brīvu Ben un Jerry s saldējums un konsultācijas 143 00:06:45,620 --> 00:06:48,910 šo trešdien neilgi pēc klases 4:00 PM CS ēkā 144 00:06:48,910 --> 00:06:49,771 pie Maxwell Dworkin. 145 00:06:49,771 --> 00:06:51,520 Ja tas ir pārāk ātri uz ekrāna, dodieties 146 00:06:51,520 --> 00:06:55,260 lai cs50.harvard.edu par saite uz Facebook notikumu 147 00:06:55,260 --> 00:06:57,140 kur jūs varat redzēt vairāk informāciju. 148 00:06:57,140 --> 00:07:01,390 >> Tajā pašā laikā, es domāju, ka es varētu labot viena cita lieta, ko es goofed trešdien. 149 00:07:01,390 --> 00:07:04,400 Izrādās, ka Marka ID Facebook nebija trīs. 150 00:07:04,400 --> 00:07:05,230 Tas bija četri. 151 00:07:05,230 --> 00:07:08,330 Izrādās, viņš bija vairāk tests konti, nekā es atceros. 152 00:07:08,330 --> 00:07:12,400 Bet ko tas jutos kā iespēju kas jādara, ir pull up URL kā šis. 153 00:07:12,400 --> 00:07:16,680 >> Tātad izrādās, ka Facebook ir API, Application Programming Interface, 154 00:07:16,680 --> 00:07:20,070 kas ir mehānisms, ar kuru jums var pieprasīt datus programmatiski 155 00:07:20,070 --> 00:07:24,480 pie Facebook un saņemt atpakaļ mašīna lasāma informācija, nevis interneta lapas 156 00:07:24,480 --> 00:07:28,690 bet tikai izejvielas tekstu, kaut sauc JavaScript Object nošu. 157 00:07:28,690 --> 00:07:32,150 Un patiesībā, ja es apmeklēju šo URL, un tuvinātu, pēc noklusējuma, 158 00:07:32,150 --> 00:07:34,960 tas ir Marka publiski pieejama informācija. 159 00:07:34,960 --> 00:07:37,430 >> Un interesanti detail šeit ir tikai, ka viņa ID 160 00:07:37,430 --> 00:07:40,670 patiešām, numurs četri, kas es sapratu, tiklīdz es to izdarīja. 161 00:07:40,670 --> 00:07:44,260 Jūs varat izdarīt pats, ja jūs zināt Jūsu Facebook lietotājvārds ja jums tāds ir. 162 00:07:44,260 --> 00:07:45,440 Vienkārši ierakstiet to top tur. 163 00:07:45,440 --> 00:07:46,640 Un neviens no tā ir privāta. 164 00:07:46,640 --> 00:07:48,670 Es esmu tikai darot pat ar inkognito režīmā. 165 00:07:48,670 --> 00:07:49,900 Tāpēc es neesmu pat ienācis. 166 00:07:49,900 --> 00:07:54,440 Un jūs redzēt, ka es acīmredzot bija lietotāja numurs 6454 167 00:07:54,440 --> 00:07:56,480 Facebook, kas nav pārāk slikti šajās dienās. 168 00:07:56,480 --> 00:07:59,900 Tātad jebkurā gadījumā, jūs redzēsiet arī papildu informācija tur. 169 00:07:59,900 --> 00:08:02,150 >> Un noderīga aspekts no tā ir, ka jums 170 00:08:02,150 --> 00:08:06,890 varētu uzrakstīt savu programmatūru, kas kaut kā apvieno datus, piemēram, tas 171 00:08:06,890 --> 00:08:08,170 uz savu pieteikumu. 172 00:08:08,170 --> 00:08:10,650 Jūs varat pilnvarot lietotājiem ieiet savā mājas lapā, 173 00:08:10,650 --> 00:08:14,190 nav, izmantojot savu pielāgoto lietotājvārdu un parole bet varbūt to Facebook login 174 00:08:14,190 --> 00:08:16,170 un iegūt informāciju pat par saviem draugiem, 175 00:08:16,170 --> 00:08:18,740 ja viņi apstiprina, piemēram, vai līdzīgi. 176 00:08:18,740 --> 00:08:21,430 Tātad, ņemiet vērā, ka CS50, too, ir dažas no tās pašas API, 177 00:08:21,430 --> 00:08:24,620 viens Kursa katalogu datiem, daži no Hugs izvēlnes dining 178 00:08:24,620 --> 00:08:26,730 zāles, visi ēkas un vietas 179 00:08:26,730 --> 00:08:30,930 Campus mums ir API, kā arī ka jūs varat vaicājumu līdzīgi un saņemt 180 00:08:30,930 --> 00:08:35,520 atpakaļ tekstuālā informācija, ka jūs varat integrēt uz PHP vai JavaScript, vai pat, 181 00:08:35,520 --> 00:08:38,320 lai gan retāk, C balstīta galīgo projektu. 182 00:08:38,320 --> 00:08:41,190 >> Patiešām priekšu galīgais Projekts ir daži stūrakmeņi. 183 00:08:41,190 --> 00:08:42,980 Jūs saņēmu e-pastu no mums citu dienu. 184 00:08:42,980 --> 00:08:45,761 Saprast, ka priekšlikumu ir saistīts šo nāk pirmdiena. 185 00:08:45,761 --> 00:08:49,010 Tas nav obligāti saistošs, bet jūs ir nepieciešams, lai saņemtu jūsu mācību stipendiātiem 186 00:08:49,010 --> 00:08:51,260 apstiprinājums pirms jebkuras pēc tam izmaiņas. 187 00:08:51,260 --> 00:08:54,280 Un tad uz priekšu, ir vairākiem citiem atskaites punktiem. 188 00:08:54,280 --> 00:08:56,542 >> Tātad, lai ķircināt jums, too, ar dažām iespējām, 189 00:08:56,542 --> 00:08:58,250 mums ir ķekars šie nokrāsu spuldzes. 190 00:08:58,250 --> 00:09:01,190 Un daži no jums, puiši tagad ir dažas no tiem savā kopmītnes istabā, kā arī. 191 00:09:01,190 --> 00:09:02,920 Un tie arī ir API. 192 00:09:02,920 --> 00:09:07,300 Tik atceros šos binārā spuldzes nedēļas atpakaļ, ka Dan Bradley un Ansel 193 00:09:07,300 --> 00:09:08,780 Duff radīta mums. 194 00:09:08,780 --> 00:09:12,560 Viņi izmantoja programmatūras interfeisu šī spuldze, kas šobrīd 195 00:09:12,560 --> 00:09:15,232 iesprausts elektrības un pēc tam, izmantojot bezvadu 196 00:09:15,232 --> 00:09:17,690 ir savienots ar maz lieta sauc par tiltu uz leju šeit, 197 00:09:17,690 --> 00:09:21,280 kā mazs maršrutētāju patentētu ar šo konkrēto ierīci. 198 00:09:21,280 --> 00:09:26,540 >> Bet izrādās, ja es zinu, kā sūtīt HTTP ziņojumus, kā mēs visi tagad darīt, 199 00:09:26,540 --> 00:09:31,670 Es varu nosūtīt ziņu, piemēram, tas, lai šī spuldze, lai to ieslēgtu vai izslēgtu 200 00:09:31,670 --> 00:09:34,000 vai arī jebkuru skaits citas darbības par to. 201 00:09:34,000 --> 00:09:36,110 Ievērojiet, ka tas nav get, tas nav post. 202 00:09:36,110 --> 00:09:37,760 Ir vēl viena sauc izvirzīti. 203 00:09:37,760 --> 00:09:39,630 Tur tiešām daži citi šādi vārdi. 204 00:09:39,630 --> 00:09:42,920 Bet paziņojums tur ir ceļš tur, slash API, slash jaunu attīstītājs, 205 00:09:42,920 --> 00:09:44,990 slash gaismu, slash vienu, slīpsvītra stāvokli. 206 00:09:44,990 --> 00:09:49,060 >> Tas ir acīmredzot tikai ceļš, ka sabiedrība, Philips, 207 00:09:49,060 --> 00:09:51,640 nolēma jums ir hit ar HTTP pieprasījumu 208 00:09:51,640 --> 00:09:55,010 ja jūs vēlaties, lai mainītu valsts spuldzes, izmantojot HTTP 1.1. 209 00:09:55,010 --> 00:09:56,380 Tad ievērosiet tukšu līniju. 210 00:09:56,380 --> 00:10:00,170 Un tad visbeidzot, kāda izskatās veida masīva dažu šķirot, 211 00:10:00,170 --> 00:10:04,730 tas atkal tiks saukts JavaScript Object Apzīmējumi, vai Jason. 212 00:10:04,730 --> 00:10:08,000 Un tas, ko jūs redzat šeit ir tas, ka ir trīs galvenās vērtības pārus. 213 00:10:08,000 --> 00:10:09,115 >> Viens no galvenajiem ir aicināta. 214 00:10:09,115 --> 00:10:10,990 Un tās vērtība acīmredzot būs taisnība. 215 00:10:10,990 --> 00:10:13,612 Spilgtums ir 128, kas ir sava veida int. 216 00:10:13,612 --> 00:10:15,820 Un tad pārejas laiks nulle, kas ir acīmredzot 217 00:10:15,820 --> 00:10:17,970 cik ilgi tas notiek, lai veikt, lai ieslēgtu šo lietu tālāk. 218 00:10:17,970 --> 00:10:19,890 >> Tātad tagad tas spuldze ir izslēgta. 219 00:10:19,890 --> 00:10:22,880 Bet ja es daru tieši this-- let man iet mazliet apkrāptu lapas 220 00:10:22,880 --> 00:10:25,200 ka Dan izveidota advance-- un es eju 221 00:10:25,200 --> 00:10:27,920 iet uz priekšu un kopēt šādu komandu. 222 00:10:27,920 --> 00:10:30,200 Curl, kā daži no jums varētu spriest par CS50 223 00:10:30,200 --> 00:10:35,080 Apspriest ir noderīgas, piemēram, Telnet šāda ka jūs varat simulēt HTTP pieprasījumus, 224 00:10:35,080 --> 00:10:36,360 īpaši liek. 225 00:10:36,360 --> 00:10:39,710 Es varu nosūtīt šos datus, tieši tas, ko mēs tikko 226 00:10:39,710 --> 00:10:43,430 redzēja pirms brīža īpaši uz šo URL nekā šeit. 227 00:10:43,430 --> 00:10:46,310 Un tad Curl gatavojas rīkoties visas nepieciešamās galvenes 228 00:10:46,310 --> 00:10:47,600 un analizējot tur ir. 229 00:10:47,600 --> 00:10:54,700 >> Tātad viss, kas man ir jādara, ir kopēt to vērā termināla logu un pēc tam hit Enter. 230 00:10:54,700 --> 00:10:56,000 Un spuldze iet tālāk. 231 00:10:56,000 --> 00:10:59,060 Un tas viss iet cauri mans dators vadiem 232 00:10:59,060 --> 00:11:01,960 kaut kā uz leju, lai tiltu, kas tad runā ar šo spuldze. 233 00:11:01,960 --> 00:11:02,960 Es varu darīt kaut ko citu. 234 00:11:02,960 --> 00:11:07,050 Es varu darīt šo lietu iet sarkanā piemēram. 235 00:11:07,050 --> 00:11:11,040 Es, piemēram, var izdarīt šī lieta iet zaļš. 236 00:11:11,040 --> 00:11:12,220 Es varu darīt to iet zils. 237 00:11:12,220 --> 00:11:14,760 >> Un paziņojuma katram no šiem gadījumi, visi, kas es esmu, mainās 238 00:11:14,760 --> 00:11:18,540 ir tā sauktā nokrāsu vērtība faktiski tā kādu krāsu. 239 00:11:18,540 --> 00:11:20,320 Tāpēc ļaujiet man ielīmēt šo vienu tik labi. 240 00:11:20,320 --> 00:11:21,000 Tagad tas ir zilā krāsā. 241 00:11:21,000 --> 00:11:24,672 >> Un jūs varat darīt pat mīļotājs lietas where-- iesim uz zaļu. 242 00:11:24,672 --> 00:11:26,630 Un es varētu darīt no Protams, ar savu kodu. 243 00:11:26,630 --> 00:11:30,670 Bet pat API pati atbalsta bailīgs operācijas 244 00:11:30,670 --> 00:11:35,510 piemēram, tas, kas tagad būs apnikt mums nākamajiem 30 sekundes. 245 00:11:35,510 --> 00:11:39,170 >> Tā ka ir viena garša, ko jūs varētu darīt ar API, tas viens iesaistot 246 00:11:39,170 --> 00:11:40,010 spuldzes. 247 00:11:40,010 --> 00:11:42,510 Ņemiet vērā, ka CS50 ir pāris pāru Google Glass Ja vēlaties 248 00:11:42,510 --> 00:11:45,380 patīk risināt kaut ko kopā šīs līnijas, Arduino UNOS, kas 249 00:11:45,380 --> 00:11:48,670 ir niecīga maz datori, būtībā, par maz plates 250 00:11:48,670 --> 00:11:50,470 ka jūs varat savienot vadi un citas lietas 251 00:11:50,470 --> 00:11:52,732 lai un faktiski kontrole Jūsu reālās pasaules vidē. 252 00:11:52,732 --> 00:11:54,940 Un tad tur ir pāris par jaunas rotaļlietas, kas mums ir. 253 00:11:54,940 --> 00:11:59,294 Tas viens burtiski tikko ieradies Kādu dienu pa pastu, Myo apsēju. 254 00:11:59,294 --> 00:12:01,710 Un es domāju, ka tas ir veids, kā saņemt jūs satraukti par projektiem 255 00:12:01,710 --> 00:12:03,720 lai jūs varētu izmantot ar šī aparatūra būtu 256 00:12:03,720 --> 00:12:08,900 būt spēlēt šo īso klipu ka viņi izmanto, lai ķircināt folks 257 00:12:08,900 --> 00:12:10,500 ka mēs tagad dzīvojam nākotnē. 258 00:12:10,500 --> 00:12:13,494 259 00:12:13,494 --> 00:12:15,490 >> [Mūzikas atskaņošanai] 260 00:12:15,490 --> 00:13:33,410 261 00:13:33,410 --> 00:13:37,109 >> DAVID Malan: Tātad tikai dažas nedēļas, jums Arī var būt, ka forši pie CS50 izstādē. 262 00:13:37,109 --> 00:13:39,150 Vēl viena ierīce, kas mums ir ķekars, kas mēs esam 263 00:13:39,150 --> 00:13:42,090 laimīgs aizdevuma, kas paredzēti projektiem sauc kustības kontrolieris. 264 00:13:42,090 --> 00:13:45,030 Tas ir maz USB ierīce veidojat savienojumu ar datoru, 265 00:13:45,030 --> 00:13:47,520 ļauj jums mijiedarboties ar jūsu klēpjdators, Mac vai PC, 266 00:13:47,520 --> 00:13:51,570 it kā jums bija, piemēram, Xbox Kinect un faktiski veikt fiziskās kustības daudz 267 00:13:51,570 --> 00:13:54,509 tāpat kā mēs redzam šajā nākotnes redzējums. 268 00:13:54,509 --> 00:13:56,505 >> [Mūzikas atskaņošanai] 269 00:13:56,505 --> 00:15:03,380 270 00:15:03,380 --> 00:15:06,260 >> DAVID Malan: Tātad, pat tad, ja jums ir nav ideju, kā kaut kas tamlīdzīgs 271 00:15:06,260 --> 00:15:10,050 iespējams, varētu tikt izgudrots vai darba uz aparatūras līmenī, nav svarīgi. 272 00:15:10,050 --> 00:15:13,520 Pat pēc tam, kad tikai dažus mēnešus pēc CS50, un izpratne par plānošanas 273 00:15:13,520 --> 00:15:19,460 vispārīgāk, un web programmēšana vairāk nesen, un pēc tam arī API, un HTTP, 274 00:15:19,460 --> 00:15:21,830 jums ir piekļuve caur programmatūras API ja jums 275 00:15:21,830 --> 00:15:24,680 gribam aizņemties kādu no šiem ierīces faktiski runāt ar to 276 00:15:24,680 --> 00:15:27,180 un nav jāuztraucas par pamatā īstenošana 277 00:15:27,180 --> 00:15:30,220 informācija, kas ir pilnīgi saskaņā ar šo jēdzienu layering 278 00:15:30,220 --> 00:15:33,610 abstrakcija, ka mēs esam redzējis visā semestrī. 279 00:15:33,610 --> 00:15:37,990 >> Tāpēc arī nedēļas nogalē, redzēju pāris gabalus ziņas. 280 00:15:37,990 --> 00:15:40,640 Iet pirmais, dodieties uz semināriem, ja jums vēlētos, lai uzzinātu kaut ko 281 00:15:40,640 --> 00:15:42,160 vairāk par jebkuru tēmu skaitu. 282 00:15:42,160 --> 00:15:43,340 Skatiet URL tur. 283 00:15:43,340 --> 00:15:45,890 Un tas viens tika nosūtīts man ar Chang, kas jūs zināt, 284 00:15:45,890 --> 00:15:47,850 kurš drukāšanas mūsu armiju ziloņi. 285 00:15:47,850 --> 00:15:49,910 Un tas bija virsraksts šādi. 286 00:15:49,910 --> 00:15:51,280 Es esmu pārbijusies par savu jauno TV. 287 00:15:51,280 --> 00:15:54,301 Kāpēc es esmu nobijies, lai ieslēgtu šo lieta, un jūs gribētu būt pārāk. 288 00:15:54,301 --> 00:15:56,050 Tāpēc tagad mēs esam pie norāda šajā semestrī, 289 00:15:56,050 --> 00:15:58,860 Arī, kur pat tad, ja jums ir mazākās izpratnes 290 00:15:58,860 --> 00:16:02,620 par to, kā mājas darbiem, un HTTP, un drošības, lietas, kā šis 291 00:16:02,620 --> 00:16:03,980 vajadzētu sākt, lai nozvejas acī. 292 00:16:03,980 --> 00:16:07,450 Bet arī, jūs saprotat vai šīs lietas ir, vai nav 293 00:16:07,450 --> 00:16:08,430 faktiskie draudi. 294 00:16:08,430 --> 00:16:10,940 >> Tāpēc es ņēma dažus fragmentus No šo rakstu šeit. 295 00:16:10,940 --> 00:16:12,540 Un stāsts ir šāds. 296 00:16:12,540 --> 00:16:14,300 Es tagad īpašnieks New Smart TV, kas 297 00:16:14,300 --> 00:16:18,470 sola sniegt straumēšanas multivides saturu, spēles, app, 298 00:16:18,470 --> 00:16:21,450 sociālo mediju un interneta pārlūkošanu, oh un TV too. 299 00:16:21,450 --> 00:16:24,410 Vienīgā problēma ir tā, ka es esmu tagad baidās to izmantot, saka autors. 300 00:16:24,410 --> 00:16:29,592 Jums būtu arī, ja jūs lasīt, izmantojot 46 lapa privātuma politika jūsu TV. 301 00:16:29,592 --> 00:16:31,800 Datu šīs summas lieta vāc ir satriecoša. 302 00:16:31,800 --> 00:16:35,710 Tas logs kur, kad, kā un cik ilgi jūs izmantojat televizoru. 303 00:16:35,710 --> 00:16:38,190 Tā nosaka uzskaites sīkdatnes, kā mēs esam apspriests, 304 00:16:38,190 --> 00:16:40,560 un bākas izstrādātas lai noteiktu, kad esat 305 00:16:40,560 --> 00:16:43,185 apskatīt īpaši saturu vai īpaši e-pasta ziņojumu 306 00:16:43,185 --> 00:16:45,230 Ja jūs vēlaties, lai pārbaudītu e-pastu uz Jūsu TV. 307 00:16:45,230 --> 00:16:48,430 Tā ieraksti lietotnes izmantot, mājas lapas jūs apmeklējat, 308 00:16:48,430 --> 00:16:52,280 un kā jūs mijiedarboties ar saturu, Mēs darām visu, kas, izmantojot savu smart TV. 309 00:16:52,280 --> 00:16:55,470 Tā arī, creepier yet-- tas ir mans addition-- 310 00:16:55,470 --> 00:16:58,140 ir iebūvēto kameru ar sejas atzīšanu. 311 00:16:58,140 --> 00:17:01,010 >> Mērķis ir sniegt žests kontrole TV 312 00:17:01,010 --> 00:17:05,490 un ļauj jums, lai pieteiktos personalizēta kontu, izmantojot savu seju. 313 00:17:05,490 --> 00:17:08,940 Par otrādi, attēli tiek saglabāti TV nevis augšupielādēta 314 00:17:08,940 --> 00:17:09,940 uz uzņēmuma servera. 315 00:17:09,940 --> 00:17:12,520 Par negatīvie, internets savienojums padara visu TV 316 00:17:12,520 --> 00:17:14,811 neaizsargāti pret hakeriem, kas viņi ir pierādījuši spēju 317 00:17:14,811 --> 00:17:16,700 veikt pilnīgu kontroli pār mašīnu. 318 00:17:16,700 --> 00:17:20,880 >> Vairāk nepatīkamas, it kā tas nebija pietiekami gudrs, ir mikrofons. 319 00:17:20,880 --> 00:17:23,599 TV lepojas ar balsi atpazīšanas funkcija 320 00:17:23,599 --> 00:17:26,859 kas ļauj skatītājiem kontrolēt ekrāns ar balss komandām. 321 00:17:26,859 --> 00:17:30,290 Bet pakalpojumu nāk ar diezgan draudošs brīdinājums. 322 00:17:30,290 --> 00:17:33,030 Lūdzu, ņemiet vērā, ka, ja Jūsu runā vārdi ietver 323 00:17:33,030 --> 00:17:36,210 personiskās vai citas jutīgas Informācija, ka informācijas 324 00:17:36,210 --> 00:17:40,310 būs starp datiem notverti un tos nodod trešai personai. 325 00:17:40,310 --> 00:17:40,870 Sanāca, ka? 326 00:17:40,870 --> 00:17:45,860 Nesaku, personiskās vai slepenu sīkumi pie Jūsu TV. 327 00:17:45,860 --> 00:17:47,280 >> Tātad tas faktiski ir reālā. 328 00:17:47,280 --> 00:17:50,530 Un tas ir grūti nav, lai redzētu, vai jums iet uz Best Buy vai tamlīdzīgi televizoriem 329 00:17:50,530 --> 00:17:51,030 šajās dienās. 330 00:17:51,030 --> 00:17:52,540 Viņi visi gudri kaut kādā veidā. 331 00:17:52,540 --> 00:17:54,740 Un viņi kļūst gudrāku un creepier. 332 00:17:54,740 --> 00:17:57,490 Un viņi vienkārši apkopojot datus tādā veidā, ka mēs esam runājuši par 333 00:17:57,490 --> 00:18:01,840 un pēc tam augšupielādējot to, izmantojot HTTP vai kādu citu protokols kādu serveri. 334 00:18:01,840 --> 00:18:05,720 >> Tātad tas bija jautru rakstu šajā tiešsaistes vietnē 335 00:18:05,720 --> 00:18:08,940 šeit, kas runāja par īpaši bug vai sajaukt kodu 336 00:18:08,940 --> 00:18:11,340 ka mēs faktiski var sasiet uz pagājušās nedēļas diskusijā. 337 00:18:11,340 --> 00:18:15,730 Tātad tas virsraksts bija izriet, stāsts iet šeit, 338 00:18:15,730 --> 00:18:18,720 Josh Breckman strādāja Uzņēmums, kas izkrauti līgumu 339 00:18:18,720 --> 00:18:22,390 izstrādāt satura pārvaldību sistēmu, vai CMS kā viņi sauc, 340 00:18:22,390 --> 00:18:24,380 par diezgan lielu valdības mājas lapā. 341 00:18:24,380 --> 00:18:27,300 Liela daļa projekta iesaistīto attīstīt satura vadības sistēma 342 00:18:27,300 --> 00:18:29,840 lai darbinieki būtu spēj veidot un uzturēt 343 00:18:29,840 --> 00:18:31,877 arvien mainās saturu viņu vietā. 344 00:18:31,877 --> 00:18:34,210 Viss gāja diezgan labi dažas dienas pēc tam, kad iet dzīvot. 345 00:18:34,210 --> 00:18:37,020 Bet uz sešām dienā, viss negāja tik labi. 346 00:18:37,020 --> 00:18:39,500 Visi saturam mājas lapa bija pilnīgi izzudis. 347 00:18:39,500 --> 00:18:42,950 Un visas lapas noveda pie noklusējuma, ievadiet satura mājas lapā. 348 00:18:42,950 --> 00:18:43,810 Whoops. 349 00:18:43,810 --> 00:18:46,080 Josh tika aicināti, lai izmeklēt un pamanīju 350 00:18:46,080 --> 00:18:49,390 ka viens īpaši traucējošs ārējā IP adrese bija 351 00:18:49,390 --> 00:18:53,380 aizgājuši un dzēsts visu saturs uz sistēmu. 352 00:18:53,380 --> 00:18:56,290 >> IP adrese nepiederēja uz kādu ārzemju hakeru smilga 353 00:18:56,290 --> 00:18:58,340 iznīcināt noderīgi valdības informācijas. 354 00:18:58,340 --> 00:19:05,190 Tā nolēma googlebot.com, Google pašu web indeksēšanu zirneklis. 355 00:19:05,190 --> 00:19:06,010 Whoops. 356 00:19:06,010 --> 00:19:09,150 Pēc mazliet pētniecības un kodēšanas apkārt, lai atrastu noncorrupt backup, 357 00:19:09,150 --> 00:19:10,180 Josh atrasts problēmu. 358 00:19:10,180 --> 00:19:12,700 >> Lietotājs bija kopēt un ielīmēts kādu saturu no vienas 359 00:19:12,700 --> 00:19:15,670 lapas uz citu, ieskaitot Edit Hipersaite 360 00:19:15,670 --> 00:19:17,577 rediģēt saturu lapā. 361 00:19:17,577 --> 00:19:20,160 Parasti tas nebūtu jautājums, jo ārēja lietotājs 362 00:19:20,160 --> 00:19:24,320 nepieciešams ievadīt vārdu un paroli, bet CMS autentifikācijas sistēma, 363 00:19:24,320 --> 00:19:27,520 pieteikšanās sistēmu, neņēma vērā 364 00:19:27,520 --> 00:19:30,980 izsmalcināts Datorurķēšana paņēmieni Google Spider. 365 00:19:30,980 --> 00:19:31,700 Whoops. 366 00:19:31,700 --> 00:19:33,610 >> Kā izrādās, Google Zirnekļa neizmanto 367 00:19:33,610 --> 00:19:36,950 cepumi, kas nozīmē, ka tas ir iespējams viegli apiet čeks 368 00:19:36,950 --> 00:19:39,840 ir pieteicies cookie kopumu nepatiess. 369 00:19:39,840 --> 00:19:42,620 Tā arī nav pievērst uzmanību JavaScript, kas parasti 370 00:19:42,620 --> 00:19:45,170 ātri un novirzīt lietotājus kuri nav pieteicies. 371 00:19:45,170 --> 00:19:48,610 Tomēr tas seko ik hipersaiti uz katru lapu tā konstatē, 372 00:19:48,610 --> 00:19:51,700 tostarp ar Dzēst lapu nosaukumā. 373 00:19:51,700 --> 00:19:52,650 Whoops. 374 00:19:52,650 --> 00:19:56,070 >> Tātad, ko tas nozīmē vairāk tehniskie bet diezgan pieejamas termini? 375 00:19:56,070 --> 00:19:58,340 Tas tikai nozīmē, ka visā savā mājas lapā, 376 00:19:58,340 --> 00:20:02,287 viņi bija URL nav atšķirībā šo vienu, ka jūs varētu redzēt problēma noteikti septiņi. 377 00:20:02,287 --> 00:20:04,620 Atgādināt problēma noteikti septiņi vai zināt, problēma noteikti septiņi 378 00:20:04,620 --> 00:20:06,411 ka jūs apstrīdēt, cita starpā, 379 00:20:06,411 --> 00:20:08,570 pārdot krājumus vārdā lietotājiem. 380 00:20:08,570 --> 00:20:14,010 Bet īstenojot šo funkciju veidā no get caur saitēm jūsu lietotāja 381 00:20:14,010 --> 00:20:16,880 interfeiss, iespējams nevis gudrākais ideja 382 00:20:16,880 --> 00:20:20,300 jo, ja jūsu vietnē ir kaut pieejams vai nu ar cilvēka 383 00:20:20,300 --> 00:20:23,577 kurš noklikšķinot apkārt, vai pirkt bot piemēram Google vai Spider 384 00:20:23,577 --> 00:20:26,160 kā viņi sauc, ka ir tikai indeksēšanu internetā mēģina indeksēt 385 00:20:26,160 --> 00:20:29,060 web kā meklētājprogrammu, viņi varētu ļoti viegli 386 00:20:29,060 --> 00:20:31,340 hit via saņemt šāda veida URL. 387 00:20:31,340 --> 00:20:33,770 Un tas ir funkcionāli ekvivalents, šajā gadījumā, 388 00:20:33,770 --> 00:20:37,000 pārdodot visu Google akcijas. 389 00:20:37,000 --> 00:20:40,030 >> Tagad godīgi sakot, tas ir pilnīgi muļķīgs, ka CMS 390 00:20:40,030 --> 00:20:43,240 Lietota JavaScript un sīkdatnes īstenot savu pieteikšanās sistēmu 391 00:20:43,240 --> 00:20:47,100 un nedara ka servera pusē, kā jūs guys darīt un būs spēkā PSET 7-- 392 00:20:47,100 --> 00:20:49,940 tur login.php file-- vienmēr, vienmēr, 393 00:20:49,940 --> 00:20:52,789 Vienmēr nodrošinājums ir darīts uz servera pusē, 394 00:20:52,789 --> 00:20:56,080 nevis uz klienta pusē, jo, kā tas raksts liecina, un tu varētu sevi 395 00:20:56,080 --> 00:20:59,600 skatīt kādā brīdī, tas ir niecīgs, lai lietotājs, labi vai slikti, 396 00:20:59,600 --> 00:21:02,860 lai tikai izslēgtu JavaScript nemaz nerunājot sīkdatnes. 397 00:21:02,860 --> 00:21:06,020 Tātad tas ir jūsu ikdienas WTF. 398 00:21:06,020 --> 00:21:07,970 >> Tur ir vēl viens, kas ir tikai sava veida biedējošu, 399 00:21:07,970 --> 00:21:11,360 tāpēc es ņemšu pieminēt to, ja tikai kā dzīves mācība. 400 00:21:11,360 --> 00:21:14,850 Ikreiz, kad jūs izmantojat lietojumprogrammu sauc tāpat Snapchat vai tamlīdzīgi 401 00:21:14,850 --> 00:21:19,380 ka saka šīs fotogrāfijas tikai ilgs piecas sekundes, desmit sekundes, vai plauktiņš. 402 00:21:19,380 --> 00:21:21,680 Viņi īslaicīgi Tas ir absolūti nav tas gadījums. 403 00:21:21,680 --> 00:21:25,670 Tāpat kā nav iespējams, digitāli, īstenot sava veida video, 404 00:21:25,670 --> 00:21:30,150 vai attēlu, vai arī tekstuāls daloties šāda ka saņēmējs uz otru galu 405 00:21:30,150 --> 00:21:31,660 nevar kaut kā saglabātu datus. 406 00:21:31,660 --> 00:21:34,300 >> Visvairāk naivs veidā, kāds varētu veikt savu tālruni. 407 00:21:34,300 --> 00:21:36,850 Un tie ir 10 sekunžu logu skatoties kādu acumirklī 408 00:21:36,850 --> 00:21:39,410 tikai veikt kādu citu telefonu un fotografēt to, protams. 409 00:21:39,410 --> 00:21:41,660 Tātad jūs varat saglabāt kaut digitāli, ka veidā. 410 00:21:41,660 --> 00:21:44,620 Daži no jums zināt, kā veikt ekrānšāviņi savā tālrunī. 411 00:21:44,620 --> 00:21:49,290 Faktiski, ja jūs nezināt to, saprotu, ka vismaz Snapchat, 412 00:21:49,290 --> 00:21:51,040 un es domāju, ka citi pieteikumi šajās dienās, 413 00:21:51,040 --> 00:21:53,720 vismaz pateiks, ja saņēmējam ir faktiski 414 00:21:53,720 --> 00:21:55,310 pieņēmusi screenshot jūsu attēlu. 415 00:21:55,310 --> 00:22:00,870 >> Bet vēl sliktāk, tas bija snappening, kā kāds izdomāts to nesen, 416 00:22:00,870 --> 00:22:04,680 kur daži 100,000 snaps tika atbrīvots 417 00:22:04,680 --> 00:22:09,310 , ko sauc torrent fails par dažādām mājas lapām galu galā. 418 00:22:09,310 --> 00:22:12,000 Un tie ietvēra visu ķekars Privāto ziņas un amatu. 419 00:22:12,000 --> 00:22:15,210 Izrādās, lielākā daļa no tiem labdabīgi, tāpēc nav tas, ko jūs varētu sagaidīt. 420 00:22:15,210 --> 00:22:17,580 Bet tāpēc, ka cilvēki bija izmanto trešās puses tīmekļa vietni, 421 00:22:17,580 --> 00:22:20,270 piesakoties ar savu Snapchat lietotājvārdu un paroli un pēc tam 422 00:22:20,270 --> 00:22:23,470 ietaupot visu to snaps par šo trešo personu mājas lapā. 423 00:22:23,470 --> 00:22:26,130 Un tas bija tas, ka trešā persona Mājas lapu, kas bija hacked, 424 00:22:26,130 --> 00:22:30,710 kas tikai domāts kāds izpētījuši, kā iegūt visu 100,000 plus šo attēlu 425 00:22:30,710 --> 00:22:33,822 uz savu cieto disku turpmākai koplietošanu. 426 00:22:33,822 --> 00:22:36,030 Atklāti sakot, arī šeit, tas ir sava veida no muļķīgs ka Snapchat 427 00:22:36,030 --> 00:22:39,360 tiek realizēta tādā veidā, ka trešā persona var kārtot no krustošanās 428 00:22:39,360 --> 00:22:43,310 dati, un ka tas nav saistīts ar jūsu pašu lietojumprogrammu, kas darbojas uz tālruni. 429 00:22:43,310 --> 00:22:46,947 Bet šeit arī saprotam, ka tie lietas, nevajadzētu nozvejas jums pārsteigums, 430 00:22:46,947 --> 00:22:49,030 vai vismaz tur vajadzētu būt dzīves mācība šeit. 431 00:22:49,030 --> 00:22:52,220 Ja vēlaties tehniskā detaļas, iet uz šo URL tur 432 00:22:52,220 --> 00:22:53,570 tas ir šodienas slaidiem. 433 00:22:53,570 --> 00:23:00,960 Viss ir labi, kādi jautājumi par šodienas dzīves nodarbības CS? 434 00:23:00,960 --> 00:23:02,710 Turn ka off. 435 00:23:02,710 --> 00:23:04,970 Kaut ko vispār? 436 00:23:04,970 --> 00:23:06,301 Kaut ko vispār? 437 00:23:06,301 --> 00:23:09,050 Man daudz cilvēku pārbaudi viņu Snapchat vai kaut tagad. 438 00:23:09,050 --> 00:23:11,690 >> Viss ir labi, tāpēc SQL, Strukturēta vaicājumu valoda. 439 00:23:11,690 --> 00:23:12,509 Pieņemsim wrap to. 440 00:23:12,509 --> 00:23:14,300 Un arī, lai gan mēs esam tikai kasīšanās 441 00:23:14,300 --> 00:23:16,310 virsma šī valoda, mēs jums 442 00:23:16,310 --> 00:23:18,930 pietiekami valodas formā PSET 7 443 00:23:18,930 --> 00:23:22,140 lai jūs varētu risināt dažus diezgan bieži funkcionalitāti. 444 00:23:22,140 --> 00:23:24,912 Bet saprotu, ka ir pāris lietas, kas mums neprasa no jums, 445 00:23:24,912 --> 00:23:27,120 bet viņi būs svarīgi nākt gala projektus 446 00:23:27,120 --> 00:23:30,760 un, protams, nāk padarot aktuālā mājas lapas ar faktiskajiem lietotājiem 447 00:23:30,760 --> 00:23:32,040 tas ir dizaina lēmums. 448 00:23:32,040 --> 00:23:34,460 >> Izrādās, ka MySQL datu bāzi, jūs 449 00:23:34,460 --> 00:23:37,460 ir ķekarus izvēli, piemēram, datu tipi Jūsu kolonnām 450 00:23:37,460 --> 00:23:41,670 un citas lietas, bet jums ir arī izvēle no tā saukto uzglabāšanai 451 00:23:41,670 --> 00:23:44,570 dzinējs visiem jūsu datiem, veida failu sistēma, 452 00:23:44,570 --> 00:23:46,700 ja jūs esat iepazinušies, visiem jūsu datiem. 453 00:23:46,700 --> 00:23:48,830 Kādā formātā tas galu galā glabājas? 454 00:23:48,830 --> 00:23:53,300 Un visbiežāk, iespējams, ir bijis MyISAM un InnoDB, tehniskie termini 455 00:23:53,300 --> 00:23:56,060 ka mēs rūp tikai tādā mērā, ka viens ir 456 00:23:56,060 --> 00:23:58,500 un viens nav šāda funkcija. 457 00:23:58,500 --> 00:24:00,390 >> Pieņemsim, ka jums ir mazliet kopmītnes ledusskapis. 458 00:24:00,390 --> 00:24:03,030 Un pieņemsim, ka jūs un jūsu kaimiņiem, kuri dalīties ar šo ledusskapi, 459 00:24:03,030 --> 00:24:04,682 ir patiešām patīk teiksim piena. 460 00:24:04,682 --> 00:24:07,140 Un tas ir, faktiski, kā stāsts bija teicis man ceļu atpakaļ 461 00:24:07,140 --> 00:24:10,890 dienā, kad es paņēmu kursu sauc CS 161 Operētājsistēmas, kas 462 00:24:10,890 --> 00:24:12,580 tāpat pēta šo tēmu. 463 00:24:12,580 --> 00:24:13,760 Tātad jūs esat ieguvuši šo ledusskapi. 464 00:24:13,760 --> 00:24:14,630 Jūs esat no piena. 465 00:24:14,630 --> 00:24:17,000 Un tu nāc mājās, jūsu kaimiņiem s joprojām klasē vai kāds, 466 00:24:17,000 --> 00:24:19,208 un jūs izlemjat es esmu gatavojas iet un dabūt pienu. 467 00:24:19,208 --> 00:24:22,630 Tātad jūs aizverat ledusskapis, nedzīvais kapitāls kopmītnes istabā, iet pāri ielai 468 00:24:22,630 --> 00:24:25,330 uz CVS vai kur, un nokļūt rindā, lai nopirktu pienu. 469 00:24:25,330 --> 00:24:28,960 >> Tikmēr jūsu kaimiņiem kļūst mājās no klases, nonāk kopmītnes istabā, 470 00:24:28,960 --> 00:24:31,802 atver ledusskapi, arī saprot ooph, mēs esam no piena. 471 00:24:31,802 --> 00:24:33,760 Lai viņš vai viņa aizver ledusskapis un tad notiek 472 00:24:33,760 --> 00:24:35,610 iet uz otru CVS, kas notiek, ir 473 00:24:35,610 --> 00:24:38,470 viena kvartāla attālumā no citām CVS laukumā, un izpaužas rindā 474 00:24:38,470 --> 00:24:40,230 tur, lai saņemtu kādu pienu. 475 00:24:40,230 --> 00:24:42,524 Tagad, protams, dažas minūtes vēlāk, jūs abi saņemt atpakaļ, 476 00:24:42,524 --> 00:24:44,690 un sliktākajā visu ir iespējams rezultāti ir noticis. 477 00:24:44,690 --> 00:24:45,792 Jums abiem ir piens. 478 00:24:45,792 --> 00:24:47,500 Un jums nav īsti piemēram, piens, ka daudz. 479 00:24:47,500 --> 00:24:49,625 Tātad viens no tiem ir tikai gatavojas skābu kādā brīdī. 480 00:24:49,625 --> 00:24:55,941 Tātad, tagad jums ir pārāk daudz no piena ledusskapja visiem, jo ​​kāpēc? 481 00:24:55,941 --> 00:24:57,072 >> [Dzirdams] 482 00:24:57,072 --> 00:24:59,780 DAVID Malan: Jā, jums nav kaut kā komunicēt ar otru 483 00:24:59,780 --> 00:25:00,904 ka jums bija iegūt pienu. 484 00:25:00,904 --> 00:25:04,320 Tātad vienkāršāko veidi, cilvēku pasaulē, 485 00:25:04,320 --> 00:25:08,390 kā jūs varētu izvairīties no tā muļķīgi scenārijs no notiek, piemēram 486 00:25:08,390 --> 00:25:09,750 ka jūs tikai galu galā ar vienu. 487 00:25:09,750 --> 00:25:10,840 Teksts tos, jā laba. 488 00:25:10,840 --> 00:25:12,877 Bet kā gan citādi? 489 00:25:12,877 --> 00:25:13,460 Līmlapiņas. 490 00:25:13,460 --> 00:25:14,626 DAVID Malan: Post-it piezīmi. 491 00:25:14,626 --> 00:25:17,150 Jebkāda veida paziņojums kas stāsta jūsu kaimiņiem 492 00:25:17,150 --> 00:25:18,670 nav iedziļināties ledusskapī pienu. 493 00:25:18,670 --> 00:25:20,440 Es iešu atjaunotu par savu. 494 00:25:20,440 --> 00:25:22,770 Tātad jūs kaut kā vajag lai bloķētu šo resursu. 495 00:25:22,770 --> 00:25:27,180 Tātad, mēs varam padarīt this-- mēs varam veida pazudināt stāstu un pārvēršas par CS stāsts 496 00:25:27,180 --> 00:25:30,360 ar ko domā par to kā, tāpat kā mainīgo, kas ir uzglabāt dažas vērtības. 497 00:25:30,360 --> 00:25:32,570 Un tieši tagad, piena vērtība ir nulle, 498 00:25:32,570 --> 00:25:35,410 ko jūs nevēlaties, lai jūsu kaimiņiem pārbaudīt šo mainīgo 499 00:25:35,410 --> 00:25:38,730 un tad pieņemt lēmumu viņam sevi pamatojoties uz stāvokli minētā mainīgā 500 00:25:38,730 --> 00:25:42,430 ja tu esi procesā mainot stāvokli mainīgajam lielumam. 501 00:25:42,430 --> 00:25:46,140 >> Tātad viena no līnijām SQL, ka mēs dos jums PSET 7 specifikācijā 502 00:25:46,140 --> 00:25:47,310 ir šeit, tas viens. 503 00:25:47,310 --> 00:25:49,740 Un mums nav tērēt milzīgs daudz laika par to runāt. 504 00:25:49,740 --> 00:25:55,100 Bet izrādās, ja jūs cenšaties nopirkt kādu krājumu CS50 finansēs 505 00:25:55,100 --> 00:25:58,000 ka jums jau ir daži no jums, akcijas 506 00:25:58,000 --> 00:26:01,750 vēlas, lai varētu veikt virkni lietas uzreiz kopā. 507 00:26:01,750 --> 00:26:04,360 Jūs vēlaties, lai varētu efektīvi, augstā līmenī, 508 00:26:04,360 --> 00:26:06,700 pārbaudīt visas tiesības, ja es gribu iegādāties vairāk akcijas brīvu, 509 00:26:06,700 --> 00:26:08,780 Penny Stock mēs runāt par spec, 510 00:26:08,780 --> 00:26:10,660 Es gribu, lai pirmo pārbaudi cik daudz akcijas man ir. 511 00:26:10,660 --> 00:26:11,810 Un domāju, ka tas ir pieci. 512 00:26:11,810 --> 00:26:14,600 Un domāju, ka es gribu pirkt vēl 10, es galu galā 513 00:26:14,600 --> 00:26:17,069 vēlas, lai ir 15 akcijas akciju. 514 00:26:17,069 --> 00:26:18,360 Tāpēc man ir uzdot divus jautājumus. 515 00:26:18,360 --> 00:26:20,230 Kāds ir stāvoklis mainīgā? 516 00:26:20,230 --> 00:26:21,470 Kāds ir stāvoklis rindas? 517 00:26:21,470 --> 00:26:22,970 Cik akcijas man šobrīd ir? 518 00:26:22,970 --> 00:26:24,636 Tad jūs vēlaties, lai iet uz priekšu un atjaunot to. 519 00:26:24,636 --> 00:26:27,720 Tā ka ir analogās uz pienu, ka jūs pārbaudīt rindu, 520 00:26:27,720 --> 00:26:30,730 un tad jūs vēlaties to atjaunināt jo, ja jūs vēlaties iegādāties 10 akcijas, 521 00:26:30,730 --> 00:26:32,521 jūs nevēlaties mainīt rinda līdz 10, jūs 522 00:26:32,521 --> 00:26:35,300 vēlaties mainīt to uz 5 plus 10 vai, protams, 15. 523 00:26:35,300 --> 00:26:40,030 >> Šī līnija koda nodrošina, ka šīs divas konceptuālas idejas 524 00:26:40,030 --> 00:26:42,810 notiks kopā vai nemaz. 525 00:26:42,810 --> 00:26:46,920 Neviens, arī kādu citu lietotāju kurš ir pieteicies tajā pašā tīmekļa vietnē, 526 00:26:46,920 --> 00:26:49,900 kaut kādā veidā var pārtraukt pārbaude rindas 527 00:26:49,900 --> 00:26:52,960 un atjaunināšanu rindas, izvēlieties un atjauninājumu, ja Jums gribas. 528 00:26:52,960 --> 00:26:57,360 Un sintakse nav super skaidrs, bet šī līnija, ilgi tas ir, 529 00:26:57,360 --> 00:27:01,150 nodrošina, ka šīs divas operācijas pārbaudiet mainīgo vai pārbaudīt rindu 530 00:27:01,150 --> 00:27:04,660 un atjaunināt rindas notikt atomically. 531 00:27:04,660 --> 00:27:06,849 >> Ak šeit mēs aiziet vēlreiz. 532 00:27:06,849 --> 00:27:07,890 Īsziņu uz manu tālruni. 533 00:27:07,890 --> 00:27:09,954 Tā ļauj padarīt to par nedaudz vairāk betona. 534 00:27:09,954 --> 00:27:12,120 Pieņemsim, ka jūs neesat Īstenojot ledusskapi, 535 00:27:12,120 --> 00:27:16,400 un jūs ne ar ko īsteno PSET 7 bet faktiski banka, 536 00:27:16,400 --> 00:27:20,000 vai ATM, Automated Teller Mašīna, ar kuru jums kaut 537 00:27:20,000 --> 00:27:22,960 vēlas, lai varētu pilnvarot lietotājiem pārsūtīt naudu 538 00:27:22,960 --> 00:27:24,500 no viena konta uz citu. 539 00:27:24,500 --> 00:27:25,100 OK, karājas. 540 00:27:25,100 --> 00:27:26,683 Es esmu gatavojas, lai izslēgtu šo tagad, paldies. 541 00:27:26,683 --> 00:27:30,450 Tāpēc mēs vēlamies virzīties uz naudu no viena konta numura 542 00:27:30,450 --> 00:27:33,600 uz citu kontu numurs, konkrēti 100 $. 543 00:27:33,600 --> 00:27:37,690 Tātad šis ir sava veida patvaļīga Piemēram, saskaņā ar kuru jūs, ATM, 544 00:27:37,690 --> 00:27:41,060 varētu vēlēties izpildīt divu SQL vaicājumus, atņemt no viena konta, 545 00:27:41,060 --> 00:27:42,430 un pievienot pie otra konta. 546 00:27:42,430 --> 00:27:46,766 Bet jūs vēlaties, lai nodrošinātu, ka šie divas līnijas abi notikt vai nemaz. 547 00:27:46,766 --> 00:27:48,640 Jūs nevēlaties kaut ko kļūst pārtraukta. 548 00:27:48,640 --> 00:27:51,440 Jums nav kādu gudrs slikts puisis kaut kā stāvot pie Bank of America 549 00:27:51,440 --> 00:27:53,270 ar diviem bankomātiem priekšā par viņu un kaut 550 00:27:53,270 --> 00:27:55,270 veida rakstīt komandas, tajā pašā laikā, 551 00:27:55,270 --> 00:28:01,230 cerams, mēģinot ieturēt 200 $ vietā $ 100 un tikai ar 100 $ kredītā. 552 00:28:01,230 --> 00:28:04,450 Īsāk sakot, jūs vēlaties, lai tas uzvedas tieši tā, kā jūs sagaida. 553 00:28:04,450 --> 00:28:06,540 >> Un kā jūs darāt tas SQL datu bāze 554 00:28:06,540 --> 00:28:09,350 jūs wrap to, kas ir sauc darījums. 555 00:28:09,350 --> 00:28:14,290 Burtiski SQL, jūs varat zvanīt CS50 s vaicājums funkcija ar citēšanu likt pēdiņas beigās sākumu 556 00:28:14,290 --> 00:28:15,370 darījums. 557 00:28:15,370 --> 00:28:18,640 Tad jūs varat izpildīt jebkuru numuru Turpmāko SQL vaicājumu, 558 00:28:18,640 --> 00:28:20,870 bet neviens no viņiem ņemt Ietekme uz datu bāzē 559 00:28:20,870 --> 00:28:25,880 līdz brīdim, kad jūs zvanu vaicājumu quote likt pēdiņas beigās izdarīt, ja vēlreiz, izmantojot PHP. 560 00:28:25,880 --> 00:28:29,810 Un šādā veidā, jūs varat nodrošināt, ka pat ja jums ir 1000 lietotāju visu 561 00:28:29,810 --> 00:28:32,080 trāpot savu datu bāzi tajā pašā laikā, SQL 562 00:28:32,080 --> 00:28:34,540 sola, ka šie divi vaicājumi būs 563 00:28:34,540 --> 00:28:36,740 īsteno vienu tieši pēc otra. 564 00:28:36,740 --> 00:28:40,330 Tātad jums nav galu galā ar vairāk nekā piens vai nepareiza summa, galu galā, 565 00:28:40,330 --> 00:28:40,830 naudas. 566 00:28:40,830 --> 00:28:43,110 >> Lai saglabātu to prātā, ne tik daudz par PSET 7 567 00:28:43,110 --> 00:28:45,250 bet gala projektiem ja jūs patiešām 568 00:28:45,250 --> 00:28:49,690 mēģinot pārvietot datus apkārt pāri tabulas kā jūs varētu šeit. 569 00:28:49,690 --> 00:28:53,980 Bet varbūt pat vienkāršāka un skaidrs, lai saprastu, ar piemēru 570 00:28:53,980 --> 00:28:54,860 ir šeit, tas viens. 571 00:28:54,860 --> 00:28:57,760 Un kāds pa e-pastu mums par tas tikai otro dienu 572 00:28:57,760 --> 00:28:59,600 kad viņš ieraudzīja kaut ko līdzīgi tiešsaistē. 573 00:28:59,600 --> 00:29:03,480 >> Tātad, lai manas zināšanas, ķegļu sistēmas nav neaizsargāti pret šo uzbrukumu. 574 00:29:03,480 --> 00:29:06,637 Un man nav ne jausmas, ja tas pat lietojumi SQL datu bāzi zem motora pārsega. 575 00:29:06,637 --> 00:29:08,470 Bet pieņemsim izmantot to labad diskusijas. 576 00:29:08,470 --> 00:29:10,178 Lūk ekrāns, kas Harvard folks mēdz 577 00:29:10,178 --> 00:29:13,620 redzēt, kad piesakoties ar to Hārvardas ID numuru un pin. 578 00:29:13,620 --> 00:29:19,020 Un pieņemsim, ka pin sistēma bija īsteno PHP un ar MySQL 579 00:29:19,020 --> 00:29:22,000 datubāzi, koda, ka kāds Pirms varētu būt rakstīti gadi 580 00:29:22,000 --> 00:29:23,270 varētu izskatīties šādi. 581 00:29:23,270 --> 00:29:25,230 Pirmkārt, pasludināt mainīgais sauc lietotājvārds. 582 00:29:25,230 --> 00:29:27,560 Un tikai iegūt, ka no POST superglobālajiem. 583 00:29:27,560 --> 00:29:30,140 Tad iegūt citu mainīgo sauc paroli un darīt to pašu. 584 00:29:30,140 --> 00:29:33,080 Un tad tikai izpildīt šis ilgi vaicājumu šeit 585 00:29:33,080 --> 00:29:36,690 izvēlieties zvaigzne no lietotājiem, ja lietotājvārds ir vienāds ar tāda un tāda 586 00:29:36,690 --> 00:29:38,510 un paroli vienāds tāda un tāda. 587 00:29:38,510 --> 00:29:40,660 >> Ievērojiet, ka cirtaini bikšturi Esmu izmantojis šeit 588 00:29:40,660 --> 00:29:42,880 vienkārši nozīmē PHP, iet priekšu un aizstāt 589 00:29:42,880 --> 00:29:45,400 vērtība šiem diviem mainīgie tiesības tur. 590 00:29:45,400 --> 00:29:50,090 Viņi nav absolūti nepieciešams, bet viņi mēdz izvairīties smalks sintakses kļūdas. 591 00:29:50,090 --> 00:29:53,650 Tāpēc tas izskatās pilnīgi pareiza pēc pirmā acu uzmetiena. 592 00:29:53,650 --> 00:29:54,240 Un tas ir. 593 00:29:54,240 --> 00:29:56,680 Jūs varētu īstenot pin sistēma šādā veidā. 594 00:29:56,680 --> 00:30:00,460 >> Bet pieņemsim, ka super gudrs un ļaunprātīga studentu 595 00:30:00,460 --> 00:30:03,020 ievadi to kā viņa vai viņas pin. 596 00:30:03,020 --> 00:30:05,550 Tāpēc es esmu izņēmusi lodi zīmes šeit izspēles augšu, 597 00:30:05,550 --> 00:30:08,760 un es esmu faktiski atklāja to, ko viņš vai viņa varētu būt rakstīt. 598 00:30:08,760 --> 00:30:10,350 Un tas ir mazliet dīvaini. 599 00:30:10,350 --> 00:30:13,850 Bet to, kas lec ārā pie jums ar iespējamiem satraucoša par lietotāja ievadi, 600 00:30:13,850 --> 00:30:16,450 pat ja jums nav ne jausmas, ko SQL injekcijas uzbrukumu nozīmē. 601 00:30:16,450 --> 00:30:20,300 Kāpēc tas izskatās mazliet neticams? 602 00:30:20,300 --> 00:30:21,050 Kas tas ir? 603 00:30:21,050 --> 00:30:21,550 [Dzirdams] 604 00:30:21,550 --> 00:30:24,260 DAVID Malan: vai nedaudz aizdomīgs. 605 00:30:24,260 --> 00:30:26,310 Faktiski, tas ir atslēgvārds no SQL. 606 00:30:26,310 --> 00:30:28,105 Tā, ka nav bode labi. 607 00:30:28,105 --> 00:30:29,980 Tas, ka tur ir visi šie vienu pēdiņām 608 00:30:29,980 --> 00:30:32,646 there-- patiesībā, viens no vienkāršākajiem veidus, lai izjauktu dažas datubāzes 609 00:30:32,646 --> 00:30:35,880 ir ierakstot nosaukumu, piemēram, O'Reilly ka ir apostrofu tajā 610 00:30:35,880 --> 00:30:38,600 jo, ja cilvēks, kurš uzrakstīja koda aiz kulisēm 611 00:30:38,600 --> 00:30:41,570 nav ņemts vērā, ka varētu būt vienu pēdiņām jo lietotāja 612 00:30:41,570 --> 00:30:45,060 ievadi, un viņš vai viņa izmanto vienu pēdiņām savā kodu, 613 00:30:45,060 --> 00:30:46,040 sliktas lietas var notikt. 614 00:30:46,040 --> 00:30:47,870 >> Patiesībā, vēl sliktāk, tas jāņem vērā. 615 00:30:47,870 --> 00:30:50,600 Ja tas atkal bija kods ka kāds Hārvardas gadiem 616 00:30:50,600 --> 00:30:53,100 Pirms rakstīja par pin sistēma, paziņojums, kas ir 617 00:30:53,100 --> 00:30:56,220 par to, lai saņemtu aizstāt lietotājvārdu un paroli 618 00:30:56,220 --> 00:30:59,780 Ja lietotājs veidiem vēlreiz skroob kā savu lietotājvārdu 619 00:30:59,780 --> 00:31:03,960 un pēc tam viens, divi, trīs, četru, piecu, quote vai citātu likt pēdiņas beigās vienu līdztiesīgu 620 00:31:03,960 --> 00:31:04,660 citēt vienu. 621 00:31:04,660 --> 00:31:07,220 Un paziņojums, kas ir galvenais šeit ir lietotājs nav 622 00:31:07,220 --> 00:31:09,900 sāka savu paroli vai to pin ar citātu. 623 00:31:09,900 --> 00:31:12,610 Un viņi nav beidzies to ar citātu, jo viņš vai viņa 624 00:31:12,610 --> 00:31:16,315 ir, pieņemot, ka tad, ja programmētājs nebija tik straujš, 625 00:31:16,315 --> 00:31:18,690 viņi nāksies tiem vienu pēdiņām savā kodu. 626 00:31:18,690 --> 00:31:19,860 >> Tātad, šeit ir kods. 627 00:31:19,860 --> 00:31:23,820 Un aizstāšana, ka Tagad varētu notikt tas. 628 00:31:23,820 --> 00:31:26,350 Un es esmu uzsvērusi to, ko lietotājs ir ievadījis. 629 00:31:26,350 --> 00:31:28,480 Tātad, pirms, pēc. 630 00:31:28,480 --> 00:31:33,330 Un paziņojums, kas ir nedaudz satraucoša tagad par labajā pusē, šajā SQL kodu? 631 00:31:33,330 --> 00:31:36,300 Tas ir nedaudz sarežģītāka, protams, nekā jautājumiem, mēs esam redzējuši. 632 00:31:36,300 --> 00:31:38,550 Bet tas nav iespējams būtu laba lieta, ja jūs esat 633 00:31:38,550 --> 00:31:42,240 sakot, izvēlieties zvaigzne, kas ir izvēlieties viss no lietotāja galda 634 00:31:42,240 --> 00:31:46,630 kur lietotājvārds vienāds skroob un parole ir vienāds ar vienu, diviem, trim, četriem, 635 00:31:46,630 --> 00:31:49,610 pieci vai viens vienāds vienu. 636 00:31:49,610 --> 00:31:53,860 Kas ir loģiska saistība šī pēdējā teikuma Jādomā? 637 00:31:53,860 --> 00:31:55,650 Tas ir tikai vienmēr ir taisnība. 638 00:31:55,650 --> 00:31:59,930 >> Un tāpēc, ka mēs esam sava veida nojauta vai sapratu, ar izmēģinājumu un kļūdu 639 00:31:59,930 --> 00:32:02,760 ka programmētājs, kurš rakstīja šo kodu nebija 640 00:32:02,760 --> 00:32:07,250 paredzēt cilvēku vai slikts cilvēks ierakstot vienu pēdiņām, kā arī, 641 00:32:07,250 --> 00:32:10,350 mēs varam sintaktiski pabeigtu SQL vaicājumu 642 00:32:10,350 --> 00:32:12,260 ar kaut ko muļķīgi bet kaut kas 643 00:32:12,260 --> 00:32:15,930 ir sintaktiski nepareizs kas vienmēr novērtē taisnība. 644 00:32:15,930 --> 00:32:19,130 Tātad, ja šis kods tiek izmantots, lai atbildētu jautājums patiess vai nepatiess, būtu 645 00:32:19,130 --> 00:32:22,930 atļauts šis lietotājs nodot, Atbilde vienmēr acīmredzot notiek 646 00:32:22,930 --> 00:32:26,930 lai būtu patiesība, jo tas vienmēr notiek izvēlēties kaut ko no datu bāzes 647 00:32:26,930 --> 00:32:29,280 jo viens, protams, vienmēr ir vienāds ar vienu. 648 00:32:29,280 --> 00:32:30,360 >> Tātad, kas ir risinājums? 649 00:32:30,360 --> 00:32:33,290 Nu PSET 7, mēs faktiski izvairīties no šo visu kopā. 650 00:32:33,290 --> 00:32:37,360 Mēs dodam jums vaicājumu funkciju, un mēs iesakām izmantot jautājuma zīmes 651 00:32:37,360 --> 00:32:40,430 kā vietturi, līdzīgi garā uz printf s% s, 652 00:32:40,430 --> 00:32:43,710 bet to, kas ir galvenais par jautājuma zīmes šeit ir, ja jūs tiešām izlasīt 653 00:32:43,710 --> 00:32:46,950 functions.php, kur mūsu vaicājums funkcija tiek īstenota, 654 00:32:46,950 --> 00:32:52,780 šie jautājuma zīmes ir aizbēguši, kurā kaut kas potenciāli bīstams 655 00:32:52,780 --> 00:32:58,210 piemēram, viena cena ir ieslēgts stājas izbēguši vienu citātu. 656 00:32:58,210 --> 00:33:00,590 >> Tātad, tas ir tas, kas ir īsti notiek, ja jums 657 00:33:00,590 --> 00:33:04,850 izmantot CS50 vaicājumu funkciju vai jebkuru numuru Trešo personu brīvu bibliotēkām, ka 658 00:33:04,850 --> 00:33:06,000 darīt to pašu. 659 00:33:06,000 --> 00:33:09,850 Nav nozīmes šajā gadījumā, zaļā krāsā, ja lietotājs ir ievadījis ar vienu citātu 660 00:33:09,850 --> 00:33:12,070 jo vaicājumu funkcija, kas mēs rakstījām ir 661 00:33:12,070 --> 00:33:15,120 gatavojas pievienot backslashes pirms jebkura šāda bīstama citātu. 662 00:33:15,120 --> 00:33:17,360 Tātad, tas nav, jo Fakts, būs legit. 663 00:33:17,360 --> 00:33:20,910 Tas ir tāpat kā rakstīt traks meklē parole, kas ir, protams, nenāks 664 00:33:20,910 --> 00:33:23,490 būt skroob faktisko paroli. 665 00:33:23,490 --> 00:33:28,260 >> Tātad takeaway par CS50 ir viens, absolūti vienmēr izmantot kaut ko 666 00:33:28,260 --> 00:33:30,860 tāpat CS50 s vaicājumu funkcijas vai pamatā bibliotēka, 667 00:33:30,860 --> 00:33:32,560 kas notiek, lai varētu saukt ACVN. 668 00:33:32,560 --> 00:33:35,880 Bet nekad, nekad, nekad to kodu kā šis 669 00:33:35,880 --> 00:33:39,472 bez izbēgt vai ass kā saka jūsu izejvielas. 670 00:33:39,472 --> 00:33:42,430 Un jūs kādā brīdī, iespējams, nākas sastapties ar kādu mājas lapu, kā šis. 671 00:33:42,430 --> 00:33:46,060 Patiesībā, tas, šķiet, ir lieta piemēram, lidostās un viesnīcās vietās 672 00:33:46,060 --> 00:33:48,880 ja tām ir bezmaksas Wi-Fi Pieeja, kas jums ir, lai pieteiktos, 673 00:33:48,880 --> 00:33:51,010 šīs mājas lapas ir vienmēr briesmīgi īstenoti. 674 00:33:51,010 --> 00:33:55,680 Un tā veida jautrības mājās izmantot, nav ļaunprātīgos nolūkos vai vairāk 675 00:33:55,680 --> 00:33:59,170 no jautrības uz ceļa vingrinājums, ir vienkārši ierakstiet 676 00:33:59,170 --> 00:34:02,850 apostrofs, viena citātu, tādā formā par kādu mājas lapu 677 00:34:02,850 --> 00:34:03,810 un redzēt, kas notiek. 678 00:34:03,810 --> 00:34:06,660 Un, ja servera atteici vai sniedz Jums dažas veida kļūdas ziņojumu, 679 00:34:06,660 --> 00:34:09,690 tas var ļoti labi būt, ka kāds nav paredzama to. 680 00:34:09,690 --> 00:34:15,239 Un tad jums vajadzētu brīdināt pareiza iestādes un doties ne tālāk. 681 00:34:15,239 --> 00:34:20,843 >> Tātad tagad jūs guys vajadzētu cerams saprastu mazliet vairāk geek humors šeit. 682 00:34:20,843 --> 00:34:24,120 >> [Smiekli] 683 00:34:24,120 --> 00:34:27,571 684 00:34:27,571 --> 00:34:29,070 DAVID Malan: Jūs zināt, jūs esat geek. 685 00:34:29,070 --> 00:34:30,944 Par tuvāko gadiem, jūs atceraties 686 00:34:30,944 --> 00:34:33,520 kurš maz Bobby Galdi ir jo šī karikatūra šeit. 687 00:34:33,520 --> 00:34:36,760 Lai saglabātu, ka prātā, kā mēs konteksts pēdējo reizi slēdzis 688 00:34:36,760 --> 00:34:38,770 šodien JavaScript. 689 00:34:38,770 --> 00:34:41,600 Mēs esam pavadījuši salīdzinoši maz laiks sintaksi PHP 690 00:34:41,600 --> 00:34:43,440 tāpēc, ka tas ir faktiski super līdzīgi C. 691 00:34:43,440 --> 00:34:47,300 Un labi pietiekami, JavaScript too ir super līdzīgs C sintaksei 692 00:34:47,300 --> 00:34:49,639 kā arī mēs redzēsim tikai mirklis, un, kā mēs 693 00:34:49,639 --> 00:34:51,205 redzēt šonedēļ īpaši. 694 00:34:51,205 --> 00:34:54,080 Ko jūs varat darīt ar šo valodu, lai gan, ir vēl spēcīgāks, 695 00:34:54,080 --> 00:34:55,790 jo īpaši ar API. 696 00:34:55,790 --> 00:34:56,960 >> Bet vispirms ātri tūre. 697 00:34:56,960 --> 00:35:00,450 Tik viens, JavaScript, tur ir nē galvenā funkcija, kas ir jauki. 698 00:35:00,450 --> 00:35:02,650 Tāpat kā ar PHP, jūs varat rakstīt kodu. 699 00:35:02,650 --> 00:35:04,310 Apstākļi izskatās šādi. 700 00:35:04,310 --> 00:35:07,100 Un Būla izteiksmes varētu izskatās šādi vai kā šis. 701 00:35:07,100 --> 00:35:09,530 Slēdži pastāv, un viņi varētu izskatīties šādi. 702 00:35:09,530 --> 00:35:10,970 Četri cilpas izskatās šādi. 703 00:35:10,970 --> 00:35:12,390 Kaut cilpas izskatās šādi. 704 00:35:12,390 --> 00:35:14,160 Vai whiles izskatās šādi. 705 00:35:14,160 --> 00:35:16,850 Un tad bloki izskatās tas, kas ir ļoti līdzīgs PHP. 706 00:35:16,850 --> 00:35:20,740 Bet paziņo, ka JavaScript jums deklarēt mainīgo nevis ar dolāru 707 00:35:20,740 --> 00:35:25,190 paraksta, nevis ar datu tipu, bet burtiski sakot VAR lai mainīgo pirms tā. 708 00:35:25,190 --> 00:35:27,900 Tas arī ir brīvi drukāti ar to, ka tas ir veidi, 709 00:35:27,900 --> 00:35:29,729 bet jums nav skaidri deklarēt tos. 710 00:35:29,729 --> 00:35:31,520 Un tad virkne, lai Piemēram, varētu izskatīties 711 00:35:31,520 --> 00:35:34,350 piemēram, tas, ka virkne to sauc s šajā gadījumā. 712 00:35:34,350 --> 00:35:35,410 Un tad objekts. 713 00:35:35,410 --> 00:35:37,010 Un šie mēs redzēsim vēl pirms ilgi. 714 00:35:37,010 --> 00:35:41,470 Un objekts, iespējams, ir viens no visbiežāk novēroja datu struktūras 715 00:35:41,470 --> 00:35:44,050 ar JavaScript balstīta programmu, jo tas ļauj 716 00:35:44,050 --> 00:35:46,680 jums saistīt patvaļīgi atslēgas vērtību pārus tikko 717 00:35:46,680 --> 00:35:51,240 piemēram, PHP asociatīvo masīvu un tāpat kā savu hash tabulas 718 00:35:51,240 --> 00:35:54,042 vai mēģināt kā mēs īstenoti pāris nedēļas atpakaļ. 719 00:35:54,042 --> 00:35:56,250 Tātad, pieņemsim faktiski redzēt, kas mēs varam darīt ar JavaScript. 720 00:35:56,250 --> 00:35:59,410 Un it īpaši, tas ir veļas saraksts iezīmes 721 00:35:59,410 --> 00:36:02,300 ka pārlūkiem ir, ka ļauj mums āķis JavaScript 722 00:36:02,300 --> 00:36:05,470 uz mājas lapā šādā veidā. 723 00:36:05,470 --> 00:36:09,340 JavaScript ir bieži izmanto kā klienta puses skriptu valoda. 724 00:36:09,340 --> 00:36:10,130 Tas nav apkopota. 725 00:36:10,130 --> 00:36:11,370 Tas arī tiek interpretēts. 726 00:36:11,370 --> 00:36:15,740 Bet atšķirībā no PHP, kas ir darboties uz serveri, web serveri, 727 00:36:15,740 --> 00:36:18,220 vai dziļi iekšpusē klienti, JavaScript 728 00:36:18,220 --> 00:36:22,190 ir atšķirīga, jo: parasti darbojas pārlūkprogrammā. 729 00:36:22,190 --> 00:36:26,060 >> Tāpēc jebkura JavaScript kodu sākat rakstīt par PSET 8, vai jūsu galīgo projektu, 730 00:36:26,060 --> 00:36:29,890 vai reālajā pasaulē parasti notiek tiks saglabāti uz servera, absolūti 731 00:36:29,890 --> 00:36:33,110 ar dot HTML vai dot JS JavaScript failu. 732 00:36:33,110 --> 00:36:35,770 Bet pārlūks notiek lai lejupielādētu, ka JavaScript 733 00:36:35,770 --> 00:36:39,530 kodu uz savu gadījumu Chrome, vai IE vai Firefox, vai neatkarīgi. 734 00:36:39,530 --> 00:36:43,870 Un kods ir faktiski gatavojas iegūt izpildīts iekšpusē savā pārlūkprogrammā. 735 00:36:43,870 --> 00:36:46,560 Tikai, lai padarītu šo reālāka, pieņemsim redzēt šo konkrēto formu. 736 00:36:46,560 --> 00:36:50,120 >> Mums nav ne jausmas, ko tas kods dara bez tiešām iepazīšanās ar to. 737 00:36:50,120 --> 00:36:52,670 Bet ļaujiet man iet uz Facebook.com bez piesakoties. 738 00:36:52,670 --> 00:37:00,440 Ļaujiet man iet uz Pārbaudīt elementu un doties uz, teiksim, tīkla un pārlādēt lapu. 739 00:37:00,440 --> 00:37:04,150 Un mēs see-- ļaujiet man novirzīt pārlādēt Lapa, lai saņemtu visus pieprasījumus jauns. 740 00:37:04,150 --> 00:37:08,850 Un pats pirmais fails es redzu ir CSS, CSS. 741 00:37:08,850 --> 00:37:10,880 Lūk pirmais JavaScript failu, un man ir 742 00:37:10,880 --> 00:37:14,600 ne jausmas, ko tas dara, bet šeit ir daži JavaScript kodu 743 00:37:14,600 --> 00:37:16,180 kas vada Facebook. 744 00:37:16,180 --> 00:37:18,400 Tas nav pat īsti, ka atklājot, lai tuvinātu. 745 00:37:18,400 --> 00:37:20,260 Tas joprojām ir tikpat muļķīgi. 746 00:37:20,260 --> 00:37:24,341 >> Bet jūs redzēsiet pat zemāk, tur ir pat vairāk no šiem JavaScript faili. 747 00:37:24,341 --> 00:37:24,840 Whoops. 748 00:37:24,840 --> 00:37:25,440 Tas ir ping. 749 00:37:25,440 --> 00:37:28,550 Iesim uz leju nedaudz vēl, vēl, vēl. 750 00:37:28,550 --> 00:37:29,894 Tur ir viens. 751 00:37:29,894 --> 00:37:31,238 Tur ir viens. 752 00:37:31,238 --> 00:37:31,880 Tur ir viens. 753 00:37:31,880 --> 00:37:35,820 >> Tātad, pat ja Facebook, aiz ainas, ir rakstīts daļēji PHP 754 00:37:35,820 --> 00:37:39,100 un Facebook pašu variantu, tur ir milzīgs daudzums JavaScript. 755 00:37:39,100 --> 00:37:41,330 Faktiski, jebkuru no čatā jūs uz Facebook, 756 00:37:41,330 --> 00:37:45,520 kāds no inline Timeline atjauninājumiem kas notiek reālajā laikā, tas viss 757 00:37:45,520 --> 00:37:47,944 virza JavaScript. 758 00:37:47,944 --> 00:37:48,444 Yeah? 759 00:37:48,444 --> 00:37:50,235 >> Mērķauditorija: Es neesmu pārliecināts ja tas ir Facebook, 760 00:37:50,235 --> 00:37:53,624 bet es domāju, ka Facebook attīstīta savu in-house kods valoda? 761 00:37:53,624 --> 00:37:54,540 DAVID Malan: Viņi izdarīja. 762 00:37:54,540 --> 00:37:58,110 Tātad, tas ir iemesls, kāpēc es saku dispersiju PHP sauc par Hip Hop, ka tās faktiski 763 00:37:58,110 --> 00:38:03,440 pievienotajām funkcijām, piemēram, ja Mark Pirmo reizi ieviešot Facebook, 764 00:38:03,440 --> 00:38:04,710 tas bija rakstīts PHP. 765 00:38:04,710 --> 00:38:07,370 Un ka veida palicis veida priekšējā gala valodas 766 00:38:07,370 --> 00:38:09,030 ka viņi izmanto daudz to kodēšanu, bet tas 767 00:38:09,030 --> 00:38:11,870 nav valoda, kas ir svari īpaši labi miljardiem 768 00:38:11,870 --> 00:38:12,630 cilvēku. 769 00:38:12,630 --> 00:38:15,300 Un tāpēc tie ir pievienoti savu uzlabojumi aizkulisēs. 770 00:38:15,300 --> 00:38:17,049 Un viņi izmanto jebkuru numuru Citu valodu 771 00:38:17,049 --> 00:38:19,170 dažādu gabalu to infrastruktūra. 772 00:38:19,170 --> 00:38:24,080 Tātad, jā, tas ir dispersija tas, ko mēs tagad pazīstam kā PHP. 773 00:38:24,080 --> 00:38:26,610 >> Tātad, pieņemsim to apskatīt pie pāris piemēri 774 00:38:26,610 --> 00:38:28,890 par to, kā mēs varētu izmantot JavaScript šeit. 775 00:38:28,890 --> 00:38:32,530 Mūsdienu pirmkodu, mums ir ķekars failus, no kuriem pirmais, 776 00:38:32,530 --> 00:38:34,090 pieņemsim sauc DOM nulles. 777 00:38:34,090 --> 00:38:36,770 Tātad DOM nulles izskatās šādi. 778 00:38:36,770 --> 00:38:40,730 Ļaujiet man iedziļināties šajā direktorijā un atvērt domzero.html, 779 00:38:40,730 --> 00:38:44,970 top, kas ir doc tipa deklarācija, sakot, šeit nāk HTML 5. 780 00:38:44,970 --> 00:38:46,440 Un tagad šeit ir HTML tagu. 781 00:38:46,440 --> 00:38:47,540 Lūk galvu tag. 782 00:38:47,540 --> 00:38:49,210 Un šeit ir kas jauns šodien. 783 00:38:49,210 --> 00:38:52,620 >> Mums tagad ir skriptu tag iekšpusē galvas lapā. 784 00:38:52,620 --> 00:38:55,290 Un tas acīmredzot nav ļoti maz, bet paziņojums 785 00:38:55,290 --> 00:38:58,410 ka es esmu definēti skripts, JavaScript. 786 00:38:58,410 --> 00:39:01,050 Un kā malā, jo tas ir kopīgs nepareizs, 787 00:39:01,050 --> 00:39:05,220 JavaScript ir absolūti nekas darīt ar Java, valodu 788 00:39:05,220 --> 00:39:08,010 ka daži no jums varētu ir iemācījušies APCS. 789 00:39:08,010 --> 00:39:10,480 Tas bija vairāk par mārketingu lieta nekā jebkas, 790 00:39:10,480 --> 00:39:12,980 izjādes coattails par Java gadus atpakaļ. 791 00:39:12,980 --> 00:39:17,300 Bet JavaScript, nekāda sakara ar Java, vienkārši tāpat, un kaitinoši, 792 00:39:17,300 --> 00:39:18,480 sajaucami nosaukts. 793 00:39:18,480 --> 00:39:21,890 >> Tātad, šeit ir, kā jūs pasludināt funkciju JavaScript, burtiski saka funkciju, 794 00:39:21,890 --> 00:39:24,556 tad nosaukums funkciju, tad jebkurš argumenti tas varētu veikt, 795 00:39:24,556 --> 00:39:25,530 tāpat kā PHP. 796 00:39:25,530 --> 00:39:28,990 Izrādās, JavaScript, kas ir viens no visvairāk kaitinošas funkcijas, kas pastāv, ir brīdinājums. 797 00:39:28,990 --> 00:39:31,392 Tas ir nedaudz logs, kas būs pop up un jūs brīdināt 798 00:39:31,392 --> 00:39:32,600 uz kādu informācijas vienību. 799 00:39:32,600 --> 00:39:33,766 Tas parasti sarauca pieri. 800 00:39:33,766 --> 00:39:35,980 Bet mēs to izmantot, jo mūsu Pirmais vingrinājums šeit. 801 00:39:35,980 --> 00:39:37,900 >> Ievērosiet dažas iezīmes JavaScript. 802 00:39:37,900 --> 00:39:41,524 Vienu pēdiņām un pēdiņas faktiski nav nozīmes vairs. 803 00:39:41,524 --> 00:39:43,690 Vienu pēdiņām un dubultā citātus var nomainīt, 804 00:39:43,690 --> 00:39:46,220 savukārt C, jums ir izmantot pēdiņas uz stīgām, 805 00:39:46,220 --> 00:39:48,150 un jums ir divas viena pēdiņām chars. 806 00:39:48,150 --> 00:39:51,150 Jo JavaScript pasaulē, daudzi cilvēki, lielākā daļa cilvēku 807 00:39:51,150 --> 00:39:54,970 Izmantojiet vienu pēdiņām ap stīgām tikai tāpēc, ka tas ir stilistiski lieta. 808 00:39:54,970 --> 00:39:58,330 Bet kas ir plus operators šeit, ko mēs neesam redzējuši? 809 00:39:58,330 --> 00:39:59,836 >> AUDITORIJA: Konkatenācija. 810 00:39:59,836 --> 00:40:00,960 DAVID Malan: Konkatenācija. 811 00:40:00,960 --> 00:40:02,450 Tātad C nav pat to. 812 00:40:02,450 --> 00:40:04,820 PHP ir dot operatoram, kas tas. 813 00:40:04,820 --> 00:40:09,710 JavaScript ir plus operatoru, kas maldinoši ir tāpat kā Java. 814 00:40:09,710 --> 00:40:11,440 Tagad to, kas notiek šeit? 815 00:40:11,440 --> 00:40:14,260 >> Tātad, šeit ir, ja pamata izpratne par šo attēlu 816 00:40:14,260 --> 00:40:17,010 mēs iemeta pāris dienas pirms sāk spēlēt. 817 00:40:17,010 --> 00:40:19,620 Atceros, kad mums bija vienkāršs versija HTML page-- 818 00:40:19,620 --> 00:40:20,830 tas tikai teica, sveiki pasaule. 819 00:40:20,830 --> 00:40:22,770 Un tad mēs vērsa koks pa labi, kas 820 00:40:22,770 --> 00:40:27,320 bija ķekars taisnstūru un līniju savienojot tos, piemēram, ģimenes koku. 821 00:40:27,320 --> 00:40:30,820 Tā ka ir tā sauktā DOM vai dokumenta objekta modelis. 822 00:40:30,820 --> 00:40:36,759 Un izrādās, ka jūs varat piekļūt taisnstūri šajā koks ar sintaksi 823 00:40:36,759 --> 00:40:37,550 tāpat kā turpmāk. 824 00:40:37,550 --> 00:40:41,370 Tu burtiski saka dokumentu, kas ir īpaša pasaules mainīgais Javascript 825 00:40:41,370 --> 00:40:45,890 programma, kas ir funkcija saistīta ar to, ka jūs varat piekļūt 826 00:40:45,890 --> 00:40:50,280 līdzīgi struktūrai, bet jūs vienkārši saku dot un tad funkcija vārdu, 827 00:40:50,280 --> 00:40:52,390 nokļūt elementu pēc ID. 828 00:40:52,390 --> 00:40:55,460 >> Elements, es vēlos saņemt, ir acīmredzot citēt likt pēdiņas beigās vārdu. 829 00:40:55,460 --> 00:40:57,150 Un tad es gribu, lai saņemtu savu vērtību. 830 00:40:57,150 --> 00:40:58,330 Tagad mēs esam iegūt priekšā sevi. 831 00:40:58,330 --> 00:41:00,038 Es neesmu pat pārliecināts, ko tas viss ir par. 832 00:41:00,038 --> 00:41:03,000 Pieņemsim ātri uz priekšu, lai HTML uz lapa, kas ir super vienkārši. 833 00:41:03,000 --> 00:41:05,370 >> Paziņojums, ka es esmu definēts veidot uz leju šeit. 834 00:41:05,370 --> 00:41:07,940 Paziņojums Es esmu devis unikālu ID, lai gan mēs esam nav izmantoti 835 00:41:07,940 --> 00:41:08,870 šis raksturlielums agrāk. 836 00:41:08,870 --> 00:41:11,300 Bet tas pastāv HTML. 837 00:41:11,300 --> 00:41:15,570 Jūs varat identificētu kādu rieciens HTML ar identifikatoru, kā šis. 838 00:41:15,570 --> 00:41:19,880 >> Paziņojums tagad this-- izrādās HTML atbalsta, par šo veļas sarakstu 839 00:41:19,880 --> 00:41:22,490 pirms brīža, viss ķekars notikumu apstrādes. 840 00:41:22,490 --> 00:41:25,060 Un šis notikums apdarinātājs saka apstiprināšanas. 841 00:41:25,060 --> 00:41:28,730 Par lietotāja iesniegšanas šis forma, zvaniet šādu kodu. 842 00:41:28,730 --> 00:41:31,360 Un kods, kas notiek saukt vai to izpildīt 843 00:41:31,360 --> 00:41:35,260 ir tieši tas, grieķu funkcija seko atgriezties viltus. 844 00:41:35,260 --> 00:41:37,360 Viss pārējais būtu būt diezgan pazīstams. 845 00:41:37,360 --> 00:41:42,050 >> Te ir ieejas tipa teksta, kura ID, šajā gadījumā būs vārds. 846 00:41:42,050 --> 00:41:45,430 Mums nav faktisko nosaukums atribūtu tas LAIKU_ un iesniegt pogu. 847 00:41:45,430 --> 00:41:48,330 Tātad rezultātā lapa izskatās šādi. 848 00:41:48,330 --> 00:41:52,890 Un rezultātā uzvedība, jūs redzēsiet, izskatās šādi. 849 00:41:52,890 --> 00:41:56,940 Lapu tas vietējiem saimniekiem saka, sveiki David, diez estētiski 850 00:41:56,940 --> 00:41:58,340 veids, kā sveicināt lietotājam. 851 00:41:58,340 --> 00:41:59,950 Bet to, kas patiesībā notiek? 852 00:41:59,950 --> 00:42:01,360 >> Nu, uzskata, kas tas ir. 853 00:42:01,360 --> 00:42:02,310 Tas ir teksta lauks. 854 00:42:02,310 --> 00:42:04,635 Un saskaņā ar HTML šeit, es esmu devis to 855 00:42:04,635 --> 00:42:07,350 unikāls identifikators sauc quote likt pēdiņas beigās vārdu. 856 00:42:07,350 --> 00:42:09,770 Tajā pašā laikā, es esmu teicis, kad lietotājs iesniedz šo veidlapu 857 00:42:09,770 --> 00:42:13,820 ar hitting Enter vai noklikšķinot Iesniegt pogu, zvaniet funkciju sauc Greet 858 00:42:13,820 --> 00:42:15,410 un pēc tam atgriezties False. 859 00:42:15,410 --> 00:42:16,870 Apskatīsim tos atpakaļgaitā. 860 00:42:16,870 --> 00:42:20,590 Ievērosiet, kad es noklikšķiniet uz Iesniegt, URL Šīs lapas nemainās. 861 00:42:20,590 --> 00:42:22,420 Pārlūkprogramma ikona nesākās vērpšanai. 862 00:42:22,420 --> 00:42:27,050 Man nav iet visur, un tas ir burtiski, jo es teicu atgriezties False. 863 00:42:27,050 --> 00:42:31,534 Atgriezties viltus īssavienojumus vai apstājas noklusējuma uzvedība formā. 864 00:42:31,534 --> 00:42:33,700 Tāpēc, ka pēc tam atstāj mūs ar tas viens pēdējais jautājums. 865 00:42:33,700 --> 00:42:34,764 Kāda Greet darīt? 866 00:42:34,764 --> 00:42:36,680 Nu, acīmredzot Sveiciniet aicina funkciju sauc 867 00:42:36,680 --> 00:42:39,250 Brīdinājumu, iet vienā sen arguments, ka tas 868 00:42:39,250 --> 00:42:43,950 rezultāts concatenating kopā ķekars apakšvirknes, hello komats telpa, 869 00:42:43,950 --> 00:42:45,810 tad kāds tas atgriežas. 870 00:42:45,810 --> 00:42:51,490 Tātad dokuments ir kā globāla mainīgais šai saknēm šo koku, 871 00:42:51,490 --> 00:42:55,560 aicinot īpašu funkciju, citādi tagad pazīstams kā metodi. 872 00:42:55,560 --> 00:42:57,650 Funkcija, kas ir iekšā mainīgais 873 00:42:57,650 --> 00:42:59,640 sauc metode, nevis funkcija. 874 00:42:59,640 --> 00:43:01,570 >> Tātad iegūt elementu pēc ID. 875 00:43:01,570 --> 00:43:03,940 Kas elements do you vēlaties saņemt tās ID? 876 00:43:03,940 --> 00:43:06,970 Citējot likt pēdiņas beigās vārdu un tad īpaši augstu. 877 00:43:06,970 --> 00:43:12,000 Tātad citiem vārdiem sakot, šis kods vienkārši atrod teksta lauku, kura ID ir vārds 878 00:43:12,000 --> 00:43:13,380 un pēc tam iegūst savu vērtību. 879 00:43:13,380 --> 00:43:16,460 Tātad, ja es būtu to mainīt un teikt Davin vietā Dāvidu, 880 00:43:16,460 --> 00:43:20,670 un noklikšķiniet uz Iesniegt, tagad mēs ir sveicienu Davin. 881 00:43:20,670 --> 00:43:22,890 >> Viss ir labi, tāpēc viss, naudas sodu un labi. 882 00:43:22,890 --> 00:43:25,480 Bet pieņemsim redzēt, ja mēs varam darīt tas nedaudz tīrāku, jo tikai 883 00:43:25,480 --> 00:43:28,190 rakstot kodu, piemēram, tas ir parasti būs sarauca pieri. 884 00:43:28,190 --> 00:43:30,060 Tas ir gatavojas meklēt scarier. 885 00:43:30,060 --> 00:43:32,330 Bet kas ir pirmais atšķirība, ka jūs atzīmēt šeit 886 00:43:32,330 --> 00:43:35,970 šajā versijā Bez nosaukums mainās uz DOM vienu? 887 00:43:35,970 --> 00:43:41,110 Kas strukturāli izskatās citādi par šo pret otru? 888 00:43:41,110 --> 00:43:41,932 Yeah? 889 00:43:41,932 --> 00:43:43,890 Mērķauditorija: Vai veidlapa top scenārija tagad? 890 00:43:43,890 --> 00:43:46,570 DAVID Malan: Jā, forma ir uz augšu skripts kādu dīvainu iemeslu dēļ. 891 00:43:46,570 --> 00:43:48,736 Tā ka ir pirmā lieta ka lec uz mani, too. 892 00:43:48,736 --> 00:43:50,990 Un par laimi vismaz šī daļa ir identisks. 893 00:43:50,990 --> 00:43:53,470 Tātad vienīgā lieta, kas, šķiet, būt atšķirīgs tas ir. 894 00:43:53,470 --> 00:43:55,296 >> Tātad, šeit ir tas, ko ir veikls par JavaScript 2. 895 00:43:55,296 --> 00:43:57,420 Un tas padara to grūti saprotu pēc pirmā acu uzmetiena, 896 00:43:57,420 --> 00:44:00,670 īpaši gala projektus, ja jūs meklējat pie parauga kodu tiešsaistē, 897 00:44:00,670 --> 00:44:04,200 bet tā vārīties uz leju, lai dažus pamata sintaktiskie funkcijas. 898 00:44:04,200 --> 00:44:06,230 Te atkal ir tas, ka globālo mainīgo dokuments. 899 00:44:06,230 --> 00:44:09,540 Te atkal ir tas, ka veids vai funkcija ka saka iegūt elementu pēc ID. 900 00:44:09,540 --> 00:44:11,570 Šoreiz es gribu saņemt ID sauc demo. 901 00:44:11,570 --> 00:44:12,490 Kur tas ir? 902 00:44:12,490 --> 00:44:15,400 Tas ir acīmredzami taisnība šeit, forma pati. 903 00:44:15,400 --> 00:44:20,010 >> Un tagad ievēroju, ka acīmredzot, ja es saņemt atpakaļ šo mezglu no koka, kas 904 00:44:20,010 --> 00:44:22,940 apzīmē formu pati par sevi, nevis teksta lauks, 905 00:44:22,940 --> 00:44:26,970 izrādās, ka formu, kas mezgla vai taisnstūra no koka, 906 00:44:26,970 --> 00:44:30,450 ir tas, ko mēs saucam par īpašumu, ļoti, ļoti, ļoti līdzīgi 907 00:44:30,450 --> 00:44:35,390 garā uz struktūrai C. Tas ir tikai Dati loceklis iekšā šajā taisnstūrī. 908 00:44:35,390 --> 00:44:38,300 >> Tāpēc es esam ieguvuši formu šeit, un es esmu pievienojot, 909 00:44:38,300 --> 00:44:44,650 vai es esmu piešķirot, lai tā apstiprināšanas apdarinātājs vai drīzāk apstiprināšanas īpašumu 910 00:44:44,650 --> 00:44:45,740 šāda funkcija. 911 00:44:45,740 --> 00:44:49,000 Un tas ir, neapšaubāmi, craziest lieta līdz šim sintaktiski. 912 00:44:49,000 --> 00:44:53,610 Izrādās, JavaScript un PHP, un, atklāti sakot, par šo jautājumu C, 913 00:44:53,610 --> 00:44:58,990 pat ja mēs nedarām to, jūs varat pievienot nezināms, anonīmi, vai AKA lambda 914 00:44:58,990 --> 00:45:03,000 funkcijas, kurām nav vārdu bet to var saukt tomēr. 915 00:45:03,000 --> 00:45:07,050 >> Tātad, ko es daru šeit es esmu piešķirot šo šeit Iesniegt īpašumu, kas 916 00:45:07,050 --> 00:45:14,330 ir iekšā šī mezgla mana DOM koku, funkcija, funkcija rādītājs ja Jums gribas. 917 00:45:14,330 --> 00:45:16,310 Šī funkcija ir ne nosaukt, bet tas nav 918 00:45:16,310 --> 00:45:19,110 nozīmes, jo mēs redzēsim ar brīdi, kā to nosaukt. 919 00:45:19,110 --> 00:45:21,780 Kad šī funkcija sauc, šis kods tiek izpildīts, tad 920 00:45:21,780 --> 00:45:24,210 nepatiesa tiek atgriezta, tāpat kā pirms tam. 921 00:45:24,210 --> 00:45:25,800 >> Bet pamanīt to, ko es esmu darījusi. 922 00:45:25,800 --> 00:45:27,830 Šajā brīdī stāsts, man ir forma. 923 00:45:27,830 --> 00:45:30,190 Tas ir ieguvuši unikālu ID sauc demo. 924 00:45:30,190 --> 00:45:33,740 Leju šeit, man ir skriptu tag kas izpilda šādu kodu. 925 00:45:33,740 --> 00:45:37,720 Tas piešķir šim mezglu koks, kas tas ir uz Iesniegt 926 00:45:37,720 --> 00:45:40,260 īpašums šī funkcija šeit. 927 00:45:40,260 --> 00:45:44,310 Un tikai pēc būtības, kā pārlūkiem strādā, kad es tagad noklikšķiniet uz Iesniegt vai hit Enter, 928 00:45:44,310 --> 00:45:45,889 ka funkcija ir gatavojas saņemt sauc. 929 00:45:45,889 --> 00:45:48,680 Tas nav nepieciešams nosaukumu jo, kas heck rūpējas, ko tā sauc. 930 00:45:48,680 --> 00:45:52,540 Vienīgā reize, kad tas kādreiz gatavojas saņemt sauc ir, kad es iesniegt veidlapu. 931 00:45:52,540 --> 00:45:55,130 Nav nepieciešams par mani, cilvēka attīstītājs, 932 00:45:55,130 --> 00:45:57,330 faktiski to nosaukt jebkur citur. 933 00:45:57,330 --> 00:46:00,720 >> Tagad tikai kā teaser, it kā tas nebija prātā saliekuma pietiekami, 934 00:46:00,720 --> 00:46:03,330 mēs pat varam padarīt izskatās vairāk mistisks izmantojot 935 00:46:03,330 --> 00:46:05,850 super populāra bibliotēka sauc jQuery. 936 00:46:05,850 --> 00:46:08,760 Faktiski jQuery un JavaScript bieži nesaista. 937 00:46:08,760 --> 00:46:12,790 Un ko mēs darīsim trešdien, ir sākums Izmantojot šo valodu un šīs bibliotēkas 938 00:46:12,790 --> 00:46:16,030 veidot arvien asinhronā un dinamisku pieteikumi 939 00:46:16,030 --> 00:46:18,950 tāpat karti iegūt pieteikumi, pieteikumi 940 00:46:18,950 --> 00:46:22,360 kas atjaunināt tīmekļa lapu reālā laiks, daudz, piemēram, Facebook vai Gchat 941 00:46:22,360 --> 00:46:27,130 darīt, un vairs aprobežoties hitting Iesniegt ko get vai vienkārši pastu 942 00:46:27,130 --> 00:46:27,630 vien. 943 00:46:27,630 --> 00:46:29,055 Tāpēc es jūs redzēšu trešdien. 944 00:46:29,055 --> 00:46:31,805 945 00:46:31,805 --> 00:46:35,550 >> [Mūzikas atskaņošanai] 946 00:46:35,550 --> 00:48:09,728