1 00:00:00,000 --> 00:00:01,940 >> [CHWARAE CERDDORIAETH] 2 00:00:01,940 --> 00:00:11,130 3 00:00:11,130 --> 00:00:14,620 >> DAVID Malan: Dyma CS 50, a mae hyn yn ddechrau wythnos naw. 4 00:00:14,620 --> 00:00:18,240 A beth rydym yn meddwl y bydden ni'n ei wneud heddiw Nid yw Dim ond cau'r bennod ar yr wythnos ddiwethaf 5 00:00:18,240 --> 00:00:22,670 deunydd lle rydym yn canolbwyntio ar y gweinydd rhaglennu ar y we ochr gyda PHP a SQL, 6 00:00:22,670 --> 00:00:23,549 rhai pethau cronfa ddata. 7 00:00:23,549 --> 00:00:25,590 Byddwn yn siarad am ychydig o diogelwch heddiw ac yna 8 00:00:25,590 --> 00:00:29,590 newid i rhaglennu ochr y cleient iaith a elwir yn JavaScript. 9 00:00:29,590 --> 00:00:31,330 Ond yn gyntaf, mae rhai prynedigaeth. 10 00:00:31,330 --> 00:00:35,030 >> Efallai y cofiwch fod ar Dydd Mercher, yr wyf yn gosod allan 11 00:00:35,030 --> 00:00:37,550 i ysgrifennu gwefan sy'n Cymerodd yn fewnbwn defnyddiwr 12 00:00:37,550 --> 00:00:41,120 gan HTML ffurflen hynny wedyn yn cael ei storio bod enwau mewnbwn defnyddwyr, ffoniwch 13 00:00:41,120 --> 00:00:43,124 rhifau, a cellphone cludwyr yn y gronfa ddata. 14 00:00:43,124 --> 00:00:45,540 Ac yna roedd rhaid i mi ychydig o orchymyn sgript llinell a ysgrifennwyd yn PHP 15 00:00:45,540 --> 00:00:47,956 a oedd i fod i ailadrodd dros y rhesi yn y gronfa ddata 16 00:00:47,956 --> 00:00:49,400 ac yn anfon negeseuon testun. 17 00:00:49,400 --> 00:00:53,870 Er gwaethaf sawl, sawl ymgais, rydym yn nid oedd yn cael bod gweithio erbyn y diwedd. 18 00:00:53,870 --> 00:00:57,820 >> Felly treuliais yr wythnos gyfan yn gweithio ar y cod i'n cael ni heibio i'r pwynt 19 00:00:57,820 --> 00:01:01,220 lle rydym yn gadael i ffwrdd, lle caiff pob Cawn erbyn diwedd Dydd Mercher 20 00:01:01,220 --> 00:01:05,500 Roedd hyn yn neges destun o Margo fel yr wyf yn ei chael yn anodd, 21 00:01:05,500 --> 00:01:09,940 ac yna neges destun oddi wrth un arall classmate, Rydych chi wedi got David hon. 22 00:01:09,940 --> 00:01:14,030 Wedi'i ddilyn gan yr un yma, rhyfeddol galonogol. 23 00:01:14,030 --> 00:01:15,840 Cadw ar fynd, galonogol iawn. 24 00:01:15,840 --> 00:01:20,960 Rwyf bron yn got it tan then-- ac dyna yw'r nodyn rydym yn dod i ben ar ddydd Mercher. 25 00:01:20,960 --> 00:01:25,850 Ac yna mewn gwirionedd efallai fy hoff, eiliad yn ddiweddarach, daeth hyn yn. 26 00:01:25,850 --> 00:01:27,000 Damn Live Stream. 27 00:01:27,000 --> 00:01:31,080 >> Felly heddiw, rydym yn atgyweiria hon gyda cyflym edrych ar yr hyn yr wyf wedi ei wneud ers hynny. 28 00:01:31,080 --> 00:01:35,440 Felly yr holl o'r cod hwn ar gael lein o wythnos diwethaf, wyth wythnos, 29 00:01:35,440 --> 00:01:36,300 cod ffynhonnell. 30 00:01:36,300 --> 00:01:39,425 A byddwch yn gweld fy mod yn mynd drwy, ac yr wyf mewn gwirionedd yn glanhau i fyny pethau ychydig. 31 00:01:39,425 --> 00:01:42,080 Cyflwynais cwpl arall nodweddion cronfa ddata SQL. 32 00:01:42,080 --> 00:01:45,300 Er enghraifft, yn hytrach na dim ond gwneud cludwr o torgoch var 33 00:01:45,300 --> 00:01:47,310 fel y credaf fy mod yn gwneud ar y hedfan yr wythnos diwethaf. 34 00:01:47,310 --> 00:01:49,820 Rwyf yn lle hynny a ddiffinnir fel hyn a elwir yn enum. 35 00:01:49,820 --> 00:01:53,310 >> Ac efallai y bydd rhai ohonoch wedi gweld hyn wrth i ni archwilio C. enum mewn gwirionedd 36 00:01:53,310 --> 00:01:56,820 yn nodwedd o C lle y gallwch cyfrif criw cyfan o cysonion 37 00:01:56,820 --> 00:01:59,640 a benodi gwerthoedd awtomatig iddynt, fel un, dau, tri, pedwar 38 00:01:59,640 --> 00:02:01,330 heb orfod rhifau cod caled. 39 00:02:01,330 --> 00:02:04,780 Felly SQL yn cefnogi yr un fath, lle os gennych faes gronfa ddata yr ydych yn unig 40 00:02:04,780 --> 00:02:09,389 am fynd ar un o cyfyngedig gwerthoedd, gallwch llythrennol nodi ei 41 00:02:09,389 --> 00:02:13,120 fel y gwneuthum yno am bedair cludwyr cellphone Unol Daleithiau boblogaidd. 42 00:02:13,120 --> 00:02:13,819 >> Felly yr wyf yn gwneud hynny. 43 00:02:13,819 --> 00:02:16,610 Ac yr wyf yn gwneud nifer o newidiadau fel yn dda, y mwyaf pwysig o'r rhain 44 00:02:16,610 --> 00:02:20,090 oedd i gael e-bost yn gweithio gan fod galw i gof, bod y rhaglen hon yn dibynnu ar ba 45 00:02:20,090 --> 00:02:23,470 a elwir yn gyffredinol yn e-bost i Porth SMS, sydd ychydig 46 00:02:23,470 --> 00:02:27,670 ffordd ffansi o ddweud bod Verizon, ac AT & T, a Folks eraill yn cefnogi gweinydd, 47 00:02:27,670 --> 00:02:30,740 lle os yw'n derbyn e-bost, mae'n troi ei i SMS 48 00:02:30,740 --> 00:02:33,290 ac yn anfon testun neges i ffonio rhywun. 49 00:02:33,290 --> 00:02:37,010 Felly, os wyf yn gwneud hyn yn gywir, dyma yn fath newydd a gwell 50 00:02:37,010 --> 00:02:39,259 sy'n mynd i siarad â cod newydd a gwell, sy'n 51 00:02:39,259 --> 00:02:40,300 gallwch chi chwarae gyda ar-lein. 52 00:02:40,300 --> 00:02:44,140 A bydd yn gobeithio gwneud fy Canu ffôn mewn dim ond eiliad. 53 00:02:44,140 --> 00:02:47,240 >> Felly, yn gyntaf, yr wyf i'n mynd i deipio yn fy enw i. 54 00:02:47,240 --> 00:02:51,400 Yn ail, nid wyf ddim yn mynd i wneud hyn y tro hwn. 55 00:02:51,400 --> 00:02:53,920 Rydw i'n mynd i ddim Archwilio Elfen. 56 00:02:53,920 --> 00:02:56,710 Ac mae hyn yn unig yw ychydig o beth felly nid wyf yn ei wneud 57 00:02:56,710 --> 00:02:59,250 creu oriau o ôl-gynhyrchu yn gweithio fel y gwneuthum y tro diwethaf. 58 00:02:59,250 --> 00:03:02,300 Mae yn awr yw fy rhif ffôn. 59 00:03:02,300 --> 00:03:03,560 >> 'N annhymerus' dewiswch Verizon. 60 00:03:03,560 --> 00:03:10,260 Ac yma, gadewch i ni droi ar y meicroffon hwn yma, ac yn nod hyn yn fy ffôn yma. 61 00:03:10,260 --> 00:03:13,130 Rydw i'n mynd i glicio Cofrestru, a ddylai, gobeithio, 62 00:03:13,130 --> 00:03:14,530 ei roi i mewn i'r gronfa ddata. 63 00:03:14,530 --> 00:03:16,780 Nawr dw i'n mynd i fynd i'r rhaglen llinell gorchymyn, a oedd yn 64 00:03:16,780 --> 00:03:20,825 galw i gof a elwir yn dot slaes testun, ac yn croesi eich bysedd. 65 00:03:20,825 --> 00:03:24,092 66 00:03:24,092 --> 00:03:26,527 Yma rydym yn mynd. 67 00:03:26,527 --> 00:03:27,501 >> [Dings FFÔN] 68 00:03:27,501 --> 00:03:28,962 >> [Cymeradwyaeth] 69 00:03:28,962 --> 00:03:31,815 70 00:03:31,815 --> 00:03:34,940 DAVID Malan: Felly, yn fwy o hwyl nag this-- mae'n hwyl, wrth gwrs, os byddaf yn mynd i mewn iddo. 71 00:03:34,940 --> 00:03:38,004 Ond mae'n fwy o hwyl, yr wyf yn meddwl, os ydym creu un o'r eiliadau movie rheini 72 00:03:38,004 --> 00:03:40,420 lle fel rhywbeth gwirioneddol drwg wedi digwydd yn y byd, 73 00:03:40,420 --> 00:03:42,860 ac fel yr holl NSA bobl cellphones yn dechrau gwneud sain 74 00:03:42,860 --> 00:03:44,860 gyda negeseuon testun eu rhybuddio y ffaith hon. 75 00:03:44,860 --> 00:03:47,026 Felly, yr wyf yn meddwl y byddem yn ceisio i ail-greu'r un peth yma, 76 00:03:47,026 --> 00:03:49,610 lle peidio â defnyddio cronfa ddata, Rwyf yn lle o flaen llaw 77 00:03:49,610 --> 00:03:51,490 Ysgrifennodd rhaglen sy'n edrych fel hyn. 78 00:03:51,490 --> 00:03:53,660 >> Mae hwn yn index.php-- ac yr wyf yn rhoi y cod hwn ar-lein 79 00:03:53,660 --> 00:03:56,710 gan well-- sydd yn ôl pob golwg jyst renders form.php, 80 00:03:56,710 --> 00:04:00,990 gan ddefnyddio patrwm arddull MVC yr ydym siarad am yn fanylach yn set problem 81 00:04:00,990 --> 00:04:01,650 saith. 82 00:04:01,650 --> 00:04:02,910 Y ffurflen honno yn eithaf syml. 83 00:04:02,910 --> 00:04:06,634 Mae'n mynd i gyflwyno i ffeil o'r enw here.php drwy'r post. 84 00:04:06,634 --> 00:04:09,300 Ac mae'n debyg yn mynd i ofyn am enw, a rhif ffôn, 85 00:04:09,300 --> 00:04:11,400 ac yna ar hyd yr hyn a elwir yn Dewiswch ddewislen, 'i' 86 00:04:11,400 --> 00:04:14,250 mynd i roi i chi o leiaf bedair cludwyr cellphone Unol Daleithiau boblogaidd, 87 00:04:14,250 --> 00:04:17,470 ac wedyn yn eich galluogi i effeithiol cymryd presenoldeb drwy glicio yma. 88 00:04:17,470 --> 00:04:20,471 >> Ac yma, yn y cyfamser, yn mynd i benthyg rhai o'r cod o dro diwethaf. 89 00:04:20,471 --> 00:04:22,553 Ac os ydych yn unig sgimio hyn, byddwch yn gweld bod yna 90 00:04:22,553 --> 00:04:23,900 criw cyfan o wirio gwall. 91 00:04:23,900 --> 00:04:26,640 Ond mae'r harddwch ar y diwedd yw bod nid ydym yn ysgrifennu at gronfa ddata heddiw. 92 00:04:26,640 --> 00:04:29,130 Rydym yn cadw pethau'n syml ac dim ond anfon allan, gobeithio, 93 00:04:29,130 --> 00:04:32,190 neges destun drwy swyddogaeth I Ysgrifennodd dros y dyddiau diwethaf alwad 94 00:04:32,190 --> 00:04:36,270 Testun, sydd yn Swyddogaethau. php, sydd ar gael unwaith eto ar-lein. 95 00:04:36,270 --> 00:04:38,210 >> Felly os hoffech chi gymryd rhan yn hyn. 96 00:04:38,210 --> 00:04:40,190 Nid ydym yn mynd i gael ei storio unrhyw beth. 97 00:04:40,190 --> 00:04:43,809 Ewch i URL hwn yma mewn amser real. 98 00:04:43,809 --> 00:04:46,850 Peidiwch â chyflwyno 'i jyst eto, ond gadewch i ni weld a oes modd i ni gael un o'r rhain ffilm 99 00:04:46,850 --> 00:04:49,830 eiliadau lle mae cellphone pawb yn dechrau gwneud sain, gobeithio, yn unig 100 00:04:49,830 --> 00:04:53,580 unwaith y bydd y flwyddyn hon yn wahanol yn 2011 lle mae hyn yn mynd horribly o chwith. 101 00:04:53,580 --> 00:04:58,910 Ac unwaith y byddwch yn mynd i'r cyfeiriad hwnnw, dylech weld ffurflen super syml 102 00:04:58,910 --> 00:05:03,884 os oes gennych enw, ffôn cell rif, a'r cludwr cellphone sy'n 103 00:05:03,884 --> 00:05:06,175 yn cyfateb i'r rhestr yno, ewch ei flaen a llenwch y ffurflen. 104 00:05:06,175 --> 00:05:07,880 Ond nid ydynt yn taro cyflwyno eto. 105 00:05:07,880 --> 00:05:10,850 >> Mae'r ffurflen yn mynd i edrych fel hyn. 106 00:05:10,850 --> 00:05:13,660 Mynd yn ei flaen ac yn deipio i mewn eich enw, rhif ffôn. 107 00:05:13,660 --> 00:05:17,670 OOP, bydd rhywun yn mynd ar flaen y gad. 108 00:05:17,670 --> 00:05:18,170 Mae'n iawn. 109 00:05:18,170 --> 00:05:19,340 OK, mae pawb wedi llenwi y ffurflen. 110 00:05:19,340 --> 00:05:21,400 Dylai hyn weithio ar ffôn, hefyd, os ydych yn dymuno. 111 00:05:21,400 --> 00:05:23,695 Mae pob hawl, ar eich marciau, barod, ewch. 112 00:05:23,695 --> 00:05:24,195 Hit Yma. 113 00:05:24,195 --> 00:05:27,275 114 00:05:27,275 --> 00:05:27,775 Beth? 115 00:05:27,775 --> 00:05:31,140 116 00:05:31,140 --> 00:05:31,640 Rhif 117 00:05:31,640 --> 00:05:34,410 118 00:05:34,410 --> 00:05:40,250 Tyngaf i Dduw, yr wyf yn profi hyn heddiw sawl gwaith. 119 00:05:40,250 --> 00:05:41,720 Rydych wedi cael ei? 120 00:05:41,720 --> 00:05:43,145 >> [LLEISIAU gosod eu hunain] 121 00:05:43,145 --> 00:05:46,470 122 00:05:46,470 --> 00:05:49,560 >> DAVID Malan: OK, gwall defnyddiwr efallai. 123 00:05:49,560 --> 00:05:50,550 Dyna dau. 124 00:05:50,550 --> 00:05:53,300 Fe weithiodd am ddwy allan o ychydig gannoedd, tri, pedwar. 125 00:05:53,300 --> 00:05:55,940 OK, sy'n dda. 126 00:05:55,940 --> 00:05:58,520 Mae pedwar allan o bump ar gyfer cywirdeb beth am. 127 00:05:58,520 --> 00:05:59,810 >> Felly, beth yn union ddigwyddodd? 128 00:05:59,810 --> 00:06:02,727 Felly, yn ôl pob tebyg, heb weld eich sgriniau, pam y gallai fod wedi errored? 129 00:06:02,727 --> 00:06:05,518 Mae'n debyg ein bod yn unig ceisio gwneud gormod o gysylltiadau 130 00:06:05,518 --> 00:06:08,110 i gweinydd post Harvard i gyd yn unwaith o'r un cyfeiriad IP. 131 00:06:08,110 --> 00:06:10,740 Im 'jyst yn dyfalu gan na wnes i yn cael y moethus o brofion 132 00:06:10,740 --> 00:06:13,220 cod hwn gyda rhai 300 o bobl o flaen llaw 133 00:06:13,220 --> 00:06:16,040 ond am nawr yn deall mai y dylai o leiaf 134 00:06:16,040 --> 00:06:18,250 wedi gotten y swydd ei wneud y tro hwn. 135 00:06:18,250 --> 00:06:22,880 >> Mae pob hawl, felly pam mae hyn i gyd yn y mwy germane i beth sy'n mynd ymlaen? 136 00:06:22,880 --> 00:06:24,900 Wel yn gyntaf, a cyflym cwpl o gyhoeddiadau. 137 00:06:24,900 --> 00:06:29,350 Felly un, os hoffech ymuno â Chang, a Nick, ac eraill yn y cinio dydd Gwener yma, 138 00:06:29,350 --> 00:06:32,400 gwneud RSVP yn y URL arferol yno. 139 00:06:32,400 --> 00:06:35,650 Os ydych yn meddwl am ganolbwyntio mewn neu wneud un uwchradd yn CS, 140 00:06:35,650 --> 00:06:38,941 p'un a ydych yn sophomore, neu freshman, neu hyd yn oed yn iau neu'n hŷn ar yr adeg hon 141 00:06:38,941 --> 00:06:42,490 ac yn gallu dal i wasgu yn y cyrsiau, sylweddoli bod yr ysgol peirianneg 142 00:06:42,490 --> 00:06:45,620 yn crynhoi i Ben am ddim ac Hufen iâ Jerry a chyngor 143 00:06:45,620 --> 00:06:48,910 Dydd Mercher yn fuan ar ôl y dosbarth hwn ar 16:00 yn yr adeilad CS 144 00:06:48,910 --> 00:06:49,771 yn Maxwell Dworkin. 145 00:06:49,771 --> 00:06:51,520 Os yw hyn yn rhy gyflym ar y sgrin, dim ond yn mynd 146 00:06:51,520 --> 00:06:55,260 i cs50.harvard.edu am linc i'r digwyddiad Facebook 147 00:06:55,260 --> 00:06:57,140 lle gallwch weld rhagor o fanylion. 148 00:06:57,140 --> 00:07:01,390 >> Yn y cyfamser, yr wyf yn meddwl y byddwn yn cywiro un peth arall i mi goofed ddydd Mercher. 149 00:07:01,390 --> 00:07:04,400 Ymddangos bod ID Mark ei ar Facebook Nid oedd tri. 150 00:07:04,400 --> 00:07:05,230 Yr oedd pedwar. 151 00:07:05,230 --> 00:07:08,330 Troi allan yr oedd ganddo fwy o brawf cyfrifon nag yr oeddwn yn cofio. 152 00:07:08,330 --> 00:07:12,400 Ond beth mae hyn yn teimlo fel cyfle ei wneud yw i dynnu i fyny o URL fel hyn. 153 00:07:12,400 --> 00:07:16,680 >> Felly, mae'n troi allan bod Facebook yn cael API, Rhyngwyneb Rhaglennu Cais, 154 00:07:16,680 --> 00:07:20,070 sydd yn fecanwaith lle i chi Gall ofyn am ddata programmatically 155 00:07:20,070 --> 00:07:24,480 ar Facebook a mynd yn ôl peiriant gwybodaeth ddarllenadwy, nid yw tudalennau gwe 156 00:07:24,480 --> 00:07:28,690 ond testun yn unig amrwd, rhywbeth Gelwir Nodiant Gwrthrych JavaScript. 157 00:07:28,690 --> 00:07:32,150 Ac yn wir, os byddaf yn ymweld â'r URL, ac yn chwyddo i mewn, yn ddiofyn, 158 00:07:32,150 --> 00:07:34,960 mae hyn yn Mark yn gyhoeddus gwybodaeth hygyrch. 159 00:07:34,960 --> 00:07:37,430 >> Ac mae'r manylion diddorol yma yw dim ond bod ei adnabod 160 00:07:37,430 --> 00:07:40,670 yn wir, rhif pedwar, yr wyf yn sylweddoli cyn gynted ag y gwneuthum hyn. 161 00:07:40,670 --> 00:07:44,260 Gallwch wneud hyn eich hun os ydych yn gwybod eich enw defnyddiwr Facebook os oes gennych un. 162 00:07:44,260 --> 00:07:45,440 Teipiwch i fyny top yno. 163 00:07:45,440 --> 00:07:46,640 A dim o hyn yn breifat. 164 00:07:46,640 --> 00:07:48,670 Im 'jyst yn gwneud hyn hyd yn oed yn y modd incognito. 165 00:07:48,670 --> 00:07:49,900 Felly dydw i ddim hyd yn oed yn mewngofnodi. 166 00:07:49,900 --> 00:07:54,440 A ydych yn gweld fy mod mae'n debyg oedd rhif defnyddiwr 6454 167 00:07:54,440 --> 00:07:56,480 ar Facebook, nad yw'n yn rhy ddrwg y dyddiau hyn. 168 00:07:56,480 --> 00:07:59,900 Felly beth bynnag, byddwch hefyd yn gweld gwybodaeth ychwanegol yno. 169 00:07:59,900 --> 00:08:02,150 >> Ac mae'r agwedd defnyddiol o hynny yw bod chi 170 00:08:02,150 --> 00:08:06,890 Gallai ysgrifennu eich meddalwedd hun sy'n rywsut yn integreiddio data fel hyn 171 00:08:06,890 --> 00:08:08,170 yn eich cais eich hun. 172 00:08:08,170 --> 00:08:10,650 Gallwch grymuso defnyddwyr i logio i mewn i'ch gwefan, 173 00:08:10,650 --> 00:08:14,190 nad ydynt yn defnyddio eu enw defnyddiwr arfer eu hunain a cyfrinair ond efallai eu Facebook mewngofnodi 174 00:08:14,190 --> 00:08:16,170 a chael gwybodaeth hyd yn oed am eu ffrindiau, 175 00:08:16,170 --> 00:08:18,740 os ydynt yn cymeradwyo y cyfryw, neu debyg. 176 00:08:18,740 --> 00:08:21,430 Felly nodi bod CS50, hefyd, Mae rhai o'i APIs ei hun, 177 00:08:21,430 --> 00:08:24,620 un ar gyfer y data catalog cwrs, rhai am y bwydlenni hugs yn y fwyta 178 00:08:24,620 --> 00:08:26,730 neuaddau, pob un o'r adeiladau a lleoliadau 179 00:08:26,730 --> 00:08:30,930 ar y campws mae gennym API am yn ogystal y gallwch holi yn yr un modd a chael 180 00:08:30,930 --> 00:08:35,520 data testunol yn ôl y gallwch integreiddio i mewn PHP, neu JavaScript, neu hyd yn oed, 181 00:08:35,520 --> 00:08:38,320 er yn llai cyffredin, a C seiliedig prosiect terfynol. 182 00:08:38,320 --> 00:08:41,190 >> Yn wir ymlaen llaw ar gyfer y rownd derfynol prosiect ychydig o gerrig milltir. 183 00:08:41,190 --> 00:08:42,980 Rydych wedi cael e-bost oddi wrthym y dydd o'r blaen. 184 00:08:42,980 --> 00:08:45,761 Sylweddoli bod y cynnig yn ddyledus yma Dydd Llun i ddod. 185 00:08:45,761 --> 00:08:49,010 Nid yw o reidrwydd yn ei rhwymo, ond i chi oes angen i dderbyn eich cymrodyr addysgu 186 00:08:49,010 --> 00:08:51,260 gymeradwyaeth cyn gwneud unrhyw newidiadau wedi hynny. 187 00:08:51,260 --> 00:08:54,280 Ac yna ymlaen yn nifer o gerrig milltir eraill. 188 00:08:54,280 --> 00:08:56,542 >> Felly, er mwyn canfod chi, hefyd, gyda rhai posibiliadau, 189 00:08:56,542 --> 00:08:58,250 mae gennym griw o y bylbiau golau lliw. 190 00:08:58,250 --> 00:09:01,190 Ac mae rhai ohonoch guys yn awr yn cael rhywfaint o o'r rhain yn eich ystafell dorm yn ogystal. 191 00:09:01,190 --> 00:09:02,920 Ac maent hwythau hefyd yn cael API. 192 00:09:02,920 --> 00:09:07,300 Felly cofio wythnosau bylbiau deuaidd rheini yn ôl y Dan Bradley a Ansel 193 00:09:07,300 --> 00:09:08,780 Creu Duff i ni. 194 00:09:08,780 --> 00:09:12,560 Maent yn defnyddio rhyngwyneb meddalwedd i bwlb golau hwn, a oedd ar hyn o bryd 195 00:09:12,560 --> 00:09:15,232 yn cael ei blygio i mewn i drydan ac yna ar hyd di-wifr 196 00:09:15,232 --> 00:09:17,690 ei gysylltu â ychydig yn beth Gelwir y Bont i lawr fan hyn, 197 00:09:17,690 --> 00:09:21,280 fel ychydig o perchnogol llwybrydd i'r ddyfais arbennig. 198 00:09:21,280 --> 00:09:26,540 >> Ond mae'n troi allan os wyf yn gwybod sut i anfon negeseuon HTTP, fel yr ydym i gyd yn awr yn ei wneud, 199 00:09:26,540 --> 00:09:31,670 Gallaf anfon neges fel hyn i y bwlb golau i droi ymlaen neu i ffwrdd 200 00:09:31,670 --> 00:09:34,000 neu wneud unrhyw nifer o gweithrediadau eraill arno. 201 00:09:34,000 --> 00:09:36,110 Sylwch nad yw'n ei gael, nid yw'n swydd. 202 00:09:36,110 --> 00:09:37,760 Mae un arall o'r enw Rhowch. 203 00:09:37,760 --> 00:09:39,630 Mae yna mewn gwirionedd ychydig o ferfau eraill o'r fath. 204 00:09:39,630 --> 00:09:42,920 Ond sylwi mae llwybr yno, slaes API, slaes datblygwr newydd, 205 00:09:42,920 --> 00:09:44,990 slaes golau, slaes un, slaes wladwriaeth. 206 00:09:44,990 --> 00:09:49,060 >> Dyna ôl pob golwg dim ond y llwybr bod y cwmni, Philips, 207 00:09:49,060 --> 00:09:51,640 penderfynodd rhaid i chi daro gyda chais HTTP 208 00:09:51,640 --> 00:09:55,010 os ydych am newid y wladwriaeth y bwlb gan ddefnyddio HTTP 1.1. 209 00:09:55,010 --> 00:09:56,380 Yna yn sylwi ar y llinell yn wag. 210 00:09:56,380 --> 00:10:00,170 Ac yna yn olaf hyn sy'n edrych fel fath o amrywiaeth o ryw fath, 211 00:10:00,170 --> 00:10:04,730 mae hyn unwaith eto yn mynd i gael ei alw Nodiant Gwrthrych JavaScript, neu Jason. 212 00:10:04,730 --> 00:10:08,000 A hyn a welwch yma yw bod mae tri parau gwerth allweddol. 213 00:10:08,000 --> 00:10:09,115 >> Gelwir Mae un allwedd yn cael ei ar. 214 00:10:09,115 --> 00:10:10,990 Ac mae ei werth yn ôl pob golwg yn mynd i fod yn wir. 215 00:10:10,990 --> 00:10:13,612 Disgleirdeb yn 128, a oedd yn yn rhyw fath o int. 216 00:10:13,612 --> 00:10:15,820 Ac yna amser pontio yn sero, sydd yn ôl pob golwg 217 00:10:15,820 --> 00:10:17,970 pa mor hir y mae'n mynd i cymryd i droi'r peth hyn ar. 218 00:10:17,970 --> 00:10:19,890 >> Felly, ar hyn o bryd y bwlb golau i ffwrdd. 219 00:10:19,890 --> 00:10:22,880 Ond os wyf yn gwneud yn union this-- adael i mi fynd i'r ddalen dwyllwr bach 220 00:10:22,880 --> 00:10:25,200 fod Dan a sefydlwyd yn advance-- ac rwy'n mynd 221 00:10:25,200 --> 00:10:27,920 i fynd yn ei flaen a chopïo r yn canlyn archa. 222 00:10:27,920 --> 00:10:30,200 Curl, gan fod rhai ohonoch allai fod wedi gafwyd ar CS50 223 00:10:30,200 --> 00:10:35,080 Trafod yn cyfleustodau fel Telnet fath y gallwch efelychu ceisiadau HTTP, 224 00:10:35,080 --> 00:10:36,360 rhoi benodol. 225 00:10:36,360 --> 00:10:39,710 Gallaf anfon y data hwn, yn benodol yr hyn yr ydym yn unig 226 00:10:39,710 --> 00:10:43,430 Gwelodd funud yn ôl yn benodol i'r URL hwn dros yma. 227 00:10:43,430 --> 00:10:46,310 Ac yna Curl yn mynd i drin pob un o'r penawdau angenrheidiol 228 00:10:46,310 --> 00:10:47,600 a dosrannu yno o. 229 00:10:47,600 --> 00:10:54,700 >> Felly, i gyd yn rhaid i mi ei wneud yw copïo hyn i derfynnell ffenest ac yna daro Chofnoda. 230 00:10:54,700 --> 00:10:56,000 Ac mae'r bwlb golau yn mynd ar. 231 00:10:56,000 --> 00:10:59,060 Ac mae hyn i gyd yn mynd drwy fy nghyfrifiadur wirelessly 232 00:10:59,060 --> 00:11:01,960 rywsut i lawr at y bont, a oedd yn Yna, yn siarad at y bwlb golau. 233 00:11:01,960 --> 00:11:02,960 Gallaf wneud rhywbeth arall. 234 00:11:02,960 --> 00:11:07,050 Gallaf wneud y peth hyn mynd yn goch er enghraifft. 235 00:11:07,050 --> 00:11:11,040 Gallaf er enghraifft wneud y peth hyn yn mynd yn wyrdd. 236 00:11:11,040 --> 00:11:12,220 Gallaf ei wneud yn mynd yn las. 237 00:11:12,220 --> 00:11:14,760 >> Ac yn sylwi ym mhob un o'r rhain achosion, i gyd fy mod yn newid 238 00:11:14,760 --> 00:11:18,540 yw gwerth lliw hyn a elwir i mewn gwirionedd yn rhoi rhywfaint o liw. 239 00:11:18,540 --> 00:11:20,320 Felly, gadewch i mi past yr un yma yn ogystal. 240 00:11:20,320 --> 00:11:21,000 Nawr mae'n las. 241 00:11:21,000 --> 00:11:24,672 >> A allwch chi wneud hyd yn oed ffansi where-- pethau gadewch i ni fynd i wyrdd. 242 00:11:24,672 --> 00:11:26,630 A gallwn i wneud hyn o cwrs gyda fy cod hun. 243 00:11:26,630 --> 00:11:30,670 Ond hyd yn oed y API ei hun yn cefnogi gweithrediadau ffynci 244 00:11:30,670 --> 00:11:35,510 fel hyn, a fydd yn awr yn trafferthu ni am y 30 eiliad nesaf. 245 00:11:35,510 --> 00:11:39,170 >> Felly dyna un blas o'r hyn yr ydych efallai ei wneud gyda API, mae hyn yn un sy'n cynnwys 246 00:11:39,170 --> 00:11:40,010 bylbiau golau. 247 00:11:40,010 --> 00:11:42,510 Nodwch fod CS50 Mae cwpl parau o Google Glass os byddech yn 248 00:11:42,510 --> 00:11:45,380 yn hoffi i fynd i'r afael â rhywbeth ar hyd llinellau hynny, Arduino Unos, a oedd yn 249 00:11:45,380 --> 00:11:48,670 mae cyfrifiaduron bach bach, yn y bôn, ar fwrdd cylched bach 250 00:11:48,670 --> 00:11:50,470 y gallwch gysylltu gwifrau a phethau eraill 251 00:11:50,470 --> 00:11:52,732 at a rheoli mewn gwirionedd eich amgylchedd byd go iawn. 252 00:11:52,732 --> 00:11:54,940 Ac yna mae yna gwpl teganau o'r newydd sydd gennym. 253 00:11:54,940 --> 00:11:59,294 Mae hyn yn un yn llythrennol newydd gyrraedd y Diwrnod arall drwy'r post, mae Myo Armband. 254 00:11:59,294 --> 00:12:01,710 Ac yr wyf yn meddwl ei fod yn ffordd o cael chi gyffrous am brosiectau 255 00:12:01,710 --> 00:12:03,720 y gallech eu defnyddio gyda byddai caledwedd hwn 256 00:12:03,720 --> 00:12:08,900 fydd i chwarae clip byr hwn eu bod yn defnyddio i Folks tynnu 257 00:12:08,900 --> 00:12:10,500 ein bod yn awr yn byw yn y dyfodol. 258 00:12:10,500 --> 00:12:13,494 259 00:12:13,494 --> 00:12:15,490 >> [CHWARAE CERDDORIAETH] 260 00:12:15,490 --> 00:13:33,410 261 00:13:33,410 --> 00:13:37,109 >> DAVID Malan: Felly, mewn dim ond ychydig wythnosau, byddwch yn Gall hefyd fod yn y oer yn y ffair CS50. 262 00:13:37,109 --> 00:13:39,150 Dyfais arall yr ydym Mae criw o ein bod 263 00:13:39,150 --> 00:13:42,090 hapus i fenthyg ar gyfer prosiectau cael ei alw'n rheolwr gynnig. 264 00:13:42,090 --> 00:13:45,030 Mae hwn ychydig yn ddyfais USB ydych yn cysylltu i gyfrifiadur sy'n 265 00:13:45,030 --> 00:13:47,520 yn eich galluogi i ryngweithio â eich gliniadur, Mac neu PC, 266 00:13:47,520 --> 00:13:51,570 fel pe oedd gennych fel Xbox Kinect ac mewn gwirionedd yn gwneud cynigion corfforol llawer 267 00:13:51,570 --> 00:13:54,509 fel y gwelwn yn hyn gweledigaeth o'r dyfodol. 268 00:13:54,509 --> 00:13:56,505 >> [CHWARAE CERDDORIAETH] 269 00:13:56,505 --> 00:15:03,380 270 00:15:03,380 --> 00:15:06,260 >> DAVID Malan: Felly hyd yn oed os oes gennych ddim syniad sut mae rhywbeth fel 'na 271 00:15:06,260 --> 00:15:10,050 Gellid o bosibl gael eu dyfeisio neu waith ar lefel caledwedd, ni waeth. 272 00:15:10,050 --> 00:15:13,520 Hyd yn oed ar ôl dim ond ychydig fisoedd o CS50, a dealltwriaeth o raglennu 273 00:15:13,520 --> 00:15:19,460 yn fwy cyffredinol, a rhaglennu ar y we yn fwy yn ddiweddar, ac yna hefyd APIs, a HTTP, 274 00:15:19,460 --> 00:15:21,830 byddwch yn cael mynediad trwy APIs meddalwedd os ydych 275 00:15:21,830 --> 00:15:24,680 ddim eisiau benthyg un o'r rhain dyfeisiau i siarad mewn gwirionedd iddo 276 00:15:24,680 --> 00:15:27,180 a oes rhaid i chi boeni am gweithrediad sylfaenol 277 00:15:27,180 --> 00:15:30,220 y manylion, sy'n gwbl gyson â'r syniad hwn o haenu 278 00:15:30,220 --> 00:15:33,610 echdyniad yr ydym i wedi a welir drwy gydol y semester. 279 00:15:33,610 --> 00:15:37,990 >> Felly hefyd dros y penwythnos, Gwelodd cwpl o ddarnau o newyddion. 280 00:15:37,990 --> 00:15:40,640 Fynd yn gyntaf, ewch i seminarau os ydych hoffai ddysgu rhywbeth 281 00:15:40,640 --> 00:15:42,160 mwy am unrhyw nifer o bynciau. 282 00:15:42,160 --> 00:15:43,340 Gweler yr URL yno. 283 00:15:43,340 --> 00:15:45,890 Ac mae hyn yn un ei anfon i mi gan Chang, sy'n eich adnabod, 284 00:15:45,890 --> 00:15:47,850 pwy sy'n argraffu ein byddin o eliffantod. 285 00:15:47,850 --> 00:15:49,910 Ac yr oedd pennawd fel a ganlyn. 286 00:15:49,910 --> 00:15:51,280 Rwy'n ofn ar fy teledu newydd. 287 00:15:51,280 --> 00:15:54,301 Pam gen i ofn i droi hyn Id peth ar a ydych yn rhy. 288 00:15:54,301 --> 00:15:56,050 Felly, rydym yn awr yn y rhoi ar y semester, 289 00:15:56,050 --> 00:15:58,860 hefyd, lle hyd yn oed os oes gennych y lleiaf o ddealltwriaeth 290 00:15:58,860 --> 00:16:02,620 o sut mae'r we yn gweithio, a HTTP, a diogelwch, pethau fel hyn 291 00:16:02,620 --> 00:16:03,980 Dylai ddechrau i ddal eich llygad. 292 00:16:03,980 --> 00:16:07,450 Ond hefyd, byddwch yn deall a yw'r pethau hyn yn neu nad ydynt 293 00:16:07,450 --> 00:16:08,430 bygythiadau gwirioneddol. 294 00:16:08,430 --> 00:16:10,940 >> Felly, yr wyf yn cymryd ychydig o dyfyniadau o'r erthygl hon yma. 295 00:16:10,940 --> 00:16:12,540 Ac mae'r stori fel a ganlyn. 296 00:16:12,540 --> 00:16:14,300 Rwyf nawr yn berchen ar teledu smart newydd, a oedd yn 297 00:16:14,300 --> 00:16:18,470 yn addo i ddarparu ffrydio cynnwys amlgyfrwng, gemau, app, 298 00:16:18,470 --> 00:16:21,450 cyfryngau cymdeithasol, a'r rhyngrwyd pori, oh a theledu hefyd. 299 00:16:21,450 --> 00:16:24,410 Yr unig broblem yw fy mod yn awr ofn i'w ddefnyddio, medd yr awdur. 300 00:16:24,410 --> 00:16:29,592 Byddech yn, hefyd, os ydych yn darllen drwy'r polisi preifatrwydd 46 tudalen ar gyfer eich teledu. 301 00:16:29,592 --> 00:16:31,800 Mae swm y data hwn yn casglu peth yn syfrdanol. 302 00:16:31,800 --> 00:16:35,710 Mae'n logio ble, pryd, sut, a am ba hyd y byddwch yn defnyddio'r teledu. 303 00:16:35,710 --> 00:16:38,190 Mae'n setiau cwcis olrhain, fel yr ydym wedi ei drafod, 304 00:16:38,190 --> 00:16:40,560 a beacons cynllunio i ganfod pan fydd gennych 305 00:16:40,560 --> 00:16:43,185 Cynnwys penodol gweld neu neges e-bost penodol 306 00:16:43,185 --> 00:16:45,230 os ydych am wirio e-bost ar eich teledu. 307 00:16:45,230 --> 00:16:48,430 Mae'n cofnodi y apps yr ydych defnyddio, mae'r gwefannau rydych yn ymweld, 308 00:16:48,430 --> 00:16:52,280 a sut yr ydych yn rhyngweithio â chynnwys, yn gwneud hynny i gyd trwy gyfrwng eich teledu smart. 309 00:16:52,280 --> 00:16:55,470 Mae hefyd, yet-- creepier dyna fy addition-- 310 00:16:55,470 --> 00:16:58,140 wedi cael ei adeiladu yn y dirgel gyda chydnabyddiaeth wyneb. 311 00:16:58,140 --> 00:17:01,010 >> Y diben yw darparu rheoli ystum gyfer y teledu 312 00:17:01,010 --> 00:17:05,490 ac yn eich galluogi i fewngofnodi i personol cyfrif gan ddefnyddio eich wyneb. 313 00:17:05,490 --> 00:17:08,940 Ar y upside, y delweddau yn cadw ar y teledu yn hytrach na llwytho i fyny 314 00:17:08,940 --> 00:17:09,940 i weinydd corfforaethol. 315 00:17:09,940 --> 00:17:12,520 Ar yr ochr negyddol, y rhyngrwyd cysylltiad yn gwneud y teledu cyfan 316 00:17:12,520 --> 00:17:14,811 agored i hacwyr sydd wedi dangos y gallu 317 00:17:14,811 --> 00:17:16,700 i gymryd rheolaeth lwyr ar y peiriant. 318 00:17:16,700 --> 00:17:20,880 >> Mwy poeni, fel pe nad oedd hynny'n ddigon smart, yw'r meicroffon. 319 00:17:20,880 --> 00:17:23,599 Mae'r teledu yn ymfalchïo mewn llais nodwedd cydnabyddiaeth 320 00:17:23,599 --> 00:17:26,859 sy'n galluogi gwylwyr i reoli y sgrin gyda gorchmynion llais. 321 00:17:26,859 --> 00:17:30,290 Ond mae'r gwasanaeth yn dod gyda rhybudd braidd ominous. 322 00:17:30,290 --> 00:17:33,030 Dylech fod yn ymwybodol, os eich geiriau llafar yn cynnwys 323 00:17:33,030 --> 00:17:36,210 personol neu sensitif eraill gwybodaeth, y wybodaeth 324 00:17:36,210 --> 00:17:40,310 Bydd ymhlith y data eu dal a drosglwyddir i drydydd parti. 325 00:17:40,310 --> 00:17:40,870 Got hynny? 326 00:17:40,870 --> 00:17:45,860 Peidiwch â dweud bersonol neu sensitif stwff o flaen eich teledu. 327 00:17:45,860 --> 00:17:47,280 >> Felly, mae hyn mewn gwirionedd ar gyfer go iawn. 328 00:17:47,280 --> 00:17:50,530 Ac mae'n anodd peidio i weld a ydych ewch i Prynu Gorau neu debyg i setiau teledu 329 00:17:50,530 --> 00:17:51,030 y dyddiau hyn. 330 00:17:51,030 --> 00:17:52,540 Maen nhw i gyd yn smart mewn rhyw ffordd. 331 00:17:52,540 --> 00:17:54,740 Ac eu bod yn cael gallach ac yn creepier. 332 00:17:54,740 --> 00:17:57,490 Ac maen nhw'n syml, casglu data mewn ffyrdd yr ydym wedi siarad am 333 00:17:57,490 --> 00:18:01,840 ac yna llwytho i fyny ei trwy HTTP neu brotocol arall i rai gweinydd. 334 00:18:01,840 --> 00:18:05,720 >> Felly roedd hwn o erthygl hwyl yn y wefan hon ar-lein 335 00:18:05,720 --> 00:18:08,940 yma, a soniai am bug penodol neu cod camgymryd 336 00:18:08,940 --> 00:18:11,340 y gallwn clymu mewn gwirionedd i mewn i drafodaeth yr wythnos diwethaf. 337 00:18:11,340 --> 00:18:15,730 Felly pennawd hwn fel dilyn, mae'r stori yn mynd fan hyn, 338 00:18:15,730 --> 00:18:18,720 Gweithiodd Josh Breckman am cwmni sy'n ennill contract 339 00:18:18,720 --> 00:18:22,390 i ddatblygu rheoli cynnwys system, neu CMS ag y maen nhw'n gelwir, 340 00:18:22,390 --> 00:18:24,380 ar gyfer gwefan eithaf mawr y llywodraeth. 341 00:18:24,380 --> 00:18:27,300 Mae llawer o'r prosiect yn cynnwys datblygu system rheoli cynnwys 342 00:18:27,300 --> 00:18:29,840 fel y byddai gweithwyr yn yn gallu creu a chynnal 343 00:18:29,840 --> 00:18:31,877 y sy'n newid cynnwys ar gyfer eu safle. 344 00:18:31,877 --> 00:18:34,210 Aeth pethau'n eithaf da am ychydig ddyddiau ar ôl mynd yn fyw. 345 00:18:34,210 --> 00:18:37,020 Ond ar ddiwrnod chwech, nid aeth pethau cystal. 346 00:18:37,020 --> 00:18:39,500 Yr holl gynnwys ar y Gwefan wedi diflannu yn gyfan gwbl. 347 00:18:39,500 --> 00:18:42,950 Ac mae pob tudalen wedi arwain at 'r ball, nodwch gynnwys y tudalen we. 348 00:18:42,950 --> 00:18:43,810 Wps. 349 00:18:43,810 --> 00:18:46,080 Roedd Josh galw i mewn i ymchwilio a sylwi 350 00:18:46,080 --> 00:18:49,390 bod un arbennig o drafferthus cyfeiriad IP allanol oedd 351 00:18:49,390 --> 00:18:53,380 mynd i mewn ac yn dileu pob un cynnwys ar y system. 352 00:18:53,380 --> 00:18:56,290 >> Nid oedd y cyfeiriad IP oedd yn perthyn i ryw plygu haciwr dramor 353 00:18:56,290 --> 00:18:58,340 ar ddinistrio ddefnyddiol wybodaeth gan y llywodraeth. 354 00:18:58,340 --> 00:19:05,190 Mae'n Penderfynodd googlebot.com, Gwe pry cop cropian Google hun. 355 00:19:05,190 --> 00:19:06,010 Wps. 356 00:19:06,010 --> 00:19:09,150 Ar ôl ychydig o ymchwil a sgrialu o gwmpas i ddod o hyd i backup noncorrupt, 357 00:19:09,150 --> 00:19:10,180 Canfu Josh y broblem. 358 00:19:10,180 --> 00:19:12,700 >> Mae defnyddiwr wedi copïo a gludo rhywfaint o gynnwys o un 359 00:19:12,700 --> 00:19:15,670 dudalen i un arall, gan gynnwys mae Golygu Hyperlink 360 00:19:15,670 --> 00:19:17,577 i olygu'r cynnwys ar y dudalen. 361 00:19:17,577 --> 00:19:20,160 Fel arfer, ni fyddai hyn yn mater ers defnyddiwr allanol fyddai 362 00:19:20,160 --> 00:19:24,320 Mae angen i fynd i mewn enw a chyfrinair, ond mae'r system dilysu CMS, 363 00:19:24,320 --> 00:19:27,520 y system mewngofnodi, nid oedd yn cymryd i ystyriaeth 364 00:19:27,520 --> 00:19:30,980 hacio soffistigedig technegau Google Spider. 365 00:19:30,980 --> 00:19:31,700 Wps. 366 00:19:31,700 --> 00:19:33,610 >> Fel mae'n troi allan, Google Nid Spider yn defnyddio 367 00:19:33,610 --> 00:19:36,950 cwcis, sy'n golygu ei fod yn gallu hawdd osgoi siec am y 368 00:19:36,950 --> 00:19:39,840 ei chofnodi ar y set cwci ei bod yn ffug. 369 00:19:39,840 --> 00:19:42,620 Nid yw chwaith yn talu sylw i JavaScript, a fyddai fel arfer yn 370 00:19:42,620 --> 00:19:45,170 brydlon ac yn ailgyfeirio defnyddwyr nad ydynt wedi mewngofnodi. 371 00:19:45,170 --> 00:19:48,610 Fodd bynnag, yw'n dilyn pob hyperlink ar bob tudalen mae'n ei chael, 372 00:19:48,610 --> 00:19:51,700 gan gynnwys y rhai ag Dileu Tudalen yn y teitl. 373 00:19:51,700 --> 00:19:52,650 Wps. 374 00:19:52,650 --> 00:19:56,070 >> Felly beth mae hyn yn ei olygu mewn mwy termau technegol ond yn weddol hygyrch? 375 00:19:56,070 --> 00:19:58,340 Mae'n jyst yn golygu bod drwy gydol eu gwefan, 376 00:19:58,340 --> 00:20:02,287 roedd ganddynt URLs nid annhebyg yr un yma sy'n efallai y byddwch yn gweld yn broblem a osodwyd saith. 377 00:20:02,287 --> 00:20:04,620 Dwyn i gof yn y broblem a osodwyd saith neu yn gwybod yn broblem yn gosod saith 378 00:20:04,620 --> 00:20:06,411 eich bod yn herio, ymysg pethau eraill, 379 00:20:06,411 --> 00:20:08,570 i werthu stociau ar ran defnyddwyr. 380 00:20:08,570 --> 00:20:14,010 Ond yn gweithredu y nodwedd honno trwy o fynd drwy hypergysylltiadau yn eich defnyddiwr 381 00:20:14,010 --> 00:20:16,880 rhyngwyneb, yn ôl pob tebyg Nid yw'r syniad smartest 382 00:20:16,880 --> 00:20:20,300 oherwydd os yw eich safle yn rywsut hygyrch naill ai gan ddynol 383 00:20:20,300 --> 00:20:23,577 pwy sy'n glicio o gwmpas neu brynu bot fel Google neu Spider 384 00:20:23,577 --> 00:20:26,160 gan eu bod nhw'n gelwir mai dim ond cropian y we yn ceisio mynegai 385 00:20:26,160 --> 00:20:29,060 y we fel peiriant chwilio, gallent yn hawdd iawn 386 00:20:29,060 --> 00:20:31,340 taro drwy gael y math hwn o URL. 387 00:20:31,340 --> 00:20:33,770 A dyna yn swyddogaethol cyfateb i, yn yr achos hwn, 388 00:20:33,770 --> 00:20:37,000 gwerthu pob cyfrannau o Google. 389 00:20:37,000 --> 00:20:40,030 >> Nawr dweud y gwir, mae'n gwbl asinine bod y CMS 390 00:20:40,030 --> 00:20:43,240 defnyddio JavaScript a cwcis i weithredu ei system mewngofnodi 391 00:20:43,240 --> 00:20:47,100 ac beidio â gwneud hynny ochr y gweinydd, fel chi guys yn ei wneud a fydd yn ei PSet 7-- 392 00:20:47,100 --> 00:20:49,940 mae 'na login.php file-- bob amser, bob amser, 393 00:20:49,940 --> 00:20:52,789 bob amser ddylai diogelwch fod yn wneud ar yr ochr gweinydd, 394 00:20:52,789 --> 00:20:56,080 Nid ar yr ochr y cleient oherwydd, gan fod hyn yn erthygl yn awgrymu ac efallai i chi eich hun 395 00:20:56,080 --> 00:20:59,600 gweld ar ryw adeg, mae'n ddibwys i ddefnyddiwr, da neu ddrwg, 396 00:20:59,600 --> 00:21:02,860 i jyst chordda off JavaScript heb sôn cwcis. 397 00:21:02,860 --> 00:21:06,020 Felly dyna yw eich WTF bob dydd. 398 00:21:06,020 --> 00:21:07,970 >> Mae un yn fwy, a oedd yn yn unig fath o frawychus, 399 00:21:07,970 --> 00:21:11,360 felly byddaf yn sôn amdano os Dim ond fel gwers bywyd. 400 00:21:11,360 --> 00:21:14,850 Pryd bynnag y byddwch yn defnyddio cais Gelwir fel Snapchat neu debyg 401 00:21:14,850 --> 00:21:19,380 sy'n dweud lluniau hyn ond yn para am bum eiliad, deg eiliad, neu whatnot. 402 00:21:19,380 --> 00:21:21,680 Maen nhw'n fyrhoedlog Hynny yw hollol nid yw'r achos. 403 00:21:21,680 --> 00:21:25,670 Fel nad oes modd, yn ddigidol, i weithredu rhyw fath o fideo, 404 00:21:25,670 --> 00:21:30,150 neu ddelwedd, neu destunol rannu o'r fath bod derbynnydd ar y pen arall 405 00:21:30,150 --> 00:21:31,660 Ni all rhywsut achub y data. 406 00:21:31,660 --> 00:21:34,300 >> Yn y ffordd fwyaf naïf, rhywun Gallai cymryd eu ffôn. 407 00:21:34,300 --> 00:21:36,850 Ac mae ganddynt 10 eiliad ffenestr tra'n edrych ar rai snap 408 00:21:36,850 --> 00:21:39,410 i ddim ond yn cymryd rhyw ffôn arall a dynnu llun iddo, yn amlwg. 409 00:21:39,410 --> 00:21:41,660 Felly gallwch gadw rhywbeth yn ddigidol y ffordd honno. 410 00:21:41,660 --> 00:21:44,620 Mae rhai ohonoch yn gwybod sut i gymryd screenshots ar eich ffôn. 411 00:21:44,620 --> 00:21:49,290 Yn wir, os nad ydych yn gwybod hyn, yn sylweddoli bod o leiaf Snapchat, 412 00:21:49,290 --> 00:21:51,040 ac yr wyf yn meddwl eraill ceisiadau y dyddiau hyn, 413 00:21:51,040 --> 00:21:53,720 o leiaf yn gwybod i chi os yw'r derbynnydd wedi mewn gwirionedd 414 00:21:53,720 --> 00:21:55,310 cymryd a screenshot o eich delwedd. 415 00:21:55,310 --> 00:22:00,870 >> Ond yn waeth hyd yn hyn, dyma oedd y snappening, fel rhywun fathwyd yn ddiweddar, 416 00:22:00,870 --> 00:22:04,680 lle mae rhai 100,000 Roedd snaps ei ryddhau 417 00:22:04,680 --> 00:22:09,310 yn hyn a elwir yn ffeil torrent ar wefannau amrywiol yn y pen draw. 418 00:22:09,310 --> 00:22:12,000 Ac roedd y rhain yn cynnwys criw cyfan o negeseuon preifat a swyddi. 419 00:22:12,000 --> 00:22:15,210 Mae'n troi allan y rhan fwyaf ohonynt yn anfalaen, felly nid yr hyn y gallech ei ddisgwyl. 420 00:22:15,210 --> 00:22:17,580 Ond am fod pobl yn cael Defnyddir wefan trydydd parti, 421 00:22:17,580 --> 00:22:20,270 logio i mewn gyda'u Snapchat enw defnyddiwr a chyfrinair ac yna 422 00:22:20,270 --> 00:22:23,470 gan arbed eu holl snaps ar y wefan trydydd parti. 423 00:22:23,470 --> 00:22:26,130 Ac yr oedd y trydydd parti gwefan sy'n ei hacio, 424 00:22:26,130 --> 00:22:30,710 mae rhywun yn unig yn golygu cyfrifedig gwybod sut i gael yr holl 100,000 a mwy o ddelweddau rhai 425 00:22:30,710 --> 00:22:33,822 yn eu 'n anawdd cathrena hunain ar gyfer rhannu dilynol. 426 00:22:33,822 --> 00:22:36,030 Dweud y gwir, yma hefyd, ei fod yn fath o asinine bod Snapchat 427 00:22:36,030 --> 00:22:39,360 yn cael ei weithredu yn y fath fodd sy'n Gall trydydd parti didoli o rhyngdoriad 428 00:22:39,360 --> 00:22:43,310 y data ac nad yw'n ynghlwm wrth eich cais ei hun yn rhedeg ar y ffôn. 429 00:22:43,310 --> 00:22:46,947 Ond yma, hefyd, yn sylweddoli bod y rhain Ni ddylai pethau dal i chi gan syndod, 430 00:22:46,947 --> 00:22:49,030 neu o leiaf dylai fod fod yn wers bywyd yn fan hyn. 431 00:22:49,030 --> 00:22:52,220 Os hoffech y technegol manylion, ewch i'r URL yno 432 00:22:52,220 --> 00:22:53,570 dyna mewn sleidiau heddiw. 433 00:22:53,570 --> 00:23:00,960 Mae pob hawl, unrhyw gwestiynau ar gwersi bywyd heddiw yn CS? 434 00:23:00,960 --> 00:23:02,710 Trowch hynny off. 435 00:23:02,710 --> 00:23:04,970 Unrhyw beth o gwbl? 436 00:23:04,970 --> 00:23:06,301 Unrhyw beth o gwbl? 437 00:23:06,301 --> 00:23:09,050 Mae gen i lawer o bobl yn gwirio eu Snapchat neu rywbeth nawr. 438 00:23:09,050 --> 00:23:11,690 >> Mae pob hawl, felly SQL, Iaith Ymholiad Strwythuredig. 439 00:23:11,690 --> 00:23:12,509 Gadewch i lapio hyn. 440 00:23:12,509 --> 00:23:14,300 A hefyd, er bod rydym yn jyst grafu 441 00:23:14,300 --> 00:23:16,310 wyneb o hyn iaith, byddwn yn rhoi i chi 442 00:23:16,310 --> 00:23:18,930 digon o'r iaith ar ffurf PSet 7 443 00:23:18,930 --> 00:23:22,140 fel y gallwch fynd i'r afael â rhai functionality weddol gyffredin. 444 00:23:22,140 --> 00:23:24,912 Ond yn sylweddoli mae yna gwpl pethau nad ydym yn ei gwneud yn ofynnol i chi, 445 00:23:24,912 --> 00:23:27,120 ond maent yn mynd i fod bwysig dod prosiectau terfynol 446 00:23:27,120 --> 00:23:30,760 ac yn sicr yn dod yn gwneud gwir gwefannau gyda defnyddwyr gwirioneddol 447 00:23:30,760 --> 00:23:32,040 yw penderfyniad dylunio hwn. 448 00:23:32,040 --> 00:23:34,460 >> Mae'n ymddangos bod yn cronfa ddata MySQL, rydych 449 00:23:34,460 --> 00:23:37,460 cael tusw o ddewisiadau tebyg y mathau data ar gyfer eich colofnau 450 00:23:37,460 --> 00:23:41,670 a phethau eraill, ond rydych hefyd yn cael y dewis o storio hyn a elwir yn 451 00:23:41,670 --> 00:23:44,570 peiriant ar gyfer eich holl data, y math o system ffeil, 452 00:23:44,570 --> 00:23:46,700 os ydych yn gyfarwydd, ar gyfer eich holl ddata. 453 00:23:46,700 --> 00:23:48,830 Pa fformat mae'n cael ei storio yn y pen draw? 454 00:23:48,830 --> 00:23:53,300 A'r mwyaf cyffredin, efallai, wedi bod MyISAM a InnoDB, termau technegol 455 00:23:53,300 --> 00:23:56,060 y byddwn yn poeni am dim ond i'r graddau bod un wedi 456 00:23:56,060 --> 00:23:58,500 ac nad yw un yn cael y nodwedd ganlynol. 457 00:23:58,500 --> 00:24:00,390 >> Tybiwch fod gennych ychydig o oergell dorm. 458 00:24:00,390 --> 00:24:03,030 Ac yn debyg bod chi a'ch roommate, sy'n rhannu'r oergell hwn, 459 00:24:03,030 --> 00:24:04,682 yn wirioneddol hoff o laeth dweud. 460 00:24:04,682 --> 00:24:07,140 Ac mae hyn yn, mewn gwirionedd, sut mae'r stori dywedwyd wrtho i mi ffordd yn ôl 461 00:24:07,140 --> 00:24:10,890 yn y dydd pan fyddaf yn cymryd cwrs Gelwir CS 161 Systemau Gweithredu, sy'n 462 00:24:10,890 --> 00:24:12,580 yn yr un modd archwilio'r pwnc hwn. 463 00:24:12,580 --> 00:24:13,760 Felly, mae gennych oergell hwn. 464 00:24:13,760 --> 00:24:14,630 Ydych allan o laeth. 465 00:24:14,630 --> 00:24:17,000 A ydych yn dod adref, eich roommate yn dal i fod yn y dosbarth neu beth bynnag, 466 00:24:17,000 --> 00:24:19,208 ac y byddwch yn penderfynu fy mod i'n mynd i fynd allan a chael ychydig o laeth. 467 00:24:19,208 --> 00:24:22,630 Felly, byddwch yn cau'r oergell, lockup yr ystafell dorm, ewch ar draws y stryd 468 00:24:22,630 --> 00:24:25,330 i CVS neu ble bynnag, ac yn cael yn unol i brynu ychydig o laeth. 469 00:24:25,330 --> 00:24:28,960 >> Yn y cyfamser, eich roommate yn cael cartref o ddosbarth, yn mynd i mewn i'r ystafell dorm, 470 00:24:28,960 --> 00:24:31,802 agor yr oergell, hefyd yn sylweddoli ooph, rydym yn allan o laeth. 471 00:24:31,802 --> 00:24:33,760 Felly, ef neu hi yn cau'r oergell ac yna'n digwydd 472 00:24:33,760 --> 00:24:35,610 i fynd i'r CVS arall, sy'n digwydd bod yn 473 00:24:35,610 --> 00:24:38,470 un bloc i ffwrdd oddi wrth y CVS eraill yn y sgwâr, ac yn mynd yn unol 474 00:24:38,470 --> 00:24:40,230 yno i gael ychydig o laeth. 475 00:24:40,230 --> 00:24:42,524 Yn awr, wrth gwrs, ychydig funudau yn ddiweddarach, y ddau ohonoch yn mynd yn ôl, 476 00:24:42,524 --> 00:24:44,690 ac yn waeth na dim posibl canlyniadau wedi digwydd. 477 00:24:44,690 --> 00:24:45,792 Y ddau ohonoch yn cael llaeth. 478 00:24:45,792 --> 00:24:47,500 Ac nid ydych yn ei wneud mewn gwirionedd fel llaeth bod llawer. 479 00:24:47,500 --> 00:24:49,625 Felly, un ohonynt yn unig mynd i sur ar ryw adeg. 480 00:24:49,625 --> 00:24:55,941 Felly, yn awr mae gennych swm gormodol o laeth yn yr oergell i gyd oherwydd pam? 481 00:24:55,941 --> 00:24:57,072 >> [Anghlywadwy] 482 00:24:57,072 --> 00:24:59,780 DAVID Malan: Yeah, na wnaethoch chi rhywsut yn cyfathrebu â'i gilydd 483 00:24:59,780 --> 00:25:00,904 eich bod yn cael llaeth. 484 00:25:00,904 --> 00:25:04,320 Felly, yn y symlaf o ffyrdd yn y byd dynol, 485 00:25:04,320 --> 00:25:08,390 sut y byddwch yn osgoi hyn gwirion sefyllfa o'r fath rhag digwydd 486 00:25:08,390 --> 00:25:09,750 eich bod dim ond gydag un pen draw. 487 00:25:09,750 --> 00:25:10,840 Eu neges destun, ie yn dda. 488 00:25:10,840 --> 00:25:12,877 Ond sut arall? 489 00:25:12,877 --> 00:25:13,460 Nodiadau Post-it. 490 00:25:13,460 --> 00:25:14,626 DAVID Malan: Nodyn Post-it. 491 00:25:14,626 --> 00:25:17,150 Unrhyw ffurf ar gyfathrebu sy'n dweud wrth eich roommate 492 00:25:17,150 --> 00:25:18,670 peidiwch â mynd i mewn i'r oergell am laeth. 493 00:25:18,670 --> 00:25:20,440 Rydw i'n mynd i fynd ailstocio ar fy mhen fy hun. 494 00:25:20,440 --> 00:25:22,770 Felly rydych rhywsut angen i gloi adnodd hwn. 495 00:25:22,770 --> 00:25:27,180 Felly, gallwn wneud this-- gallwn fath o ddifetha y stori ac yn troi i mewn i stori CS 496 00:25:27,180 --> 00:25:30,360 lle feddwl am hyn fel union fel amrywiol, sy'n cael ei storio rhywfaint o werth. 497 00:25:30,360 --> 00:25:32,570 Ac ar hyn o bryd, mae'r gwerth y llaeth yn sero, 498 00:25:32,570 --> 00:25:35,410 nad ydych am i'ch roommate i arolygu hwnnw newidyn 499 00:25:35,410 --> 00:25:38,730 ac yna'n gwneud penderfyniad ei hun yn seiliedig ar gyflwr y newidyn 500 00:25:38,730 --> 00:25:42,430 os ydych yn y broses o newid cyflwr y newidyn. 501 00:25:42,430 --> 00:25:46,140 >> Felly un o'r llinellau o SQL yr ydym rhoi i chi mewn PSet 7 fanyleb 502 00:25:46,140 --> 00:25:47,310 yw hyn yn un yma. 503 00:25:47,310 --> 00:25:49,740 Ac nid ydym yn gwario enfawr faint o amser yn siarad am y peth. 504 00:25:49,740 --> 00:25:55,100 Ond mae'n troi allan, os ydych yn ceisio i brynu stoc mewn cyllid CS50 505 00:25:55,100 --> 00:25:58,000 eich bod eisoes rhai cyfrannau o, rydych 506 00:25:58,000 --> 00:26:01,750 am fod yn gallu gwneud nifer o bethau ar unwaith at ei gilydd. 507 00:26:01,750 --> 00:26:04,360 Ydych am fod yn gallu yn effeithiol, ar lefel uchel, 508 00:26:04,360 --> 00:26:06,700 gwirio pob hawl, os ydw i eisiau i brynu mwy o Free cyfranddaliadau, 509 00:26:06,700 --> 00:26:08,780 y stoc ceiniog yr ydym yn siarad am yn y fanyleb, 510 00:26:08,780 --> 00:26:10,660 Rwyf eisiau cyfrif cyntaf faint o gyfranddaliadau sydd gen i. 511 00:26:10,660 --> 00:26:11,810 Ac mae'n debyg ei fod yn bump. 512 00:26:11,810 --> 00:26:14,600 Ac yn debyg Rwyf am prynu 10 yn fwy, yr wyf yn y pen draw 513 00:26:14,600 --> 00:26:17,069 am gael 15 o gyfrannau o stoc. 514 00:26:17,069 --> 00:26:18,360 Felly, rhaid i mi ofyn dau gwestiwn. 515 00:26:18,360 --> 00:26:20,230 Beth yw cyflwr y newidyn? 516 00:26:20,230 --> 00:26:21,470 Beth yw cyflwr y rhes? 517 00:26:21,470 --> 00:26:22,970 Faint o gyfranddaliadau ydw i'n ar hyn o bryd? 518 00:26:22,970 --> 00:26:24,636 Yna byddwch eisiau mynd ymlaen ac yn ei ddiweddaru. 519 00:26:24,636 --> 00:26:27,720 Felly dyna yw'r analog i'r llaeth yn y byddwch yn edrych ar y rhes, 520 00:26:27,720 --> 00:26:30,730 ac yna rydych am ei diweddaru oherwydd os ydych chi am brynu 10 cyfranddaliadau, 521 00:26:30,730 --> 00:26:32,521 nad ydych am i newid y rhes i 10, yr ydych 522 00:26:32,521 --> 00:26:35,300 am ei newid i 5 ynghyd â 10 neu, wrth gwrs, 15. 523 00:26:35,300 --> 00:26:40,030 >> Mae'r llinell o god yn sicrhau bod y ddau syniadau cysyniadol 524 00:26:40,030 --> 00:26:42,810 yn digwydd gyda'i gilydd neu ddim o gwbl. 525 00:26:42,810 --> 00:26:46,920 Nid oes unrhyw un, gan gynnwys rhai defnyddiwr arall sydd wedi logio i mewn i'r un wefan, 526 00:26:46,920 --> 00:26:49,900 all ymyrryd rhywsut gwirio y rhes 527 00:26:49,900 --> 00:26:52,960 a diweddaru y rhes, mae'r dewis ac yn y diweddariad os mynnwch. 528 00:26:52,960 --> 00:26:57,360 Ac nid yw'r gystrawen yn super amlwg, ond mae hyn yn un llinell, hir yw ei fod, 529 00:26:57,360 --> 00:27:01,150 yn sicrhau bod y ddau gweithrediadau edrychwch ar y amrywiol neu wirio y rhes 530 00:27:01,150 --> 00:27:04,660 a diweddaru'r rhes yn digwydd atomically. 531 00:27:04,660 --> 00:27:06,849 >> Oh dyma ni unwaith eto. 532 00:27:06,849 --> 00:27:07,890 Neges destun ar fy ffôn. 533 00:27:07,890 --> 00:27:09,954 Felly, gadewch i ni wneud hwn ychydig yn fwy cadarn. 534 00:27:09,954 --> 00:27:12,120 Tybiwch nad ydych yn gweithredu oergell, 535 00:27:12,120 --> 00:27:16,400 ac nid ydych yn gweithredu PSet 7 ond mae banc go iawn, 536 00:27:16,400 --> 00:27:20,000 neu ATM, mae Teller Awtomataidd Machine, lle byddwch yn rhywsut 537 00:27:20,000 --> 00:27:22,960 eisiau gallu i rymuso defnyddwyr i drosglwyddo arian 538 00:27:22,960 --> 00:27:24,500 o un cyfrif i'r llall. 539 00:27:24,500 --> 00:27:25,100 OK, hongian ar. 540 00:27:25,100 --> 00:27:26,683 Rydw i'n mynd i mute hyn yn awr, diolch i chi. 541 00:27:26,683 --> 00:27:30,450 Felly, rydym am symud arian o un rhif y cyfrif 542 00:27:30,450 --> 00:27:33,600 i gyfrif gwahanol rif, yn benodol 100 $. 543 00:27:33,600 --> 00:27:37,690 Felly mae hwn yn fath o mympwyol enghraifft, lle i chi, y ATM, 544 00:27:37,690 --> 00:27:41,060 Efallai awyddus i weithredu dau SQL ymholiadau, tynnu o un cyfrif, 545 00:27:41,060 --> 00:27:42,430 ac yn ychwanegu at y cyfrif arall. 546 00:27:42,430 --> 00:27:46,766 Ond yr ydych am sicrhau bod y rhain dwy linell yn digwydd neu ddim o gwbl. 547 00:27:46,766 --> 00:27:48,640 Nid ydych am rywbeth cael torri. 548 00:27:48,640 --> 00:27:51,440 Nid ydych yn gwneud rhywfaint o guy drwg smart rywsut yn sefyll ar Bank of America 549 00:27:51,440 --> 00:27:53,270 gyda dau ATMs o flaen ohono a rhywsut 550 00:27:53,270 --> 00:27:55,270 math o teipio yn y gorchmynion ar yr un pryd, 551 00:27:55,270 --> 00:28:01,230 gobeithio, yn ceisio ddidynnu $ 200 yn lle hynny o $ 100 a dim ond yn cael $ 100 gredydu. 552 00:28:01,230 --> 00:28:04,450 Yn fyr, yr ydych eisiau i hyn ymddwyn yn union fel y byddech yn disgwyl. 553 00:28:04,450 --> 00:28:06,540 >> A'r ffordd yr ydych yn ei wneud mae hyn yn SQL gronfa ddata yn 554 00:28:06,540 --> 00:28:09,350 ydych yn lapio yn yr hyn sy'n Gelwir trafodiad. 555 00:28:09,350 --> 00:28:14,290 Llythrennol mewn SQL, gallwch ffonio CS50 yn swyddogaeth ymholiad gyda dyfyniad unquote cychwyn 556 00:28:14,290 --> 00:28:15,370 trafodiad. 557 00:28:15,370 --> 00:28:18,640 Yna gallwch gyflawni unrhyw rif o ymholiadau SQL dilynol, 558 00:28:18,640 --> 00:28:20,870 ond nid oes yr un ohonynt yn cymryd effaith ar y gronfa ddata 559 00:28:20,870 --> 00:28:25,880 hyd nes y byddwch yn galw ymholiad dyfyniad unquote ymrwymo, os eto gan ddefnyddio PHP. 560 00:28:25,880 --> 00:28:29,810 Ac fel hyn, gallwch sicrhau y hyd yn oed os oes gennych 1,000 o ddefnyddwyr i gyd 561 00:28:29,810 --> 00:28:32,080 taro eich cronfa ddata ar yr un pryd, SQL 562 00:28:32,080 --> 00:28:34,540 Bydd yn addo bod y rhain Bydd dau ymholiadau yn 563 00:28:34,540 --> 00:28:36,740 rhoi ar waith un i'r dde ar ôl y llall. 564 00:28:36,740 --> 00:28:40,330 Felly, nad ydych yn darfod i fyny gyda mwy na llaeth neu y swm anghywir, yn y pen draw, 565 00:28:40,330 --> 00:28:40,830 o arian. 566 00:28:40,830 --> 00:28:43,110 >> Felly cadwch hyn mewn cof, nid cymaint am PSet 7 567 00:28:43,110 --> 00:28:45,250 ond ar gyfer prosiectau terfynol os ydych mewn gwirionedd 568 00:28:45,250 --> 00:28:49,690 ceisio symud data o gwmpas ar draws tablau fel y gallech chi yma. 569 00:28:49,690 --> 00:28:53,980 Ond efallai hyd yn oed yn symlach ac yn fwy amlwg i ddeall ag enghraifft 570 00:28:53,980 --> 00:28:54,860 yw hyn yn un yma. 571 00:28:54,860 --> 00:28:57,760 A rhywun yn ei e-bostio i ni am mae hyn dim ond y diwrnod o'r blaen 572 00:28:57,760 --> 00:28:59,600 pan welodd rhywbeth tebyg ar-lein. 573 00:28:59,600 --> 00:29:03,480 >> Felly, hyd y gwn i, mae'r system pin nid yw'n agored i ymosodiad hwn. 574 00:29:03,480 --> 00:29:06,637 Ac nid oes gennyf syniad os yw'n hyd yn oed yn defnyddio y gronfa ddata SQL o dan y cwfl. 575 00:29:06,637 --> 00:29:08,470 Ond gadewch i ni ddefnyddio ar gyfer mwyn drafodaeth. 576 00:29:08,470 --> 00:29:10,178 Dyma y sgrîn sy'n Folks Harvard yn tueddu 577 00:29:10,178 --> 00:29:13,620 i weld pryd fewngofnodi i mewn gyda'u Rhif Harvard ID a'u pin. 578 00:29:13,620 --> 00:29:19,020 Ac mae'n debyg bod y system pin oedd weithredu yn PHP a gyda MySQL 579 00:29:19,020 --> 00:29:22,000 cronfa ddata, mae'r cod bod rhywun flynyddoedd efallai wedi ysgrifennu yn ôl 580 00:29:22,000 --> 00:29:23,270 Gallai edrych fel hyn. 581 00:29:23,270 --> 00:29:25,230 Yn gyntaf, ddatgan Gelwir enw defnyddiwr amrywiol. 582 00:29:25,230 --> 00:29:27,560 A dim ond yn cael hynny o y superglobal POST. 583 00:29:27,560 --> 00:29:30,140 Yna cael newidyn arall Gelwir cyfrinair a gwneud yr un peth. 584 00:29:30,140 --> 00:29:33,080 Ac yna dim ond gweithredu hwn ymholiad hir yma, 585 00:29:33,080 --> 00:29:36,690 dewiswch seren gan ddefnyddwyr lle enw defnyddiwr hafal fath ac o'r fath 586 00:29:36,690 --> 00:29:38,510 a chyfrinair yn cyfateb o'r fath ac o'r fath. 587 00:29:38,510 --> 00:29:40,660 >> Sylwch fod y cyrliog bresys Rwyf wedi defnyddio yma 588 00:29:40,660 --> 00:29:42,880 ond yn golygu i PHP, ewch ymlaen a rhodder 589 00:29:42,880 --> 00:29:45,400 gwerth y ddau rheini newidynnau iawn yno. 590 00:29:45,400 --> 00:29:50,090 Dydyn nhw ddim gwbl angenrheidiol, ond maent yn tueddu i osgoi gwallau cystrawen cynnil. 591 00:29:50,090 --> 00:29:53,650 Felly, mae hyn yn edrych yn gwbl gywir ar yr olwg gyntaf. 592 00:29:53,650 --> 00:29:54,240 Ac y mae. 593 00:29:54,240 --> 00:29:56,680 Gallech weithredu'r system pin yn y modd hwn. 594 00:29:56,680 --> 00:30:00,460 >> Ond mae'n debyg bod super fyfyrwyr smart a maleisus 595 00:30:00,460 --> 00:30:03,020 cyfraniad hwn fel ei pin. 596 00:30:03,020 --> 00:30:05,550 Felly dwi wedi cael gwared ar y bwled arwyddion yma yn y ffug i fyny, 597 00:30:05,550 --> 00:30:08,760 ac rwyf wedi datgelu gwirionedd yr hyn y gallai ef neu hi fod yn teipio. 598 00:30:08,760 --> 00:30:10,350 Ac mae'n ychydig yn rhyfedd. 599 00:30:10,350 --> 00:30:13,850 Ond yr hyn yn neidio allan ar chi ar o bosibl worrisome am fewnbwn y defnyddiwr, 600 00:30:13,850 --> 00:30:16,450 hyd yn oed os nad oes gennych syniad beth trawiad ar y pigiad SQL ei olygu. 601 00:30:16,450 --> 00:30:20,300 Pam mae hyn yn edrych yn ychydig yn bysgodlyd? 602 00:30:20,300 --> 00:30:21,050 Beth sy'n bod? 603 00:30:21,050 --> 00:30:21,550 [Anghlywadwy] 604 00:30:21,550 --> 00:30:24,260 DAVID Malan: Y neu'n ychydig yn amheus. 605 00:30:24,260 --> 00:30:26,310 Yn wir, dyna air allweddol o SQL. 606 00:30:26,310 --> 00:30:28,105 Felly, nid yw hynny'n argoeli'n dda. 607 00:30:28,105 --> 00:30:29,980 Mae'r ffaith fod yna yr holl dyfyniadau sengl yma 608 00:30:29,980 --> 00:30:32,646 there-- yn wir, un o'r rhai hawsaf ffyrdd i dorri rhai cronfeydd data 609 00:30:32,646 --> 00:30:35,880 yw drwy deipio enw fel O'Reilly sydd â collnod ynddo 610 00:30:35,880 --> 00:30:38,600 oherwydd os bydd y bobl a ysgrifennodd y cod y tu ôl i'r llenni 611 00:30:38,600 --> 00:30:41,570 nid yw'n cymryd i ystyriaeth fod yna Efallai fod dyfyniadau sengl mewn defnyddiwr 612 00:30:41,570 --> 00:30:45,060 mewnbwn, ac ef neu hi yn defnyddio dyfyniadau sengl yn eu cod, 613 00:30:45,060 --> 00:30:46,040 gall pethau drwg yn digwydd. 614 00:30:46,040 --> 00:30:47,870 >> Yn wir, yn waeth hyd yn hyn, yn ystyried hyn. 615 00:30:47,870 --> 00:30:50,600 Pe unwaith eto roedd hyn yn y cod bod rhywun yn flynyddoedd Harvard 616 00:30:50,600 --> 00:30:53,100 yn ôl ysgrifennodd am y pin system, sylwi ar beth sy'n 617 00:30:53,100 --> 00:30:56,220 ar fin cael amnewidiwyd am enw defnyddiwr a chyfrinair 618 00:30:56,220 --> 00:30:59,780 os bydd y mathau o ddefnyddwyr mewn eto skroob wrth i'w enw defnyddiwr 619 00:30:59,780 --> 00:31:03,960 ac yna un, dau, tri, pedwar, pump, dyfyniad neu ddyfynbris unquote un gydradd 620 00:31:03,960 --> 00:31:04,660 dyfynnu un. 621 00:31:04,660 --> 00:31:07,220 Ac yn sylwi ar yr hyn sy'n allweddol dyma yw'r defnyddiwr wedi peidio 622 00:31:07,220 --> 00:31:09,900 ddechreuodd eu cyfrinair neu eu pin gyda dyfyniad. 623 00:31:09,900 --> 00:31:12,610 Ac nad ydynt wedi dod i ben ei gyda dyfyniad am ei fod 624 00:31:12,610 --> 00:31:16,315 yn tybio bod os bydd y Nid yw rhaglennydd mor finiog, 625 00:31:16,315 --> 00:31:18,690 maent yn mynd i gael y rheini dyfyniadau sengl yn eu cod. 626 00:31:18,690 --> 00:31:19,860 >> Felly dyma y cod. 627 00:31:19,860 --> 00:31:23,820 Ac yn lle hynny allai ddigwydd yn awr yw hyn. 628 00:31:23,820 --> 00:31:26,350 Ac yr wyf wedi tanlinellu beth mae'r defnyddiwr wedi teipio i mewn. 629 00:31:26,350 --> 00:31:28,480 Felly, cyn, ar ôl. 630 00:31:28,480 --> 00:31:33,330 Ac yn sylwi ar beth sydd ychydig yn worrisome nawr am yr hanner dde yr hwn cod SQL? 631 00:31:33,330 --> 00:31:36,300 Mae'n ychydig yn fwy cymhleth, rhaid cyfaddef, na'r ymholiadau rydym wedi gweld. 632 00:31:36,300 --> 00:31:38,550 Ond ni all hyn o bosibl fod yn beth da os ydych yn 633 00:31:38,550 --> 00:31:42,240 gan ddweud dewis seren, sy'n dewis popeth o dabl y defnyddiwr 634 00:31:42,240 --> 00:31:46,630 lle mae enw defnyddiwr hafal skroob a cyfrinair yn cyfateb i un, dau, tri, pedwar, 635 00:31:46,630 --> 00:31:49,610 pump neu un yn dychwelyd un. 636 00:31:49,610 --> 00:31:53,860 Beth yw'r goblygiadau rhesymegol o'r cymal olaf yn ôl pob tebyg? 637 00:31:53,860 --> 00:31:55,650 Mae'n wir yn unig bob amser. 638 00:31:55,650 --> 00:31:59,930 >> Ac am ein bod yn fath o wedi dyfalu neu cyfrifedig allan trwy brofi a methu 639 00:31:59,930 --> 00:32:02,760 bod y rhaglennydd sy'n Ysgrifennodd Nid cod hwn wnaeth 640 00:32:02,760 --> 00:32:07,250 rhagweld person dynol neu ddrwg teipio mewn dyfynodau sengl, yn ogystal, 641 00:32:07,250 --> 00:32:10,350 gallwn syntactically cwblhau'r ymholiad SQL 642 00:32:10,350 --> 00:32:12,260 gyda rhywbeth disynnwyr ond rhywbeth y 643 00:32:12,260 --> 00:32:15,930 yn syntactically anghywir sydd bob amser yn gwerthuso i gwir. 644 00:32:15,930 --> 00:32:19,130 Felly, os y cod hwn yn cael ei ddefnyddio i ateb y cwestiwn cywir neu anghywir dylai 645 00:32:19,130 --> 00:32:22,930 yn cael ei ganiatáu y defnyddiwr hwn i basio, mae'r ateb yn cael ei bob amser yn ôl pob golwg yn mynd 646 00:32:22,930 --> 00:32:26,930 i fod yn wir gan fod hyn bob amser yn mynd i ddewis rhywbeth o'r gronfa ddata 647 00:32:26,930 --> 00:32:29,280 oherwydd bod un wrth gwrs bob amser yn cyfateb i un. 648 00:32:29,280 --> 00:32:30,360 >> Felly beth yw'r ateb? 649 00:32:30,360 --> 00:32:33,290 Yn dda mewn PSet 7, rydym yn mewn gwirionedd osgoi hyn i gyd gyda'i gilydd. 650 00:32:33,290 --> 00:32:37,360 Rydym yn rhoi swyddogaeth ymholiad i chi, ac yr ydym yn eich annog i ddefnyddio marciau cwestiwn 651 00:32:37,360 --> 00:32:40,430 fel bachau, tebyg mewn ysbryd i printf yn% s, 652 00:32:40,430 --> 00:32:43,710 ond yr hyn sy'n allweddol am y marciau cwestiwn yma yw os ydych mewn gwirionedd yn darllen trwy 653 00:32:43,710 --> 00:32:46,950 functions.php, lle mae ein swyddogaeth ymholiad yn cael ei weithredu, 654 00:32:46,950 --> 00:32:52,780 marciau cwestiwn y rhai a ddihangodd, lle mae unrhyw beth allai fod yn beryglus 655 00:32:52,780 --> 00:32:58,210 fel un dyfynbris yn cael ei droi i mewn i dyfyniad sengl dianc. 656 00:32:58,210 --> 00:33:00,590 >> Felly, mae hyn yn beth sy'n 'n sylweddol yn digwydd os ydych yn 657 00:33:00,590 --> 00:33:04,850 defnyddio swyddogaeth ymholiad CS50 neu unrhyw rif o lyfrgelloedd am ddim trydydd parti sy'n 658 00:33:04,850 --> 00:33:06,000 wneud yr un peth. 659 00:33:06,000 --> 00:33:09,850 Nid yw'n fater yn yr achos hwn, yn wyrdd, os yw'r defnyddiwr wedi teipio mewn un dyfynbris 660 00:33:09,850 --> 00:33:12,070 oherwydd bod yr ymholiad swyddogaeth yr ydym yn ysgrifennu yn 661 00:33:12,070 --> 00:33:15,120 mynd i ychwanegu backslashes cyn unrhyw dyfyniad o'r fath yn beryglus. 662 00:33:15,120 --> 00:33:17,360 Felly, nid yw hyn yn, yn gwirionedd, yn mynd i fod yn legit. 663 00:33:17,360 --> 00:33:20,910 Mae hyn yn debyg i deipio mewn crazy chwilio cyfrinair dyna, wrth gwrs, ddim yn mynd 664 00:33:20,910 --> 00:33:23,490 i fod cyfrinair gwirioneddol skroob yn. 665 00:33:23,490 --> 00:33:28,260 >> Felly, mae'r bwyd parod ar gyfer CS50 yn un, hollol bob amser yn defnyddio rhywbeth 666 00:33:28,260 --> 00:33:30,860 fel swyddogaeth ymholiad CS50 yn neu'r llyfrgell sylfaenol, 667 00:33:30,860 --> 00:33:32,560 sy'n digwydd i gael ei alw PDO. 668 00:33:32,560 --> 00:33:35,880 Ond byth, byth, byth yn gwneud cod fel hyn 669 00:33:35,880 --> 00:33:39,472 heb ddianc neu sgwrio fel maen nhw'n dweud eich mewnbwn. 670 00:33:39,472 --> 00:33:42,430 A byddwch ar ryw adeg yn ôl pob tebyg yn dod ar draws rhai gwefan fel hyn. 671 00:33:42,430 --> 00:33:46,060 Yn wir, mae'n ymddangos i fod yn wir fel mewn meysydd awyr a gwestai mewn mannau 672 00:33:46,060 --> 00:33:48,880 lle mae ganddynt Wi-Fi am ddim mynediad sydd yn rhaid i chi logio i mewn, 673 00:33:48,880 --> 00:33:51,010 gwefannau hyn bob amser rhoi ar waith ofnadwy. 674 00:33:51,010 --> 00:33:55,680 Ac felly rhyw fath o hwyl yn ymarfer gartref, nid at ddibenion maleisus neu fwy 675 00:33:55,680 --> 00:33:59,170 o hwyl ar y ffordd ymarfer corff, ydy at jyst deipio 676 00:33:59,170 --> 00:34:02,850 collnod, dyfyniad sengl, i ffurf ar rai wefan 677 00:34:02,850 --> 00:34:03,810 a gweld beth sy'n digwydd. 678 00:34:03,810 --> 00:34:06,660 Ac os bydd y gweinydd damweiniau neu'n rhoi chi ryw fath o neges gwall, 679 00:34:06,660 --> 00:34:09,690 gall fod yn dda iawn yn y Nid yw rhywun wedi rhagweld hyn. 680 00:34:09,690 --> 00:34:15,239 Ac yna dylech rybuddio'r briodol awdurdodau ac yn mynd ymhellach. 681 00:34:15,239 --> 00:34:20,843 >> Felly nawr dylech guys gobeithio, deall ychydig mwy o geek hiwmor yma. 682 00:34:20,843 --> 00:34:24,120 >> [Chwerthin] 683 00:34:24,120 --> 00:34:27,571 684 00:34:27,571 --> 00:34:29,070 DAVID Malan: Rydych yn gwybod eich bod yn geek. 685 00:34:29,070 --> 00:34:30,944 Ar gyfer y nifer nesaf flynyddoedd, byddwch yn cofio 686 00:34:30,944 --> 00:34:33,520 sydd ychydig Tablau Bobby yw oherwydd y cartŵn hwn yn fan hyn. 687 00:34:33,520 --> 00:34:36,760 Felly cadwch hynny mewn cof wrth i ni cyd-destun newid un tro olaf 688 00:34:36,760 --> 00:34:38,770 heddiw i JavaScript. 689 00:34:38,770 --> 00:34:41,600 Rydym wedi treulio cymharol fach amser ar y gystrawen o PHP 690 00:34:41,600 --> 00:34:43,440 am ei fod mewn gwirionedd super debyg i C. 691 00:34:43,440 --> 00:34:47,300 Ac yn ddigon 'n glws, JavaScript yn rhy yn super debyg i cystrawen C yn 692 00:34:47,300 --> 00:34:49,639 yn ogystal â byddwn yn gweld yn dim ond hyn o bryd ac wrth i ni chi helpu 693 00:34:49,639 --> 00:34:51,205 gweler yn ddiweddarach yr wythnos hon yn arbennig. 694 00:34:51,205 --> 00:34:54,080 Beth allwch chi ei wneud gyda'r iaith hon, fodd bynnag, yn oed yn fwy pwerus, 695 00:34:54,080 --> 00:34:55,790 yn enwedig gyda APIs. 696 00:34:55,790 --> 00:34:56,960 >> Ond yn gyntaf taith gyflym. 697 00:34:56,960 --> 00:35:00,450 Felly un, yn JavaScript, mae dim prif swyddogaeth, sy'n neis. 698 00:35:00,450 --> 00:35:02,650 Fel gyda PHP, gallwch ysgrifennu cod. 699 00:35:02,650 --> 00:35:04,310 Amodau edrych fel hyn. 700 00:35:04,310 --> 00:35:07,100 A allai ymadroddion Boole edrych fel hyn neu fel hyn. 701 00:35:07,100 --> 00:35:09,530 Switsys yn bodoli, ac maent yn Gallai edrych fel hyn. 702 00:35:09,530 --> 00:35:10,970 Pedwar dolenni yn edrych fel hyn. 703 00:35:10,970 --> 00:35:12,390 Tra bod dolenni yn edrych fel hyn. 704 00:35:12,390 --> 00:35:14,160 Ydych Whiles edrych fel hyn. 705 00:35:14,160 --> 00:35:16,850 Ac yna araeau edrych fel hwn, yn debyg iawn i PHP. 706 00:35:16,850 --> 00:35:20,740 Ond yn sylwi, fod yn JavaScript i chi datgan newidyn nid gyda doler 707 00:35:20,740 --> 00:35:25,190 llofnodi, nid gyda math data ond yn llythrennol drwy ddweud var am amrywiol ger ei fron. 708 00:35:25,190 --> 00:35:27,900 Mae hefyd yn cael ei deipio llac yn bod ganddi mathau, 709 00:35:27,900 --> 00:35:29,729 ond nid ydych yn datgan yn benodol iddynt. 710 00:35:29,729 --> 00:35:31,520 Ac yna llinyn, er enghraifft, gallai edrych 711 00:35:31,520 --> 00:35:34,350 fel hyn, y llinyn s yn cael ei alw yn yr achos hwn. 712 00:35:34,350 --> 00:35:35,410 Ac yna gwrthrych. 713 00:35:35,410 --> 00:35:37,010 A byddwn yn gweld mwy o hyn cyn bo hir. 714 00:35:37,010 --> 00:35:41,470 A gwrthrych o bosibl yn un o'r gweld strwythurau data yn fwyaf cyffredin 715 00:35:41,470 --> 00:35:44,050 mewn JavaScript seiliedig rhaglen oherwydd ei fod yn caniatáu 716 00:35:44,050 --> 00:35:46,680 chi i gysylltu fympwyol parau gwerth allweddol yn unig 717 00:35:46,680 --> 00:35:51,240 fel araeau cysylltiadol PHP yn ac yn union fel eich bwrdd hash eich hun 718 00:35:51,240 --> 00:35:54,042 neu roi cynnig wrth i ni roi ar waith ychydig wythnosau yn ôl. 719 00:35:54,042 --> 00:35:56,250 Felly gadewch i ni mewn gwirionedd yn gweld beth gallwn ei wneud gyda JavaScript. 720 00:35:56,250 --> 00:35:59,410 Ac yn benodol, mae hyn yn rhestr golchi dillad o nodweddion 721 00:35:59,410 --> 00:36:02,300 bod porwyr wedi bod yn ein galluogi i bachyn JavaScript 722 00:36:02,300 --> 00:36:05,470 i mewn i gwefan yn y ffordd ganlynol. 723 00:36:05,470 --> 00:36:09,340 JavaScript cael ei ddefnyddio yn aml fel ochr y cleient iaith sgriptio. 724 00:36:09,340 --> 00:36:10,130 Dyw hi ddim yn llunio. 725 00:36:10,130 --> 00:36:11,370 Mae hefyd yn cael ei ddehongli. 726 00:36:11,370 --> 00:36:15,740 Ond yn wahanol PHP, sydd wedi bod yn rhedeg ar y gweinydd, yn y gweinydd gwe, 727 00:36:15,740 --> 00:36:18,220 neu y tu mewn dwfn y cleientiaid, JavaScript 728 00:36:18,220 --> 00:36:22,190 yn wahanol gan ei fod yn fel arfer yn rhedeg yn y porwr. 729 00:36:22,190 --> 00:36:26,060 >> Felly unrhyw god JavaScript i chi ddechrau ysgrifennu am PSet 8, neu eich prosiect terfynol, 730 00:36:26,060 --> 00:36:29,890 neu yn y byd go iawn yn mynd yn gyffredinol i gael eu cadw ar y gweinydd, yn hollol 731 00:36:29,890 --> 00:36:33,110 mewn HTML neu dot dot JS am ffeil JavaScript. 732 00:36:33,110 --> 00:36:35,770 Ond mae'r porwr yn mynd i'w lawrlwytho bod JavaScript 733 00:36:35,770 --> 00:36:39,530 cod at eich achos eich hun o Chrome, neu IE, neu Firefox, neu beth bynnag. 734 00:36:39,530 --> 00:36:43,870 Ac mae'r cod yn mewn gwirionedd yn mynd i gael ddienyddio tu mewn i'ch porwr eich hun. 735 00:36:43,870 --> 00:36:46,560 Dim ond er mwyn gwneud hyn yn fwy real, gadewch i ni weld hyn ar ffurf concrid. 736 00:36:46,560 --> 00:36:50,120 >> Nid oes gennym unrhyw syniad beth y cod hwn yn ei wneud heb wir yn darllen drwyddo. 737 00:36:50,120 --> 00:36:52,670 Ond gadewch i mi fynd i Facebook.com heb fewngofnodi. 738 00:36:52,670 --> 00:37:00,440 Gadewch i mi fynd i Archwilio Elfen a mynd i, gadewch i ni ddweud, Rhwydwaith a Reload y Dudalen. 739 00:37:00,440 --> 00:37:04,150 A byddwn yn see-- gadewch i mi symud Reload y Dudalen i gael yr holl geisiadau i'r newydd. 740 00:37:04,150 --> 00:37:08,850 A'r cyntaf iawn file I weld yw CSS, CSS. 741 00:37:08,850 --> 00:37:10,880 Dyma y tro cyntaf JavaScript ffeil, ac mae gennyf 742 00:37:10,880 --> 00:37:14,600 unrhyw syniad beth mae hyn yn ei wneud, ond yma yw rhai o'r cod JavaScript 743 00:37:14,600 --> 00:37:16,180 sy'n gyrru Facebook. 744 00:37:16,180 --> 00:37:18,400 Dyw hi ddim hyd yn oed yn wirioneddol fod datgelu i chwyddo i mewn. 745 00:37:18,400 --> 00:37:20,260 Mae'n dal i fod yr un mor hurt. 746 00:37:20,260 --> 00:37:24,341 >> Ond byddwch yn gweld hyd yn oed i lawr isod, mae hyd yn oed mwy o'r hyn ffeiliau JavaScript. 747 00:37:24,341 --> 00:37:24,840 Wps. 748 00:37:24,840 --> 00:37:25,440 Mae hynny'n ping. 749 00:37:25,440 --> 00:37:28,550 Gadewch i ni fynd i lawr ychydig ymhellach, ymhellach, ymhellach. 750 00:37:28,550 --> 00:37:29,894 Mae un. 751 00:37:29,894 --> 00:37:31,238 Mae un. 752 00:37:31,238 --> 00:37:31,880 Mae un. 753 00:37:31,880 --> 00:37:35,820 >> Felly, er bod Facebook, y tu ôl i'r golygfeydd, ei ysgrifennu mewn rhan yn PHP 754 00:37:35,820 --> 00:37:39,100 a fersiwn Facebook ei hun o hynny, mae llawer iawn o JavaScript. 755 00:37:39,100 --> 00:37:41,330 Yn wir, unrhyw un o'r sgwrsio chi ei wneud ar Facebook, 756 00:37:41,330 --> 00:37:45,520 unrhyw un o'r diweddariadau llinell amser inline hynny ddigwydd mewn amser real, hynny i gyd 757 00:37:45,520 --> 00:37:47,944 yn cael ei yrru gan JavaScript. 758 00:37:47,944 --> 00:37:48,444 Yeah? 759 00:37:48,444 --> 00:37:50,235 >> GYNULLEIDFA: Nid wyf yn sicr os yw hyn yn Facebook, 760 00:37:50,235 --> 00:37:53,624 ond yr oeddwn yn meddwl fod Facebook ddatblygwyd eu cod hiaith eu hunain yn fewnol? 761 00:37:53,624 --> 00:37:54,540 DAVID Malan: Gwnaethant. 762 00:37:54,540 --> 00:37:58,110 Felly dyna pam yr wyf yn dweud amrywiant o O'r enw PHP Hip Hop y maent mewn gwirionedd 763 00:37:58,110 --> 00:38:03,440 nodweddion ychwanegol i, felly pan fo Mark rhoi ar waith yn gyntaf Facebook, 764 00:38:03,440 --> 00:38:04,710 yr oedd yn ysgrifenedig yn PHP. 765 00:38:04,710 --> 00:38:07,370 Ac yn y math yna o wedi aros y math o iaith pen blaen 766 00:38:07,370 --> 00:38:09,030 eu bod yn defnyddio ar gyfer llawer eu codio, ond mae'n 767 00:38:09,030 --> 00:38:11,870 Nid yw wedi bod yn iaith sydd yn graddfeydd arbennig o dda i biliynau 768 00:38:11,870 --> 00:38:12,630 o bobl. 769 00:38:12,630 --> 00:38:15,300 Ac felly maent wedi ychwanegu eu hunain gwelliannau y tu ôl i'r llenni. 770 00:38:15,300 --> 00:38:17,049 Ac maent yn defnyddio unrhyw rif o ieithoedd eraill 771 00:38:17,049 --> 00:38:19,170 ar gyfer gwahanol ddarnau o eu seilwaith. 772 00:38:19,170 --> 00:38:24,080 Felly ie, mae'n amrywiant o yr hyn rydym bellach yn gwybod fel PHP. 773 00:38:24,080 --> 00:38:26,610 >> Felly, gadewch i ni edrych mewn un neu ddau o enghreifftiau 774 00:38:26,610 --> 00:38:28,890 o sut y gallai rydym yn defnyddio JavaScript yma. 775 00:38:28,890 --> 00:38:32,530 Yn cod ffynhonnell heddiw, mae gennym criw o ffeiliau, y cyntaf o'r rhain, 776 00:38:32,530 --> 00:38:34,090 gadewch i ni enw DOM sero. 777 00:38:34,090 --> 00:38:36,770 Felly DOM sero yn edrych fel a ganlyn. 778 00:38:36,770 --> 00:38:40,730 Gadewch i mi fynd i mewn i cyfeiriadur hwn ac yn agor i fyny domzero.html, 779 00:38:40,730 --> 00:38:44,970 ben sydd â math doc datganiad, gan ddweud yma hon HTML 5. 780 00:38:44,970 --> 00:38:46,440 Ac yn awr dyma tag HTML. 781 00:38:46,440 --> 00:38:47,540 Dyma y tag pen. 782 00:38:47,540 --> 00:38:49,210 A dyma beth sy'n newydd heddiw. 783 00:38:49,210 --> 00:38:52,620 >> Erbyn hyn mae gennym tag sgript tu mewn i'r pennaeth y dudalen. 784 00:38:52,620 --> 00:38:55,290 Ac mae hyn yn ôl pob golwg yn ei wneud ychydig iawn, ond mae rhybudd 785 00:38:55,290 --> 00:38:58,410 fy mod i wedi diffinio sgript, a JavaScript. 786 00:38:58,410 --> 00:39:01,050 Ac wrth fynd heibio, gan fod hyn yn gamsyniad cyffredin, 787 00:39:01,050 --> 00:39:05,220 Mae JavaScript dim byd o gwbl yn ymwneud â Java, yr iaith 788 00:39:05,220 --> 00:39:08,010 bod rhai ohonoch efallai wedi'i ddysgu yn APCs. 789 00:39:08,010 --> 00:39:10,480 Roedd yn fwy o farchnata beth na dim, 790 00:39:10,480 --> 00:39:12,980 marchogaeth y coattails o flynyddoedd Java yn ôl. 791 00:39:12,980 --> 00:39:17,300 Ond mae JavaScript, ddim i'w wneud â Java, dim ond yn yr un modd, ac yn annoyingly, 792 00:39:17,300 --> 00:39:18,480 enwir ddryslyd. 793 00:39:18,480 --> 00:39:21,890 >> Felly dyma yw sut yr ydych yn datgan swyddogaeth yn JavaScript, yn llythrennol yn dweud swyddogaeth, 794 00:39:21,890 --> 00:39:24,556 Yna enw'r swyddogaeth, yna mae unrhyw ddadleuon gallai gymryd, 795 00:39:24,556 --> 00:39:25,530 yn union fel yn PHP. 796 00:39:25,530 --> 00:39:28,990 Troi allan yn JavaScript, un o'r rhai mwyaf swyddogaethau blino sy'n bodoli yw Rhybudd. 797 00:39:28,990 --> 00:39:31,392 Mae hwn ychydig ffenestr sy'n Bydd pop i fyny ac yn rhybuddio chi 798 00:39:31,392 --> 00:39:32,600 i ryw ddarn o wybodaeth. 799 00:39:32,600 --> 00:39:33,766 Mae'n cael ei gwgu arno. 800 00:39:33,766 --> 00:39:35,980 Ond byddwn yn ei ddefnyddio fel ein ymarfer cyntaf yma. 801 00:39:35,980 --> 00:39:37,900 >> Hysbysiad ychydig o nodweddion o JavaScript. 802 00:39:37,900 --> 00:39:41,524 Dyfyniadau sengl a dyfynodau dwbl nid ydynt mewn gwirionedd yn fater anymore. 803 00:39:41,524 --> 00:39:43,690 Dyfyniadau sengl a dwbl Gall dyfyniadau eu cyfnewid, 804 00:39:43,690 --> 00:39:46,220 tra yn C, rhaid i chi ddefnyddio dyfynodau dwbl ar gyfer llinynnau, 805 00:39:46,220 --> 00:39:48,150 ac mae gennych ddau sengl dyfyniadau am chars. 806 00:39:48,150 --> 00:39:51,150 Yn y byd JavaScript, mae llawer o bobl, y rhan fwyaf o bobl 807 00:39:51,150 --> 00:39:54,970 Defnyddiwch dyfynodau sengl amgylch llinynnau dim ond oherwydd ei fod yn beth arddull. 808 00:39:54,970 --> 00:39:58,330 Ond beth yw'r gweithredwr yn ogystal yma, nad ydym wedi ei weld o'r blaen? 809 00:39:58,330 --> 00:39:59,836 >> GYNULLEIDFA: Concatenation. 810 00:39:59,836 --> 00:40:00,960 DAVID Malan: Concatenation. 811 00:40:00,960 --> 00:40:02,450 Felly nid yw hyd yn oed yn cael y C. 812 00:40:02,450 --> 00:40:04,820 PHP gan y gweithredwr dot, sy'n gwneud hyn. 813 00:40:04,820 --> 00:40:09,710 Mae JavaScript y gweithredydd a mwy, sydd ddryslyd yn union fel Java. 814 00:40:09,710 --> 00:40:11,440 Nawr beth sy'n mynd ymlaen fan hyn? 815 00:40:11,440 --> 00:40:14,260 >> Felly dyma lle mae sylfaenol dealltwriaeth o'r llun 816 00:40:14,260 --> 00:40:17,010 rydym yn taflu i fyny cwpl diwrnod yn ôl yn dod i chwarae. 817 00:40:17,010 --> 00:40:19,620 Cofio pan oedd gennym syml fersiwn o HTML page-- 818 00:40:19,620 --> 00:40:20,830 mae newydd ei ddweud, helo byd. 819 00:40:20,830 --> 00:40:22,770 Ac yna rydym dynnu coeden ar y dde, a oedd yn 820 00:40:22,770 --> 00:40:27,320 Roedd criw o petryalau a llinellau eu cysylltu fel coeden deulu. 821 00:40:27,320 --> 00:40:30,820 Felly dyna yr hyn a elwir DOM neu Model Gwrthrych Ddogfen. 822 00:40:30,820 --> 00:40:36,759 Ac mae'n troi allan y gallwch gael mynediad petryalau yn y goeden gyda chystrawen 823 00:40:36,759 --> 00:40:37,550 fel y canlynol. 824 00:40:37,550 --> 00:40:41,370 Yr ydych yn llythrennol yn dweud ddogfen, sef newidyn byd-eang arbennig mewn JavaScript 825 00:40:41,370 --> 00:40:45,890 rhaglen y mae iddo swyddogaeth gysylltiedig ag ef y gallwch gael mynediad 826 00:40:45,890 --> 00:40:50,280 debyg i struct, ond rydych yn syml dweud dot ac yna enw'r y swyddogaeth yn, 827 00:40:50,280 --> 00:40:52,390 cael elfen erbyn ID. 828 00:40:52,390 --> 00:40:55,460 >> Mae'r elfen wyf am ei gael yw yn ôl pob golwg Dyfynnwch enw unquote. 829 00:40:55,460 --> 00:40:57,150 Ac yna yr wyf am gael ei werth. 830 00:40:57,150 --> 00:40:58,330 Nawr rydym yn cael y blaen i ni ein hunain. 831 00:40:58,330 --> 00:41:00,038 Dydw i ddim hyd yn oed yn siwr beth mae hyn i gyd yn ymwneud. 832 00:41:00,038 --> 00:41:03,000 Gadewch i ni ymlaen yn gyflym i'r HTML ar y dudalen, sydd yn super syml. 833 00:41:03,000 --> 00:41:05,370 >> Hysbysu fy mod i wedi diffinio'n a ffurflen i lawr yma. 834 00:41:05,370 --> 00:41:07,940 Rhybudd a dwi wedi ei roi ei fod yn unigryw ID, er nad ydym wedi defnyddio 835 00:41:07,940 --> 00:41:08,870 nodwedd yma o'r blaen. 836 00:41:08,870 --> 00:41:11,300 Ond mae hyn yn bodoli mewn HTML. 837 00:41:11,300 --> 00:41:15,570 Gallwch nodi rhai talp unigryw o HTML gyda dynodwr fel hyn. 838 00:41:15,570 --> 00:41:19,880 >> Hysbysiad nawr this-- troi allan HTML cefnogi, fesul y rhestr golchi dillad 839 00:41:19,880 --> 00:41:22,490 funud yn ôl, yn ei gyfanrwydd criw o trinwyr digwyddiad. 840 00:41:22,490 --> 00:41:25,060 Ac mae hyn yn dweud y digwyddiad trinydd ar cyflwyno. 841 00:41:25,060 --> 00:41:28,730 Ar gyflwyno defnyddiwr o hyn ffurflen, ffoniwch y cod canlynol. 842 00:41:28,730 --> 00:41:31,360 A'r cod sy'n mynd i gael ei alw neu ddienyddio 843 00:41:31,360 --> 00:41:35,260 yn union hyn, mae'r Groeg swyddogaeth ac yna dychwelyd ffug. 844 00:41:35,260 --> 00:41:37,360 Dylai popeth arall fod yn eithaf cyfarwydd. 845 00:41:37,360 --> 00:41:42,050 >> Dyma mewnbwn o destun fath, y mae eu ID, yn yr achos hwn, yn mynd i fod yn enw. 846 00:41:42,050 --> 00:41:45,430 Nid oes gennym enw gwirioneddol priodoledd adeg-- hwn a botwm cyflwyno. 847 00:41:45,430 --> 00:41:48,330 Felly y dudalen sy'n deillio edrych fel hyn. 848 00:41:48,330 --> 00:41:52,890 Ac ymddygiad sy'n deillio, byddwch yn gweld, yn edrych fel hyn. 849 00:41:52,890 --> 00:41:56,940 Mae'r dudalen mae'n cynnal lleol yn dweud, helo David, prin yn ddeniadol 850 00:41:56,940 --> 00:41:58,340 ffordd i gyfarch defnyddiwr. 851 00:41:58,340 --> 00:41:59,950 Ond beth sy'n digwydd mewn gwirionedd? 852 00:41:59,950 --> 00:42:01,360 >> Wel, yn ystyried beth y mae hyn yn. 853 00:42:01,360 --> 00:42:02,310 Mae hwn yn faes testun. 854 00:42:02,310 --> 00:42:04,635 Ac yn ôl y HTML yma, dwi wedi ei roi iddo 855 00:42:04,635 --> 00:42:07,350 a dynodwr unigryw Gelwir dyfyniad unquote enw. 856 00:42:07,350 --> 00:42:09,770 Yn y cyfamser, yr wyf wedi dweud wrth y defnyddiwr yn cyflwyno ffurflen hon 857 00:42:09,770 --> 00:42:13,820 drwy daro Enter neu glicio ar y Submit botwm, ffoniwch y swyddogaeth o'r enw Cyfarch 858 00:42:13,820 --> 00:42:15,410 ac yna dychwelyd Ffug. 859 00:42:15,410 --> 00:42:16,870 Gadewch i ni ystyried y rhai hynny o chwith. 860 00:42:16,870 --> 00:42:20,590 Sylwi pan fyddaf yn cliciwch Cyflwyno, mae'r Nid yw URL y dudalen hon yn newid. 861 00:42:20,590 --> 00:42:22,420 Icon y porwr nid oedd yn dechrau nyddu. 862 00:42:22,420 --> 00:42:27,050 Doeddwn i ddim yn mynd i unrhyw le, a dyna llythrennol, oherwydd dywedais yn dychwelyd Ffug. 863 00:42:27,050 --> 00:42:31,534 Dychwelyd cylchedau neu arosfannau byr Ffug ymddygiad diofyn ffurflen. 864 00:42:31,534 --> 00:42:33,700 Er mwyn i hynny ein gadael gyda hyn yn un cwestiwn olaf. 865 00:42:33,700 --> 00:42:34,764 Beth mae Cyfarch yn ei wneud? 866 00:42:34,764 --> 00:42:36,680 Wel, yn ôl pob golwg Cyfarch yn galw swyddogaeth o'r enw 867 00:42:36,680 --> 00:42:39,250 Rhybudd, yn pasio mewn un ddadl hir dyna 868 00:42:39,250 --> 00:42:43,950 y canlyniad cydgadwyno MT gilydd criw o substrings, helo gofod coma, 869 00:42:43,950 --> 00:42:45,810 Yna, beth bynnag mae hyn yn dychwelyd. 870 00:42:45,810 --> 00:42:51,490 Felly ddogfen yn debyg i fyd-eang amrywiol i'r gwreiddyn y goeden, 871 00:42:51,490 --> 00:42:55,560 yn galw swyddogaeth arbennig, fel arall a elwir bellach fel dull. 872 00:42:55,560 --> 00:42:57,650 Mae swyddogaeth sy'n tu mewn newidyn yn 873 00:42:57,650 --> 00:42:59,640 Gelwir dull yn hytrach na swyddogaeth. 874 00:42:59,640 --> 00:43:01,570 >> Felly, yn cael elfen erbyn ID. 875 00:43:01,570 --> 00:43:03,940 Pa elfen yn ei wneud i chi am gael gan ei adnabod? 876 00:43:03,940 --> 00:43:06,970 Dyfynnwch enw unquote a Yna gwerthfawrogi benodol. 877 00:43:06,970 --> 00:43:12,000 Felly, mewn geiriau eraill, y cod yn syml dod o hyd i'r maes testun y mae ei adnabod yn enw 878 00:43:12,000 --> 00:43:13,380 ac wedyn yn cael ei werth. 879 00:43:13,380 --> 00:43:16,460 Felly, pe bawn yn newid hyn a dweud Davin yn lle David, 880 00:43:16,460 --> 00:43:20,670 a chliciwch Cyflwyno, yn awr rydym yn gael cyfarchiad i Davin. 881 00:43:20,670 --> 00:43:22,890 >> Mae pob hawl, felly pob iawn ac yn dda. 882 00:43:22,890 --> 00:43:25,480 Ond gadewch i ni weld a allwn ni wneud mae hyn ychydig yn lanach ers unig 883 00:43:25,480 --> 00:43:28,190 cod ysgrifennu fel hyn yw yn gyffredinol yn mynd i gael ei gwgu arno. 884 00:43:28,190 --> 00:43:30,060 Mae hyn yn mynd i edrych yn scarier. 885 00:43:30,060 --> 00:43:32,330 Ond beth yw'r cyntaf gwahaniaeth yr ydych yn nodi yma 886 00:43:32,330 --> 00:43:35,970 yn y fersiwn ar wahân i'r enwi yn newid i un DOM? 887 00:43:35,970 --> 00:43:41,110 Beth strwythurol yn edrych yn wahanol am hyn yn erbyn y llall? 888 00:43:41,110 --> 00:43:41,932 Yeah? 889 00:43:41,932 --> 00:43:43,890 GYNULLEIDFA: A yw'r ffurflen ar ben y sgript nawr? 890 00:43:43,890 --> 00:43:46,570 DAVID Malan: Yeah, y ffurflen yw ar ben o'r sgript am ryw reswm rhyfedd. 891 00:43:46,570 --> 00:43:48,736 Felly dyna'r peth cyntaf sy'n fy nharo yn syth, hefyd. 892 00:43:48,736 --> 00:43:50,990 A diolch byth o leiaf, rhan mae hyn yn union yr un fath. 893 00:43:50,990 --> 00:43:53,470 Felly, yr unig beth sy'n ymddangos i fod yn wahanol yn hyn. 894 00:43:53,470 --> 00:43:55,296 >> Felly dyma beth sy'n daclus am JavaScript 2. 895 00:43:55,296 --> 00:43:57,420 Ac mae'n ei gwneud yn anodd deall ar yr olwg gyntaf, 896 00:43:57,420 --> 00:44:00,670 yn enwedig ar gyfer prosiectau terfynol os ydych yn edrych ar cod sampl ar-lein, 897 00:44:00,670 --> 00:44:04,200 ond mae'n boils i lawr i rai nodweddion cystrawennol sylfaenol. 898 00:44:04,200 --> 00:44:06,230 Yma eto yw bod dogfen amrywiol byd-eang. 899 00:44:06,230 --> 00:44:09,540 Yma eto yw y dull neu'r swyddogaeth sy'n dweud yn cael yr elfen trwy adnabod. 900 00:44:09,540 --> 00:44:11,570 Y tro hwn rwyf am cael y ID elwir demo. 901 00:44:11,570 --> 00:44:12,490 Ble yw hynny? 902 00:44:12,490 --> 00:44:15,400 Mae hynny'n debyg iawn yma, mae'r ffurflen ei hun. 903 00:44:15,400 --> 00:44:20,010 >> Ac yn awr yn sylwi bod yn ôl pob golwg os byddaf fynd yn ôl y nod o'r goeden sydd 904 00:44:20,010 --> 00:44:22,940 yn cynrychioli y ffurflen ei hun, nid yw cae testun, 905 00:44:22,940 --> 00:44:26,970 mae'n troi allan y ffurflen, bod nod neu betryal o'r goeden, 906 00:44:26,970 --> 00:44:30,450 Mae gan yr hyn y byddwn yn ei alw'n eiddo, iawn, iawn, yn debyg iawn 907 00:44:30,450 --> 00:44:35,390 mewn ysbryd i struct yn C. 'I' jyst aelod data tu mewn petryal hwn. 908 00:44:35,390 --> 00:44:38,300 >> Felly, yr wyf wedi cael y ffurflen yma, ac rwy'n atodi, 909 00:44:38,300 --> 00:44:44,650 neu dw i'n aseinio, i'w Ar Cyflwyno triniwr neu yn hytrach Ar Cyflwyno eiddo 910 00:44:44,650 --> 00:44:45,740 y swyddogaeth ganlynol. 911 00:44:45,740 --> 00:44:49,000 Ac mae hyn yn, o bell ffordd, mae'r craziest beth hyd yn hyn syntactically. 912 00:44:49,000 --> 00:44:53,610 Mae'n troi allan yn JavaScript ac yn PHP, ac yn ddidwyll o ran hynny yn C, 913 00:44:53,610 --> 00:44:58,990 er nad ydym yn gwneud hynny, gallwch ychwanegwch ddienw, dienw, neu AKA lamda 914 00:44:58,990 --> 00:45:03,000 swyddogaethau nad oes ganddynt enw ond gellir eu galw serch hynny. 915 00:45:03,000 --> 00:45:07,050 >> Felly, yr hyn yr wyf i'n ei wneud yma yw fy mod yn neilltuo Ar hyn Cyflwyno eiddo, a oedd 916 00:45:07,050 --> 00:45:14,330 yw tu mewn nôd hon ar fy goeden DOM, a swyddogaeth, pwyntydd ffwythiant os mynnwch. 917 00:45:14,330 --> 00:45:16,310 Swyddogaeth honno yn cael unrhyw enw, ond nid yw hynny'n 918 00:45:16,310 --> 00:45:19,110 ots oherwydd byddwn yn gweld mewn munud sut i alw iddo. 919 00:45:19,110 --> 00:45:21,780 Pan elwir y swyddogaeth hon, cod hwn yn cael eu gweithredu, yna 920 00:45:21,780 --> 00:45:24,210 ffug yn cael ei ddychwelyd yn union fel o'r blaen. 921 00:45:24,210 --> 00:45:25,800 >> Ond sylwi ar yr hyn yr wyf wedi ei wneud. 922 00:45:25,800 --> 00:45:27,830 Ar y pwynt hwn yn y stori, Mae gen i ffurflen. 923 00:45:27,830 --> 00:45:30,190 'I' got ID unigryw o'r enw demo. 924 00:45:30,190 --> 00:45:33,740 Lawr yma, mae gen i tag sgript sy'n executes y cod canlynol. 925 00:45:33,740 --> 00:45:37,720 Mae'n ei roi ar y nod mewn y goeden iddo sydd ymlaen Cyflwyno 926 00:45:37,720 --> 00:45:40,260 eiddo swyddogaeth hon fan hyn. 927 00:45:40,260 --> 00:45:44,310 A dim ond yn ôl natur y modd y porwyr yn gweithio, pan fyddaf yn awr yn chliciwch Cyflwyno neu daro Chofnoda, 928 00:45:44,310 --> 00:45:45,889 swyddogaeth honno yn mynd i gael eu galw. 929 00:45:45,889 --> 00:45:48,680 Nid oes angen enw oherwydd pwy mae'r Heck gofalu yr hyn y mae'n ei alw. 930 00:45:48,680 --> 00:45:52,540 Yr unig amser y mae'n byth yn mynd i gael Gelwir yw pan fyddaf yn cyflwyno'r ffurflen. 931 00:45:52,540 --> 00:45:55,130 Does dim angen i mi, y datblygwr dynol, 932 00:45:55,130 --> 00:45:57,330 i mewn gwirionedd yn alw yn unrhyw le arall. 933 00:45:57,330 --> 00:46:00,720 >> Nawr, yn union fel ymlid, fel pe bai hynny Nid oedd yn meddwl plygu ddigon, 934 00:46:00,720 --> 00:46:03,330 allwn hyd yn oed yn gwneud hyn edrych yn defnyddio mwy cryptig 935 00:46:03,330 --> 00:46:05,850 llyfrgell super poblogaidd o'r enw jQuery. 936 00:46:05,850 --> 00:46:08,760 Yn wir jQuery a JavaScript yn aml yn cael eu cymysgu. 937 00:46:08,760 --> 00:46:12,790 A beth y byddwn yn ei wneud ar ddydd Mercher yn cychwyn ddefnyddio iaith yma a llyfrgelloedd hyn 938 00:46:12,790 --> 00:46:16,030 i adeiladu fwyfwy asynchronous a cheisiadau deinamig 939 00:46:16,030 --> 00:46:18,950 fel map yn cael geisiadau, ceisiadau 940 00:46:18,950 --> 00:46:22,360 sy'n diweddaru'r webpage yn real amser, yn debyg iawn Facebook neu Gchat 941 00:46:22,360 --> 00:46:27,130 yn ei wneud, ac yn cyfyngu ein hunain mwyach Taro Cyflwyno trwy get neu'r post yn unig 942 00:46:27,130 --> 00:46:27,630 ei ben ei hun. 943 00:46:27,630 --> 00:46:29,055 Felly, byddaf yn eich gweld ar ddydd Mercher. 944 00:46:29,055 --> 00:46:31,805 945 00:46:31,805 --> 00:46:35,550 >> [CHWARAE CERDDORIAETH] 946 00:46:35,550 --> 00:48:09,728