1 00:00:00,000 --> 00:00:01,940 >> [MUSIC Playing] 2 00:00:01,940 --> 00:00:11,130 3 00:00:11,130 --> 00:00:14,620 >> DAVID Malan: Kjo është CS 50, dhe ky është fillimi i javës nëntë. 4 00:00:14,620 --> 00:00:18,240 Dhe ajo që ne menduam se do të bëjmë sot nuk është vetëm të mbyllë kapitullin e javës së kaluar 5 00:00:18,240 --> 00:00:22,670 material, ku ne u përqendruam në server Ana web programimit me PHP dhe SQL, 6 00:00:22,670 --> 00:00:23,549 disa sende bazës së të dhënave. 7 00:00:23,549 --> 00:00:25,590 Ne do të flasim për një grimë sigurisë sot dhe pastaj 8 00:00:25,590 --> 00:00:29,590 Tranzicioni në një programimit anën e klientit Gjuha njohur si JavaScript. 9 00:00:29,590 --> 00:00:31,330 Por së pari, disa shpengim. 10 00:00:31,330 --> 00:00:35,030 >> Ju mund të kujtojnë se më E mërkurë, u nisa 11 00:00:35,030 --> 00:00:37,550 për të shkruar një faqe interneti që mori në input të përdoruesit 12 00:00:37,550 --> 00:00:41,120 nga një HTML formë që ruhet që emrat e inputeve përdorues, telefon 13 00:00:41,120 --> 00:00:43,124 numrat, dhe Cellphone transportuesit në bazën e të dhënave. 14 00:00:43,124 --> 00:00:45,540 Dhe pastaj kam pasur një komandë të vogël Linja script shkruar në PHP 15 00:00:45,540 --> 00:00:47,956 që ishte menduar për të iterate mbi rreshtave në bazën e të dhënave 16 00:00:47,956 --> 00:00:49,400 dhe për të dërguar mesazhe me tekst. 17 00:00:49,400 --> 00:00:53,870 Përkundër disa, disa përpjekjeve, ne nuk e kam marrë atë të punës deri në fund. 18 00:00:53,870 --> 00:00:57,820 >> Kështu që unë kaloi këtë javë të tërë të punës në këtë kod për të na marrë të fundit në pikën 19 00:00:57,820 --> 00:01:01,220 ku ne u ndërpre, ku të gjithë I marrë deri në fund të mërkurës 20 00:01:01,220 --> 00:01:05,500 Ishte ky mesazh tekst nga Margo si kam luftuar, 21 00:01:05,500 --> 00:01:09,940 pasuar nga një mesazh me tekst nga një tjetër klase, Ju keni marrë këtë Davidin. 22 00:01:09,940 --> 00:01:14,030 Ndjekur nga ky, mrekullisht inkurajuese. 23 00:01:14,030 --> 00:01:15,840 Mbajtur në vazhdim e sipër, shumë inkurajuese. 24 00:01:15,840 --> 00:01:20,960 Unë gati e kam atë deri then-- dhe kjo është shënimi që përfundoi të mërkurën. 25 00:01:20,960 --> 00:01:25,850 Dhe pastaj në fakt ndoshta my favorite, një moment më vonë, kjo erdhi. 26 00:01:25,850 --> 00:01:27,000 Damn Jetojnë Stream. 27 00:01:27,000 --> 00:01:31,080 >> Pra sot, ne të rregullojmë këtë me një të shpejtë shikoni se çfarë kam bërë që nga viti. 28 00:01:31,080 --> 00:01:35,440 Pra, të gjithë i këtij kodi është në dispozicion online nga javën e kaluar, javën e tetë, 29 00:01:35,440 --> 00:01:36,300 kodin burim. 30 00:01:36,300 --> 00:01:39,425 Dhe ju do të shihni se unë shkova me, dhe unë në fakt pastruar gjërat pak. 31 00:01:39,425 --> 00:01:42,080 I futur një çift tjetër Tiparet e një bazë të dhënash SQL. 32 00:01:42,080 --> 00:01:45,300 Për shembull, në vend se vetëm të bëjë bartës i var char 33 00:01:45,300 --> 00:01:47,310 si unë mendoj se kam bërë të fluturojnë javën e kaluar. 34 00:01:47,310 --> 00:01:49,820 Unë në vend të definuar atë si atë që quhet një enum. 35 00:01:49,820 --> 00:01:53,310 >> Dhe disa prej jush mund të keni parë këtë si ne hulumtohen C. ENUM është në të vërtetë 36 00:01:53,310 --> 00:01:56,820 një tipar i C, ku ju mund të numëroj një bandë e tërë e konstanteve 37 00:01:56,820 --> 00:01:59,640 dhe të caktojë ata vlerat automatike, si një, dy, tre, katër 38 00:01:59,640 --> 00:02:01,330 pa pasur nevojë për numra të kodit vështirë. 39 00:02:01,330 --> 00:02:04,780 Pra SQL mbështet njëjtë, ku në qoftë se ju keni një fushë bazës së të dhënave që ju të vetëm 40 00:02:04,780 --> 00:02:09,389 duan të marrin në një nga fundme Vlerat, ju mund të vërtetë të specifikoni atë 41 00:02:09,389 --> 00:02:13,120 siç kam bërë aty për katër popullore transportuesit Cellphone SHBA. 42 00:02:13,120 --> 00:02:13,819 >> Kështu që unë e bëri atë. 43 00:02:13,819 --> 00:02:16,610 Dhe kam bërë një numër ndryshimesh si mirë, më e rëndësishme e të cilave 44 00:02:16,610 --> 00:02:20,090 ishte për të marrë email të punuar, sepse kujtojnë, që ky program të mbështetur në të cilën 45 00:02:20,090 --> 00:02:23,470 përgjithësisht quhet një email tek Portë SMS, i cili është i drejtë 46 00:02:23,470 --> 00:02:27,670 një mënyrë e sofistikuar për të thënë se Verizon, dhe AT & T, dhe folks të tjera të mbështesin një server, 47 00:02:27,670 --> 00:02:30,740 ku nëse ajo pranon email, ajo konverton atë në SMS 48 00:02:30,740 --> 00:02:33,290 dhe i dërgon një tekst Mesazhi në telefonin e dikujt. 49 00:02:33,290 --> 00:02:37,010 Pra, nëse unë e bëri këtë të saktë, këtu është një formë e re dhe të përmirësuara 50 00:02:37,010 --> 00:02:39,259 që do të flasim për Kodi i ri dhe të përmirësuara, të cilat 51 00:02:39,259 --> 00:02:40,300 ju mund të luajnë me të online. 52 00:02:40,300 --> 00:02:44,140 Dhe shpresojmë se do të bëjë tim beep telefon në vetëm një moment. 53 00:02:44,140 --> 00:02:47,240 >> Pra, së pari, unë jam duke shkuar për të shkruani emrin tim. 54 00:02:47,240 --> 00:02:51,400 Së dyti, unë nuk jam duke shkuar për të bërë këtë këtë kohë. 55 00:02:51,400 --> 00:02:53,920 Unë jam duke shkuar për të bërë inspektimin e Elementit. 56 00:02:53,920 --> 00:02:56,710 Dhe kjo është vetëm një pak gjë kështu që unë nuk e bëj 57 00:02:56,710 --> 00:02:59,250 krijuar orë postin e prodhimit punojnë si unë e bëri për herë të fundit. 58 00:02:59,250 --> 00:03:02,300 Ka tani është numri im i telefonit. 59 00:03:02,300 --> 00:03:03,560 >> Unë do të zgjidhni Verizon. 60 00:03:03,560 --> 00:03:10,260 Dhe këtu, le të kthehet në këtë mikrofon këtu, dhe synojnë këtë në telefonin tim këtu. 61 00:03:10,260 --> 00:03:13,130 Unë jam duke shkuar për të klikoni Regjistrin, e cila duhet të shpresojmë se 62 00:03:13,130 --> 00:03:14,530 e vënë atë në bazën e të dhënave. 63 00:03:14,530 --> 00:03:16,780 Tani unë jam duke shkuar për të shkuar në Programi command line, e cila 64 00:03:16,780 --> 00:03:20,825 kujtojnë quhej dot slash tekst, dhe ndër gishtat tuaj. 65 00:03:20,825 --> 00:03:24,092 66 00:03:24,092 --> 00:03:26,527 Këtu ne do të shkojmë. 67 00:03:26,527 --> 00:03:27,501 >> [Dings Phone] 68 00:03:27,501 --> 00:03:28,962 >> [Duartrokitje] 69 00:03:28,962 --> 00:03:31,815 70 00:03:31,815 --> 00:03:34,940 DAVID Malan: Pra, më fun se this-- kjo është argëtim, natyrisht, në qoftë se unë të marrë në të. 71 00:03:34,940 --> 00:03:38,004 Por kjo është më shumë argëtim, mendova, nëse ne krijoi një nga ato momente film 72 00:03:38,004 --> 00:03:40,420 ku si diçka të vërtetë e keqe ka ndodhur në botë, 73 00:03:40,420 --> 00:03:42,860 dhe si të gjitha NSA Popullit, cellphones fillojë beeping 74 00:03:42,860 --> 00:03:44,860 me tekstin e mesazheve njoftimit të tyre për këtë fakt. 75 00:03:44,860 --> 00:03:47,026 Kështu që mendova që ne do të përpiqemi për të rikrijuar njëjtën gjë këtu, 76 00:03:47,026 --> 00:03:49,610 ku jo duke përdorur një bazë të dhënash, Unë në vend të parë 77 00:03:49,610 --> 00:03:51,490 shkroi një program që duket si kjo. 78 00:03:51,490 --> 00:03:53,660 >> Kjo është një index.php-- dhe kam vënë në internet këtë kod 79 00:03:53,660 --> 00:03:56,710 si well-- që me sa duket vetëm bën form.php, 80 00:03:56,710 --> 00:04:00,990 duke përdorur një stil paradigmë MVC se ne flasim për më shumë detaje në grup e problemeve 81 00:04:00,990 --> 00:04:01,650 shtatë. 82 00:04:01,650 --> 00:04:02,910 Kjo formë është shumë e thjeshtë. 83 00:04:02,910 --> 00:04:06,634 Ajo do të dorëzojë një file i quajtur here.php me postë. 84 00:04:06,634 --> 00:04:09,300 Dhe kjo është me sa duket do të kërkojë për një emër dhe një numër telefoni, 85 00:04:09,300 --> 00:04:11,400 dhe pastaj me anë të të ashtuquajturit Zgjidhni menu, kjo është 86 00:04:11,400 --> 00:04:14,250 do të ju jap të paktën katër popullore transportuesit SHBA Cellphone, 87 00:04:14,250 --> 00:04:17,470 dhe pastaj të lejojë që në mënyrë efektive marrë pjesëmarrjen duke klikuar këtu. 88 00:04:17,470 --> 00:04:20,471 >> Dhe këtu, ndërkohë, do të hua disa të kodit nga koha e kaluar. 89 00:04:20,471 --> 00:04:22,553 Dhe në qoftë se ju vetëm të cek këtë, ju do të shihni se ka 90 00:04:22,553 --> 00:04:23,900 një bandë e tërë e error checking. 91 00:04:23,900 --> 00:04:26,640 Por bukuria në fund është se ne nuk jemi me shkrim në një bazë të dhënash sot. 92 00:04:26,640 --> 00:04:29,130 Ne jemi duke e mbajtur atë të thjeshtë dhe të vetëm duke dërguar shpresë 93 00:04:29,130 --> 00:04:32,190 një mesazh tekst me anë të funksionit I shkroi mbi të kaluarën disa ditë thirrjes 94 00:04:32,190 --> 00:04:36,270 Tekst, e cila është në Ushtrimin e Funksioneve. php, i cili është sërish në dispozicion online. 95 00:04:36,270 --> 00:04:38,210 >> Pra, nëse ju do të donte për të marrë pjesë në këtë. 96 00:04:38,210 --> 00:04:40,190 Ne nuk do të jetë ruajtjen asgjë. 97 00:04:40,190 --> 00:04:43,809 Shkoni në këtë URL këtu në kohë reale. 98 00:04:43,809 --> 00:04:46,850 A nuk e dorëzon atë vetëm ende, por të le të të shohim nëse ne mund të kemi një nga këto filmit 99 00:04:46,850 --> 00:04:49,830 momente ku Cellphone gjithëve fillon beeping, shpresojmë vetëm 100 00:04:49,830 --> 00:04:53,580 një herë këtë vit ndryshe nga 2011 kur ky shkoi tmerrësisht shtrembër. 101 00:04:53,580 --> 00:04:58,910 Dhe një herë ju shkoni në atë adresë, ju duhet të shihni një formë super të thjeshtë 102 00:04:58,910 --> 00:05:03,884 se në qoftë se ju keni një emër, një telefon celular Numri, dhe një bartës Cellphone që 103 00:05:03,884 --> 00:05:06,175 përputhet me listën atje, shkoj përpara dhe plotësoni formularin. 104 00:05:06,175 --> 00:05:07,880 Por nuk e goditi të paraqesë vetëm ende. 105 00:05:07,880 --> 00:05:10,850 >> Formulari do të duket si ky. 106 00:05:10,850 --> 00:05:13,660 Shkoni përpara dhe të shkruani në emrin tuaj, numrin e telefonit. 107 00:05:13,660 --> 00:05:17,670 OOP, dikush po ndodh përpara kurbë. 108 00:05:17,670 --> 00:05:18,170 Kjo është OK. 109 00:05:18,170 --> 00:05:19,340 OK, të gjithë është plotësuar formularin. 110 00:05:19,340 --> 00:05:21,400 Kjo duhet të punojnë në një telefon, gjithashtu, në qoftë se ju dëshironi. 111 00:05:21,400 --> 00:05:23,695 Të gjitha të drejtat, në shënon tuaj, merrni vendosur, të shkojnë. 112 00:05:23,695 --> 00:05:24,195 Hit Këtu. 113 00:05:24,195 --> 00:05:27,275 114 00:05:27,275 --> 00:05:27,775 Çfarë? 115 00:05:27,775 --> 00:05:31,140 116 00:05:31,140 --> 00:05:31,640 Jo. 117 00:05:31,640 --> 00:05:34,410 118 00:05:34,410 --> 00:05:40,250 Unë betohem për Zotin, unë testuar këtë herë të shumta sot. 119 00:05:40,250 --> 00:05:41,720 Keni marrë atë? 120 00:05:41,720 --> 00:05:43,145 >> [Bashkëvendosur Zërat] 121 00:05:43,145 --> 00:05:46,470 122 00:05:46,470 --> 00:05:49,560 >> DAVID Malan: OK, ndoshta gabim përdorues. 123 00:05:49,560 --> 00:05:50,550 Kjo është dy. 124 00:05:50,550 --> 00:05:53,300 Ajo ka punuar për dy nga a disa qindra, tre, katër. 125 00:05:53,300 --> 00:05:55,940 OK, kjo është e mirë. 126 00:05:55,940 --> 00:05:58,520 Katër nga pesë për korrektesën si në lidhje. 127 00:05:58,520 --> 00:05:59,810 >> Pra, çfarë ndodhi? 128 00:05:59,810 --> 00:06:02,727 Pra me sa duket, pa e parë tuaj ekranet, pse mund të ketë errored? 129 00:06:02,727 --> 00:06:05,518 Kjo është ndoshta se ne ishim vetëm duke u përpjekur për të bërë shumë lidhje 130 00:06:05,518 --> 00:06:08,110 të mail server Harvardit të gjitha në herë nga e njëjta vendndodhjes IP. 131 00:06:08,110 --> 00:06:10,740 Unë jam vetëm guessing që unë nuk e kam kanë luksin e testimit 132 00:06:10,740 --> 00:06:13,220 ky kod me disa 300 njerëz paraprakisht 133 00:06:13,220 --> 00:06:16,040 por tani për tani të kuptojë se që të paktën duhet të 134 00:06:16,040 --> 00:06:18,250 e kanë marrë punën e bërë në këtë kohë. 135 00:06:18,250 --> 00:06:22,880 >> Në rregull, kështu që pse është kjo e gjithë më i përshtatshëm për çfarë po ndodh? 136 00:06:22,880 --> 00:06:24,900 Well parë, një të shpejtë disa njoftimeve. 137 00:06:24,900 --> 00:06:29,350 Pra një, në qoftë se ju dëshironi të bashkohet Chang, dhe Nick, dhe të tjerët në drekë këtë e premte, 138 00:06:29,350 --> 00:06:32,400 bëni RSVP në URL e zakonshme atje. 139 00:06:32,400 --> 00:06:35,650 Nëse jeni duke menduar të përqëndruar ose duke bërë një të mesme në CS, 140 00:06:35,650 --> 00:06:38,941 nëse ju jeni një i paedukuar mjaft, apo fillestar, apo edhe të vogël ose të lartë në këtë pikë 141 00:06:38,941 --> 00:06:42,490 dhe ende mund të shtrydh në kurset, kuptojnë se shkolla inxhinieri 142 00:06:42,490 --> 00:06:45,620 është mbledhur për Ben lirë dhe Krem Jerry akull dhe këshilla 143 00:06:45,620 --> 00:06:48,910 këtë të mërkurë menjëherë pas klasës së në 04:00 në ndërtesën CS 144 00:06:48,910 --> 00:06:49,771 në Maxwell Dworkin. 145 00:06:49,771 --> 00:06:51,520 Nëse kjo është shumë e shpejtë në ekran, thjesht shkoni 146 00:06:51,520 --> 00:06:55,260 të cs50.harvard.edu për një Lidhje të ngjarjes Facebook 147 00:06:55,260 --> 00:06:57,140 ku ju mund të shihni më shumë detaje. 148 00:06:57,140 --> 00:07:01,390 >> Ndërkohë, unë mendova se do të korrigjuar një gjë tjetër që unë goofed të mërkurën. 149 00:07:01,390 --> 00:07:04,400 Rezulton se ID Markut në Facebook nuk ishte tre. 150 00:07:04,400 --> 00:07:05,230 Ajo ishte katër. 151 00:07:05,230 --> 00:07:08,330 Rezulton se ai kishte më shumë provë Llogaritë se unë kujtoj. 152 00:07:08,330 --> 00:07:12,400 Por ajo që kjo ndjehet si një mundësi të bëni është që të tërheqë një URL si kjo. 153 00:07:12,400 --> 00:07:16,680 >> Pra, del se Facebook ka një API, Application Programming Interface, 154 00:07:16,680 --> 00:07:20,070 cila është një mekanizëm ku ju mund të kërkojë të dhëna të programuar 155 00:07:20,070 --> 00:07:24,480 në Facebook dhe për të marrë mbrapa makinë Informacioni i lexueshëm, jo ​​faqet web 156 00:07:24,480 --> 00:07:28,690 por teksti vetëm para, diçka quajtur JavaScript Object simbol. 157 00:07:28,690 --> 00:07:32,150 Dhe në fakt, në qoftë se unë të vizitoni këtë URL, dhe zoom in, by default, 158 00:07:32,150 --> 00:07:34,960 kjo është e Mark publikisht informacion të arritshme. 159 00:07:34,960 --> 00:07:37,430 >> Dhe detaje interesante këtu është vetëm se ID tij 160 00:07:37,430 --> 00:07:40,670 është me të vërtetë, numri katër, që unë realizuar sa më shpejt që kam bërë këtë. 161 00:07:40,670 --> 00:07:44,260 Ju mund ta bëni këtë vetë, nëse ju e dini Facebook emrin tuaj nëse ju keni një të tillë. 162 00:07:44,260 --> 00:07:45,440 Vetëm shkruani atë të lartë atje. 163 00:07:45,440 --> 00:07:46,640 Dhe kjo nuk është private. 164 00:07:46,640 --> 00:07:48,670 Unë jam vetëm duke bërë këtë edhe në mënyrë inkonjito. 165 00:07:48,670 --> 00:07:49,900 Kështu që unë nuk jam edhe në Anglisht. 166 00:07:49,900 --> 00:07:54,440 Dhe ju jeni duke parë që unë me sa duket ishte numri i përdoruesit 6454 167 00:07:54,440 --> 00:07:56,480 për tu, e cila nuk eshte shumë keq këto ditë. 168 00:07:56,480 --> 00:07:59,900 Pra Gjithsesi, ju do të shihni informata shtesë atje. 169 00:07:59,900 --> 00:08:02,150 >> Dhe aspekti i dobishëm e kjo është që ju 170 00:08:02,150 --> 00:08:06,890 mund të shkruaj vetë software tuaj që disi integron të dhënat si kjo 171 00:08:06,890 --> 00:08:08,170 në aplikimin tuaj. 172 00:08:08,170 --> 00:08:10,650 Ju mund të fuqizojë përdoruesit për hyni në faqen tuaj te internetit, 173 00:08:10,650 --> 00:08:14,190 jo duke përdorur emrin e tyre doganore dhe Fjalëkalimi por ndoshta login tyre Facebook 174 00:08:14,190 --> 00:08:16,170 dhe të marrin informacion edhe për miqtë e tyre, 175 00:08:16,170 --> 00:08:18,740 në qoftë se ata miratojnë tillë, ose të ngjashme. 176 00:08:18,740 --> 00:08:21,430 Pra, vini re se CS50, gjithashtu, ka disa prej TV e veta, 177 00:08:21,430 --> 00:08:24,620 një për të dhënat e katalogut Sigurisht, disa për menutë përqafime në ngrënie 178 00:08:24,620 --> 00:08:26,730 salla, të gjithë ndërtesa dhe vende 179 00:08:26,730 --> 00:08:30,930 në kampus kemi një API për të mirë që ju mund të query ngjashme dhe për të marrë 180 00:08:30,930 --> 00:08:35,520 Të dhënat mbrapa tekstuale që ju mund të integrohen në një PHP, JavaScript, ose, apo edhe, 181 00:08:35,520 --> 00:08:38,320 edhe pse më pak zakonisht, një C bazuar projektin përfundimtar. 182 00:08:38,320 --> 00:08:41,190 >> Në të vërtetë përpara për finale Projekti janë piketa disa. 183 00:08:41,190 --> 00:08:42,980 Ju mori një email nga ne ditë të tjera. 184 00:08:42,980 --> 00:08:45,761 Kuptojnë se propozimi është për shkak këtë të hënë vjen. 185 00:08:45,761 --> 00:08:49,010 Kjo nuk është domosdoshmërisht të detyrueshme, por ju keni nevojë për të marrë shokët e tu të mësimdhënies 186 00:08:49,010 --> 00:08:51,260 miratim para se të bërë ndonjë ndryshim pas kësaj. 187 00:08:51,260 --> 00:08:54,280 Dhe pastaj përpara janë një Numri i piketa të tjera. 188 00:08:54,280 --> 00:08:56,542 >> Pra, për të vë në lojë ju, gjithashtu, me disa mundësi, 189 00:08:56,542 --> 00:08:58,250 ne kemi një bandë e këto poqat ngjyrimi. 190 00:08:58,250 --> 00:09:01,190 Dhe disa nga ju djema tani kanë disa prej tyre në dhomën tuaj fjetore si. 191 00:09:01,190 --> 00:09:02,920 Dhe ata gjithashtu kanë një API. 192 00:09:02,920 --> 00:09:07,300 Pra, të kujtojnë ato javë binare bulbs më parë se Dan Bradley dhe Ansel 193 00:09:07,300 --> 00:09:08,780 Duff ka krijuar për ne. 194 00:09:08,780 --> 00:09:12,560 Ata kanë përdorur një ndërfaqe software për kjo llambë të lehta, të cilat në këtë moment 195 00:09:12,560 --> 00:09:15,232 është e mbyllën në energji elektrike dhe pastaj me anë të wireless 196 00:09:15,232 --> 00:09:17,690 është e lidhur me një gjë të vogël quajtur Ura këtu poshtë, 197 00:09:17,690 --> 00:09:21,280 si një Patentuar pak router në këtë pajisje të veçantë. 198 00:09:21,280 --> 00:09:26,540 >> Por kjo rezulton në qoftë se unë e di se si për të të dërgoni mesazhe HTTP, ndërsa ne të gjithë tani bëjmë, 199 00:09:26,540 --> 00:09:31,670 Unë mund të dërgoni një mesazh si ky për kjo llambë të lehta për ta kthyer atë në ose off 200 00:09:31,670 --> 00:09:34,000 ose të bëjë ndonjë numër të operacione të tjera mbi të. 201 00:09:34,000 --> 00:09:36,110 Vini re se kjo nuk është marrë, nuk është postoni. 202 00:09:36,110 --> 00:09:37,760 Ka një tjetër të quajtur put. 203 00:09:37,760 --> 00:09:39,630 Ka në fakt disa folje të tjera të tilla. 204 00:09:39,630 --> 00:09:42,920 Por vini re ka një rrugë atje, slash API, çaj zhvilluesi i ri, 205 00:09:42,920 --> 00:09:44,990 plagë të lehta, çaj një, çaj shtetit. 206 00:09:44,990 --> 00:09:49,060 >> Kjo është me sa duket vetëm rruga se kompania, Philips, 207 00:09:49,060 --> 00:09:51,640 vendosi që ju keni për të goditur me një kërkesë HTTP 208 00:09:51,640 --> 00:09:55,010 në qoftë se ju doni për të ndryshuar gjendjen e llambë duke përdorur HTTP 1.1. 209 00:09:55,010 --> 00:09:56,380 Pastaj njoftim rresht bosh. 210 00:09:56,380 --> 00:10:00,170 Dhe pastaj në fund atë që duket si lloj i një grup të disa lloj, 211 00:10:00,170 --> 00:10:04,730 kjo përsëri do të quhet JavaScript Object simbol, apo Jason. 212 00:10:04,730 --> 00:10:08,000 Dhe ajo që ju shihni këtu është se ka tre palë kryesore me vlerë. 213 00:10:08,000 --> 00:10:09,115 >> Një kyç është quajtur në. 214 00:10:09,115 --> 00:10:10,990 Dhe vlera e tij duket do të jetë e vërtetë. 215 00:10:10,990 --> 00:10:13,612 Ndriçimi është 128, i cili është një lloj int. 216 00:10:13,612 --> 00:10:15,820 Dhe pastaj kohë tranzicioni është zero, e cila është në dukje 217 00:10:15,820 --> 00:10:17,970 sa kohë do të marrë për ta kthyer këtë gjë në. 218 00:10:17,970 --> 00:10:19,890 >> Deri tani kjo llambë është off. 219 00:10:19,890 --> 00:10:22,880 Por në qoftë se unë bëj pikërisht this-- le të shkoj në një mashtrojnë pak fletë 220 00:10:22,880 --> 00:10:25,200 se Dan ngritur në advance-- dhe unë jam duke shkuar 221 00:10:25,200 --> 00:10:27,920 për të shkuar përpara dhe kopje komandës në vijim. 222 00:10:27,920 --> 00:10:30,200 Curl, si disa prej jush mund të nxirren në CS50 223 00:10:30,200 --> 00:10:35,080 Diskutoni është një dobi si Telnet tillë që ju mund të simulojnë HTTP kërkesa, 224 00:10:35,080 --> 00:10:36,360 posaçërisht vë. 225 00:10:36,360 --> 00:10:39,710 Unë mund të dërgoni këto të dhëna, në mënyrë specifike atë që ne vetëm 226 00:10:39,710 --> 00:10:43,430 pa një moment më parë në mënyrë specifike në këtë URL mbi këtu. 227 00:10:43,430 --> 00:10:46,310 Dhe pastaj Curl do të trajtojë të gjitha headers nevojshme 228 00:10:46,310 --> 00:10:47,600 dhe atje analizë gramatikore të. 229 00:10:47,600 --> 00:10:54,700 >> Kështu që të gjitha unë duhet të bëni është të kopjoni këtë në një dritare terminali dhe pastaj goditi Enter. 230 00:10:54,700 --> 00:10:56,000 Dhe llambë drita vazhdon. 231 00:10:56,000 --> 00:10:59,060 Dhe kjo është e gjitha po kalon kompjuterin tim pa tel 232 00:10:59,060 --> 00:11:01,960 disi deri tek ura, e cila pastaj duke folur me këtë llambë të lehta. 233 00:11:01,960 --> 00:11:02,960 Unë mund të bëjë diçka tjetër. 234 00:11:02,960 --> 00:11:07,050 Unë mund të bëjë këtë gjë shkoni të kuqe për shembull. 235 00:11:07,050 --> 00:11:11,040 Unë mund të për shembull të bëni kjo gjë të shkojnë gjelbër. 236 00:11:11,040 --> 00:11:12,220 Unë mund të bëjë atë të shkojë blu. 237 00:11:12,220 --> 00:11:14,760 >> Dhe njoftim në secilën nga këto raste, të gjitha që unë jam duke ndryshuar 238 00:11:14,760 --> 00:11:18,540 është e ashtuquajtura vlera e thirrur për në fakt t'i jepte disa ngjyra. 239 00:11:18,540 --> 00:11:20,320 Pra më lejoni të ngjisni këtë në si. 240 00:11:20,320 --> 00:11:21,000 Tani është blu. 241 00:11:21,000 --> 00:11:24,672 >> Dhe ju mund të bëni edhe njohës gjëra where-- le të shkojë në të gjelbër. 242 00:11:24,672 --> 00:11:26,630 Dhe unë mund të bëjë këtë të Sigurisht me kodin time. 243 00:11:26,630 --> 00:11:30,670 Por edhe vetë API mbështet operacionet shokuar 244 00:11:30,670 --> 00:11:35,510 si kjo, e cila tani do të shqetësojë Na kontaktoni për 30 sekondave të ardhshëm. 245 00:11:35,510 --> 00:11:39,170 >> Pra, kjo është një shije të asaj që ju mund të të bëjë me një API, kjo përfshin 246 00:11:39,170 --> 00:11:40,010 poqat. 247 00:11:40,010 --> 00:11:42,510 Vini re se CS50 ka një çift palë Google Glass Nëse ju dëshironi 248 00:11:42,510 --> 00:11:45,380 të doja të trajtuar diçka së bashku këto linja, Arduino Unos, e cila 249 00:11:45,380 --> 00:11:48,670 kompjutera vogël pak, në thelb, në një bord qark të vogël 250 00:11:48,670 --> 00:11:50,470 që ju mund të lidheni telat dhe gjëra të tjera 251 00:11:50,470 --> 00:11:52,732 për dhe në fakt kontrollin e Ambienti juaj i vërtetë botëror. 252 00:11:52,732 --> 00:11:54,940 Dhe pastaj ka disa lodra të reja që ne kemi. 253 00:11:54,940 --> 00:11:59,294 Kjo fjalë për fjalë vetëm arriti ditë të tjera me anë të postës, një Armband Myo. 254 00:11:59,294 --> 00:12:01,710 Dhe unë mendova se është një mënyrë për të merrni ju ngacmuar në lidhje me projektet e 255 00:12:01,710 --> 00:12:03,720 që ju mund të përdorni me kjo pajisje do të 256 00:12:03,720 --> 00:12:08,900 të jetë për të luajtur këtë clip shkurtër që ata përdorin për të ngas folks 257 00:12:08,900 --> 00:12:10,500 se ne jemi tani duke jetuar në të ardhmen. 258 00:12:10,500 --> 00:12:13,494 259 00:12:13,494 --> 00:12:15,490 >> [MUSIC Playing] 260 00:12:15,490 --> 00:13:33,410 261 00:13:33,410 --> 00:13:37,109 >> DAVID Malan: Pra, në vetëm disa javë, ju gjithashtu mund të jetë që ftohtë në panair CS50. 262 00:13:37,109 --> 00:13:39,150 Një pajisje që kanë një bandë e që ne jemi 263 00:13:39,150 --> 00:13:42,090 lumtur për hua për projekte quhet një kontrollues lëvizje. 264 00:13:42,090 --> 00:13:45,030 Kjo është një pajisje e vogël USB ju lidheni me një kompjuter që 265 00:13:45,030 --> 00:13:47,520 ju lejon për të bashkëvepruar me laptop tuaj, Mac apo PC, 266 00:13:47,520 --> 00:13:51,570 sikur keni pasur si një Xbox Kinect dhe të bëjë në fakt mocionet fizike shumë 267 00:13:51,570 --> 00:13:54,509 si ne e shohim në këtë Vizioni për të ardhmen. 268 00:13:54,509 --> 00:13:56,505 >> [MUSIC Playing] 269 00:13:56,505 --> 00:15:03,380 270 00:15:03,380 --> 00:15:06,260 >> DAVID Malan: Pra, edhe në qoftë se ju keni nuk ka ide se si diçka si kjo 271 00:15:06,260 --> 00:15:10,050 ndoshta mund të jetë shpikur apo punë në një nivel hardware, pa marrë parasysh. 272 00:15:10,050 --> 00:15:13,520 Edhe pas vetëm disa muaj të CS50, dhe një kuptim i programimit 273 00:15:13,520 --> 00:15:19,460 më në përgjithësi, dhe programim web më shumë kohët e fundit, dhe pastaj edhe TV, dhe HTTP, 274 00:15:19,460 --> 00:15:21,830 ju do të keni qasje nëpërmjet TV software në qoftë se ju 275 00:15:21,830 --> 00:15:24,680 nuk duan të marrë hua një nga këto pajisje të vërtetë flasin për atë 276 00:15:24,680 --> 00:15:27,180 dhe nuk duhet të shqetësohen për zbatimi themelor 277 00:15:27,180 --> 00:15:30,220 detajet, e cila është plotësisht në përputhje me këtë nocion të layering 278 00:15:30,220 --> 00:15:33,610 një abstraksion që ne kemi parë gjatë gjithë semestrit. 279 00:15:33,610 --> 00:15:37,990 >> Ashtu edhe gjatë fundjavës, pa një copë çift të lajmeve. 280 00:15:37,990 --> 00:15:40,640 Shko pari, të shkojnë në seminare, nëse ju do të donte për të mësuar diçka 281 00:15:40,640 --> 00:15:42,160 më shumë në çdo numër të temave. 282 00:15:42,160 --> 00:15:43,340 Shih URL atje. 283 00:15:43,340 --> 00:15:45,890 Dhe kjo u dërgua në me nga Chang, i cili ju e dini, 284 00:15:45,890 --> 00:15:47,850 kush është shtypjen ushtrinë tonë të elefantëve. 285 00:15:47,850 --> 00:15:49,910 Dhe kjo ishte një titull si më poshtë. 286 00:15:49,910 --> 00:15:51,280 Unë jam i tmerruar nga TV tim të ri. 287 00:15:51,280 --> 00:15:54,301 Pse unë jam i frikësuar për ta kthyer këtë gjë mbi dhe ju do të jetë shumë. 288 00:15:54,301 --> 00:15:56,050 Pra, ne jemi tani në pikë në semestrin, 289 00:15:56,050 --> 00:15:58,860 gjithashtu, ku edhe në qoftë se ju keni vogël e të kuptuarit 290 00:15:58,860 --> 00:16:02,620 se si punon web, dhe HTTP, dhe sigurisë, gjëra të tilla si kjo 291 00:16:02,620 --> 00:16:03,980 duhet të fillojë për të kapur syrin tuaj. 292 00:16:03,980 --> 00:16:07,450 Por gjithashtu, ju do të kuptoni nëse këto gjëra janë ose jo 293 00:16:07,450 --> 00:16:08,430 Kërcënimet aktuale. 294 00:16:08,430 --> 00:16:10,940 >> Kështu që unë mori disa fragmente nga ky nen këtu. 295 00:16:10,940 --> 00:16:12,540 Dhe historia është si vijon. 296 00:16:12,540 --> 00:16:14,300 Unë jam tani pronar i një TV të re zgjuar, i cili 297 00:16:14,300 --> 00:16:18,470 premton për të ofruar streaming multimedia përmbajtjen, lojra, app, 298 00:16:18,470 --> 00:16:21,450 media sociale, dhe internet browsing, oh dhe TV too. 299 00:16:21,450 --> 00:16:24,410 Problemi i vetëm është se unë jam tani frikë të përdorin atë, thotë autori. 300 00:16:24,410 --> 00:16:29,592 Ju do të jetë, gjithashtu, në qoftë se ju lexoni me anë të 46 Privacy Policy për TV tuaj. 301 00:16:29,592 --> 00:16:31,800 Shuma e të dhënave të këtij gjë mbledh është tronditëse. 302 00:16:31,800 --> 00:16:35,710 Ajo shkrimet ku, kur, si, dhe për sa kohë që ju përdorni TV. 303 00:16:35,710 --> 00:16:38,190 Ajo vendos ndjekja cookies, siç e kemi diskutuar, 304 00:16:38,190 --> 00:16:40,560 dhe beacons projektuar për të zbuluar, kur ju keni 305 00:16:40,560 --> 00:16:43,185 Përmbajtja shikohet veçantë ose një mesazh të veçantë email 306 00:16:43,185 --> 00:16:45,230 në qoftë se ju doni të kontrolloni email në TV tuaj. 307 00:16:45,230 --> 00:16:48,430 Ajo regjistron Apps që ju përdorin, faqet e internetit që ju vizitoni, 308 00:16:48,430 --> 00:16:52,280 dhe se si ndërveprojnë me përmbajtjen, duke bërë të gjithë që me anë të TV tuaj zgjuar. 309 00:16:52,280 --> 00:16:55,470 Ai gjithashtu, yet-- creepier kjo është addition-- im 310 00:16:55,470 --> 00:16:58,140 ka një ndërtuar në kamera me njohjen e fytyrës. 311 00:16:58,140 --> 00:17:01,010 >> Qëllimi është që të ofrojë kontrolli gjest për TV 312 00:17:01,010 --> 00:17:05,490 dhe të mundësojë që të hyni brënda për personalizuar llogarinë përdorur fytyrën tuaj. 313 00:17:05,490 --> 00:17:08,940 Në përmbysur, imazhet janë të ruhen në TV në vend të ngarkuar 314 00:17:08,940 --> 00:17:09,940 në një server të korporatave. 315 00:17:09,940 --> 00:17:12,520 Në dobësitë, internet Lidhja e bën tërë TV 316 00:17:12,520 --> 00:17:14,811 prekshme për hakerat që kanë demonstruar aftësi 317 00:17:14,811 --> 00:17:16,700 të marrë kontrollin e plotë të makinës. 318 00:17:16,700 --> 00:17:20,880 >> Më tepër shqetësuese, pasi në qoftë se nuk ishte e mjaft i zgjuar, është mikrofon. 319 00:17:20,880 --> 00:17:23,599 TV krenohet me një zë Njohja tipar 320 00:17:23,599 --> 00:17:26,859 që lejon shikuesit për të kontrolluar ekran me komandat zë. 321 00:17:26,859 --> 00:17:30,290 Por shërbimi vjen me një paralajmërim mjaft ogurzi. 322 00:17:30,290 --> 00:17:33,030 Ju lutemi të jenë të vetëdijshëm se në qoftë se fjalët e tua folur përfshijnë 323 00:17:33,030 --> 00:17:36,210 personale apo të tjera të ndjeshme Informacioni, që informacioni 324 00:17:36,210 --> 00:17:40,310 do të jetë midis të dhënave të kapur dhe transmetohet një pale të tretë. 325 00:17:40,310 --> 00:17:40,870 Got kjo? 326 00:17:40,870 --> 00:17:45,860 A nuk thonë personale ose sensitive gjëra në frontin e TV tuaj. 327 00:17:45,860 --> 00:17:47,280 >> Pra, kjo është në të vërtetë për të vërtetë. 328 00:17:47,280 --> 00:17:50,530 Dhe kjo nuk është e vështirë për të parë nëse ju shkoni në Best Buy apo si për TV 329 00:17:50,530 --> 00:17:51,030 këto ditë. 330 00:17:51,030 --> 00:17:52,540 Ata janë të gjithë të zgjuar në një farë mënyre. 331 00:17:52,540 --> 00:17:54,740 Dhe ata janë duke marrë zgjuar dhe creepier. 332 00:17:54,740 --> 00:17:57,490 Dhe ata janë thjesht mbledhjen e të dhënave në mënyra që ne kemi biseduar në lidhje me 333 00:17:57,490 --> 00:18:01,840 dhe pastaj ngarkoni atë nëpërmjet HTTP, ose disa protokoll tjetër për disa server. 334 00:18:01,840 --> 00:18:05,720 >> Pra, kjo ishte një artikull fun në këtë website në internet 335 00:18:05,720 --> 00:18:08,940 këtu, e cila foli për një bug të veçantë ose kod i gabuar 336 00:18:08,940 --> 00:18:11,340 se ne fakt mund të lidhin në diskutim javës së kaluar. 337 00:18:11,340 --> 00:18:15,730 Pra, ky titull ishte aq ndjek, historia shkon këtu, 338 00:18:15,730 --> 00:18:18,720 Josh Breckman punuar për një Kompania që fitoi një kontratë 339 00:18:18,720 --> 00:18:22,390 për të zhvilluar një të menaxhimit të përmbajtjes sistem, ose CMS si ata janë quajtur, 340 00:18:22,390 --> 00:18:24,380 për një faqe interneti mjaft të madhe të qeverisë. 341 00:18:24,380 --> 00:18:27,300 Pjesa më e madhe e projektit përfshirë zhvillimin e një sistemi të menaxhimit të përmbajtjes 342 00:18:27,300 --> 00:18:29,840 në mënyrë që punonjësit do të jetë në gjendje për të ndërtuar dhe për të ruajtur 343 00:18:29,840 --> 00:18:31,877 gjithnjë e në ndryshim përmbajtje për faqen e tyre. 344 00:18:31,877 --> 00:18:34,210 Gjërat shkuan mjaft mirë për të disa ditë pas do të jetojnë. 345 00:18:34,210 --> 00:18:37,020 Por ditën e gjashtë, gjërat nuk shkuan aq mirë. 346 00:18:37,020 --> 00:18:39,500 Të gjitha të përmbajtjes në website ishin zhdukur tërësisht. 347 00:18:39,500 --> 00:18:42,950 Dhe të gjitha faqet e çoi në default, ju lutem shkruani përmbajtje web faqe. 348 00:18:42,950 --> 00:18:43,810 Uh. 349 00:18:43,810 --> 00:18:46,080 Josh u thirr për të hetuar dhe vënë re 350 00:18:46,080 --> 00:18:49,390 se një veçanërisht i mundimshëm Adresa IP e jashtme kishte 351 00:18:49,390 --> 00:18:53,380 shkuar në dhe të fshihen të gjitha përmbajtje të sistemit. 352 00:18:53,380 --> 00:18:56,290 >> Adresa IP nuk i përkasin në një farë prirje hacker jashtë 353 00:18:56,290 --> 00:18:58,340 në shkatërrimin e të dobishme Informacioni qeverisë. 354 00:18:58,340 --> 00:19:05,190 Ajo zgjidhet për googlebot.com, Shumë vetë web zvarritje merimangë Google. 355 00:19:05,190 --> 00:19:06,010 Uh. 356 00:19:06,010 --> 00:19:09,150 Pas një grimë e hulumtimit dhe të përpiqen rreth për të gjetur një backup noncorrupt, 357 00:19:09,150 --> 00:19:10,180 Josh gjetur problemin. 358 00:19:10,180 --> 00:19:12,700 >> Një përdorues ka kopjuar dhe ngjit disa përmbajtje nga një 359 00:19:12,700 --> 00:19:15,670 faqe në një tjetër, duke përfshirë një Edit Hyperlink 360 00:19:15,670 --> 00:19:17,577 për të redaktuar përmbajtjen në faqe. 361 00:19:17,577 --> 00:19:20,160 Normalisht kjo nuk do të jetë një çështje që një përdorues të jashtëm do të 362 00:19:20,160 --> 00:19:24,320 duhet të futni një emër dhe fjalëkalim, por tek sistemi CMS, 363 00:19:24,320 --> 00:19:27,520 sistemi login, nuk ka marrë parasysh 364 00:19:27,520 --> 00:19:30,980 thatë sofistikuar teknikat e Google Spider. 365 00:19:30,980 --> 00:19:31,700 Uh. 366 00:19:31,700 --> 00:19:33,610 >> Siç rezulton, Google Spider nuk përdor 367 00:19:33,610 --> 00:19:36,950 cookies, që do të thotë se ajo mund të lehtë të anashkalojë një kontroll për 368 00:19:36,950 --> 00:19:39,840 është e regjistruar në grup cookie të jetë e rreme. 369 00:19:39,840 --> 00:19:42,620 Ajo gjithashtu nuk i kushtoj vëmendje të JavaScript, e cila do të normalisht 370 00:19:42,620 --> 00:19:45,170 të shpejtë dhe përcjellëse përdoruesit të cilët nuk janë të regjistruar në. 371 00:19:45,170 --> 00:19:48,610 It does megjithatë ndiqni çdo hyperlink në çdo faqe të gjen, 372 00:19:48,610 --> 00:19:51,700 duke përfshirë edhe ato me Fshij Faqe në titull. 373 00:19:51,700 --> 00:19:52,650 Uh. 374 00:19:52,650 --> 00:19:56,070 >> Pra, çfarë do të thotë kjo në më shumë kushtet teknike por mjaft të qasshme? 375 00:19:56,070 --> 00:19:58,340 Kjo thjesht do të thotë se të gjithë faqen e internetit e tyre, 376 00:19:58,340 --> 00:20:02,287 ata kishin URL jo ndryshe nga ky që ju mund të shihni në problemin vendosur shtatë. 377 00:20:02,287 --> 00:20:04,620 Recall në problemin vendosur shtatë ose e di në problemin vendosur shtatë 378 00:20:04,620 --> 00:20:06,411 se ju jeni të sfiduar, ndër të tjera, 379 00:20:06,411 --> 00:20:08,570 për të shitur rezervat në emër të përdoruesit. 380 00:20:08,570 --> 00:20:14,010 Por zbatimin e atë funksion nga rruga i merrni nëpërmjet hyperlinks në përdoruesit tuaj 381 00:20:14,010 --> 00:20:16,880 interface, ndoshta jo ide e zgjuar 382 00:20:16,880 --> 00:20:20,300 sepse nëse faqja e juaj është disi arritshme ose nga një njeri 383 00:20:20,300 --> 00:20:23,577 kush është klikuar rreth, ose ta blejë një bot si Google apo një Spider 384 00:20:23,577 --> 00:20:26,160 pasi ata janë quajtur kjo është vetëm zvarritje web duke u përpjekur për të indeksit 385 00:20:26,160 --> 00:20:29,060 web si një motor kërkimi, ata mund shumë lehtë 386 00:20:29,060 --> 00:20:31,340 goditur me anë të merrni këtë lloj URL. 387 00:20:31,340 --> 00:20:33,770 Dhe kjo është funksionalisht ekuivalente me, në këtë rast, 388 00:20:33,770 --> 00:20:37,000 shitjen e të gjitha aksioneve të Google. 389 00:20:37,000 --> 00:20:40,030 >> Tani sinqerisht, kjo është krejtësisht e si gomar se CMS 390 00:20:40,030 --> 00:20:43,240 përdorur JavaScript dhe Cookies për të zbatuar sistemin e saj login 391 00:20:43,240 --> 00:20:47,100 dhe nuk ka bërë atë anë server, si ju djema bëni dhe do të në PSet 7-- 392 00:20:47,100 --> 00:20:49,940 ka një login.php file-- gjithmonë, gjithmonë, 393 00:20:49,940 --> 00:20:52,789 gjithmonë të sigurisë duhet të jenë të bërë në anën e serverit, 394 00:20:52,789 --> 00:20:56,080 jo në anën e klientit, sepse, pasi kjo neni sugjeron dhe ju mund të veten 395 00:20:56,080 --> 00:20:59,600 të shihni në një pikë, ajo është e parëndësishëm për një përdorues, i mirë apo i keq, 396 00:20:59,600 --> 00:21:02,860 të vetëm të kthehet off JavaScript për të mos përmendur cookies. 397 00:21:02,860 --> 00:21:06,020 Pra, kjo është WTF tuaj të përditshme. 398 00:21:06,020 --> 00:21:07,970 >> Nuk është një shumë, e cila është vetëm lloj i frikshme, 399 00:21:07,970 --> 00:21:11,360 kështu që unë do të përmend atë nëse vetëm si një mësim të jetës. 400 00:21:11,360 --> 00:21:14,850 Kurdo që ju përdorni një aplikim quajtur si Snapchat apo si 401 00:21:14,850 --> 00:21:19,380 që thotë se këto foto të zgjasë vetëm për pesë sekonda, dhjetë sekonda, apo gjësend. 402 00:21:19,380 --> 00:21:21,680 Ata janë jetëshkurtër Kjo është absolutisht nuk është rasti. 403 00:21:21,680 --> 00:21:25,670 Ashtu si nuk ka asnjë mënyrë, digjitale, për të zbatuar një formë të videos, 404 00:21:25,670 --> 00:21:30,150 ose imazh apo tekstuale ndarjen e tillë se nje marresi në anën tjetër 405 00:21:30,150 --> 00:21:31,660 nuk mund të shpëtojë disi të dhënat. 406 00:21:31,660 --> 00:21:34,300 >> Në mënyrën më naiv, dikush mund të marrë telefonin e tyre. 407 00:21:34,300 --> 00:21:36,850 Dhe ata kanë një dritare 10 dytë ndërsa në kërkim në një punë e lehtë 408 00:21:36,850 --> 00:21:39,410 për të marrë vetëm një telefon tjetër dhe fotografuar atë, natyrisht. 409 00:21:39,410 --> 00:21:41,660 Kështu që ju mund të ruajë diçka digjitale në këtë mënyrë. 410 00:21:41,660 --> 00:21:44,620 Disa prej jush e dini se si për të marrë screenshots në telefonin tuaj. 411 00:21:44,620 --> 00:21:49,290 Në fakt, në qoftë se ju nuk e dini këtë, e kuptojnë se të paktën Snapchat, 412 00:21:49,290 --> 00:21:51,040 dhe unë mendoj se të tjera aplikacione këto ditë, 413 00:21:51,040 --> 00:21:53,720 të paktën ju nëse them marrësi ka të vërtetë 414 00:21:53,720 --> 00:21:55,310 marrë një pamje të imazhit tuaj. 415 00:21:55,310 --> 00:22:00,870 >> Por më keq akoma, kjo ishte snappening, si dikush e solli atë kohët e fundit, 416 00:22:00,870 --> 00:22:04,680 ku disa 100,000 snaps ishin liruar 417 00:22:04,680 --> 00:22:09,310 në atë që quhet një skedar torrent në faqet e internetit të ndryshme në fund të fundit. 418 00:22:09,310 --> 00:22:12,000 Dhe këto përmbante një bandë e tërë e mesazheve private dhe postet. 419 00:22:12,000 --> 00:22:15,210 Ajo rezulton nga shumica e tyre dashamirës, kështu që nuk është ajo që ju mund të presin. 420 00:22:15,210 --> 00:22:17,580 Por për shkak se njerëzit kishin përdorur një faqe interneti të palës së tretë, 421 00:22:17,580 --> 00:22:20,270 prerjet me Snapchat tyre emrin e përdoruesit dhe fjalëkalimin dhe pastaj 422 00:22:20,270 --> 00:22:23,470 kursimit të gjithë snaps tyre në këtë website palës së tretë. 423 00:22:23,470 --> 00:22:26,130 Dhe kjo ishte se pala e tretë faqe interneti që ishte hacked, 424 00:22:26,130 --> 00:22:30,710 i cili vetëm do të thoshte dikush artistikisht se si për të marrë të gjitha 100,000 plus e këtyre imazheve 425 00:22:30,710 --> 00:22:33,822 në drive e tyre të vështirë për ndarjen e mëvonshme. 426 00:22:33,822 --> 00:22:36,030 Sinqerisht, edhe këtu, kjo është lloj e si gomar që Snapchat 427 00:22:36,030 --> 00:22:39,360 është zbatuar në mënyrë të tillë që një palë e tretë mund të lloj nga ndërprerje 428 00:22:39,360 --> 00:22:43,310 të dhënat dhe se nuk është e lidhur me tuaj Aplikimi vetë drejtimin në telefon. 429 00:22:43,310 --> 00:22:46,947 Por edhe këtu, të kuptojë se këto gjërat nuk do të kapur ju në befasi, 430 00:22:46,947 --> 00:22:49,030 ose të paktën nuk duhet të jetë një mësim të jetës këtu. 431 00:22:49,030 --> 00:22:52,220 Nëse ju dëshironi teknike Detajet, të shkojnë në atë URL atje 432 00:22:52,220 --> 00:22:53,570 kjo është në slides sotme. 433 00:22:53,570 --> 00:23:00,960 Të gjitha të drejtat, ndonjë pyetje në sotme mësimet e jetës në CS? 434 00:23:00,960 --> 00:23:02,710 Kthejeni atë off. 435 00:23:02,710 --> 00:23:04,970 Çdo gjë në të gjitha? 436 00:23:04,970 --> 00:23:06,301 Çdo gjë në të gjitha? 437 00:23:06,301 --> 00:23:09,050 Unë kam marrë një shumë të njerëzve të kontrolluar Snapchat tyre apo diçka tani. 438 00:23:09,050 --> 00:23:11,690 >> Në rregull, kështu SQL, Strukturuar Query Language. 439 00:23:11,690 --> 00:23:12,509 Le të përfundojë këtë. 440 00:23:12,509 --> 00:23:14,300 Dhe gjithashtu, edhe pse ne jemi vetëm kruarje 441 00:23:14,300 --> 00:23:16,310 sipërfaqja e kësaj gjuha, ne do të ju jap 442 00:23:16,310 --> 00:23:18,930 mjaft i gjuhës në formën e PSet 7 443 00:23:18,930 --> 00:23:22,140 kështu që ju mund të trajtojë disa functionality mjaft të zakonshme. 444 00:23:22,140 --> 00:23:24,912 Por e kuptojnë se janë një çift gjëra që nuk kërkojnë prej jush, 445 00:23:24,912 --> 00:23:27,120 por ata do të jenë të rëndësishme vijnë projektet përfundimtare 446 00:23:27,120 --> 00:23:30,760 dhe sigurisht të vijë duke e bërë aktuale faqet e internetit me përdoruesit aktual 447 00:23:30,760 --> 00:23:32,040 Është ky vendim dizajn. 448 00:23:32,040 --> 00:23:34,460 >> Ajo rezulton se në një bazë të dhënash MySQL, ju 449 00:23:34,460 --> 00:23:37,460 kanë bunches zgjedhje si llojet e të dhënave për kolona tuaj 450 00:23:37,460 --> 00:23:41,670 dhe gjëra të tjera, por edhe ju keni zgjedhja e një të ashtu-quajtur magazinimit 451 00:23:41,670 --> 00:23:44,570 motor për të gjitha të dhënat tuaja, lloj i file të sistemit, 452 00:23:44,570 --> 00:23:46,700 në qoftë se ju jeni të njohur, për të gjitha të dhënat tuaja. 453 00:23:46,700 --> 00:23:48,830 Çfarë format është ajo në fund të fundit ruajtur në? 454 00:23:48,830 --> 00:23:53,300 Dhe më të zakonshme, ndoshta, ka qenë MyiSAM dhe InnoDB, kushtet teknike 455 00:23:53,300 --> 00:23:56,060 se ne do të kujdeset për vetëm në atë masë që një ka 456 00:23:56,060 --> 00:23:58,500 dhe nuk ka funksion në vijim. 457 00:23:58,500 --> 00:24:00,390 >> Supozoni se ju keni një frigorifer të vogël konvikti. 458 00:24:00,390 --> 00:24:03,030 Dhe mendoj se ju dhe tuaj shokun, që ndajnë këtë frigorifer, 459 00:24:03,030 --> 00:24:04,682 janë me të vërtetë dua të qumështit të themi. 460 00:24:04,682 --> 00:24:07,140 Dhe kjo është, në fakt, se si histori u tha për mua rrugën prapa 461 00:24:07,140 --> 00:24:10,890 në ditën kur mora një kurs quajtur CS 161 Sisteme Operative, e cila 462 00:24:10,890 --> 00:24:12,580 në mënyrë të ngjashme shqyrton këtë temë. 463 00:24:12,580 --> 00:24:13,760 Pra, ju keni marrë këtë frigorifer. 464 00:24:13,760 --> 00:24:14,630 Ju jeni nga qumështi. 465 00:24:14,630 --> 00:24:17,000 Dhe ju vijnë në shtëpi, shokun tënd ende në klasë apo çfarëdo, 466 00:24:17,000 --> 00:24:19,208 dhe ju vendosni që unë jam duke shkuar për të dalë dhe për të marrë disa qumësht. 467 00:24:19,208 --> 00:24:22,630 Pra, ju mbyllni frigorifer, garazh dhomë fjetore, shkoni nëpër rrugë 468 00:24:22,630 --> 00:24:25,330 për CVS apo kudo, dhe të merrni në linjë për të blerë qumësht. 469 00:24:25,330 --> 00:24:28,960 >> Ndërkohë, shokun juaj merr në shtëpi nga klasa, merr në dhomën e konvikt, 470 00:24:28,960 --> 00:24:31,802 hap frigoriferin, gjithashtu realizon ooph, ne jemi nga qumështi. 471 00:24:31,802 --> 00:24:33,760 Kështu që ai ose ajo mbyllet frigorifer dhe pastaj ndodh 472 00:24:33,760 --> 00:24:35,610 për të shkuar në CVS tjetër, e cila ndodh të jetë 473 00:24:35,610 --> 00:24:38,470 një bllok larg nga CVS e tjera në shesh, dhe merr në linjë 474 00:24:38,470 --> 00:24:40,230 atje për të marrë disa qumësht. 475 00:24:40,230 --> 00:24:42,524 Tani, sigurisht, disa minuta më vonë, ju të dy të kthehet, 476 00:24:42,524 --> 00:24:44,690 dhe më e keqja e të gjitha të jetë e mundur Rezultatet ka ndodhur. 477 00:24:44,690 --> 00:24:45,792 Dy prej jush kanë qumësht. 478 00:24:45,792 --> 00:24:47,500 Dhe ju nuk e bëni me të vërtetë si qumësht se shumë. 479 00:24:47,500 --> 00:24:49,625 Pra, njëri prej tyre është vetëm do të përkeqësohen në një pikë. 480 00:24:49,625 --> 00:24:55,941 Kështu që tani ju keni një sasi të tepërt i qumështit në frigorifer të gjitha, sepse pse? 481 00:24:55,941 --> 00:24:57,072 >> [Padëgjueshme] 482 00:24:57,072 --> 00:24:59,780 DAVID Malan: Yeah, ju nuk e keni disi të komunikojnë me njëri-tjetrin 483 00:24:59,780 --> 00:25:00,904 që ju të ishin marrë qumësht. 484 00:25:00,904 --> 00:25:04,320 Pra, në të thjeshtë e mënyra në botën e njeriut, 485 00:25:04,320 --> 00:25:08,390 si mund të ju shmangur këtë kuptim skenar të ndodhin të tilla 486 00:25:08,390 --> 00:25:09,750 që vetëm ju të përfundojnë me një. 487 00:25:09,750 --> 00:25:10,840 Tekst tyre, po të mirë. 488 00:25:10,840 --> 00:25:12,877 Por si tjetër? 489 00:25:12,877 --> 00:25:13,460 Post-it vëren. 490 00:25:13,460 --> 00:25:14,626 DAVID Malan: Një shënim Post-it. 491 00:25:14,626 --> 00:25:17,150 Çdo formë e komunikimit që tregon shokun tuaj 492 00:25:17,150 --> 00:25:18,670 Mos shkoni në frigorifer për qumësht. 493 00:25:18,670 --> 00:25:20,440 Unë jam duke shkuar për të shkuar përmbaj të mi. 494 00:25:20,440 --> 00:25:22,770 Pra, ju disi duhet të bllokoj këtë burim. 495 00:25:22,770 --> 00:25:27,180 Pra, ne mund të bëjë this-- ne mund të lloj prish historinë dhe të kthehet në një histori CS 496 00:25:27,180 --> 00:25:30,360 ku të mendojnë për këtë si vetëm si një variable, e cila është e ruajtjen disa vlera. 497 00:25:30,360 --> 00:25:32,570 Dhe tani, Vlera e qumështit është zero, 498 00:25:32,570 --> 00:25:35,410 të cilat ju nuk doni tuaj shokun për të inspektuar këtë variabël 499 00:25:35,410 --> 00:25:38,730 dhe pastaj të bëjë një vendim atë ose veten bazuar në gjendjen e kësaj variable 500 00:25:38,730 --> 00:25:42,430 në qoftë se ju jeni në procesin e ndryshuar gjendjen e kësaj variable. 501 00:25:42,430 --> 00:25:46,140 >> Pra, një nga linjat e SQL që ne ju jap në PSet 7 specifikim 502 00:25:46,140 --> 00:25:47,310 është kjo këtu. 503 00:25:47,310 --> 00:25:49,740 Dhe ne nuk do të kalojnë një i madh Shuma e kohës duke folur në lidhje me të. 504 00:25:49,740 --> 00:25:55,100 Por kjo rezulton, në qoftë se jeni duke u përpjekur për të blerë disa aksione në sektorin e financës CS50 505 00:25:55,100 --> 00:25:58,000 se ju tashmë keni disa aksione të, ju 506 00:25:58,000 --> 00:26:01,750 duan të jenë në gjendje për të bërë një numër i gjërave menjëherë së bashku. 507 00:26:01,750 --> 00:26:04,360 Ju dëshironi që të jetë në gjendje për të në mënyrë efektive, në një nivel të lartë, 508 00:26:04,360 --> 00:26:06,700 kontrolloni të gjithë të drejtë, në qoftë se unë dua për të blerë më shumë aksione të Lirë, 509 00:26:06,700 --> 00:26:08,780 aksioneve peni ne flasim për në spekulim, 510 00:26:08,780 --> 00:26:10,660 Unë dua të kontrolloni të parë sa aksione kam. 511 00:26:10,660 --> 00:26:11,810 Dhe mendoj se është pesë. 512 00:26:11,810 --> 00:26:14,600 Dhe mendoj unë dua të blej 10 më shumë, unë në fund të fundit 513 00:26:14,600 --> 00:26:17,069 duan të kenë 15 aksione. 514 00:26:17,069 --> 00:26:18,360 Kështu që unë duhet të pyes dy pyetje. 515 00:26:18,360 --> 00:26:20,230 Cila është gjendja e variablit? 516 00:26:20,230 --> 00:26:21,470 Cila është gjendja e rresht? 517 00:26:21,470 --> 00:26:22,970 Sa aksione mund të aktualisht kanë? 518 00:26:22,970 --> 00:26:24,636 Pastaj ju doni të shkoni përpara dhe update it. 519 00:26:24,636 --> 00:26:27,720 Pra, kjo është analog me qumësht në se ju kontrolloni rresht, 520 00:26:27,720 --> 00:26:30,730 dhe pastaj ju doni për të rinovuar atë sepse në qoftë se ju dëshironi të blini 10 aksione, 521 00:26:30,730 --> 00:26:32,521 ju nuk doni të ndryshojë rresht në 10, ju 522 00:26:32,521 --> 00:26:35,300 duan për të ndryshuar atë për 5 plus 10 apo, natyrisht, 15. 523 00:26:35,300 --> 00:26:40,030 >> Kjo linjë e kodit siguron se këto dy ide konceptuale 524 00:26:40,030 --> 00:26:42,810 ndodh së bashku ose aspak. 525 00:26:42,810 --> 00:26:46,920 Askush, përfshirë edhe disa përdorues të tjerë që është hyrë në të njëjtën faqen e internetit, 526 00:26:46,920 --> 00:26:49,900 disi mund të ndërpresë Kontrolli i rresht 527 00:26:49,900 --> 00:26:52,960 dhe përditësimin e rresht, zgjidhni dhe përditësimi nëse ju do. 528 00:26:52,960 --> 00:26:57,360 Por sintaksa nuk është e super e qartë, por kjo linjë njeri, e gjatë është kjo është, 529 00:26:57,360 --> 00:27:01,150 siguron që këto dy operacione kontrolloni variablin ose kontrolloni rresht 530 00:27:01,150 --> 00:27:04,660 dhe përditësimin rresht të ndodhë atomically. 531 00:27:04,660 --> 00:27:06,849 >> Oh këtu ne do të shkojmë përsëri. 532 00:27:06,849 --> 00:27:07,890 Mesazh tekst në telefonin tim. 533 00:27:07,890 --> 00:27:09,954 Pra, le të bëjnë këtë një pak më konkret. 534 00:27:09,954 --> 00:27:12,120 Supozoni se ju nuk jeni zbatimin e një frigorifer, 535 00:27:12,120 --> 00:27:16,400 dhe ju nuk jeni zbatimin PSet 7 por një bankë aktuale, 536 00:27:16,400 --> 00:27:20,000 ose një ATM, një Automated Teller Machine, ku ju disi 537 00:27:20,000 --> 00:27:22,960 duan të jenë në gjendje për të fuqizuar përdoruesit të transferimit të parave 538 00:27:22,960 --> 00:27:24,500 nga një llogari në një tjetër. 539 00:27:24,500 --> 00:27:25,100 OK, varet. 540 00:27:25,100 --> 00:27:26,683 Unë jam duke shkuar për të heshtur këtë tani, faleminderit. 541 00:27:26,683 --> 00:27:30,450 Pra, ne duam të lëvizin të holla nga një numër i llogarisë 542 00:27:30,450 --> 00:27:33,600 në një llogari tjetër numrin, konkretisht 100 $. 543 00:27:33,600 --> 00:27:37,690 Pra, kjo është lloj i një arbitrare shembull, ku ju, ATM, 544 00:27:37,690 --> 00:27:41,060 mund të dëshironi për të ekzekutuar dy SQL pyetje, zbres nga një llogari, 545 00:27:41,060 --> 00:27:42,430 dhe të shtoni në llogarinë tjetër. 546 00:27:42,430 --> 00:27:46,766 Por ju doni të siguruar që këto Dy linja të dyja të ndodhë ose jo në të gjitha. 547 00:27:46,766 --> 00:27:48,640 Ju nuk dëshironi diçka duke ndërprerë. 548 00:27:48,640 --> 00:27:51,440 Ju nuk bëni disa djalë i zgjuar i keq disi qëndron në Bankën e Amerikës 549 00:27:51,440 --> 00:27:53,270 me dy ATM para e tij dhe disi 550 00:27:53,270 --> 00:27:55,270 lloj shtypni komandat në të njëjtën kohë, 551 00:27:55,270 --> 00:28:01,230 shpresojmë se duke u përpjekur për të zbritur 200 $ në vend prej $ 100 dhe të kesh vetëm 100 $ kredituar. 552 00:28:01,230 --> 00:28:04,450 Me pak fjalë, ju dëshironi që kjo të sillen pikërisht si ju presin. 553 00:28:04,450 --> 00:28:06,540 >> Dhe mënyrë që ju bëni këtë në SQL databazë është 554 00:28:06,540 --> 00:28:09,350 ju përfundojë atë në atë që është quajtur një transaksion. 555 00:28:09,350 --> 00:28:14,290 Fjalë për fjalë në SQL, ju mund të telefononi CS50-së Funksioni query me kuotë fillimin mbyll thonjëzat 556 00:28:14,290 --> 00:28:15,370 transaksion. 557 00:28:15,370 --> 00:28:18,640 Pastaj ju mund të ekzekutojë ndonjë numër e SQL queries mëvonshme, 558 00:28:18,640 --> 00:28:20,870 por asnjëri prej tyre marrin efekt mbi bazën e të dhënave 559 00:28:20,870 --> 00:28:25,880 deri sa ju e quani query quote mbyll thonjëzat kryer, nëse përsëri duke përdorur PHP. 560 00:28:25,880 --> 00:28:29,810 Dhe në këtë mënyrë, ju mund të sigurojë që edhe në qoftë se ju keni 1000 përdoruesit të gjithë 561 00:28:29,810 --> 00:28:32,080 goditur bazën e të dhënave tuaja në të njëjtën kohë, SQL 562 00:28:32,080 --> 00:28:34,540 do të premtojmë se këto dy pyetje do të jetë 563 00:28:34,540 --> 00:28:36,740 zbatuar një të drejtë pas tjetrit. 564 00:28:36,740 --> 00:28:40,330 Pra, ju nuk do të përfundojnë me të madhe se qumësht ose shuma e gabuar, në fund të fundit, 565 00:28:40,330 --> 00:28:40,830 e parave. 566 00:28:40,830 --> 00:28:43,110 >> Kështu që të mbajë këtë në mendje, jo aq shumë për PSet 7 567 00:28:43,110 --> 00:28:45,250 por për projekte finale në qoftë se ju jeni në të vërtetë 568 00:28:45,250 --> 00:28:49,690 duke u përpjekur për të lëvizur të dhënat rreth nëpër tavolina si ju mund të këtu. 569 00:28:49,690 --> 00:28:53,980 Por ndoshta edhe më të thjeshta dhe më shumë qartë për të kuptuar me një shembull 570 00:28:53,980 --> 00:28:54,860 është kjo këtu. 571 00:28:54,860 --> 00:28:57,760 Dhe dikush na dërguar me email në lidhje me kjo vetëm ditë të tjera 572 00:28:57,760 --> 00:28:59,600 Kur ai e pa online diçka të ngjashme. 573 00:28:59,600 --> 00:29:03,480 >> Pra, për njohuritë e mia, sistemi pin nuk është e ndjeshme ndaj këtij sulmi. 574 00:29:03,480 --> 00:29:06,637 Dhe unë nuk kam asnjë ide nëse ajo edhe përdorime bazës së të dhënave SQL nën kapuç. 575 00:29:06,637 --> 00:29:08,470 Por le të përdorin atë për të hir të diskutimit. 576 00:29:08,470 --> 00:29:10,178 Këtu është ekran që Folks Harvardit kanë tendencë 577 00:29:10,178 --> 00:29:13,620 për të parë kur prerjet me tyre Numri i Harvard ID e pin e tyre. 578 00:29:13,620 --> 00:29:19,020 Dhe mendoj se sistemi i pin ishin zbatuar në PHP dhe MySQL me një 579 00:29:19,020 --> 00:29:22,000 bazës së të dhënave, kodin që dikush vjet mund të ketë shkruar më parë 580 00:29:22,000 --> 00:29:23,270 mund të duket si kjo. 581 00:29:23,270 --> 00:29:25,230 Së pari, të deklarojë a quajtur emrin e ndryshueshme. 582 00:29:25,230 --> 00:29:27,560 Dhe vetëm për të marrë atë nga superglobal POST. 583 00:29:27,560 --> 00:29:30,140 Pastaj merrni një variabël quajtur fjalëkalimin dhe të bëjë të njëjtën gjë. 584 00:29:30,140 --> 00:29:33,080 Dhe vetëm pastaj të ekzekutojë këtë pyetje të gjatë këtu, 585 00:29:33,080 --> 00:29:36,690 zgjidhni yll nga përdoruesit ku Emrin e barabartë tilla dhe të tilla 586 00:29:36,690 --> 00:29:38,510 dhe fjalëkalimi barabartë të tilla dhe të tilla. 587 00:29:38,510 --> 00:29:40,660 >> Vini re se kaçurrel formatimin e teksteve Unë e kam përdorur këtu 588 00:29:40,660 --> 00:29:42,880 vetëm thotë për të PHP, shkoni përpara dhe zëvendësim 589 00:29:42,880 --> 00:29:45,400 vlera e këtyre dy Variablat e drejtë atje. 590 00:29:45,400 --> 00:29:50,090 Ata nuk janë të domosdoshme, por ata kanë tendencë për të shmangur gabimet delikate sintaksë. 591 00:29:50,090 --> 00:29:53,650 Pra, kjo duket plotësisht saktë në shikim të parë. 592 00:29:53,650 --> 00:29:54,240 Dhe kjo është. 593 00:29:54,240 --> 00:29:56,680 Ju mund të zbatojë Sistemi pin në këtë mënyrë. 594 00:29:56,680 --> 00:30:00,460 >> Por mendoj se një super Studenti i zgjuar dhe me qëllim të keq 595 00:30:00,460 --> 00:30:03,020 input këtë si pin e tij ose të saj. 596 00:30:03,020 --> 00:30:05,550 Kështu që unë kam hequr plumbin Shenjat këtu në tallen deri, 597 00:30:05,550 --> 00:30:08,760 dhe unë kam zbuluar në fakt atë që ai ose ajo mund të jetë typing. 598 00:30:08,760 --> 00:30:10,350 Dhe kjo është pak e çuditshme. 599 00:30:10,350 --> 00:30:13,850 Por ajo që në hedhje nga ju në potencialisht shqetësuese në lidhje me input të përdoruesit, 600 00:30:13,850 --> 00:30:16,450 edhe në qoftë se ju nuk kanë idenë se çfarë një sulm SQL injeksion të thotë. 601 00:30:16,450 --> 00:30:20,300 Pse e bën këtë të duket një peshk të vogël? 602 00:30:20,300 --> 00:30:21,050 Çfarë është kjo? 603 00:30:21,050 --> 00:30:21,550 [Padëgjueshme] 604 00:30:21,550 --> 00:30:24,260 DAVID Malan: ose është a pak të dyshimtë. 605 00:30:24,260 --> 00:30:26,310 Në fakt, kjo është një fjalen nga SQL. 606 00:30:26,310 --> 00:30:28,105 Kështu që nuk ka shenjë e mirë. 607 00:30:28,105 --> 00:30:29,980 Fakti që ka të gjitha këto citate të vetme 608 00:30:29,980 --> 00:30:32,646 there-- në fakt, një nga më e lehtë mënyra për të thyer disa bazave të të dhënave 609 00:30:32,646 --> 00:30:35,880 është nga shtypja në një emër si O'Reilly që ka një apostrof në atë 610 00:30:35,880 --> 00:30:38,600 sepse në qoftë se njeriu i cili ka shkruar Kodi prapa skenave 611 00:30:38,600 --> 00:30:41,570 nuk merr parasysh se ka mund të jenë kuotat e vetme në një përdorues të 612 00:30:41,570 --> 00:30:45,060 input, dhe ai ose ajo është duke përdorur Kuotat e vetme në kodin e tyre, 613 00:30:45,060 --> 00:30:46,040 gjëra të këqija mund të ndodhë. 614 00:30:46,040 --> 00:30:47,870 >> Në fakt, më keq akoma, e konsiderojnë këtë. 615 00:30:47,870 --> 00:30:50,600 Nëse kjo ishte përsëri kodin se dikush në vitet e Harvardit 616 00:30:50,600 --> 00:30:53,100 më parë shkroi për pin Sistemi, vini re çfarë është 617 00:30:53,100 --> 00:30:56,220 gati për të marrë zëvendësua për emrin e përdoruesit dhe fjalë-kalimin 618 00:30:56,220 --> 00:30:59,780 nëse llojet e përdoruesve përsëri skroob si emrin e tyre 619 00:30:59,780 --> 00:31:03,960 dhe pastaj një, dy, tre, kater, pese, quote ose quote mbyll thonjëzat një barabartëve 620 00:31:03,960 --> 00:31:04,660 cituar një. 621 00:31:04,660 --> 00:31:07,220 Dhe vini re çfarë është çelësi këtu është përdorues nuk ka 622 00:31:07,220 --> 00:31:09,900 filloi fjalëkalimin tyre apo pin e tyre me një kuotë. 623 00:31:09,900 --> 00:31:12,610 Dhe ata nuk e kanë përfunduar atë me një kuotë, sepse ai ose ajo 624 00:31:12,610 --> 00:31:16,315 është supozuar se në qoftë se programues nuk ishte aq e mprehtë, 625 00:31:16,315 --> 00:31:18,690 ata do të kenë ato Kuotat e vetme në kodin e tyre. 626 00:31:18,690 --> 00:31:19,860 >> Kështu që këtu është kodi. 627 00:31:19,860 --> 00:31:23,820 Dhe zevendesimi se tani mund të ndodhë është kjo. 628 00:31:23,820 --> 00:31:26,350 Dhe unë kam theksuar se çfarë përdoruesi ka shtypur në. 629 00:31:26,350 --> 00:31:28,480 Pra, para, pas. 630 00:31:28,480 --> 00:31:33,330 Dhe vini re çfarë është paksa shqetësuese tani për gjysmën e djathtë të këtij kodi SQL? 631 00:31:33,330 --> 00:31:36,300 Kjo është pak më komplekse, pa dyshim, se pyetjet që kemi parë. 632 00:31:36,300 --> 00:31:38,550 Por kjo nuk mund të të jetë një gjë e mirë nëse ju jeni 633 00:31:38,550 --> 00:31:42,240 duke thënë zgjidhni yll, i cili është të zgjidhni çdo gjë nga tryeza e përdoruesit 634 00:31:42,240 --> 00:31:46,630 ku emri i përdoruesit barabartë skroob dhe fjalëkalimin e barabartë me një, dy, tre, katër, 635 00:31:46,630 --> 00:31:49,610 pesë ose një është e barabartë me një të tillë. 636 00:31:49,610 --> 00:31:53,860 Çfarë është implikimi logjik të kësaj pike të fundit me sa duket? 637 00:31:53,860 --> 00:31:55,650 Është vetëm gjithmonë e vërtetë. 638 00:31:55,650 --> 00:31:59,930 >> Dhe për shkak se ne kemi mendoi lloj ose motive nga gjykimi dhe gabim 639 00:31:59,930 --> 00:32:02,760 se programues i cili shkroi ky kod nuk ka 640 00:32:02,760 --> 00:32:07,250 parashikojnë një person njerëzor apo e keqe shtypja në thonjëza të vetme, si edhe, 641 00:32:07,250 --> 00:32:10,350 ne mund të sintaksore përfunduar SQL query 642 00:32:10,350 --> 00:32:12,260 me diçka absurd por diçka që 643 00:32:12,260 --> 00:32:15,930 është sintaksore pasaktë që gjithmonë vlerëson të vërtetë. 644 00:32:15,930 --> 00:32:19,130 Pra, nëse ky kod është duke u përdorur për t'iu përgjigjur Pyetja e vërtetë apo e rreme duhet 645 00:32:19,130 --> 00:32:22,930 ky përdorues të lejohet të kalojë, Përgjigja është gjithmonë duket do 646 00:32:22,930 --> 00:32:26,930 të jetë e vërtetë, sepse kjo gjithmonë do për të zgjedhur diçka nga baza e të dhënave 647 00:32:26,930 --> 00:32:29,280 sepse një natyrisht gjithmonë është e barabartë me një të tillë. 648 00:32:29,280 --> 00:32:30,360 >> Pra, çfarë është zgjidhja? 649 00:32:30,360 --> 00:32:33,290 Edhe në PSet 7, ne fakt shmangur këtë të gjithë së bashku. 650 00:32:33,290 --> 00:32:37,360 Ne ju japim një funksion pyetje, dhe ne ju inkurajojmë të përdorni pikëpyetje 651 00:32:37,360 --> 00:32:40,430 si placeholders, të ngjashme në frymën me printf është% s, 652 00:32:40,430 --> 00:32:43,710 por ajo që është shumë e rëndësishme në lidhje me pikëpyetje këtu është në qoftë se ju lexoni në të vërtetë përmes 653 00:32:43,710 --> 00:32:46,950 functions.php, ku tona Funksioni pyetje është zbatuar, 654 00:32:46,950 --> 00:32:52,780 këto pikëpyetje janë të shpëtuar, ku çdo gjë potencialisht të rrezikshme 655 00:32:52,780 --> 00:32:58,210 si një kuotë të vetme është kthyer në një kuotë të shpëtuar të vetme. 656 00:32:58,210 --> 00:33:00,590 >> Pra, kjo është ajo që është me të vërtetë po ndodh në qoftë se ju 657 00:33:00,590 --> 00:33:04,850 përdorni funksionin CS50 për pyetje ose ndonjë numër e bibliotekave të lirë të palës së tretë që 658 00:33:04,850 --> 00:33:06,000 bëjnë të njëjtën gjë. 659 00:33:06,000 --> 00:33:09,850 Nuk ka rëndësi në këtë rast, në të gjelbër, në qoftë se përdoruesi ka shtypur në një kuotë të vetme 660 00:33:09,850 --> 00:33:12,070 sepse query funksion që kemi shkruar është 661 00:33:12,070 --> 00:33:15,120 shkuar për të shtuar pjerrta parë çdo kuotë të tillë të rrezikshme. 662 00:33:15,120 --> 00:33:17,360 Pra, kjo nuk është, në fakt, do të jetë legit. 663 00:33:17,360 --> 00:33:20,910 Kjo është si të shtypni një i çmendur në kërkim Fjalëkalimi kjo është, sigurisht, nuk do 664 00:33:20,910 --> 00:33:23,490 të jetë fjalëkalimin aktuale skroob s. 665 00:33:23,490 --> 00:33:28,260 >> Pra, takeaway për CS50 është një, absolutisht të përdorni përherë diçka 666 00:33:28,260 --> 00:33:30,860 si funksion CS50 të query ose bibliotekë themelor, 667 00:33:30,860 --> 00:33:32,560 i cili ndodh që të quhet PDO. 668 00:33:32,560 --> 00:33:35,880 Por kurrë, kurrë, kurrë nuk bëjnë kodin si kjo 669 00:33:35,880 --> 00:33:39,472 pa ikin ose të ashpër siç thonë ata inputet tuaja. 670 00:33:39,472 --> 00:33:42,430 Dhe ju do të në një moment ndoshta vijnë të gjithë një faqe interneti si kjo. 671 00:33:42,430 --> 00:33:46,060 Në fakt, kjo duket të jetë rasti si në aeroporte dhe hotele në vende 672 00:33:46,060 --> 00:33:48,880 ku ata kanë të lirë Wi-Fi qasje që ju duhet të identifikoheni për të, 673 00:33:48,880 --> 00:33:51,010 këto faqet e internetit janë gjithmonë të zbatuar tmerrshëm. 674 00:33:51,010 --> 00:33:55,680 Dhe kështu një lloj i argëtim në shtëpi ushtrojnë, jo për qëllime dashakeqe ose më shumë 675 00:33:55,680 --> 00:33:59,170 e një fun në rrugë ushtrim, është që vetëm lloji 676 00:33:59,170 --> 00:34:02,850 një apostrof, një kuotë të vetme, në një formë në disa faqe interneti 677 00:34:02,850 --> 00:34:03,810 dhe shikoni se çfarë ndodh. 678 00:34:03,810 --> 00:34:06,660 Dhe në qoftë se serveri punon ose jep ju disa lloj i mesazhit të gabimit, 679 00:34:06,660 --> 00:34:09,690 ajo mund të jetë shumë mirë që dikush nuk e ka parashikuar këtë. 680 00:34:09,690 --> 00:34:15,239 Dhe pastaj ju duhet të lajmërojnë duhur Autoritetet dhe të vazhdojë më tej. 681 00:34:15,239 --> 00:34:20,843 >> Kështu që tani ju djema duhet të shpresojmë se kuptuar pak më shumë humor geek këtu. 682 00:34:20,843 --> 00:34:24,120 >> [Qeshura] 683 00:34:24,120 --> 00:34:27,571 684 00:34:27,571 --> 00:34:29,070 DAVID Malan: Ti e di që ju jeni një geek. 685 00:34:29,070 --> 00:34:30,944 Për të ardhshëm disa vjet, ju do të mbani mend 686 00:34:30,944 --> 00:34:33,520 i cili pak Tabelat Bobi është për shkak të këtij kartonave këtu. 687 00:34:33,520 --> 00:34:36,760 Pra, mbani në mend se si ne kaloni Konteksti një herë të fundit 688 00:34:36,760 --> 00:34:38,770 sot në JavaScript. 689 00:34:38,770 --> 00:34:41,600 Ne kemi shpenzuar relativisht pak Koha në sintaksë e PHP 690 00:34:41,600 --> 00:34:43,440 sepse kjo është në të vërtetë super të ngjashme me C. 691 00:34:43,440 --> 00:34:47,300 Dhe mirë të mjaftueshme, JavaScript too është super i ngjashëm me sintaksë C 692 00:34:47,300 --> 00:34:49,639 si dhe ne do të shohim në vetëm një moment dhe si ne do të 693 00:34:49,639 --> 00:34:51,205 shih më vonë këtë javë në veçanti. 694 00:34:51,205 --> 00:34:54,080 Çfarë ju mund të bëni me këtë gjuhë, megjithatë, është e gjitha më e fuqishme, 695 00:34:54,080 --> 00:34:55,790 sidomos me TV. 696 00:34:55,790 --> 00:34:56,960 >> Por së pari një turne të shpejtë. 697 00:34:56,960 --> 00:35:00,450 Pra një, në JavaScript, ka nuk ka funksion kryesor, e cila është e bukur. 698 00:35:00,450 --> 00:35:02,650 Si me PHP, ju thjesht mund të shkruani kodin. 699 00:35:02,650 --> 00:35:04,310 Kushtet duken si kjo. 700 00:35:04,310 --> 00:35:07,100 Dhe shprehjet Boolean mund duket si ky apo si kjo. 701 00:35:07,100 --> 00:35:09,530 Switches ekzistojnë, dhe ata mund të duket si kjo. 702 00:35:09,530 --> 00:35:10,970 Katër sythe të duket si ky. 703 00:35:10,970 --> 00:35:12,390 Ndërsa sythe të duket si ky. 704 00:35:12,390 --> 00:35:14,160 A nganjëherë duken si kjo. 705 00:35:14,160 --> 00:35:16,850 Dhe pastaj të vargjeve të duken si kjo, shumë e ngjashme me PHP. 706 00:35:16,850 --> 00:35:20,740 Por vini re, se në JavaScript ju të deklarojë një ndryshore jo me një dollar 707 00:35:20,740 --> 00:35:25,190 nënshkruajë, jo me një lloj të të dhënave, por fjalë për fjalë duke thënë se var per variable para tij. 708 00:35:25,190 --> 00:35:27,900 Ajo gjithashtu është e shtypur lirshëm në atë që ajo ka lloje, 709 00:35:27,900 --> 00:35:29,729 por ju nuk i deklarojnë ato në mënyrë eksplicite. 710 00:35:29,729 --> 00:35:31,520 Dhe pastaj një varg, për shkallës, mund të duket 711 00:35:31,520 --> 00:35:34,350 si kjo, kjo string duke u thirrur s në këtë rast. 712 00:35:34,350 --> 00:35:35,410 Dhe pastaj një objekt. 713 00:35:35,410 --> 00:35:37,010 Dhe këto do të shohim më shumë para se të gjatë. 714 00:35:37,010 --> 00:35:41,470 Dhe një objekt është ndoshta një nga më së shpeshti shihet struktura e të dhënave 715 00:35:41,470 --> 00:35:44,050 në JavaScript të bazuar program, sepse ai ua mundëson 716 00:35:44,050 --> 00:35:46,680 ju shok arbitrare palë kyçe vlerë të drejtë 717 00:35:46,680 --> 00:35:51,240 si associative vargjeve PHP dhe ashtu si vetë tryezën tuaj hash 718 00:35:51,240 --> 00:35:54,042 ose provoni si ne zbatuar disa javë prapa. 719 00:35:54,042 --> 00:35:56,250 Pra, le të shohim se çfarë në të vërtetë ne mund të bëjë me JavaScript. 720 00:35:56,250 --> 00:35:59,410 Dhe në veçanti, kjo është një listë e karakteristika 721 00:35:59,410 --> 00:36:02,300 se shfletues kanë që të na lejojë të lidh JavaScript 722 00:36:02,300 --> 00:36:05,470 në një faqe interneti në mënyrën e mëposhtme. 723 00:36:05,470 --> 00:36:09,340 JavaScript është përdorur shpesh si një klienti side gjuhë e shkruar. 724 00:36:09,340 --> 00:36:10,130 Kjo nuk është hartuar. 725 00:36:10,130 --> 00:36:11,370 Ajo gjithashtu është interpretuar. 726 00:36:11,370 --> 00:36:15,740 Por ndryshe nga PHP, i cili ka qenë duke në server, në faqen e serverit, 727 00:36:15,740 --> 00:36:18,220 ose brenda thellë të klientët, JavaScript 728 00:36:18,220 --> 00:36:22,190 është i ndryshëm në atë të zakonisht shkon në shfletuesin. 729 00:36:22,190 --> 00:36:26,060 >> Pra, çdo kodi JavaScript që të filloni me shkrim për PSet 8, apo projektin tuaj përfundimtar, 730 00:36:26,060 --> 00:36:29,890 ose në botën e vërtetë në përgjithësi është duke shkuar për të ruajtur në server, absolutisht 731 00:36:29,890 --> 00:36:33,110 në një dot HTML ose dot JS për JavaScript skedar. 732 00:36:33,110 --> 00:36:35,770 Por shfletuesi po shkon për ta shkarkuar atë JavaScript 733 00:36:35,770 --> 00:36:39,530 Kodi për shembull tuaj të Chrome, ose IE apo Firefox, ose çfarëdo. 734 00:36:39,530 --> 00:36:43,870 Dhe kodi është në të vërtetë do të merrni ekzekutuar brenda vetë shfletuesit tuaj. 735 00:36:43,870 --> 00:36:46,560 Vetëm për të bërë këtë më të vërtetë, le të shohim këtë në formë konkrete. 736 00:36:46,560 --> 00:36:50,120 >> Ne nuk kemi asnjë ide se çfarë e bën këtë kod pa të vërtetë lexuar nëpërmjet saj. 737 00:36:50,120 --> 00:36:52,670 Por më lejoni të shkoj në Facebook.com pa logging in. 738 00:36:52,670 --> 00:37:00,440 Më lejoni të shkoj për inspektimin e Elementit dhe të shkojnë në, le të themi, Rrjetit dhe ringarkoni faqe. 739 00:37:00,440 --> 00:37:04,150 Dhe ne do të see-- lejoni ndryshim Rifresko këtë Page për të marrë të gjitha kërkesat për të reja. 740 00:37:04,150 --> 00:37:08,850 Dhe e parë file I shoh është CSS, CSS. 741 00:37:08,850 --> 00:37:10,880 Ja parë JavaScript fotografi, dhe unë kam 742 00:37:10,880 --> 00:37:14,600 asnjë ide se çfarë kjo e bën, por këtu është një i kodit JavaScript 743 00:37:14,600 --> 00:37:16,180 që drejton Facebook. 744 00:37:16,180 --> 00:37:18,400 Kjo nuk është edhe e vërtetë se zbuluar për të zmadhuar. 745 00:37:18,400 --> 00:37:20,260 Është ende po aq absurd. 746 00:37:20,260 --> 00:37:24,341 >> Por ju do të shihni edhe më poshtë më poshtë, nuk ka edhe më shumë nga këto fotografi JavaScript. 747 00:37:24,341 --> 00:37:24,840 Uh. 748 00:37:24,840 --> 00:37:25,440 Kjo është një ping. 749 00:37:25,440 --> 00:37:28,550 Le të zbresim pak më tej, më tej, më tej. 750 00:37:28,550 --> 00:37:29,894 Ka një. 751 00:37:29,894 --> 00:37:31,238 Ka një. 752 00:37:31,238 --> 00:37:31,880 Ka një. 753 00:37:31,880 --> 00:37:35,820 >> Pra, edhe pse Facebook, prapa skena, është shkruar në pjesën në PHP 754 00:37:35,820 --> 00:37:39,100 dhe versionin e saj Facebook, ka një sasi të madhe të JavaScript. 755 00:37:39,100 --> 00:37:41,330 Në të vërtetë, ndonjë prej biseduar ju bëni në Facebook, 756 00:37:41,330 --> 00:37:45,520 ndonjë nga të rejat inline Timeline që ndodh në kohë reale, të gjithë që 757 00:37:45,520 --> 00:37:47,944 është nxitur nga JavaScript. 758 00:37:47,944 --> 00:37:48,444 Vërtet? 759 00:37:48,444 --> 00:37:50,235 >> AUDIENCA: Unë nuk jam i sigurt nëse kjo është e Facebook, 760 00:37:50,235 --> 00:37:53,624 por kam menduar se Facebook zhvilluar vet në shtëpi gjuhën e tyre code? 761 00:37:53,624 --> 00:37:54,540 DAVID Malan: ata vepruan. 762 00:37:54,540 --> 00:37:58,110 Pra, kjo është arsyeja pse unë them një grindje të PHP quajtur Hip Hop se ata në fakt 763 00:37:58,110 --> 00:38:03,440 të shtuara të tillë që kur Mark parë zbatuar Facebook, 764 00:38:03,440 --> 00:38:04,710 ajo është shkruar në PHP. 765 00:38:04,710 --> 00:38:07,370 Dhe kjo lloj i ka mbetur lloj i gjuhës fund para 766 00:38:07,370 --> 00:38:09,030 që ata përdorin për shumë e kodimit të tyre, por ajo 767 00:38:09,030 --> 00:38:11,870 nuk ka qenë një gjuhë që është e peshore veçanërisht mirë në miliarda 768 00:38:11,870 --> 00:38:12,630 e njerëzve. 769 00:38:12,630 --> 00:38:15,300 Dhe kështu ata kanë shtuar tyre Përmirësimet prapa skenave. 770 00:38:15,300 --> 00:38:17,049 Dhe ata përdorin çdo numër e gjuhëve të tjera 771 00:38:17,049 --> 00:38:19,170 për pjesë të ndryshme të infrastruktura e tyre. 772 00:38:19,170 --> 00:38:24,080 Pra, po, kjo është një grindje e atë që ne tani e di si PHP. 773 00:38:24,080 --> 00:38:26,610 >> Pra, le të marrin një vështrim në një çift të shembujve 774 00:38:26,610 --> 00:38:28,890 se si ne mund të përdorim JavaScript këtu. 775 00:38:28,890 --> 00:38:32,530 Në kodin e sotme burim, ne kemi një bandë e dosjeve, i pari i cili, 776 00:38:32,530 --> 00:38:34,090 le të quajtur DOM zero. 777 00:38:34,090 --> 00:38:36,770 Pra DOM zero duket si në vijim. 778 00:38:36,770 --> 00:38:40,730 Më lejoni të shkoj në këtë directory dhe e hapur deri domzero.html, 779 00:38:40,730 --> 00:38:44,970 top i cili ka një lloj doc Deklarata, duke thënë se këtu vjen HTML 5. 780 00:38:44,970 --> 00:38:46,440 Dhe tani këtu është një tag HTML. 781 00:38:46,440 --> 00:38:47,540 Këtu është tag kokë. 782 00:38:47,540 --> 00:38:49,210 Dhe këtu është ajo që është e re sot. 783 00:38:49,210 --> 00:38:52,620 >> Ne tani kemi një tag script brenda kokës të faqes. 784 00:38:52,620 --> 00:38:55,290 Dhe kjo me sa duket nuk shumë pak, por njoftim 785 00:38:55,290 --> 00:38:58,410 që unë e kam përkufizuar a script, a JavaScript. 786 00:38:58,410 --> 00:39:01,050 Dhe, si një mënjanë, pasi kjo është një keqkuptim të përbashkët, 787 00:39:01,050 --> 00:39:05,220 JavaScript ka absolutisht asgjë të bëjë me Java, gjuhën 788 00:39:05,220 --> 00:39:08,010 se disa prej jush mund kanë mësuar në autoblindave. 789 00:39:08,010 --> 00:39:10,480 Kjo ishte më shumë një marketing Gjë shumë se çdo gjë, 790 00:39:10,480 --> 00:39:12,980 hipur coattails e viteve Java më parë. 791 00:39:12,980 --> 00:39:17,300 Por JavaScript, nuk ka të bëjë me Java, vetëm në mënyrë të ngjashme, dhe annoyingly, 792 00:39:17,300 --> 00:39:18,480 quajtur çudi. 793 00:39:18,480 --> 00:39:21,890 >> Pra, këtu është se si ju të deklarojë një funksion në JavaScript, thonë fjalë për fjalë funksion, 794 00:39:21,890 --> 00:39:24,556 atëherë emri i funksionit, atëherë çdo Argumentet që mund të marrë, 795 00:39:24,556 --> 00:39:25,530 ashtu si në PHP. 796 00:39:25,530 --> 00:39:28,990 Rezulton se në JavaScript, një nga më të Funksionet bezdisshëm që ekzistojnë është Alert. 797 00:39:28,990 --> 00:39:31,392 Kjo është një dritare e vogël që do të hapet dhe të paralajmërojë ju 798 00:39:31,392 --> 00:39:32,600 në disa pjesë të informacionit. 799 00:39:32,600 --> 00:39:33,766 Kjo është frowned zakonisht pas. 800 00:39:33,766 --> 00:39:35,980 Por ne do të përdorin atë si tonë ushtrim të parë këtu. 801 00:39:35,980 --> 00:39:37,900 >> Vini re disa karakteristika të JavaScript. 802 00:39:37,900 --> 00:39:41,524 Kuotat e vetme dhe citate të dyfishtë në të vërtetë nuk ka rëndësi më. 803 00:39:41,524 --> 00:39:43,690 Kuotat e vetme dhe të dyfishtë Kuotat mund të jetë interchanged, 804 00:39:43,690 --> 00:39:46,220 ndërsa në C, ju duhet të përdorni Kuotat e dyfishtë për vargjet, 805 00:39:46,220 --> 00:39:48,150 dhe ju keni dy të vetme kuotat për gërma. 806 00:39:48,150 --> 00:39:51,150 Në botën e JavaScript, shumë njerëz, shumica e njerëzve 807 00:39:51,150 --> 00:39:54,970 përdorni thonjëza të vetme rreth strings vetëm për shkak se ajo është një gjë e stilistik. 808 00:39:54,970 --> 00:39:58,330 Por ajo që është operatori plus këtu, të cilat ne nuk e kemi parë më parë? 809 00:39:58,330 --> 00:39:59,836 >> AUDIENCA: varg. 810 00:39:59,836 --> 00:40:00,960 DAVID Malan: varg. 811 00:40:00,960 --> 00:40:02,450 Pra, C nuk ka as këtë. 812 00:40:02,450 --> 00:40:04,820 PHP ka dot operatori, i cili e bën këtë. 813 00:40:04,820 --> 00:40:09,710 JavaScript është e operatorit plus, e cila për çudi është vetëm si Java. 814 00:40:09,710 --> 00:40:11,440 Tani çfarë po ndodh këtu? 815 00:40:11,440 --> 00:40:14,260 >> Kështu që këtu është ku një bazë të kuptuarit e asaj foto 816 00:40:14,260 --> 00:40:17,010 ne hodhi një çift ditë më parë vjen në lojë. 817 00:40:17,010 --> 00:40:19,620 Mos harroni, kur kemi pasur një të thjeshtë version i një HTML page-- 818 00:40:19,620 --> 00:40:20,830 ajo vetëm tha, hello world. 819 00:40:20,830 --> 00:40:22,770 Dhe pastaj ne tërhoqi një pemë në të djathtë, e cila 820 00:40:22,770 --> 00:40:27,320 kishte një bandë e rectangles dhe të linjave lidhjen e tyre si një pemë familjare. 821 00:40:27,320 --> 00:40:30,820 Pra, kjo është ashtu-quajtur DOM ose Model Document Object. 822 00:40:30,820 --> 00:40:36,759 Dhe kjo rezulton se ju mund të hyni rectangles në këtë pemë me sintaksë 823 00:40:36,759 --> 00:40:37,550 si në vijim. 824 00:40:37,550 --> 00:40:41,370 Ju fjalë për fjalë thoni dokument, i cili është një variabël të veçantë globale në JavaScript 825 00:40:41,370 --> 00:40:45,890 program që ka një funksion lidhur me atë që ju mund të hyni 826 00:40:45,890 --> 00:40:50,280 të ngjashme me një struct, por ju thjesht thonë dot dhe pastaj emrin e funksionit të, 827 00:40:50,280 --> 00:40:52,390 merrni element me ID. 828 00:40:52,390 --> 00:40:55,460 >> Elementi unë dua të merrni është duket citoj emrin siç janë quajtur. 829 00:40:55,460 --> 00:40:57,150 Dhe atëherë unë dua të të marrë vlerën e saj. 830 00:40:57,150 --> 00:40:58,330 Tani ne jemi duke marrë përpara veten. 831 00:40:58,330 --> 00:41:00,038 Unë nuk jam edhe i sigurt se çfarë e gjithë kjo është rreth. 832 00:41:00,038 --> 00:41:03,000 Përpara të shpejtë Le të HTML për faqja, e cila është super e thjeshtë. 833 00:41:03,000 --> 00:41:05,370 >> Vini re se unë e kam përkufizuar një formë këtu poshtë. 834 00:41:05,370 --> 00:41:07,940 Njoftim i kam dhënë atë një të veçantë ID, edhe pse ne nuk e kemi përdorur 835 00:41:07,940 --> 00:41:08,870 ky atribut para. 836 00:41:08,870 --> 00:41:11,300 Por kjo ekziston në HTML. 837 00:41:11,300 --> 00:41:15,570 Ju mund të identifikojë në mënyrë unike një copë i HTML me një identifikues si kjo. 838 00:41:15,570 --> 00:41:19,880 >> Njoftim tani this-- del HTML mbështet, per atë listë lavanderi 839 00:41:19,880 --> 00:41:22,490 një moment më parë, një i tërë bandë e handlers ngjarje. 840 00:41:22,490 --> 00:41:25,060 Dhe kjo mbajtës ngjarje thotë të paraqesë. 841 00:41:25,060 --> 00:41:28,730 Në dorëzimin e përdoruesit të kësaj formë, telefononi kodin e mëposhtëm. 842 00:41:28,730 --> 00:41:31,360 Dhe kodi që do që do të quhet ose të ekzekutohet 843 00:41:31,360 --> 00:41:35,260 është pikërisht kjo, greke Funksioni i ndjekur nga FALSE kthimit. 844 00:41:35,260 --> 00:41:37,360 Çdo gjë tjetër duhet të jetë goxha i njohur. 845 00:41:37,360 --> 00:41:42,050 >> Këtu është një input i tekstit tipit, të cilit ID, në këtë rast, do të jetë emri. 846 00:41:42,050 --> 00:41:45,430 Ne nuk kemi një atribut aktuale e emrit kjo time-- dhe një buton të paraqesë. 847 00:41:45,430 --> 00:41:48,330 Pra faqja rezulton duket si kjo. 848 00:41:48,330 --> 00:41:52,890 Dhe sjellja rezulton, ju do të shihni, duket si kjo. 849 00:41:52,890 --> 00:41:56,940 Faqja Ajo pret lokale thotë, përshëndetje David, vështirë se një aesthetically i kënaqshëm 850 00:41:56,940 --> 00:41:58,340 mënyrë për të përshëndetur një përdorues. 851 00:41:58,340 --> 00:41:59,950 Por çfarë është në të vërtetë ndodh? 852 00:41:59,950 --> 00:42:01,360 >> E pra, e konsiderojnë se çfarë është kjo. 853 00:42:01,360 --> 00:42:02,310 Kjo është një fushë teksti. 854 00:42:02,310 --> 00:42:04,635 Dhe sipas HTML këtu, unë kam dhënë atë 855 00:42:04,635 --> 00:42:07,350 një identifikues unik quajtur quote emrin mbyll thonjëzat. 856 00:42:07,350 --> 00:42:09,770 Ndërkohë, unë e kam thënë kur përdoruesi paraqet këtë formular 857 00:42:09,770 --> 00:42:13,820 duke goditur Enter ose duke klikuar Paraqes button, telefononi funksion të quajtur fala 858 00:42:13,820 --> 00:42:15,410 dhe pastaj të kthehen False. 859 00:42:15,410 --> 00:42:16,870 Le të konsiderojmë ato në të kundërt. 860 00:42:16,870 --> 00:42:20,590 Njoftim kur unë klikoni Submit, URL e kësaj faqeje nuk ndryshon. 861 00:42:20,590 --> 00:42:22,420 Icon e shfletuesit nuk fillojnë tjerrje. 862 00:42:22,420 --> 00:42:27,050 Unë nuk shkoj kudo, dhe kjo është fjalë për fjalë, sepse kam thënë kthehen False. 863 00:42:27,050 --> 00:42:31,534 Kthimi qarqeve False shkurtra ose ndalesa sjellja e parazgjedhur e një forme. 864 00:42:31,534 --> 00:42:33,700 Kështu që atëherë na lë me kjo pyetje e fundit. 865 00:42:33,700 --> 00:42:34,764 Çfarë do të bëni të fala? 866 00:42:34,764 --> 00:42:36,680 E pra, me sa duket fala e quan një funksion të quajtur 867 00:42:36,680 --> 00:42:39,250 Alert, kalon në një Argumenti gjatë që është 868 00:42:39,250 --> 00:42:43,950 rezultat i concatenating bashku a bandë e nënvargjet, përshëndetje hapësirë ​​presje, 869 00:42:43,950 --> 00:42:45,810 atëherë çdo gjë që kjo të kthehet. 870 00:42:45,810 --> 00:42:51,490 Pra, dokumenti është si një globale ndryshueshme për këtë rrënjën e kësaj peme, 871 00:42:51,490 --> 00:42:55,560 duke e quajtur një funksion të veçantë, përndryshe i njohur tani si një metodë. 872 00:42:55,560 --> 00:42:57,650 Një funksion që është brenda një variabël është 873 00:42:57,650 --> 00:42:59,640 quajtur një metodë në vend të një funksion. 874 00:42:59,640 --> 00:43:01,570 >> Pra merrni element me ID. 875 00:43:01,570 --> 00:43:03,940 Çfarë element bëni ju doni të merrni me ID i saj? 876 00:43:03,940 --> 00:43:06,970 Citoj emrin siç janë quajtur dhe pastaj në mënyrë të veçantë vlerësojmë. 877 00:43:06,970 --> 00:43:12,000 Pra, me fjalë të tjera, se kodi i thjesht gjen fushën e tekstit ID cilit është emri 878 00:43:12,000 --> 00:43:13,380 dhe pastaj të merr vlerën e saj. 879 00:43:13,380 --> 00:43:16,460 Pra, nëse unë do ta ndryshojë këtë dhe thonë se Davin në vend të Davidit, 880 00:43:16,460 --> 00:43:20,670 dhe kliko Submit, tani ne kanë një përshëndetje për Davin. 881 00:43:20,670 --> 00:43:22,890 >> Të gjithë të drejtë, kështu që të gjithë mirë dhe të mirë. 882 00:43:22,890 --> 00:43:25,480 Por le të shohim nëse ne mund të bëjë kjo pak të pastër që vetëm 883 00:43:25,480 --> 00:43:28,190 shkruar kodin si kjo është e në përgjithësi do të jetë frowned. 884 00:43:28,190 --> 00:43:30,060 Kjo do të duket e frikshme. 885 00:43:30,060 --> 00:43:32,330 Por ajo që është parë Dallimi që ju të vini re këtu 886 00:43:32,330 --> 00:43:35,970 në këtë version përveç emrin ndryshuar për DOM një? 887 00:43:35,970 --> 00:43:41,110 Çfarë strukturore duket ndryshe në lidhje me këtë kundrejt tjetrit? 888 00:43:41,110 --> 00:43:41,932 Vërtet? 889 00:43:41,932 --> 00:43:43,890 AUDIENCA: A është forma më krye të shkrimit tani? 890 00:43:43,890 --> 00:43:46,570 DAVID Malan: Yeah, forma është në krye i shkrimit për disa arsye të çuditshme. 891 00:43:46,570 --> 00:43:48,736 Pra, kjo është gjëja e parë që hedhje jashtë në mua, too. 892 00:43:48,736 --> 00:43:50,990 Dhe fatmirësisht së paku, kjo pjesë është identike. 893 00:43:50,990 --> 00:43:53,470 Pra, e vetmja gjë që duket të jetë i ndryshëm është kjo. 894 00:43:53,470 --> 00:43:55,296 >> Kështu që këtu është ajo që është i zoti rreth JavaScript 2. 895 00:43:55,296 --> 00:43:57,420 Dhe kjo e bën të vështirë për të kuptuar në shikim të parë, 896 00:43:57,420 --> 00:44:00,670 sidomos për projektet përfundimtare nëse ju jeni duke kërkuar në kodin mostër online, 897 00:44:00,670 --> 00:44:04,200 por ai vlon poshtë për disa Karakteristika themelore sintaksore. 898 00:44:04,200 --> 00:44:06,230 Këtu përsëri është se Dokumenti globale variabel. 899 00:44:06,230 --> 00:44:09,540 Këtu përsëri është se metoda ose funksioni që thotë se të merrni element me ID. 900 00:44:09,540 --> 00:44:11,570 Këtë herë unë dua të merrni ID quajtur demo. 901 00:44:11,570 --> 00:44:12,490 Ku është ajo? 902 00:44:12,490 --> 00:44:15,400 Kjo është me sa duket e drejtë Këtu, forma vetë. 903 00:44:15,400 --> 00:44:20,010 >> Dhe tani vini re se në qoftë se unë me sa duket marrë përsëri atë nyjë nga pema që 904 00:44:20,010 --> 00:44:22,940 përfaqëson formën në vetvete, nuk është një fushë teksti, 905 00:44:22,940 --> 00:44:26,970 Ajo rezulton se formë, që nyje ose drejtkëndësh nga pema, 906 00:44:26,970 --> 00:44:30,450 ka atë që ne do të thërrasë një pronë, shumë, shumë, shumë të ngjashme 907 00:44:30,450 --> 00:44:35,390 në shpirt në një strukturë në C. Kjo është vetëm një anëtar të dhënave brenda këtij drejtkëndësh. 908 00:44:35,390 --> 00:44:38,300 >> Kështu që unë kam marrë formën këtu, dhe unë jam bashkëngjitur, 909 00:44:38,300 --> 00:44:44,650 ose unë jam caktuar, për On saj Submit mbajtës ose më On Paraqes pronën 910 00:44:44,650 --> 00:44:45,740 funksioni vijim. 911 00:44:45,740 --> 00:44:49,000 Dhe kjo është, deri tani, craziest gjë deri tani sintaksore. 912 00:44:49,000 --> 00:44:53,610 Ajo rezulton se në JavaScript dhe në PHP, dhe sinqerisht për këtë çështje në C, 913 00:44:53,610 --> 00:44:58,990 edhe pse ne nuk e bëjmë atë, ju mund të shtoni paemër, anonim, apo aka lambda 914 00:44:58,990 --> 00:45:03,000 funksione që nuk kanë një emër por mund të quhet ende. 915 00:45:03,000 --> 00:45:07,050 >> Pra, ajo që unë jam duke bërë këtu unë jam caktuar ky Më Submit pronën, e cila 916 00:45:07,050 --> 00:45:14,330 është brenda kësaj nyje të pemës sime DOM, një Funksioni, akrep funksioni nëse ju do. 917 00:45:14,330 --> 00:45:16,310 Ky funksion nuk ka emrin, por që nuk ka 918 00:45:16,310 --> 00:45:19,110 rëndësi, sepse ne do të shohim në një moment se si ta quaj atë. 919 00:45:19,110 --> 00:45:21,780 Kur ky funksion quhet, ky kod merr ekzekutuar, atëherë 920 00:45:21,780 --> 00:45:24,210 rreme është kthyer ashtu si më parë. 921 00:45:24,210 --> 00:45:25,800 >> Por vini re atë që unë kam bërë. 922 00:45:25,800 --> 00:45:27,830 Në këtë pikë, në histori, unë kam një formë. 923 00:45:27,830 --> 00:45:30,190 Ajo mori një ID unike të quajtur demo. 924 00:45:30,190 --> 00:45:33,740 Këtu poshtë, unë kam një tag script që ekzekuton kodin e mëposhtëm. 925 00:45:33,740 --> 00:45:37,720 Ajo i jep atij nyje në pema për të është On Paraqes 926 00:45:37,720 --> 00:45:40,260 prona ky funksion këtu. 927 00:45:40,260 --> 00:45:44,310 Dhe vetëm nga natyra se si punojnë shfletues, kur unë tani kliko Submit ose hit Enter, 928 00:45:44,310 --> 00:45:45,889 se funksioni do të marrë quajtur. 929 00:45:45,889 --> 00:45:48,680 Ajo nuk ka nevojë për një emër, sepse kush dreq kujdeset se çfarë është quajtur. 930 00:45:48,680 --> 00:45:52,540 E vetmja kohë ajo ndonjëherë do të merrni quajtur është kur unë të paraqesë formularin. 931 00:45:52,540 --> 00:45:55,130 Nuk ka nevojë për mua, zhvilluesi i njeriut, 932 00:45:55,130 --> 00:45:57,330 që në fakt e quajnë atë kudo tjetër. 933 00:45:57,330 --> 00:46:00,720 >> Tani vetëm si një ngacmues, sikur që nuk ishin mendje bending të mjaftueshme, 934 00:46:00,720 --> 00:46:03,330 ne mund edhe të bëjë këtë duken më të fshehtë duke përdorur 935 00:46:03,330 --> 00:46:05,850 një bibliotekë super popullore quhet jQuery. 936 00:46:05,850 --> 00:46:08,760 Në fakt jQuery dhe JavaScript po ngatërrohet shpesh. 937 00:46:08,760 --> 00:46:12,790 Dhe ajo që ne do të bëjmë të mërkurën është fillimi duke përdorur këtë gjuhë dhe këto biblioteka 938 00:46:12,790 --> 00:46:16,030 për të ndërtuar gjithnjë asinkrone dhe aplikacionet dinamike 939 00:46:16,030 --> 00:46:18,950 si hartë marrë aplikimet, aplikimet 940 00:46:18,950 --> 00:46:22,360 që update faqen në të vërtetë kohë, ashtu si Facebook apo Gchat 941 00:46:22,360 --> 00:46:27,130 bëni, dhe të kufizojë nuk veten për Goditur Submit nga get ose vetëm posti 942 00:46:27,130 --> 00:46:27,630 vetëm. 943 00:46:27,630 --> 00:46:29,055 Kështu që unë do t'ju shoh të mërkurën. 944 00:46:29,055 --> 00:46:31,805 945 00:46:31,805 --> 00:46:35,550 >> [MUSIC Playing] 946 00:46:35,550 --> 00:48:09,728