[CHWARAE CERDDORIAETH] DAVID Malan: Dyma CS 50, a mae hyn yn ddechrau wythnos naw. A beth rydym yn meddwl y bydden ni'n ei wneud heddiw Nid yw Dim ond cau'r bennod ar yr wythnos ddiwethaf deunydd lle rydym yn canolbwyntio ar y gweinydd rhaglennu ar y we ochr gyda PHP a SQL, rhai pethau cronfa ddata. Byddwn yn siarad am ychydig o diogelwch heddiw ac yna newid i rhaglennu ochr y cleient iaith a elwir yn JavaScript. Ond yn gyntaf, mae rhai prynedigaeth. Efallai y cofiwch fod ar Dydd Mercher, yr wyf yn gosod allan i ysgrifennu gwefan sy'n Cymerodd yn fewnbwn defnyddiwr gan HTML ffurflen hynny wedyn yn cael ei storio bod enwau mewnbwn defnyddwyr, ffoniwch rhifau, a cellphone cludwyr yn y gronfa ddata. Ac yna roedd rhaid i mi ychydig o orchymyn sgript llinell a ysgrifennwyd yn PHP a oedd i fod i ailadrodd dros y rhesi yn y gronfa ddata ac yn anfon negeseuon testun. Er gwaethaf sawl, sawl ymgais, rydym yn nid oedd yn cael bod gweithio erbyn y diwedd. Felly treuliais yr wythnos gyfan yn gweithio ar y cod i'n cael ni heibio i'r pwynt lle rydym yn gadael i ffwrdd, lle caiff pob Cawn erbyn diwedd Dydd Mercher Roedd hyn yn neges destun o Margo fel yr wyf yn ei chael yn anodd, ac yna neges destun oddi wrth un arall classmate, Rydych chi wedi got David hon. Wedi'i ddilyn gan yr un yma, rhyfeddol galonogol. Cadw ar fynd, galonogol iawn. Rwyf bron yn got it tan then-- ac dyna yw'r nodyn rydym yn dod i ben ar ddydd Mercher. Ac yna mewn gwirionedd efallai fy hoff, eiliad yn ddiweddarach, daeth hyn yn. Damn Live Stream. Felly heddiw, rydym yn atgyweiria hon gyda cyflym edrych ar yr hyn yr wyf wedi ei wneud ers hynny. Felly yr holl o'r cod hwn ar gael lein o wythnos diwethaf, wyth wythnos, cod ffynhonnell. A byddwch yn gweld fy mod yn mynd drwy, ac yr wyf mewn gwirionedd yn glanhau i fyny pethau ychydig. Cyflwynais cwpl arall nodweddion cronfa ddata SQL. Er enghraifft, yn hytrach na dim ond gwneud cludwr o torgoch var fel y credaf fy mod yn gwneud ar y hedfan yr wythnos diwethaf. Rwyf yn lle hynny a ddiffinnir fel hyn a elwir yn enum. Ac efallai y bydd rhai ohonoch wedi gweld hyn wrth i ni archwilio C. enum mewn gwirionedd yn nodwedd o C lle y gallwch cyfrif criw cyfan o cysonion a benodi gwerthoedd awtomatig iddynt, fel un, dau, tri, pedwar heb orfod rhifau cod caled. Felly SQL yn cefnogi yr un fath, lle os gennych faes gronfa ddata yr ydych yn unig am fynd ar un o cyfyngedig gwerthoedd, gallwch llythrennol nodi ei fel y gwneuthum yno am bedair cludwyr cellphone Unol Daleithiau boblogaidd. Felly yr wyf yn gwneud hynny. Ac yr wyf yn gwneud nifer o newidiadau fel yn dda, y mwyaf pwysig o'r rhain oedd i gael e-bost yn gweithio gan fod galw i gof, bod y rhaglen hon yn dibynnu ar ba a elwir yn gyffredinol yn e-bost i Porth SMS, sydd ychydig ffordd ffansi o ddweud bod Verizon, ac AT & T, a Folks eraill yn cefnogi gweinydd, lle os yw'n derbyn e-bost, mae'n troi ei i SMS ac yn anfon testun neges i ffonio rhywun. Felly, os wyf yn gwneud hyn yn gywir, dyma yn fath newydd a gwell sy'n mynd i siarad â cod newydd a gwell, sy'n gallwch chi chwarae gyda ar-lein. A bydd yn gobeithio gwneud fy Canu ffôn mewn dim ond eiliad. Felly, yn gyntaf, yr wyf i'n mynd i deipio yn fy enw i. Yn ail, nid wyf ddim yn mynd i wneud hyn y tro hwn. Rydw i'n mynd i ddim Archwilio Elfen. Ac mae hyn yn unig yw ychydig o beth felly nid wyf yn ei wneud creu oriau o ôl-gynhyrchu yn gweithio fel y gwneuthum y tro diwethaf. Mae yn awr yw fy rhif ffôn. 'N annhymerus' dewiswch Verizon. Ac yma, gadewch i ni droi ar y meicroffon hwn yma, ac yn nod hyn yn fy ffôn yma. Rydw i'n mynd i glicio Cofrestru, a ddylai, gobeithio, ei roi i mewn i'r gronfa ddata. Nawr dw i'n mynd i fynd i'r rhaglen llinell gorchymyn, a oedd yn galw i gof a elwir yn dot slaes testun, ac yn croesi eich bysedd. Yma rydym yn mynd. [Dings FFÔN] [Cymeradwyaeth] DAVID Malan: Felly, yn fwy o hwyl nag this-- mae'n hwyl, wrth gwrs, os byddaf yn mynd i mewn iddo. Ond mae'n fwy o hwyl, yr wyf yn meddwl, os ydym creu un o'r eiliadau movie rheini lle fel rhywbeth gwirioneddol drwg wedi digwydd yn y byd, ac fel yr holl NSA bobl cellphones yn dechrau gwneud sain gyda negeseuon testun eu rhybuddio y ffaith hon. Felly, yr wyf yn meddwl y byddem yn ceisio i ail-greu'r un peth yma, lle peidio â defnyddio cronfa ddata, Rwyf yn lle o flaen llaw Ysgrifennodd rhaglen sy'n edrych fel hyn. Mae hwn yn index.php-- ac yr wyf yn rhoi y cod hwn ar-lein gan well-- sydd yn ôl pob golwg jyst renders form.php, gan ddefnyddio patrwm arddull MVC yr ydym siarad am yn fanylach yn set problem saith. Y ffurflen honno yn eithaf syml. Mae'n mynd i gyflwyno i ffeil o'r enw here.php drwy'r post. Ac mae'n debyg yn mynd i ofyn am enw, a rhif ffôn, ac yna ar hyd yr hyn a elwir yn Dewiswch ddewislen, 'i' mynd i roi i chi o leiaf bedair cludwyr cellphone Unol Daleithiau boblogaidd, ac wedyn yn eich galluogi i effeithiol cymryd presenoldeb drwy glicio yma. Ac yma, yn y cyfamser, yn mynd i benthyg rhai o'r cod o dro diwethaf. Ac os ydych yn unig sgimio hyn, byddwch yn gweld bod yna criw cyfan o wirio gwall. Ond mae'r harddwch ar y diwedd yw bod nid ydym yn ysgrifennu at gronfa ddata heddiw. Rydym yn cadw pethau'n syml ac dim ond anfon allan, gobeithio, neges destun drwy swyddogaeth I Ysgrifennodd dros y dyddiau diwethaf alwad Testun, sydd yn Swyddogaethau. php, sydd ar gael unwaith eto ar-lein. Felly os hoffech chi gymryd rhan yn hyn. Nid ydym yn mynd i gael ei storio unrhyw beth. Ewch i URL hwn yma mewn amser real. Peidiwch â chyflwyno 'i jyst eto, ond gadewch i ni weld a oes modd i ni gael un o'r rhain ffilm eiliadau lle mae cellphone pawb yn dechrau gwneud sain, gobeithio, yn unig unwaith y bydd y flwyddyn hon yn wahanol yn 2011 lle mae hyn yn mynd horribly o chwith. Ac unwaith y byddwch yn mynd i'r cyfeiriad hwnnw, dylech weld ffurflen super syml os oes gennych enw, ffôn cell rif, a'r cludwr cellphone sy'n yn cyfateb i'r rhestr yno, ewch ei flaen a llenwch y ffurflen. Ond nid ydynt yn taro cyflwyno eto. Mae'r ffurflen yn mynd i edrych fel hyn. Mynd yn ei flaen ac yn deipio i mewn eich enw, rhif ffôn. OOP, bydd rhywun yn mynd ar flaen y gad. Mae'n iawn. OK, mae pawb wedi llenwi y ffurflen. Dylai hyn weithio ar ffôn, hefyd, os ydych yn dymuno. Mae pob hawl, ar eich marciau, barod, ewch. Hit Yma. Beth? Rhif Tyngaf i Dduw, yr wyf yn profi hyn heddiw sawl gwaith. Rydych wedi cael ei? [LLEISIAU gosod eu hunain] DAVID Malan: OK, gwall defnyddiwr efallai. Dyna dau. Fe weithiodd am ddwy allan o ychydig gannoedd, tri, pedwar. OK, sy'n dda. Mae pedwar allan o bump ar gyfer cywirdeb beth am. Felly, beth yn union ddigwyddodd? Felly, yn ôl pob tebyg, heb weld eich sgriniau, pam y gallai fod wedi errored? Mae'n debyg ein bod yn unig ceisio gwneud gormod o gysylltiadau i gweinydd post Harvard i gyd yn unwaith o'r un cyfeiriad IP. Im 'jyst yn dyfalu gan na wnes i yn cael y moethus o brofion cod hwn gyda rhai 300 o bobl o flaen llaw ond am nawr yn deall mai y dylai o leiaf wedi gotten y swydd ei wneud y tro hwn. Mae pob hawl, felly pam mae hyn i gyd yn y mwy germane i beth sy'n mynd ymlaen? Wel yn gyntaf, a cyflym cwpl o gyhoeddiadau. Felly un, os hoffech ymuno â Chang, a Nick, ac eraill yn y cinio dydd Gwener yma, gwneud RSVP yn y URL arferol yno. Os ydych yn meddwl am ganolbwyntio mewn neu wneud un uwchradd yn CS, p'un a ydych yn sophomore, neu freshman, neu hyd yn oed yn iau neu'n hŷn ar yr adeg hon ac yn gallu dal i wasgu yn y cyrsiau, sylweddoli bod yr ysgol peirianneg yn crynhoi i Ben am ddim ac Hufen iâ Jerry a chyngor Dydd Mercher yn fuan ar ôl y dosbarth hwn ar 16:00 yn yr adeilad CS yn Maxwell Dworkin. Os yw hyn yn rhy gyflym ar y sgrin, dim ond yn mynd i cs50.harvard.edu am linc i'r digwyddiad Facebook lle gallwch weld rhagor o fanylion. Yn y cyfamser, yr wyf yn meddwl y byddwn yn cywiro un peth arall i mi goofed ddydd Mercher. Ymddangos bod ID Mark ei ar Facebook Nid oedd tri. Yr oedd pedwar. Troi allan yr oedd ganddo fwy o brawf cyfrifon nag yr oeddwn yn cofio. Ond beth mae hyn yn teimlo fel cyfle ei wneud yw i dynnu i fyny o URL fel hyn. Felly, mae'n troi allan bod Facebook yn cael API, Rhyngwyneb Rhaglennu Cais, sydd yn fecanwaith lle i chi Gall ofyn am ddata programmatically ar Facebook a mynd yn ôl peiriant gwybodaeth ddarllenadwy, nid yw tudalennau gwe ond testun yn unig amrwd, rhywbeth Gelwir Nodiant Gwrthrych JavaScript. Ac yn wir, os byddaf yn ymweld â'r URL, ac yn chwyddo i mewn, yn ddiofyn, mae hyn yn Mark yn gyhoeddus gwybodaeth hygyrch. Ac mae'r manylion diddorol yma yw dim ond bod ei adnabod yn wir, rhif pedwar, yr wyf yn sylweddoli cyn gynted ag y gwneuthum hyn. Gallwch wneud hyn eich hun os ydych yn gwybod eich enw defnyddiwr Facebook os oes gennych un. Teipiwch i fyny top yno. A dim o hyn yn breifat. Im 'jyst yn gwneud hyn hyd yn oed yn y modd incognito. Felly dydw i ddim hyd yn oed yn mewngofnodi. A ydych yn gweld fy mod mae'n debyg oedd rhif defnyddiwr 6454 ar Facebook, nad yw'n yn rhy ddrwg y dyddiau hyn. Felly beth bynnag, byddwch hefyd yn gweld gwybodaeth ychwanegol yno. Ac mae'r agwedd defnyddiol o hynny yw bod chi Gallai ysgrifennu eich meddalwedd hun sy'n rywsut yn integreiddio data fel hyn yn eich cais eich hun. Gallwch grymuso defnyddwyr i logio i mewn i'ch gwefan, nad ydynt yn defnyddio eu enw defnyddiwr arfer eu hunain a cyfrinair ond efallai eu Facebook mewngofnodi a chael gwybodaeth hyd yn oed am eu ffrindiau, os ydynt yn cymeradwyo y cyfryw, neu debyg. Felly nodi bod CS50, hefyd, Mae rhai o'i APIs ei hun, un ar gyfer y data catalog cwrs, rhai am y bwydlenni hugs yn y fwyta neuaddau, pob un o'r adeiladau a lleoliadau ar y campws mae gennym API am yn ogystal y gallwch holi yn yr un modd a chael data testunol yn ôl y gallwch integreiddio i mewn PHP, neu JavaScript, neu hyd yn oed, er yn llai cyffredin, a C seiliedig prosiect terfynol. Yn wir ymlaen llaw ar gyfer y rownd derfynol prosiect ychydig o gerrig milltir. Rydych wedi cael e-bost oddi wrthym y dydd o'r blaen. Sylweddoli bod y cynnig yn ddyledus yma Dydd Llun i ddod. Nid yw o reidrwydd yn ei rhwymo, ond i chi oes angen i dderbyn eich cymrodyr addysgu gymeradwyaeth cyn gwneud unrhyw newidiadau wedi hynny. Ac yna ymlaen yn nifer o gerrig milltir eraill. Felly, er mwyn canfod chi, hefyd, gyda rhai posibiliadau, mae gennym griw o y bylbiau golau lliw. Ac mae rhai ohonoch guys yn awr yn cael rhywfaint o o'r rhain yn eich ystafell dorm yn ogystal. Ac maent hwythau hefyd yn cael API. Felly cofio wythnosau bylbiau deuaidd rheini yn ôl y Dan Bradley a Ansel Creu Duff i ni. Maent yn defnyddio rhyngwyneb meddalwedd i bwlb golau hwn, a oedd ar hyn o bryd yn cael ei blygio i mewn i drydan ac yna ar hyd di-wifr ei gysylltu â ychydig yn beth Gelwir y Bont i lawr fan hyn, fel ychydig o perchnogol llwybrydd i'r ddyfais arbennig. Ond mae'n troi allan os wyf yn gwybod sut i anfon negeseuon HTTP, fel yr ydym i gyd yn awr yn ei wneud, Gallaf anfon neges fel hyn i y bwlb golau i droi ymlaen neu i ffwrdd neu wneud unrhyw nifer o gweithrediadau eraill arno. Sylwch nad yw'n ei gael, nid yw'n swydd. Mae un arall o'r enw Rhowch. Mae yna mewn gwirionedd ychydig o ferfau eraill o'r fath. Ond sylwi mae llwybr yno, slaes API, slaes datblygwr newydd, slaes golau, slaes un, slaes wladwriaeth. Dyna ôl pob golwg dim ond y llwybr bod y cwmni, Philips, penderfynodd rhaid i chi daro gyda chais HTTP os ydych am newid y wladwriaeth y bwlb gan ddefnyddio HTTP 1.1. Yna yn sylwi ar y llinell yn wag. Ac yna yn olaf hyn sy'n edrych fel fath o amrywiaeth o ryw fath, mae hyn unwaith eto yn mynd i gael ei alw Nodiant Gwrthrych JavaScript, neu Jason. A hyn a welwch yma yw bod mae tri parau gwerth allweddol. Gelwir Mae un allwedd yn cael ei ar. Ac mae ei werth yn ôl pob golwg yn mynd i fod yn wir. Disgleirdeb yn 128, a oedd yn yn rhyw fath o int. Ac yna amser pontio yn sero, sydd yn ôl pob golwg pa mor hir y mae'n mynd i cymryd i droi'r peth hyn ar. Felly, ar hyn o bryd y bwlb golau i ffwrdd. Ond os wyf yn gwneud yn union this-- adael i mi fynd i'r ddalen dwyllwr bach fod Dan a sefydlwyd yn advance-- ac rwy'n mynd i fynd yn ei flaen a chopïo r yn canlyn archa. Curl, gan fod rhai ohonoch allai fod wedi gafwyd ar CS50 Trafod yn cyfleustodau fel Telnet fath y gallwch efelychu ceisiadau HTTP, rhoi benodol. Gallaf anfon y data hwn, yn benodol yr hyn yr ydym yn unig Gwelodd funud yn ôl yn benodol i'r URL hwn dros yma. Ac yna Curl yn mynd i drin pob un o'r penawdau angenrheidiol a dosrannu yno o. Felly, i gyd yn rhaid i mi ei wneud yw copïo hyn i derfynnell ffenest ac yna daro Chofnoda. Ac mae'r bwlb golau yn mynd ar. Ac mae hyn i gyd yn mynd drwy fy nghyfrifiadur wirelessly rywsut i lawr at y bont, a oedd yn Yna, yn siarad at y bwlb golau. Gallaf wneud rhywbeth arall. Gallaf wneud y peth hyn mynd yn goch er enghraifft. Gallaf er enghraifft wneud y peth hyn yn mynd yn wyrdd. Gallaf ei wneud yn mynd yn las. Ac yn sylwi ym mhob un o'r rhain achosion, i gyd fy mod yn newid yw gwerth lliw hyn a elwir i mewn gwirionedd yn rhoi rhywfaint o liw. Felly, gadewch i mi past yr un yma yn ogystal. Nawr mae'n las. A allwch chi wneud hyd yn oed ffansi where-- pethau gadewch i ni fynd i wyrdd. A gallwn i wneud hyn o cwrs gyda fy cod hun. Ond hyd yn oed y API ei hun yn cefnogi gweithrediadau ffynci fel hyn, a fydd yn awr yn trafferthu ni am y 30 eiliad nesaf. Felly dyna un blas o'r hyn yr ydych efallai ei wneud gyda API, mae hyn yn un sy'n cynnwys bylbiau golau. Nodwch fod CS50 Mae cwpl parau o Google Glass os byddech yn yn hoffi i fynd i'r afael â rhywbeth ar hyd llinellau hynny, Arduino Unos, a oedd yn mae cyfrifiaduron bach bach, yn y bôn, ar fwrdd cylched bach y gallwch gysylltu gwifrau a phethau eraill at a rheoli mewn gwirionedd eich amgylchedd byd go iawn. Ac yna mae yna gwpl teganau o'r newydd sydd gennym. Mae hyn yn un yn llythrennol newydd gyrraedd y Diwrnod arall drwy'r post, mae Myo Armband. Ac yr wyf yn meddwl ei fod yn ffordd o cael chi gyffrous am brosiectau y gallech eu defnyddio gyda byddai caledwedd hwn fydd i chwarae clip byr hwn eu bod yn defnyddio i Folks tynnu ein bod yn awr yn byw yn y dyfodol. [CHWARAE CERDDORIAETH] DAVID Malan: Felly, mewn dim ond ychydig wythnosau, byddwch yn Gall hefyd fod yn y oer yn y ffair CS50. Dyfais arall yr ydym Mae criw o ein bod hapus i fenthyg ar gyfer prosiectau cael ei alw'n rheolwr gynnig. Mae hwn ychydig yn ddyfais USB ydych yn cysylltu i gyfrifiadur sy'n yn eich galluogi i ryngweithio â eich gliniadur, Mac neu PC, fel pe oedd gennych fel Xbox Kinect ac mewn gwirionedd yn gwneud cynigion corfforol llawer fel y gwelwn yn hyn gweledigaeth o'r dyfodol. [CHWARAE CERDDORIAETH] DAVID Malan: Felly hyd yn oed os oes gennych ddim syniad sut mae rhywbeth fel 'na Gellid o bosibl gael eu dyfeisio neu waith ar lefel caledwedd, ni waeth. Hyd yn oed ar ôl dim ond ychydig fisoedd o CS50, a dealltwriaeth o raglennu yn fwy cyffredinol, a rhaglennu ar y we yn fwy yn ddiweddar, ac yna hefyd APIs, a HTTP, byddwch yn cael mynediad trwy APIs meddalwedd os ydych ddim eisiau benthyg un o'r rhain dyfeisiau i siarad mewn gwirionedd iddo a oes rhaid i chi boeni am gweithrediad sylfaenol y manylion, sy'n gwbl gyson â'r syniad hwn o haenu echdyniad yr ydym i wedi a welir drwy gydol y semester. Felly hefyd dros y penwythnos, Gwelodd cwpl o ddarnau o newyddion. Fynd yn gyntaf, ewch i seminarau os ydych hoffai ddysgu rhywbeth mwy am unrhyw nifer o bynciau. Gweler yr URL yno. Ac mae hyn yn un ei anfon i mi gan Chang, sy'n eich adnabod, pwy sy'n argraffu ein byddin o eliffantod. Ac yr oedd pennawd fel a ganlyn. Rwy'n ofn ar fy teledu newydd. Pam gen i ofn i droi hyn Id peth ar a ydych yn rhy. Felly, rydym yn awr yn y rhoi ar y semester, hefyd, lle hyd yn oed os oes gennych y lleiaf o ddealltwriaeth o sut mae'r we yn gweithio, a HTTP, a diogelwch, pethau fel hyn Dylai ddechrau i ddal eich llygad. Ond hefyd, byddwch yn deall a yw'r pethau hyn yn neu nad ydynt bygythiadau gwirioneddol. Felly, yr wyf yn cymryd ychydig o dyfyniadau o'r erthygl hon yma. Ac mae'r stori fel a ganlyn. Rwyf nawr yn berchen ar teledu smart newydd, a oedd yn yn addo i ddarparu ffrydio cynnwys amlgyfrwng, gemau, app, cyfryngau cymdeithasol, a'r rhyngrwyd pori, oh a theledu hefyd. Yr unig broblem yw fy mod yn awr ofn i'w ddefnyddio, medd yr awdur. Byddech yn, hefyd, os ydych yn darllen drwy'r polisi preifatrwydd 46 tudalen ar gyfer eich teledu. Mae swm y data hwn yn casglu peth yn syfrdanol. Mae'n logio ble, pryd, sut, a am ba hyd y byddwch yn defnyddio'r teledu. Mae'n setiau cwcis olrhain, fel yr ydym wedi ei drafod, a beacons cynllunio i ganfod pan fydd gennych Cynnwys penodol gweld neu neges e-bost penodol os ydych am wirio e-bost ar eich teledu. Mae'n cofnodi y apps yr ydych defnyddio, mae'r gwefannau rydych yn ymweld, a sut yr ydych yn rhyngweithio â chynnwys, yn gwneud hynny i gyd trwy gyfrwng eich teledu smart. Mae hefyd, yet-- creepier dyna fy addition-- wedi cael ei adeiladu yn y dirgel gyda chydnabyddiaeth wyneb. Y diben yw darparu rheoli ystum gyfer y teledu ac yn eich galluogi i fewngofnodi i personol cyfrif gan ddefnyddio eich wyneb. Ar y upside, y delweddau yn cadw ar y teledu yn hytrach na llwytho i fyny i weinydd corfforaethol. Ar yr ochr negyddol, y rhyngrwyd cysylltiad yn gwneud y teledu cyfan agored i hacwyr sydd wedi dangos y gallu i gymryd rheolaeth lwyr ar y peiriant. Mwy poeni, fel pe nad oedd hynny'n ddigon smart, yw'r meicroffon. Mae'r teledu yn ymfalchïo mewn llais nodwedd cydnabyddiaeth sy'n galluogi gwylwyr i reoli y sgrin gyda gorchmynion llais. Ond mae'r gwasanaeth yn dod gyda rhybudd braidd ominous. Dylech fod yn ymwybodol, os eich geiriau llafar yn cynnwys personol neu sensitif eraill gwybodaeth, y wybodaeth Bydd ymhlith y data eu dal a drosglwyddir i drydydd parti. Got hynny? Peidiwch â dweud bersonol neu sensitif stwff o flaen eich teledu. Felly, mae hyn mewn gwirionedd ar gyfer go iawn. Ac mae'n anodd peidio i weld a ydych ewch i Prynu Gorau neu debyg i setiau teledu y dyddiau hyn. Maen nhw i gyd yn smart mewn rhyw ffordd. Ac eu bod yn cael gallach ac yn creepier. Ac maen nhw'n syml, casglu data mewn ffyrdd yr ydym wedi siarad am ac yna llwytho i fyny ei trwy HTTP neu brotocol arall i rai gweinydd. Felly roedd hwn o erthygl hwyl yn y wefan hon ar-lein yma, a soniai am bug penodol neu cod camgymryd y gallwn clymu mewn gwirionedd i mewn i drafodaeth yr wythnos diwethaf. Felly pennawd hwn fel dilyn, mae'r stori yn mynd fan hyn, Gweithiodd Josh Breckman am cwmni sy'n ennill contract i ddatblygu rheoli cynnwys system, neu CMS ag y maen nhw'n gelwir, ar gyfer gwefan eithaf mawr y llywodraeth. Mae llawer o'r prosiect yn cynnwys datblygu system rheoli cynnwys fel y byddai gweithwyr yn yn gallu creu a chynnal y sy'n newid cynnwys ar gyfer eu safle. Aeth pethau'n eithaf da am ychydig ddyddiau ar ôl mynd yn fyw. Ond ar ddiwrnod chwech, nid aeth pethau cystal. Yr holl gynnwys ar y Gwefan wedi diflannu yn gyfan gwbl. Ac mae pob tudalen wedi arwain at 'r ball, nodwch gynnwys y tudalen we. Wps. Roedd Josh galw i mewn i ymchwilio a sylwi bod un arbennig o drafferthus cyfeiriad IP allanol oedd mynd i mewn ac yn dileu pob un cynnwys ar y system. Nid oedd y cyfeiriad IP oedd yn perthyn i ryw plygu haciwr dramor ar ddinistrio ddefnyddiol wybodaeth gan y llywodraeth. Mae'n Penderfynodd googlebot.com, Gwe pry cop cropian Google hun. Wps. Ar ôl ychydig o ymchwil a sgrialu o gwmpas i ddod o hyd i backup noncorrupt, Canfu Josh y broblem. Mae defnyddiwr wedi copïo a gludo rhywfaint o gynnwys o un dudalen i un arall, gan gynnwys mae Golygu Hyperlink i olygu'r cynnwys ar y dudalen. Fel arfer, ni fyddai hyn yn mater ers defnyddiwr allanol fyddai Mae angen i fynd i mewn enw a chyfrinair, ond mae'r system dilysu CMS, y system mewngofnodi, nid oedd yn cymryd i ystyriaeth hacio soffistigedig technegau Google Spider. Wps. Fel mae'n troi allan, Google Nid Spider yn defnyddio cwcis, sy'n golygu ei fod yn gallu hawdd osgoi siec am y ei chofnodi ar y set cwci ei bod yn ffug. Nid yw chwaith yn talu sylw i JavaScript, a fyddai fel arfer yn brydlon ac yn ailgyfeirio defnyddwyr nad ydynt wedi mewngofnodi. Fodd bynnag, yw'n dilyn pob hyperlink ar bob tudalen mae'n ei chael, gan gynnwys y rhai ag Dileu Tudalen yn y teitl. Wps. Felly beth mae hyn yn ei olygu mewn mwy termau technegol ond yn weddol hygyrch? Mae'n jyst yn golygu bod drwy gydol eu gwefan, roedd ganddynt URLs nid annhebyg yr un yma sy'n efallai y byddwch yn gweld yn broblem a osodwyd saith. Dwyn i gof yn y broblem a osodwyd saith neu yn gwybod yn broblem yn gosod saith eich bod yn herio, ymysg pethau eraill, i werthu stociau ar ran defnyddwyr. Ond yn gweithredu y nodwedd honno trwy o fynd drwy hypergysylltiadau yn eich defnyddiwr rhyngwyneb, yn ôl pob tebyg Nid yw'r syniad smartest oherwydd os yw eich safle yn rywsut hygyrch naill ai gan ddynol pwy sy'n glicio o gwmpas neu brynu bot fel Google neu Spider gan eu bod nhw'n gelwir mai dim ond cropian y we yn ceisio mynegai y we fel peiriant chwilio, gallent yn hawdd iawn taro drwy gael y math hwn o URL. A dyna yn swyddogaethol cyfateb i, yn yr achos hwn, gwerthu pob cyfrannau o Google. Nawr dweud y gwir, mae'n gwbl asinine bod y CMS defnyddio JavaScript a cwcis i weithredu ei system mewngofnodi ac beidio â gwneud hynny ochr y gweinydd, fel chi guys yn ei wneud a fydd yn ei PSet 7-- mae 'na login.php file-- bob amser, bob amser, bob amser ddylai diogelwch fod yn wneud ar yr ochr gweinydd, Nid ar yr ochr y cleient oherwydd, gan fod hyn yn erthygl yn awgrymu ac efallai i chi eich hun gweld ar ryw adeg, mae'n ddibwys i ddefnyddiwr, da neu ddrwg, i jyst chordda off JavaScript heb sôn cwcis. Felly dyna yw eich WTF bob dydd. Mae un yn fwy, a oedd yn yn unig fath o frawychus, felly byddaf yn sôn amdano os Dim ond fel gwers bywyd. Pryd bynnag y byddwch yn defnyddio cais Gelwir fel Snapchat neu debyg sy'n dweud lluniau hyn ond yn para am bum eiliad, deg eiliad, neu whatnot. Maen nhw'n fyrhoedlog Hynny yw hollol nid yw'r achos. Fel nad oes modd, yn ddigidol, i weithredu rhyw fath o fideo, neu ddelwedd, neu destunol rannu o'r fath bod derbynnydd ar y pen arall Ni all rhywsut achub y data. Yn y ffordd fwyaf naïf, rhywun Gallai cymryd eu ffôn. Ac mae ganddynt 10 eiliad ffenestr tra'n edrych ar rai snap i ddim ond yn cymryd rhyw ffôn arall a dynnu llun iddo, yn amlwg. Felly gallwch gadw rhywbeth yn ddigidol y ffordd honno. Mae rhai ohonoch yn gwybod sut i gymryd screenshots ar eich ffôn. Yn wir, os nad ydych yn gwybod hyn, yn sylweddoli bod o leiaf Snapchat, ac yr wyf yn meddwl eraill ceisiadau y dyddiau hyn, o leiaf yn gwybod i chi os yw'r derbynnydd wedi mewn gwirionedd cymryd a screenshot o eich delwedd. Ond yn waeth hyd yn hyn, dyma oedd y snappening, fel rhywun fathwyd yn ddiweddar, lle mae rhai 100,000 Roedd snaps ei ryddhau yn hyn a elwir yn ffeil torrent ar wefannau amrywiol yn y pen draw. Ac roedd y rhain yn cynnwys criw cyfan o negeseuon preifat a swyddi. Mae'n troi allan y rhan fwyaf ohonynt yn anfalaen, felly nid yr hyn y gallech ei ddisgwyl. Ond am fod pobl yn cael Defnyddir wefan trydydd parti, logio i mewn gyda'u Snapchat enw defnyddiwr a chyfrinair ac yna gan arbed eu holl snaps ar y wefan trydydd parti. Ac yr oedd y trydydd parti gwefan sy'n ei hacio, mae rhywun yn unig yn golygu cyfrifedig gwybod sut i gael yr holl 100,000 a mwy o ddelweddau rhai yn eu 'n anawdd cathrena hunain ar gyfer rhannu dilynol. Dweud y gwir, yma hefyd, ei fod yn fath o asinine bod Snapchat yn cael ei weithredu yn y fath fodd sy'n Gall trydydd parti didoli o rhyngdoriad y data ac nad yw'n ynghlwm wrth eich cais ei hun yn rhedeg ar y ffôn. Ond yma, hefyd, yn sylweddoli bod y rhain Ni ddylai pethau dal i chi gan syndod, neu o leiaf dylai fod fod yn wers bywyd yn fan hyn. Os hoffech y technegol manylion, ewch i'r URL yno dyna mewn sleidiau heddiw. Mae pob hawl, unrhyw gwestiynau ar gwersi bywyd heddiw yn CS? Trowch hynny off. Unrhyw beth o gwbl? Unrhyw beth o gwbl? Mae gen i lawer o bobl yn gwirio eu Snapchat neu rywbeth nawr. Mae pob hawl, felly SQL, Iaith Ymholiad Strwythuredig. Gadewch i lapio hyn. A hefyd, er bod rydym yn jyst grafu wyneb o hyn iaith, byddwn yn rhoi i chi digon o'r iaith ar ffurf PSet 7 fel y gallwch fynd i'r afael â rhai functionality weddol gyffredin. Ond yn sylweddoli mae yna gwpl pethau nad ydym yn ei gwneud yn ofynnol i chi, ond maent yn mynd i fod bwysig dod prosiectau terfynol ac yn sicr yn dod yn gwneud gwir gwefannau gyda defnyddwyr gwirioneddol yw penderfyniad dylunio hwn. Mae'n ymddangos bod yn cronfa ddata MySQL, rydych cael tusw o ddewisiadau tebyg y mathau data ar gyfer eich colofnau a phethau eraill, ond rydych hefyd yn cael y dewis o storio hyn a elwir yn peiriant ar gyfer eich holl data, y math o system ffeil, os ydych yn gyfarwydd, ar gyfer eich holl ddata. Pa fformat mae'n cael ei storio yn y pen draw? A'r mwyaf cyffredin, efallai, wedi bod MyISAM a InnoDB, termau technegol y byddwn yn poeni am dim ond i'r graddau bod un wedi ac nad yw un yn cael y nodwedd ganlynol. Tybiwch fod gennych ychydig o oergell dorm. Ac yn debyg bod chi a'ch roommate, sy'n rhannu'r oergell hwn, yn wirioneddol hoff o laeth dweud. Ac mae hyn yn, mewn gwirionedd, sut mae'r stori dywedwyd wrtho i mi ffordd yn ôl yn y dydd pan fyddaf yn cymryd cwrs Gelwir CS 161 Systemau Gweithredu, sy'n yn yr un modd archwilio'r pwnc hwn. Felly, mae gennych oergell hwn. Ydych allan o laeth. A ydych yn dod adref, eich roommate yn dal i fod yn y dosbarth neu beth bynnag, ac y byddwch yn penderfynu fy mod i'n mynd i fynd allan a chael ychydig o laeth. Felly, byddwch yn cau'r oergell, lockup yr ystafell dorm, ewch ar draws y stryd i CVS neu ble bynnag, ac yn cael yn unol i brynu ychydig o laeth. Yn y cyfamser, eich roommate yn cael cartref o ddosbarth, yn mynd i mewn i'r ystafell dorm, agor yr oergell, hefyd yn sylweddoli ooph, rydym yn allan o laeth. Felly, ef neu hi yn cau'r oergell ac yna'n digwydd i fynd i'r CVS arall, sy'n digwydd bod yn un bloc i ffwrdd oddi wrth y CVS eraill yn y sgwâr, ac yn mynd yn unol yno i gael ychydig o laeth. Yn awr, wrth gwrs, ychydig funudau yn ddiweddarach, y ddau ohonoch yn mynd yn ôl, ac yn waeth na dim posibl canlyniadau wedi digwydd. Y ddau ohonoch yn cael llaeth. Ac nid ydych yn ei wneud mewn gwirionedd fel llaeth bod llawer. Felly, un ohonynt yn unig mynd i sur ar ryw adeg. Felly, yn awr mae gennych swm gormodol o laeth yn yr oergell i gyd oherwydd pam? [Anghlywadwy] DAVID Malan: Yeah, na wnaethoch chi rhywsut yn cyfathrebu â'i gilydd eich bod yn cael llaeth. Felly, yn y symlaf o ffyrdd yn y byd dynol, sut y byddwch yn osgoi hyn gwirion sefyllfa o'r fath rhag digwydd eich bod dim ond gydag un pen draw. Eu neges destun, ie yn dda. Ond sut arall? Nodiadau Post-it. DAVID Malan: Nodyn Post-it. Unrhyw ffurf ar gyfathrebu sy'n dweud wrth eich roommate peidiwch â mynd i mewn i'r oergell am laeth. Rydw i'n mynd i fynd ailstocio ar fy mhen fy hun. Felly rydych rhywsut angen i gloi adnodd hwn. Felly, gallwn wneud this-- gallwn fath o ddifetha y stori ac yn troi i mewn i stori CS lle feddwl am hyn fel union fel amrywiol, sy'n cael ei storio rhywfaint o werth. Ac ar hyn o bryd, mae'r gwerth y llaeth yn sero, nad ydych am i'ch roommate i arolygu hwnnw newidyn ac yna'n gwneud penderfyniad ei hun yn seiliedig ar gyflwr y newidyn os ydych yn y broses o newid cyflwr y newidyn. Felly un o'r llinellau o SQL yr ydym rhoi i chi mewn PSet 7 fanyleb yw hyn yn un yma. Ac nid ydym yn gwario enfawr faint o amser yn siarad am y peth. Ond mae'n troi allan, os ydych yn ceisio i brynu stoc mewn cyllid CS50 eich bod eisoes rhai cyfrannau o, rydych am fod yn gallu gwneud nifer o bethau ar unwaith at ei gilydd. Ydych am fod yn gallu yn effeithiol, ar lefel uchel, gwirio pob hawl, os ydw i eisiau i brynu mwy o Free cyfranddaliadau, y stoc ceiniog yr ydym yn siarad am yn y fanyleb, Rwyf eisiau cyfrif cyntaf faint o gyfranddaliadau sydd gen i. Ac mae'n debyg ei fod yn bump. Ac yn debyg Rwyf am prynu 10 yn fwy, yr wyf yn y pen draw am gael 15 o gyfrannau o stoc. Felly, rhaid i mi ofyn dau gwestiwn. Beth yw cyflwr y newidyn? Beth yw cyflwr y rhes? Faint o gyfranddaliadau ydw i'n ar hyn o bryd? Yna byddwch eisiau mynd ymlaen ac yn ei ddiweddaru. Felly dyna yw'r analog i'r llaeth yn y byddwch yn edrych ar y rhes, ac yna rydych am ei diweddaru oherwydd os ydych chi am brynu 10 cyfranddaliadau, nad ydych am i newid y rhes i 10, yr ydych am ei newid i 5 ynghyd â 10 neu, wrth gwrs, 15. Mae'r llinell o god yn sicrhau bod y ddau syniadau cysyniadol yn digwydd gyda'i gilydd neu ddim o gwbl. Nid oes unrhyw un, gan gynnwys rhai defnyddiwr arall sydd wedi logio i mewn i'r un wefan, all ymyrryd rhywsut gwirio y rhes a diweddaru y rhes, mae'r dewis ac yn y diweddariad os mynnwch. Ac nid yw'r gystrawen yn super amlwg, ond mae hyn yn un llinell, hir yw ei fod, yn sicrhau bod y ddau gweithrediadau edrychwch ar y amrywiol neu wirio y rhes a diweddaru'r rhes yn digwydd atomically. Oh dyma ni unwaith eto. Neges destun ar fy ffôn. Felly, gadewch i ni wneud hwn ychydig yn fwy cadarn. Tybiwch nad ydych yn gweithredu oergell, ac nid ydych yn gweithredu PSet 7 ond mae banc go iawn, neu ATM, mae Teller Awtomataidd Machine, lle byddwch yn rhywsut eisiau gallu i rymuso defnyddwyr i drosglwyddo arian o un cyfrif i'r llall. OK, hongian ar. Rydw i'n mynd i mute hyn yn awr, diolch i chi. Felly, rydym am symud arian o un rhif y cyfrif i gyfrif gwahanol rif, yn benodol 100 $. Felly mae hwn yn fath o mympwyol enghraifft, lle i chi, y ATM, Efallai awyddus i weithredu dau SQL ymholiadau, tynnu o un cyfrif, ac yn ychwanegu at y cyfrif arall. Ond yr ydych am sicrhau bod y rhain dwy linell yn digwydd neu ddim o gwbl. Nid ydych am rywbeth cael torri. Nid ydych yn gwneud rhywfaint o guy drwg smart rywsut yn sefyll ar Bank of America gyda dau ATMs o flaen ohono a rhywsut math o teipio yn y gorchmynion ar yr un pryd, gobeithio, yn ceisio ddidynnu $ 200 yn lle hynny o $ 100 a dim ond yn cael $ 100 gredydu. Yn fyr, yr ydych eisiau i hyn ymddwyn yn union fel y byddech yn disgwyl. A'r ffordd yr ydych yn ei wneud mae hyn yn SQL gronfa ddata yn ydych yn lapio yn yr hyn sy'n Gelwir trafodiad. Llythrennol mewn SQL, gallwch ffonio CS50 yn swyddogaeth ymholiad gyda dyfyniad unquote cychwyn trafodiad. Yna gallwch gyflawni unrhyw rif o ymholiadau SQL dilynol, ond nid oes yr un ohonynt yn cymryd effaith ar y gronfa ddata hyd nes y byddwch yn galw ymholiad dyfyniad unquote ymrwymo, os eto gan ddefnyddio PHP. Ac fel hyn, gallwch sicrhau y hyd yn oed os oes gennych 1,000 o ddefnyddwyr i gyd taro eich cronfa ddata ar yr un pryd, SQL Bydd yn addo bod y rhain Bydd dau ymholiadau yn rhoi ar waith un i'r dde ar ôl y llall. Felly, nad ydych yn darfod i fyny gyda mwy na llaeth neu y swm anghywir, yn y pen draw, o arian. Felly cadwch hyn mewn cof, nid cymaint am PSet 7 ond ar gyfer prosiectau terfynol os ydych mewn gwirionedd ceisio symud data o gwmpas ar draws tablau fel y gallech chi yma. Ond efallai hyd yn oed yn symlach ac yn fwy amlwg i ddeall ag enghraifft yw hyn yn un yma. A rhywun yn ei e-bostio i ni am mae hyn dim ond y diwrnod o'r blaen pan welodd rhywbeth tebyg ar-lein. Felly, hyd y gwn i, mae'r system pin nid yw'n agored i ymosodiad hwn. Ac nid oes gennyf syniad os yw'n hyd yn oed yn defnyddio y gronfa ddata SQL o dan y cwfl. Ond gadewch i ni ddefnyddio ar gyfer mwyn drafodaeth. Dyma y sgrîn sy'n Folks Harvard yn tueddu i weld pryd fewngofnodi i mewn gyda'u Rhif Harvard ID a'u pin. Ac mae'n debyg bod y system pin oedd weithredu yn PHP a gyda MySQL cronfa ddata, mae'r cod bod rhywun flynyddoedd efallai wedi ysgrifennu yn ôl Gallai edrych fel hyn. Yn gyntaf, ddatgan Gelwir enw defnyddiwr amrywiol. A dim ond yn cael hynny o y superglobal POST. Yna cael newidyn arall Gelwir cyfrinair a gwneud yr un peth. Ac yna dim ond gweithredu hwn ymholiad hir yma, dewiswch seren gan ddefnyddwyr lle enw defnyddiwr hafal fath ac o'r fath a chyfrinair yn cyfateb o'r fath ac o'r fath. Sylwch fod y cyrliog bresys Rwyf wedi defnyddio yma ond yn golygu i PHP, ewch ymlaen a rhodder gwerth y ddau rheini newidynnau iawn yno. Dydyn nhw ddim gwbl angenrheidiol, ond maent yn tueddu i osgoi gwallau cystrawen cynnil. Felly, mae hyn yn edrych yn gwbl gywir ar yr olwg gyntaf. Ac y mae. Gallech weithredu'r system pin yn y modd hwn. Ond mae'n debyg bod super fyfyrwyr smart a maleisus cyfraniad hwn fel ei pin. Felly dwi wedi cael gwared ar y bwled arwyddion yma yn y ffug i fyny, ac rwyf wedi datgelu gwirionedd yr hyn y gallai ef neu hi fod yn teipio. Ac mae'n ychydig yn rhyfedd. Ond yr hyn yn neidio allan ar chi ar o bosibl worrisome am fewnbwn y defnyddiwr, hyd yn oed os nad oes gennych syniad beth trawiad ar y pigiad SQL ei olygu. Pam mae hyn yn edrych yn ychydig yn bysgodlyd? Beth sy'n bod? [Anghlywadwy] DAVID Malan: Y neu'n ychydig yn amheus. Yn wir, dyna air allweddol o SQL. Felly, nid yw hynny'n argoeli'n dda. Mae'r ffaith fod yna yr holl dyfyniadau sengl yma there-- yn wir, un o'r rhai hawsaf ffyrdd i dorri rhai cronfeydd data yw drwy deipio enw fel O'Reilly sydd â collnod ynddo oherwydd os bydd y bobl a ysgrifennodd y cod y tu ôl i'r llenni nid yw'n cymryd i ystyriaeth fod yna Efallai fod dyfyniadau sengl mewn defnyddiwr mewnbwn, ac ef neu hi yn defnyddio dyfyniadau sengl yn eu cod, gall pethau drwg yn digwydd. Yn wir, yn waeth hyd yn hyn, yn ystyried hyn. Pe unwaith eto roedd hyn yn y cod bod rhywun yn flynyddoedd Harvard yn ôl ysgrifennodd am y pin system, sylwi ar beth sy'n ar fin cael amnewidiwyd am enw defnyddiwr a chyfrinair os bydd y mathau o ddefnyddwyr mewn eto skroob wrth i'w enw defnyddiwr ac yna un, dau, tri, pedwar, pump, dyfyniad neu ddyfynbris unquote un gydradd dyfynnu un. Ac yn sylwi ar yr hyn sy'n allweddol dyma yw'r defnyddiwr wedi peidio ddechreuodd eu cyfrinair neu eu pin gyda dyfyniad. Ac nad ydynt wedi dod i ben ei gyda dyfyniad am ei fod yn tybio bod os bydd y Nid yw rhaglennydd mor finiog, maent yn mynd i gael y rheini dyfyniadau sengl yn eu cod. Felly dyma y cod. Ac yn lle hynny allai ddigwydd yn awr yw hyn. Ac yr wyf wedi tanlinellu beth mae'r defnyddiwr wedi teipio i mewn. Felly, cyn, ar ôl. Ac yn sylwi ar beth sydd ychydig yn worrisome nawr am yr hanner dde yr hwn cod SQL? Mae'n ychydig yn fwy cymhleth, rhaid cyfaddef, na'r ymholiadau rydym wedi gweld. Ond ni all hyn o bosibl fod yn beth da os ydych yn gan ddweud dewis seren, sy'n dewis popeth o dabl y defnyddiwr lle mae enw defnyddiwr hafal skroob a cyfrinair yn cyfateb i un, dau, tri, pedwar, pump neu un yn dychwelyd un. Beth yw'r goblygiadau rhesymegol o'r cymal olaf yn ôl pob tebyg? Mae'n wir yn unig bob amser. Ac am ein bod yn fath o wedi dyfalu neu cyfrifedig allan trwy brofi a methu bod y rhaglennydd sy'n Ysgrifennodd Nid cod hwn wnaeth rhagweld person dynol neu ddrwg teipio mewn dyfynodau sengl, yn ogystal, gallwn syntactically cwblhau'r ymholiad SQL gyda rhywbeth disynnwyr ond rhywbeth y yn syntactically anghywir sydd bob amser yn gwerthuso i gwir. Felly, os y cod hwn yn cael ei ddefnyddio i ateb y cwestiwn cywir neu anghywir dylai yn cael ei ganiatáu y defnyddiwr hwn i basio, mae'r ateb yn cael ei bob amser yn ôl pob golwg yn mynd i fod yn wir gan fod hyn bob amser yn mynd i ddewis rhywbeth o'r gronfa ddata oherwydd bod un wrth gwrs bob amser yn cyfateb i un. Felly beth yw'r ateb? Yn dda mewn PSet 7, rydym yn mewn gwirionedd osgoi hyn i gyd gyda'i gilydd. Rydym yn rhoi swyddogaeth ymholiad i chi, ac yr ydym yn eich annog i ddefnyddio marciau cwestiwn fel bachau, tebyg mewn ysbryd i printf yn% s, ond yr hyn sy'n allweddol am y marciau cwestiwn yma yw os ydych mewn gwirionedd yn darllen trwy functions.php, lle mae ein swyddogaeth ymholiad yn cael ei weithredu, marciau cwestiwn y rhai a ddihangodd, lle mae unrhyw beth allai fod yn beryglus fel un dyfynbris yn cael ei droi i mewn i dyfyniad sengl dianc. Felly, mae hyn yn beth sy'n 'n sylweddol yn digwydd os ydych yn defnyddio swyddogaeth ymholiad CS50 neu unrhyw rif o lyfrgelloedd am ddim trydydd parti sy'n wneud yr un peth. Nid yw'n fater yn yr achos hwn, yn wyrdd, os yw'r defnyddiwr wedi teipio mewn un dyfynbris oherwydd bod yr ymholiad swyddogaeth yr ydym yn ysgrifennu yn mynd i ychwanegu backslashes cyn unrhyw dyfyniad o'r fath yn beryglus. Felly, nid yw hyn yn, yn gwirionedd, yn mynd i fod yn legit. Mae hyn yn debyg i deipio mewn crazy chwilio cyfrinair dyna, wrth gwrs, ddim yn mynd i fod cyfrinair gwirioneddol skroob yn. Felly, mae'r bwyd parod ar gyfer CS50 yn un, hollol bob amser yn defnyddio rhywbeth fel swyddogaeth ymholiad CS50 yn neu'r llyfrgell sylfaenol, sy'n digwydd i gael ei alw PDO. Ond byth, byth, byth yn gwneud cod fel hyn heb ddianc neu sgwrio fel maen nhw'n dweud eich mewnbwn. A byddwch ar ryw adeg yn ôl pob tebyg yn dod ar draws rhai gwefan fel hyn. Yn wir, mae'n ymddangos i fod yn wir fel mewn meysydd awyr a gwestai mewn mannau lle mae ganddynt Wi-Fi am ddim mynediad sydd yn rhaid i chi logio i mewn, gwefannau hyn bob amser rhoi ar waith ofnadwy. Ac felly rhyw fath o hwyl yn ymarfer gartref, nid at ddibenion maleisus neu fwy o hwyl ar y ffordd ymarfer corff, ydy at jyst deipio collnod, dyfyniad sengl, i ffurf ar rai wefan a gweld beth sy'n digwydd. Ac os bydd y gweinydd damweiniau neu'n rhoi chi ryw fath o neges gwall, gall fod yn dda iawn yn y Nid yw rhywun wedi rhagweld hyn. Ac yna dylech rybuddio'r briodol awdurdodau ac yn mynd ymhellach. Felly nawr dylech guys gobeithio, deall ychydig mwy o geek hiwmor yma. [Chwerthin] DAVID Malan: Rydych yn gwybod eich bod yn geek. Ar gyfer y nifer nesaf flynyddoedd, byddwch yn cofio sydd ychydig Tablau Bobby yw oherwydd y cartŵn hwn yn fan hyn. Felly cadwch hynny mewn cof wrth i ni cyd-destun newid un tro olaf heddiw i JavaScript. Rydym wedi treulio cymharol fach amser ar y gystrawen o PHP am ei fod mewn gwirionedd super debyg i C. Ac yn ddigon 'n glws, JavaScript yn rhy yn super debyg i cystrawen C yn yn ogystal â byddwn yn gweld yn dim ond hyn o bryd ac wrth i ni chi helpu gweler yn ddiweddarach yr wythnos hon yn arbennig. Beth allwch chi ei wneud gyda'r iaith hon, fodd bynnag, yn oed yn fwy pwerus, yn enwedig gyda APIs. Ond yn gyntaf taith gyflym. Felly un, yn JavaScript, mae dim prif swyddogaeth, sy'n neis. Fel gyda PHP, gallwch ysgrifennu cod. Amodau edrych fel hyn. A allai ymadroddion Boole edrych fel hyn neu fel hyn. Switsys yn bodoli, ac maent yn Gallai edrych fel hyn. Pedwar dolenni yn edrych fel hyn. Tra bod dolenni yn edrych fel hyn. Ydych Whiles edrych fel hyn. Ac yna araeau edrych fel hwn, yn debyg iawn i PHP. Ond yn sylwi, fod yn JavaScript i chi datgan newidyn nid gyda doler llofnodi, nid gyda math data ond yn llythrennol drwy ddweud var am amrywiol ger ei fron. Mae hefyd yn cael ei deipio llac yn bod ganddi mathau, ond nid ydych yn datgan yn benodol iddynt. Ac yna llinyn, er enghraifft, gallai edrych fel hyn, y llinyn s yn cael ei alw yn yr achos hwn. Ac yna gwrthrych. A byddwn yn gweld mwy o hyn cyn bo hir. A gwrthrych o bosibl yn un o'r gweld strwythurau data yn fwyaf cyffredin mewn JavaScript seiliedig rhaglen oherwydd ei fod yn caniatáu chi i gysylltu fympwyol parau gwerth allweddol yn unig fel araeau cysylltiadol PHP yn ac yn union fel eich bwrdd hash eich hun neu roi cynnig wrth i ni roi ar waith ychydig wythnosau yn ôl. Felly gadewch i ni mewn gwirionedd yn gweld beth gallwn ei wneud gyda JavaScript. Ac yn benodol, mae hyn yn rhestr golchi dillad o nodweddion bod porwyr wedi bod yn ein galluogi i bachyn JavaScript i mewn i gwefan yn y ffordd ganlynol. JavaScript cael ei ddefnyddio yn aml fel ochr y cleient iaith sgriptio. Dyw hi ddim yn llunio. Mae hefyd yn cael ei ddehongli. Ond yn wahanol PHP, sydd wedi bod yn rhedeg ar y gweinydd, yn y gweinydd gwe, neu y tu mewn dwfn y cleientiaid, JavaScript yn wahanol gan ei fod yn fel arfer yn rhedeg yn y porwr. Felly unrhyw god JavaScript i chi ddechrau ysgrifennu am PSet 8, neu eich prosiect terfynol, neu yn y byd go iawn yn mynd yn gyffredinol i gael eu cadw ar y gweinydd, yn hollol mewn HTML neu dot dot JS am ffeil JavaScript. Ond mae'r porwr yn mynd i'w lawrlwytho bod JavaScript cod at eich achos eich hun o Chrome, neu IE, neu Firefox, neu beth bynnag. Ac mae'r cod yn mewn gwirionedd yn mynd i gael ddienyddio tu mewn i'ch porwr eich hun. Dim ond er mwyn gwneud hyn yn fwy real, gadewch i ni weld hyn ar ffurf concrid. Nid oes gennym unrhyw syniad beth y cod hwn yn ei wneud heb wir yn darllen drwyddo. Ond gadewch i mi fynd i Facebook.com heb fewngofnodi. Gadewch i mi fynd i Archwilio Elfen a mynd i, gadewch i ni ddweud, Rhwydwaith a Reload y Dudalen. A byddwn yn see-- gadewch i mi symud Reload y Dudalen i gael yr holl geisiadau i'r newydd. A'r cyntaf iawn file I weld yw CSS, CSS. Dyma y tro cyntaf JavaScript ffeil, ac mae gennyf unrhyw syniad beth mae hyn yn ei wneud, ond yma yw rhai o'r cod JavaScript sy'n gyrru Facebook. Dyw hi ddim hyd yn oed yn wirioneddol fod datgelu i chwyddo i mewn. Mae'n dal i fod yr un mor hurt. Ond byddwch yn gweld hyd yn oed i lawr isod, mae hyd yn oed mwy o'r hyn ffeiliau JavaScript. Wps. Mae hynny'n ping. Gadewch i ni fynd i lawr ychydig ymhellach, ymhellach, ymhellach. Mae un. Mae un. Mae un. Felly, er bod Facebook, y tu ôl i'r golygfeydd, ei ysgrifennu mewn rhan yn PHP a fersiwn Facebook ei hun o hynny, mae llawer iawn o JavaScript. Yn wir, unrhyw un o'r sgwrsio chi ei wneud ar Facebook, unrhyw un o'r diweddariadau llinell amser inline hynny ddigwydd mewn amser real, hynny i gyd yn cael ei yrru gan JavaScript. Yeah? GYNULLEIDFA: Nid wyf yn sicr os yw hyn yn Facebook, ond yr oeddwn yn meddwl fod Facebook ddatblygwyd eu cod hiaith eu hunain yn fewnol? DAVID Malan: Gwnaethant. Felly dyna pam yr wyf yn dweud amrywiant o O'r enw PHP Hip Hop y maent mewn gwirionedd nodweddion ychwanegol i, felly pan fo Mark rhoi ar waith yn gyntaf Facebook, yr oedd yn ysgrifenedig yn PHP. Ac yn y math yna o wedi aros y math o iaith pen blaen eu bod yn defnyddio ar gyfer llawer eu codio, ond mae'n Nid yw wedi bod yn iaith sydd yn graddfeydd arbennig o dda i biliynau o bobl. Ac felly maent wedi ychwanegu eu hunain gwelliannau y tu ôl i'r llenni. Ac maent yn defnyddio unrhyw rif o ieithoedd eraill ar gyfer gwahanol ddarnau o eu seilwaith. Felly ie, mae'n amrywiant o yr hyn rydym bellach yn gwybod fel PHP. Felly, gadewch i ni edrych mewn un neu ddau o enghreifftiau o sut y gallai rydym yn defnyddio JavaScript yma. Yn cod ffynhonnell heddiw, mae gennym criw o ffeiliau, y cyntaf o'r rhain, gadewch i ni enw DOM sero. Felly DOM sero yn edrych fel a ganlyn. Gadewch i mi fynd i mewn i cyfeiriadur hwn ac yn agor i fyny domzero.html, ben sydd â math doc datganiad, gan ddweud yma hon HTML 5. Ac yn awr dyma tag HTML. Dyma y tag pen. A dyma beth sy'n newydd heddiw. Erbyn hyn mae gennym tag sgript tu mewn i'r pennaeth y dudalen. Ac mae hyn yn ôl pob golwg yn ei wneud ychydig iawn, ond mae rhybudd fy mod i wedi diffinio sgript, a JavaScript. Ac wrth fynd heibio, gan fod hyn yn gamsyniad cyffredin, Mae JavaScript dim byd o gwbl yn ymwneud â Java, yr iaith bod rhai ohonoch efallai wedi'i ddysgu yn APCs. Roedd yn fwy o farchnata beth na dim, marchogaeth y coattails o flynyddoedd Java yn ôl. Ond mae JavaScript, ddim i'w wneud â Java, dim ond yn yr un modd, ac yn annoyingly, enwir ddryslyd. Felly dyma yw sut yr ydych yn datgan swyddogaeth yn JavaScript, yn llythrennol yn dweud swyddogaeth, Yna enw'r swyddogaeth, yna mae unrhyw ddadleuon gallai gymryd, yn union fel yn PHP. Troi allan yn JavaScript, un o'r rhai mwyaf swyddogaethau blino sy'n bodoli yw Rhybudd. Mae hwn ychydig ffenestr sy'n Bydd pop i fyny ac yn rhybuddio chi i ryw ddarn o wybodaeth. Mae'n cael ei gwgu arno. Ond byddwn yn ei ddefnyddio fel ein ymarfer cyntaf yma. Hysbysiad ychydig o nodweddion o JavaScript. Dyfyniadau sengl a dyfynodau dwbl nid ydynt mewn gwirionedd yn fater anymore. Dyfyniadau sengl a dwbl Gall dyfyniadau eu cyfnewid, tra yn C, rhaid i chi ddefnyddio dyfynodau dwbl ar gyfer llinynnau, ac mae gennych ddau sengl dyfyniadau am chars. Yn y byd JavaScript, mae llawer o bobl, y rhan fwyaf o bobl Defnyddiwch dyfynodau sengl amgylch llinynnau dim ond oherwydd ei fod yn beth arddull. Ond beth yw'r gweithredwr yn ogystal yma, nad ydym wedi ei weld o'r blaen? GYNULLEIDFA: Concatenation. DAVID Malan: Concatenation. Felly nid yw hyd yn oed yn cael y C. PHP gan y gweithredwr dot, sy'n gwneud hyn. Mae JavaScript y gweithredydd a mwy, sydd ddryslyd yn union fel Java. Nawr beth sy'n mynd ymlaen fan hyn? Felly dyma lle mae sylfaenol dealltwriaeth o'r llun rydym yn taflu i fyny cwpl diwrnod yn ôl yn dod i chwarae. Cofio pan oedd gennym syml fersiwn o HTML page-- mae newydd ei ddweud, helo byd. Ac yna rydym dynnu coeden ar y dde, a oedd yn Roedd criw o petryalau a llinellau eu cysylltu fel coeden deulu. Felly dyna yr hyn a elwir DOM neu Model Gwrthrych Ddogfen. Ac mae'n troi allan y gallwch gael mynediad petryalau yn y goeden gyda chystrawen fel y canlynol. Yr ydych yn llythrennol yn dweud ddogfen, sef newidyn byd-eang arbennig mewn JavaScript rhaglen y mae iddo swyddogaeth gysylltiedig ag ef y gallwch gael mynediad debyg i struct, ond rydych yn syml dweud dot ac yna enw'r y swyddogaeth yn, cael elfen erbyn ID. Mae'r elfen wyf am ei gael yw yn ôl pob golwg Dyfynnwch enw unquote. Ac yna yr wyf am gael ei werth. Nawr rydym yn cael y blaen i ni ein hunain. Dydw i ddim hyd yn oed yn siwr beth mae hyn i gyd yn ymwneud. Gadewch i ni ymlaen yn gyflym i'r HTML ar y dudalen, sydd yn super syml. Hysbysu fy mod i wedi diffinio'n a ffurflen i lawr yma. Rhybudd a dwi wedi ei roi ei fod yn unigryw ID, er nad ydym wedi defnyddio nodwedd yma o'r blaen. Ond mae hyn yn bodoli mewn HTML. Gallwch nodi rhai talp unigryw o HTML gyda dynodwr fel hyn. Hysbysiad nawr this-- troi allan HTML cefnogi, fesul y rhestr golchi dillad funud yn ôl, yn ei gyfanrwydd criw o trinwyr digwyddiad. Ac mae hyn yn dweud y digwyddiad trinydd ar cyflwyno. Ar gyflwyno defnyddiwr o hyn ffurflen, ffoniwch y cod canlynol. A'r cod sy'n mynd i gael ei alw neu ddienyddio yn union hyn, mae'r Groeg swyddogaeth ac yna dychwelyd ffug. Dylai popeth arall fod yn eithaf cyfarwydd. Dyma mewnbwn o destun fath, y mae eu ID, yn yr achos hwn, yn mynd i fod yn enw. Nid oes gennym enw gwirioneddol priodoledd adeg-- hwn a botwm cyflwyno. Felly y dudalen sy'n deillio edrych fel hyn. Ac ymddygiad sy'n deillio, byddwch yn gweld, yn edrych fel hyn. Mae'r dudalen mae'n cynnal lleol yn dweud, helo David, prin yn ddeniadol ffordd i gyfarch defnyddiwr. Ond beth sy'n digwydd mewn gwirionedd? Wel, yn ystyried beth y mae hyn yn. Mae hwn yn faes testun. Ac yn ôl y HTML yma, dwi wedi ei roi iddo a dynodwr unigryw Gelwir dyfyniad unquote enw. Yn y cyfamser, yr wyf wedi dweud wrth y defnyddiwr yn cyflwyno ffurflen hon drwy daro Enter neu glicio ar y Submit botwm, ffoniwch y swyddogaeth o'r enw Cyfarch ac yna dychwelyd Ffug. Gadewch i ni ystyried y rhai hynny o chwith. Sylwi pan fyddaf yn cliciwch Cyflwyno, mae'r Nid yw URL y dudalen hon yn newid. Icon y porwr nid oedd yn dechrau nyddu. Doeddwn i ddim yn mynd i unrhyw le, a dyna llythrennol, oherwydd dywedais yn dychwelyd Ffug. Dychwelyd cylchedau neu arosfannau byr Ffug ymddygiad diofyn ffurflen. Er mwyn i hynny ein gadael gyda hyn yn un cwestiwn olaf. Beth mae Cyfarch yn ei wneud? Wel, yn ôl pob golwg Cyfarch yn galw swyddogaeth o'r enw Rhybudd, yn pasio mewn un ddadl hir dyna y canlyniad cydgadwyno MT gilydd criw o substrings, helo gofod coma, Yna, beth bynnag mae hyn yn dychwelyd. Felly ddogfen yn debyg i fyd-eang amrywiol i'r gwreiddyn y goeden, yn galw swyddogaeth arbennig, fel arall a elwir bellach fel dull. Mae swyddogaeth sy'n tu mewn newidyn yn Gelwir dull yn hytrach na swyddogaeth. Felly, yn cael elfen erbyn ID. Pa elfen yn ei wneud i chi am gael gan ei adnabod? Dyfynnwch enw unquote a Yna gwerthfawrogi benodol. Felly, mewn geiriau eraill, y cod yn syml dod o hyd i'r maes testun y mae ei adnabod yn enw ac wedyn yn cael ei werth. Felly, pe bawn yn newid hyn a dweud Davin yn lle David, a chliciwch Cyflwyno, yn awr rydym yn gael cyfarchiad i Davin. Mae pob hawl, felly pob iawn ac yn dda. Ond gadewch i ni weld a allwn ni wneud mae hyn ychydig yn lanach ers unig cod ysgrifennu fel hyn yw yn gyffredinol yn mynd i gael ei gwgu arno. Mae hyn yn mynd i edrych yn scarier. Ond beth yw'r cyntaf gwahaniaeth yr ydych yn nodi yma yn y fersiwn ar wahân i'r enwi yn newid i un DOM? Beth strwythurol yn edrych yn wahanol am hyn yn erbyn y llall? Yeah? GYNULLEIDFA: A yw'r ffurflen ar ben y sgript nawr? DAVID Malan: Yeah, y ffurflen yw ar ben o'r sgript am ryw reswm rhyfedd. Felly dyna'r peth cyntaf sy'n fy nharo yn syth, hefyd. A diolch byth o leiaf, rhan mae hyn yn union yr un fath. Felly, yr unig beth sy'n ymddangos i fod yn wahanol yn hyn. Felly dyma beth sy'n daclus am JavaScript 2. Ac mae'n ei gwneud yn anodd deall ar yr olwg gyntaf, yn enwedig ar gyfer prosiectau terfynol os ydych yn edrych ar cod sampl ar-lein, ond mae'n boils i lawr i rai nodweddion cystrawennol sylfaenol. Yma eto yw bod dogfen amrywiol byd-eang. Yma eto yw y dull neu'r swyddogaeth sy'n dweud yn cael yr elfen trwy adnabod. Y tro hwn rwyf am cael y ID elwir demo. Ble yw hynny? Mae hynny'n debyg iawn yma, mae'r ffurflen ei hun. Ac yn awr yn sylwi bod yn ôl pob golwg os byddaf fynd yn ôl y nod o'r goeden sydd yn cynrychioli y ffurflen ei hun, nid yw cae testun, mae'n troi allan y ffurflen, bod nod neu betryal o'r goeden, Mae gan yr hyn y byddwn yn ei alw'n eiddo, iawn, iawn, yn debyg iawn mewn ysbryd i struct yn C. 'I' jyst aelod data tu mewn petryal hwn. Felly, yr wyf wedi cael y ffurflen yma, ac rwy'n atodi, neu dw i'n aseinio, i'w Ar Cyflwyno triniwr neu yn hytrach Ar Cyflwyno eiddo y swyddogaeth ganlynol. Ac mae hyn yn, o bell ffordd, mae'r craziest beth hyd yn hyn syntactically. Mae'n troi allan yn JavaScript ac yn PHP, ac yn ddidwyll o ran hynny yn C, er nad ydym yn gwneud hynny, gallwch ychwanegwch ddienw, dienw, neu AKA lamda swyddogaethau nad oes ganddynt enw ond gellir eu galw serch hynny. Felly, yr hyn yr wyf i'n ei wneud yma yw fy mod yn neilltuo Ar hyn Cyflwyno eiddo, a oedd yw tu mewn nôd hon ar fy goeden DOM, a swyddogaeth, pwyntydd ffwythiant os mynnwch. Swyddogaeth honno yn cael unrhyw enw, ond nid yw hynny'n ots oherwydd byddwn yn gweld mewn munud sut i alw iddo. Pan elwir y swyddogaeth hon, cod hwn yn cael eu gweithredu, yna ffug yn cael ei ddychwelyd yn union fel o'r blaen. Ond sylwi ar yr hyn yr wyf wedi ei wneud. Ar y pwynt hwn yn y stori, Mae gen i ffurflen. 'I' got ID unigryw o'r enw demo. Lawr yma, mae gen i tag sgript sy'n executes y cod canlynol. Mae'n ei roi ar y nod mewn y goeden iddo sydd ymlaen Cyflwyno eiddo swyddogaeth hon fan hyn. A dim ond yn ôl natur y modd y porwyr yn gweithio, pan fyddaf yn awr yn chliciwch Cyflwyno neu daro Chofnoda, swyddogaeth honno yn mynd i gael eu galw. Nid oes angen enw oherwydd pwy mae'r Heck gofalu yr hyn y mae'n ei alw. Yr unig amser y mae'n byth yn mynd i gael Gelwir yw pan fyddaf yn cyflwyno'r ffurflen. Does dim angen i mi, y datblygwr dynol, i mewn gwirionedd yn alw yn unrhyw le arall. Nawr, yn union fel ymlid, fel pe bai hynny Nid oedd yn meddwl plygu ddigon, allwn hyd yn oed yn gwneud hyn edrych yn defnyddio mwy cryptig llyfrgell super poblogaidd o'r enw jQuery. Yn wir jQuery a JavaScript yn aml yn cael eu cymysgu. A beth y byddwn yn ei wneud ar ddydd Mercher yn cychwyn ddefnyddio iaith yma a llyfrgelloedd hyn i adeiladu fwyfwy asynchronous a cheisiadau deinamig fel map yn cael geisiadau, ceisiadau sy'n diweddaru'r webpage yn real amser, yn debyg iawn Facebook neu Gchat yn ei wneud, ac yn cyfyngu ein hunain mwyach Taro Cyflwyno trwy get neu'r post yn unig ei ben ei hun. Felly, byddaf yn eich gweld ar ddydd Mercher. [CHWARAE CERDDORIAETH]