[Tónlist spila] DAVID MALAN: Þetta er CS 50, og þetta er byrjun á viku níu. Og það sem við héldum að við myndum gera í dag er ekki aðeins loka kaflann um síðustu viku efni þar sem við áherslu á miðlara hlið vefur forritun með PHP og SQL, sumir gagnasafn efni. Við munum tala um smá öryggi í dag og þá umskipti á viðskiptavinur hlið forritun tungumál þekktur sem JavaScript. En fyrst sumir innlausn. Þú getur muna að á Miðvikudagur, setti ég út að skrifa á vefsíðu sem tók í inntak notanda með HTML formi sem síðan geymd að nöfn notandi inntak, sími tölur og Cellphone flytjenda í gagnagrunninum. Og svo ég hafði smá stjórn lína handrit skrifuð í PHP sem átti að kunnugt yfir raðir í gagnagrunninum og senda út textaskilaboð. Þrátt fyrir nokkrar, nokkrir tilraunir, við ekki fá að vinna í lok. Svo ég eyddi þetta allt viku vinna á að kóða til að fá okkur framhjá punktinum þar sem við var horfið, þar sem allt Ég fékk í lok miðvikudagsins var þessi texti skilaboð frá Margo og ég átti erfitt með, fylgt eftir með textaskilaboð úr öðrum bekkjarfélaga, hefur þú fengið þetta Davíð. Framhald af þessu einn, frábærlega uppörvandi. Afram, mjög heartening. Ég fékk hana næstum þar then-- og það er punkturinn við enduðum á miðvikudag. Og þá í raun kannski uppáhalds minn, smá stund síðar, þetta kom inn. Damn Live Stream. Svo í dag, laga við þetta með snöggri líta á það sem ég hef gert síðan. Svo er allt þetta kóða boði á netinu frá síðustu viku, viku átta, kóðann. Og þú munt sjá að ég fór í gegnum, og ég hreinsa reyndar upp hlutina svolítið. Ég kynnti par annar Lögun af SQL gagnagrunn. Fyrir dæmi, frekar en bara gera smitberi VAR bleikju eins og ég held að ég gerði á flugu í síðustu viku. Ég skilgreint staðinn það sem hvað er kallað enum. Og sumir af þú might hafa séð þetta eins og við kanna C. Enum er raun eiginleiki C þar sem þú getur telja a heild búnt af Fastar og úthluta þeim sjálfvirkar gildi, eins og einn, tveir, þrír, fjórir án þess að þurfa að hörðum númer kóða. Svo SQL styður sama, þar ef þú hefur skráð svæði sem þú aðeins vilja til að taka á einn af endanlegt gildi, getur þú bókstaflega að tilgreina það eins og ég hef gert það í fjögur vinsæll Bandaríkjanna cellphone flytjenda. Svo ég gerði það. Og ég gerði nokkrar breytingar sem vel, mikilvægasta sem var að fá email vinna vegna muna, að þetta program reitt sem almennt kallað email til SMS gátt, sem er bara fínt leið til að segja að Regin og AT & T, og önnur fólkinu styðja miðlara, þar ef það fær email, breytir það því að SMS og sendir út texta skilaboð í símann einhvers. Þannig að ef ég gerði þetta rétt, hér er ný og endurbætt mynd sem er að fara að tala við ný og endurbætt kóða sem þú getur spilað með online. Og það mun vonandi gera mitt sími píp í bara smá stund. Svo fyrst, að ég ætla að slá í nafni mínu. Í öðru lagi, ég ætla ekki að fara að gera þetta að þessu sinni. Ég ætla að gera Skoðið frumefni. Og þetta er bara lítill hlutur svo ég ekki búa klukkustunda eftir framleiðslu vinna eins og ég gerði síðast. Það nú er símanúmerið mitt. Ég velja Regin. Og hér, við skulum kveikja á þennan hljóðnema hér, og miða þetta á símanum mínum hér. Ég ætla að smella Register, sem ætti vonandi setja það inn í gagnagrunninn. Nú ætla ég að fara á stjórn lína program, sem Muna hét punktur slash texta, og yfir fingurna. Hér förum. [SÍMI dings] [Applause] DAVID MALAN: Svo skemmtilegra en this-- það er gaman, að sjálfsögðu, ef ég fæ inn í það. En það er meira gaman, ég hélt, ef við til einn af þeim bíómynd augnablik þar eins og eitthvað virkilega slæmt hefur gerst í heiminum, og eins og allar NSA þjóðarflokksins Cellphones byrja beeping með skilaboðum viðvörun þá á þessari staðreynd. Þannig að ég hélt að við myndum reyna að endurskapa sama hér, þar ekki að nota gagnagrunn, I staðinn fyrirfram skrifaði forrit sem lítur svona út. Þetta er index.php-- og ég setti þennan kóða netinu eins well-- sem virðist bara gerir form.php, nota MVC stíl hugmyndafræði sem við tala um nánar í Heimadæmi sjö. Það form er frekar einfalt. Það er að fara að leggja til a skrá sem kallast here.php gegnum færslu. Og það er greinilega að fara að spyrja að nafni, og símanúmer, og þá í gegnum af svokölluðum Veldu Valmynd, það er að fara að gefa þér að minnsta kosti fjögur vinsæll Bandaríkjanna cellphone flytjenda, og þá leyfa þér að í raun taka mætingu með því að smella hér. Og hér, á meðan, er að fara að láni sumir af kóða frá síðasta sinn. Og ef þú Lögð bara þetta, þú munt sjá að það er a heild búnt af villa stöðva. En fegurð í lok er að við erum ekki að skrifa við gagnagrunn í dag. Við erum að halda það einfalt og bara að senda út vonandi texti skilaboð í gegnum virka I skrifaði á síðustu daga kalla Texti, sem er í aðgerðir. PHP, sem er aftur í boði á netinu. Svo ef þú vildi eins og til að taka þátt í þessu. Við erum ekki að fara að geyma neitt. Fara á þessa slóð hér í rauntíma. Ekki senda það bara enn, en við skulum sjá hvort við getum haft einhverja af þessum bíómynd augnablik þar Cellphone allra byrjar beeping, vonandi bara þegar á þessu ári ólíkt árið 2011 þar sem þetta gekk hræðilega skakkur. Og þegar þú ferð á þetta netfang, þú ættir að sjá frábær einfalt eyðublað að ef þú hafa a nafn, a klefi sími númer og a cellphone flutningafyrirtæki sem passar lista þar, fara undan og fylla út formið. En ekki högg ekki senda strax. Eyðublaðið er að fara að líta út eins og þetta. Fara á undan og sláðu inn nafnið þitt, símanúmer. OOP, einhver er að fara á undan þeim ferli. Það er allt í lagi. OK, allir 'fyllt út formið. Þetta ætti að vinna á a síma, líka, ef þú vilt. Allt í lagi, á merki þitt, fá sett, að fara. Högg hér. Hvað? No. Ég sver til Guðs, prófa ég þetta mörgum sinnum í dag. Þú fékkst það? [INTERPOSING raddir] DAVID MALAN: OK, notandi villa kannski. Það er tvö. Það í uppnámi fyrir tvo út af nokkur hundruð, þrír, fjórir. OK, það er gott. Fjórir af fimm fyrir réttar hvernig um. Svo hvað bara gerðist? Svo væntanlega, án þess að sjá þína skjár, hvers vegna gæti það hafa errored? Það er líklega að við værum bara að reyna að gera of margar tengingar að póstþjóni Harvard er allt í einu sinni frá sömu IP-tölu. Ég ætla bara að giska þar sem ég gerði ekki hafa the lúxus að prófa kóðanum með nokkrum 300 manns í fyrirfram en nú grein fyrir því að að minnsta kosti um er tekinn hafa fengið starf að þessu sinni. Allt í lagi, þannig að hvers vegna er þetta allt meira germane til hvað er að gerast? Jæja fyrst, a fljótur par af tilkynningum. Svo einn, ef þú vilt að taka þátt Chang og Nick, og aðra í hádeginu á föstudaginn, gera RSVP á venjulegum vefslóð þar. Ef þú ert að hugsa um að einbeita eða gera með annað í CS, hvort sem þú ert a sophomore eða freshman, eða jafnvel yngri eða eldri á þessum tímapunkti og enn er hægt að kreista í námskeiðum, grein fyrir því að verkfræði skólanum er að safna saman fyrir frjáls Ben og Jerry er ís og ráðgjöf þetta Miðvikudagur skömmu eftir flokki á 4:00 í CS húsinu á Maxwell Dworkin. Ef þetta er of hratt á skjánum, bara fara að cs50.harvard.edu fyrir tengill á Facebook viðburð þar sem þú getur séð fleiri upplýsingar. Meðan, hélt ég að ég myndi leiðrétta Einn annar hlutur sem ég goofed á miðvikudag. Kemur í ljós að Mark ID á Facebook var ekki þrír. Það var fjögurra. Skrúfjárn út að hann hafði meiri próf reikninga en ég man. En hvað þetta var eins tækifæri að gera er að draga upp vefslóð svona. Svo kemur í ljós að Facebook hefur API, Umsókn Forritun Interface, sem er verkfæri þar sem þú geta óskað gögn kerfisbundið á Facebook og fá aftur vél læsileg upplýsingar, ekki vefsíður en bara hrár texti, eitthvað heitir JavaScript Object Ritháttur. Og í raun, ef ég heimsækja þessa URL, og stækka, við vanræksla, þetta er Mark er opinberlega aðgengilegar upplýsingar. Og áhugavert smáatriði hér er bara að ID hans er reyndar númer fjögur, sem ég veruleika eins fljótt og ég gerði þetta. Þú getur gert þetta sjálfur ef þú veist Facebook notendanafnið þitt ef þú hafa einn. Bara slá það upp efst þar. Og ekkert af þessu er persónulegur. Ég ætla bara að gera þetta jafnvel í fer huldu höfði ham. Þannig að ég ætla ekki einu sinni innskráður. Og þú ert að sjá, að ég greinilega var notandi númer 6454 á Facebook, sem er ekki of slæmt þessa dagana. Svo einhvern veginn, munt þú einnig sjá Viðbótarupplýsingar þar. Og gagnlegt þáttur af því er að þú gæti skrifað eigin hugbúnað sem einhvern veginn samlaga gögn eins og þetta í eigin umsókn þína. Þú getur styrkja notendur til log inn í vefsíðuna þína, ekki með eigin sérsniðnum notandanafn og lykilorð en kannski Facebook innskráningu og fá upplýsingar, jafnvel um vini sína, ef þeir samþykkja slíkt, eða svipað. Svo huga að CS50, líka, hefur sumir af eigin API þess, einn fyrir Frumgreinanám gögn, sumir fyrir faðmlögum valmyndir í borðstofu sölum, öll byggingar og staði á háskólasvæðinu við höfum API eins og heilbrigður að þú getur fyrirspurn álíka og fá aftur texta gögn sem þú getur aðlagast í PHP, eða JavaScript, eða jafnvel, þó sjaldnar, a C byggt lokaverkefnið. Reyndar framundan fyrir endanleg verkefni eru nokkur áfangar. Þú fékk tölvupóst frá okkur um daginn. Grein fyrir því að tillögu er vegna þetta kemur mánudagur. Það er ekki endilega bindandi, en þú þurfa að fá kennslu félögum þínum samþykki áður en einhverjar breytingar eftir það. Og svo undan eru fjöldi annarra áfanga. Svo til að stríða þér, of, með nokkrum möguleikum, við höfum fullt af þessir Hue ljósaperur. Og sumir af þú krakkar nú hafa sumir af þessum í dorm herbergi eins og heilbrigður. Og þeir hafa líka með API. Svo muna þau tvöfaldur ljósaperur vikur síðan að Dan Bradley og Ansel Duff búið til fyrir okkur. Þeir notuðu hugbúnað tengi til Þessi ljós peru, sem á því augnabliki er tengt í rafmagn og þá í gegnum þráðlaust er tengdur við smá hlutur heitir Bridge hérna, eins og lítið leið Eigin til þessa tilteknu tæki. En það kemur í ljós ef ég veit hvernig á að senda HTTP skilaboð, eins og við gerum allt nú, Ég get sent skilaboð svona að þetta ljósapera til að kveikja eða slökkva á eða gera allir tala um aðrar aðgerðir á henni. Takið eftir að það er ekki fá, það er ekki staða. There 'annar einn gestur setja. Það er í raun nokkrar aðrar slíkar sagnir. En taka það er leið þar, rista API rista nýja verktaki, rista ljós, rista einn, rista ástand. Það er greinilega bara leið sem fyrirtækið, Philips, ákveðið að þú þarft að lemja með HTTP beiðni Ef þú vilt breyta stöðu á perunni með HTTP 1.1. Þá taka auða línu. Og þá loks hvað lítur út eins og konar fylki af einhverju tagi, þetta aftur er að fara að vera kölluð JavaScript Object Ritháttur, eða Jason. Og það sem þú sérð hér er að það eru þrjár helstu gildi pör. Einn lykill er kallaður. Og gildi þess virðist er að fara til að vera satt. Birtustig er 128, sem er einhvers konar int. Og þá er umskipti tími núll, sem er greinilega hversu lengi það er að fara til taka að snúa þetta á. Svo núna er þetta ljósapera burt. En ef ég gera nákvæmlega this-- láta mig fara í smá svindlari lak að Dan sett upp í advance-- og ég ætla að fara á undan og afrita eftirfarandi skipun. Curl, eins og sum ykkar gæti hafa tína ax á CS50 Ræða er a gagnsemi eins Telnet slíkum að þú getir hermt HTTP beiðnir, sérstaklega setur. Ég get sent þessi gögn, sérstaklega hvað við bara sá stund síðan sérstaklega á þessa slóð hérna. Og þá Curl er að fara að höndla allar nauðsynlegar hausa og þáttun þar af. Svo er allt sem ég þarf að gera afrita þetta inn a endastöðvar og ýta síðan á Enter. Og ljósapera fer á. Og þetta er allt að fara í gegnum tölvan mín þráðlaust einhvern veginn niður að brú, sem er þá að tala við þessa ljósapera. Ég get gert eitthvað annað. Ég get gert þetta fara rautt til dæmis. Ég get til dæmis gert þetta fara grænn. Ég get gert það fara blár. Og taka í hvert þessara dæmi, allt sem ég er að breytast er svokölluð litblær virði reyndar gefa honum litinn. Svo láta mig líma þetta einn í eins og heilbrigður. Nú er það blátt. Og þú getur gert enn áhugamaður hlutir where-- skulum fara í grænt. Og ég gæti gert þetta af auðvitað með eigin númerið mitt. En jafnvel API sjálft styður angurvær starfsemi eins og þetta, sem mun nú nennir okkur fyrir næstu 30 sekúndum. Svo er það eitt bragð af því sem þú gætir gera með API, þetta felur ljósaperur. Athugaðu að CS50 hefur nokkra pör af Google Glass ef youd eins og til að takast á við eitthvað eftir þeim línum, Arduino Unos sem eru litla tölvur, í meginatriðum, á smá hringrás borð að þú getur tengt vír og annað til og í raun stjórna raunverulega heimi umhverfi þínu. Og svo eru par af nýjum leikföng sem við höfum. Þetta bókstaflega bara komin í daginn í pósti, a Myo borði utan um upphandlegg. Og ég hélt að það er leið til að fá þú spenntur um verkefni að þú getur notað með þetta myndi Vélbúnaður vera að spila þennan stutta bút sem þeir nota til að stríða fólkinu að við erum nú að búa í framtíðinni. [Tónlist spila] DAVID MALAN: Svo í örfáum vikum, þú of geta vera að kaldur á CS50 sanngjörn. Annað tæki sem við hafa fullt af því að við erum fús til að lána út til verkefna er kallað hreyfing stjórnandi. Þetta er svolítið USB tæki tengst við tölvu sem gerir þér kleift að hafa samskipti við fartölvuna, Mac eða PC, eins og þú hafði eins Xbox Kinect og í raun gera líkamlega tillögur mikið eins og við sjáum í þessu framtíðarsýn. [Tónlist spila] DAVID MALAN: Svo jafnvel ef þú ert ekki hugmynd um hvernig eitthvað svoleiðis gæti hugsanlega verið fundin eða vinna á vélbúnaði stigi, sama. Jafnvel eftir aðeins nokkurra mánaða CS50, og skilning á forritun almennt, og vefur forritun meira nýlega, og þá einnig API, og HTTP, þú munt hafa aðgang í gegnum API hugbúnaður ef þú vil að láni einn af þessum tæki til að raunverulega tala við hana og ekki hafa áhyggjur óður í undirliggjandi framkvæmd Upplýsingar, sem er alveg í samræmi við þessa hugmynd um layering er abstrakt að við höfum séð um önnina. Svo einnig um helgina, sá nokkra stykki af fréttum. Fara fyrst, fara til námskeið ef þú langar að læra eitthvað meira á hvaða fjölda málefni. Sjá vefslóð þar. Og þetta var sent til mig með Chang, sem þú veist, sem er prentun her okkar fílar. Og það var fyrirsögn sem hér segir. Ég er skelfingu lostin af nýja sjónvarpinu mínu. Af hverju ég er hrædd að snúa þessu hlutur á og þú vilt líka. Þannig að við erum nú á benda í önn, líka, þar sem jafnvel ef þú ert hirða á skilningi um hvernig vefur virkar og HTTP, og öryggi, hlutir eins og þetta ætti að byrja að grípa augað. En einnig, munt þú skilja hvort þessir hlutir eru eða eru ekki að veruleika. Svo ég tók nokkrar ágrip af þessari grein hér. Og sagan er sem hér segir. Ég er nú eigandi nýtt Smart TV, sem lofar að skila streymi margmiðlun efni, leikir, app, félagslega fjölmiðla, og internet beit, ó og TV líka. Eina vandamálið er að ég er nú hræddur við að nota það, segir höfundur. Þú vildi vera, of, ef þú lest í gegnum 46. ​​Privacy Policy fyrir sjónvarpið. Magn gagna þetta hlutur safnar er yfirþyrmandi. Það logs hvar, hvenær, hvernig, og hve lengi þú notar sjónvarpið. Það setur rekja fótspor, eins og við höfum rætt, og beacons hannað að uppgötva þegar þú ert skoðað sérstaklega efni eða tiltekin skeyti Ef þú vilt að athuga tölvupóst á sjónvarpinu þínu. Það skráir apps þú nota, vefsíður sem þú heimsækir, og hvernig þú samskipti við efni, gera allt sem í gegnum sviði sjónvarpið. Það líka, creepier yet-- það er addition-- mín hefur a innbyggður í myndavélina með andliti viðurkenningu. Tilgangurinn er að veita bending stjórna fyrir sjónvarpinu og gerir þér kleift að skrá þig inn til persónulega reikning með andlit þitt. Á móti vega, eru myndirnar vistað í sjónvarpinu í stað þess að hlaðið að sameiginlegur miðlara. Á hæðir, internetið tenging gerir allan TV viðkvæmt fyrir tölvusnápur sem sýnt getu að taka fulla stjórn á vél. Meira áhyggjur, eins og ef það var ekki sviði nógur, er á hljóðnemanum. The TV státar rödd orðstír lögun sem gerir áhorfendur til að stjórna skjár með raddskipanir. En þjónustan kemur með frekar líkur viðvörun. Hafðu í huga að ef töluð orð þínar innihalda persónuleg eða önnur viðkvæm upplýsingar, þær upplýsingar verður meðal gögn handtaka og send til þriðja aðila. Got það? Ekki segja persónulega eða viðkvæmar efni í framan sjónvarpið. Svo er þetta í raun fyrir alvöru. Og það er erfitt að sjá hvort þú fara í Best Buy eða eins og fyrir sjónvörp þessa dagana. Þeir eru allir klár á einhvern hátt. Og þeir eru að fá betri og creepier. Og þeir eru einfaldlega að safna gögnum á þann hátt sem við höfum talað um og síðan að hlaða það um HTTP eða einhver önnur siðareglur að einhverju miðlara. Svo var þetta um skemmtilegt grein í þessu á netinu vefsvæði hér, sem talaði um einkum padda eða skakkur kóða að við getum raunverulega binda umræður síðustu viku. Þannig að þetta fyrirsögn var eins segir, sagan fer hér, Josh Breckman vann fyrir fyrirtæki sem lenti samning að þróa innihald stjórnun kerfi, eða CMS eins og þeir eru kallaðir, fyrir nokkuð stór vefsvæði stjórnvalda. Mikið af verkefninu þátt þróa vefumsjónarkerfi þannig að starfsmenn myndu vera fær um að byggja upp og viðhalda síkvikult efni fyrir síðuna sína. Things gekk nokkuð vel fyrir nokkrum dögum eftir að fara lifandi. En á sjötta degi, það gekk ekki svo vel. Allt efni á að viðbót hefði alveg horfið. Og allar síður leitt til vanræksla, Vinsamlegast sláðu inn innihald vefsíðu. Úpps. Josh var kallað í rannsaka og taka að einn sérstaklega óhentug til ytri IP heimilisfang hafði farið inn og eytt öllum efni á kerfinu. The IP heimilisfang ekki tilheyra að einhverju erlendis spjallþráð Bent á að eyðileggja gagnlegt upplýsingar ríkisstjórn. Það leyst að googlebot.com, Mjög eiga Google vefur skrið kónguló. Úpps. Eftir smá rannsókn og spæna kring að finna noncorrupt varabúnaður, Josh stofna the vandamál. Notandi hafði afritað og líma sumt efni frá einum síðu til annars, þar á meðal an edit Hyperlink að breyta efninu á síðunni. Venjulega myndi þetta ekki vera tölublað þar utanaðkomandi notandi myndi þurft að slá inn nafn og lykilorð, en CMS staðfesting kerfi, tenging kerfi, ekki taka tillit til háþróuð reiðhestur aðferðir Google Spider. Úpps. Eins og það kemur í ljós, Google Spider notar ekki kex, sem þýðir að það getur auðveldlega framhjá a stöðva fyrir er skráður á kex sett til að vera falskur. Það einnig hjartarskinn ekki borga eftirtekt til JavaScript, sem vanalega hvetja og beina notendum sem eru ekki skráð í. Það þýðir hins vegar að fylgja hverjum tengil á hverri síðu það finnur, þ.mt þeim sem eru með Eyða síðu í titlinum. Úpps. Svo hvað þýðir þetta í meira tæknilega en nokkuð aðgengileg skilmála? Það þýðir bara að Allan heimasíðu þeirra, þeir höfðu vefslóðir ekki ólíkt þessu einn sem þú gætir séð í Heimadæmi sjö. Muna í Heimadæmi sjö eða vita Heimadæmi sjö að þú ert áskorun, meðal annars, að selja hlutabréf fyrir hönd notenda. En framkvæmd þessi lögun af leið af fá um tengla í notandi þinn tengi, sennilega ekki smartest hugmynd því ef síða þín er einhvern veginn aðgengilegt annað hvort með því að manneskju sem er að smella í kring eða kaupa láni eins Google eða kóngulóar eins og þeir eru kallaðir það er bara skrið á vefnum að reyna að kemba vefnum eins og a leita vél, þeir gæti mjög auðveldlega högg með að fá þessa tegund af URL. Og það er virkni jafngildir, í þessu tilfelli, selja öll hlutabréf Google. Nú hreinskilnislega, það er alveg asinine að CMS notað JavaScript og smákökur að innleiða kerfi innskráningu sitt og ekki gera það framreiðslumaður hlið, eins þú krakkar gera og munu í PSet 7-- það er a login.php file-- alltaf, alltaf, alltaf öryggi ætti að vera gert á miðlara megin, ekki á the viðskiptavinur hlið, því sem þetta Greinin bendir og þú gætir sjálfur sjá á einhverjum tímapunkti, það er léttvæg fyrir notanda, gott eða slæmt, bara slökkva á JavaScript ekki sé minnst á smákökum. Svo er að dagleg WTF þitt. Það er einn, sem er bara svona skelfilegur, svo ég ætla að nefna það ef einungis sem líf lexíu. Alltaf þegar þú notar forrit kallað eins Snapchat eða þess háttar sem segir þessar myndir aðeins endast fimm sekúndur, tíu sekúndur, eða whatnot. Þeir eru skammlíf Það er alls ekki raunin. Eins og það er engin leið, stafrænt, að framkvæma einhvers konar vídeó, eða mynd eða texta deila svo að viðtakandi á hinum enda getur ekki einhvern veginn að vista gögnin. Í flestum barnaleg hátt, einhver gæti tekið símann þeirra. Og þeir hafa 10 sekúndna glugga meðan þú horfir á einhvern smella að bara taka einhverja aðra síma og mynda það, vitanlega. Svo er hægt að varðveita eitthvað stafrænt sem leið. Sum ykkar vita hvernig á að taka screenshots á símanum. Í staðreynd, ef þú veist þetta ekki, grein fyrir því að að minnsta kosti Snapchat, og ég held að annað forrit þessa dagana, amk segja þér ef viðtakandi hefur í raun tekið screenshot af mynd þinni. En verri enn, þetta var snappening, eins og einhver myntsláttumaður það nýlega, þar sem sumir 100.000 skyndimynd hafði verið gefin út í hvað er kallað torrent skrá á ýmsum vefsíðum á endanum. Og þessi innihélt heild búnt einka skilaboð og innlegg. Það kemur í ljós af þeim, góðkynja svo ekki það sem þú gætir átt von á. En vegna þess að fólk hafði notað þriðja aðila website, að skrá sig inn með Snapchat þeirra notandanafn og lykilorð og þá bjarga öllu af skyndimynd þeirra á þessum þriðja aðila website. Og það var að þriðji aðili heimasíðu sem var tölvusnápur, sem bara þýddi einhver mynstrağur út hvernig að fá allar 100.000 plús á þær myndir í eigin hörðum þeirra ökuferð fyrir síðari hlutdeild. Frankly, hér líka, það er eins konar af asinine að Snapchat er útfærð á þann hátt að þriðji aðili getur konar skurðpunktur gögn og að það er ekki bundið við þitt eigin forrit í gangi á símanum. En hér líka, átta sig á að þetta það ætti ekki að ná þér á óvart, eða að minnsta kosti að það er tekinn vera líf kennslustund hér. Ef þú vilt að tæknilega upplýsingar, fara á þessa vefslóð þar sem er í glærum dag. Allt í lagi, einhverjar spurningar um líf lærdóm dag í CS? Snúa að slökkva. Nokkuð á öllum? Nokkuð á öllum? Ég hef fengið mikið af fólki stöðva Snapchat þeirra eða eitthvað núna. Allt í lagi, svo SQL, Structured Query Language. Skulum vefja þetta. Og einnig, jafnvel þó við erum bara að klóra Yfirborð þessa tungumál, munum við gefa þér nóg í tungumálinu í formi PSet 7 svo að þú getur takast sum nokkuð algeng virkni. En ljóst að það eru nokkrar hlutir sem við ekki þurfa á þér, en þeir eru að fara að vera mikilvægt að koma lokaverkefni og vissulega koma að raunverulegri vefsíður með raunverulegum notendum er þetta hönnun ákvörðun. Það kemur í ljós að í a MySQL gagnagrunnur, þú hafa bunches af val eins gögn tegundir fyrir dálka þína og öðrum hlutum, en þú ert líka val á svokölluðu geymslu vél fyrir öll gögn, tegund af skrá kerfi, Ef þú ert kunnuglegur, fyrir öll gögn. Hvaða snið er það geymt á endanum í? Og algengasta, ef til vill, hefur verið MyISAM og InnoDB, tæknileg hugtök að við munum hugsa um aðeins að því marki sem maður hefur og einn er ekki með eftirfarandi lögun. Segjum að þú hafir smá dorm ísskápur. Og geri ráð fyrir að þér og þínum herbergisfélagi, sem deila þessari ísskáp, eru mjög hrifinn af segja mjólk. Og þetta er í raun, hvernig saga var sagt mér leið til baka í dag þegar ég tók námskeið heitir CS 161 Operating Systems, sem álíka kannar þetta efni. Svo þú hefur fengið þetta ísskáp. Þú ert út af mjólk. Og þú kemur heim, herbergisfélagi þinn er enn bekknum eða hvað, og þú ákveður að ég ætla að fara út og fá smá mjólk. Svo þú loka ísskápnum, lockup dorm herbergi, fara yfir götu til CVS eða hvar, og fá í línu til að kaupa mjólk. Meðan, herbergisfélagi þinn kemur heim frá bekknum, fær í dorm herbergi, opnar ísskápinn, einnig áttar ooph, erum við út af mjólk. Svo hann eða hún lokar ísskápur og þá gerist að fara til annarra CVS, sem gerist að vera ein húsaröð frá öðrum CVS á torginu, og fær í samræmi þarna til að fá smá mjólk. Nú, auðvitað, a nokkrar mínútur síðar, þú bæði færð til baka, og versta af öllu hægt niðurstöður hefur gerst. Bæði þú hafa mjólk. Og þú ert ekki raunverulega eins og mjólk sem mikið. Svo er bara einn af þeim fara að súr á einhverjum tímapunkti. Svo nú þú ert með of mikið magn af mjólk í ísskápnum alla vegna hvers vegna? [Inaudible] DAVID MALAN: Já, þú gerðir ekki einhvern veginn samskipti við hvert annað að þú varst að fá mjólk. Svo í einföldustu leiðir í manna heim, hvernig gætir þú forðast þetta kjánalegt atburðarás gerist svo að þú endar bara upp með eitt. Texta þá, já gott. En hvernig annars? Post-það athugasemdir. DAVID MALAN: A Post-það í huga. Hvers konar samskipta sem segir herbergisfélagi þinn Ekki fara inn í ísskáp fyrir mjólk. Ég ætla að fara restock á mitt eigið. Svo þú þarft einhvern veginn að læsa þessa síðu. Svo við getum gert this-- við getum konar eyðileggja söguna og snúa inn CS sögu þar að hugsa um þetta eins og bara eins og breytu, sem er sögufrægur sumir gildi. Og núna er gildi mjólk er núll, sem þú vilt ekki þinn herbergisfélagi að skoða þá breytu og síðan taka ákvörðun hann eða hún sjálf miðað við stöðu þá breytu Ef þú ert í því ferli breyta stöðu þá breytu. Þá kom einn af línum af SQL sem við gefa þér í PSet 7. forskrift er þetta einn hér. Og við að eyða ekki mikið magn af tíma að tala um það. En það kemur í ljós, ef þú ert að reyna að kaupa hlutabréf í CS50 fjármál að þú hefur nú þegar sumir hlutir, þú langar að vera fær um að gera a tala af hlutum í stað saman. Þú vilt vera fær um að á áhrifaríkan hátt, á háu stigi, stöðva alla rétt, ef ég vil að kaupa fleiri hluti af ókeypis, eyri birgðir sem við tala um í sérstakur, Ég vil fyrst athuga hversu marga hluti sem ég hef. Og geri ráð fyrir það er fimm. Og ég geri ráð vil kaupa 10 fleiri, ég á endanum vilja hafa 15 hluti af lager. Svo ég verð að spyrja tvær spurningar. Hvað er the ástand af the breytu? Hvað er the ástand af the röð? Hversu margir hlutir hef ég nú? Þá þú vilt að fara á undan og uppfæra hana. Svo er að hliðstæðum við mjólk í að þú athuga línuna, og þá þú vilt að uppfæra hana því ef þú vilt kaupa 10 hluti, þú vilt ekki að breyta róður 10, þú langar að breyta því að 5 plús 10 eða, að sjálfsögðu, 15. Þessi lína af kóða tryggir að þessir tveir huglæg hugmyndir gerast saman eða ekki. Enginn, þar á meðal sumir annar notandi sem er skráður inn sama vef, getur einhvern veginn að trufla Eftirlit með röðinni og uppfærslu á röð veldu og uppfæra ef þú vilt. Og setningafræði er ekki frábær augljóst, en þetta eina línu, er langt er, tryggir að þeir tvær aðgerðir athuga breytu eða athuga línuna og uppfæra róður gerast atomically. Ó hér við fara aftur. Texti skilaboð á símanum mínum. Svo skulum gera þetta lítið meira steypu. Segjum sem svo að þú ert ekki framkvæmd ískáp, og þú ert ekki að innleiða PSet 7 heldur raunverulegt banka, eða ATM, sjálfvirk Teller Machine, þar sem þú einhvern veginn langar að vera fær um að styrkja notendum að flytja peninga frá einum reikningi til annars. OK, hanga á. Ég ætla að slökkva á þessu núna, þakka þér. Þannig að við viljum að flytja peninga frá einum reikningi í öðrum reikningi númer, sérstaklega $ 100. Svo er af þessu tagi handahófskennt dæmi, þar sem þú, ATM, might vilja til að framkvæma tvö SQL leitirnar, draga frá einum reikningi, og bæta við hinn reikninginn. En þú vilt að tryggja að þessar tvær línur bæði gerast eða alls ekki. Þú vilt ekki eitthvað fá hlé. Þú gera ekki sumir sviði slæmur strákur einhvern veginn standa á Bank of America með tveimur hraðbönkum í framan af honum og einhvern veginn konar vélritun í skipanir á sama tíma, vonandi að reyna að draga $ 200 í stað á $ 100 og aðeins hafa $ 100 lögð. Í stuttu máli, þú vilt þetta til hegða sér nákvæmlega eins og þú átt von á. Og hvernig þú gerir þetta í SQL gagnagrunni er þú sett það í hvað er kallað viðskipti. Bókstaflega í SQL, þú getur hringt CS50 er fyrirspurn virka með tilvísun unquote byrjun viðskipti. Þá er hægt að framkvæma allir tala síðari SQL fyrirspurnum, en enginn þeirra taka áhrif á gagnagrunninum þar þú kallar fyrirspurn vitna unquote fremja, ef aftur með PHP. Og á þennan hátt, er hægt að tryggja að jafnvel ef þú hafa 1000 notendur allt hitting gagnagrunninn á sama tíma, SQL mun lofa að þessir tvær fyrirspurnir verða framkvæmda eitt rétt á eftir öðrum. Svo þú endir ekki upp með umfram mjólk eða rangt magn, að lokum, af peningum. Þannig að þetta í huga, ekki svo mikið fyrir PSet 7. en fyrir lokaverkefni ef þú ert í raun og veru reyna að færa gögn um yfir borðum eins og þú might hér. En jafnvel einfaldari og meira augljóst að skilja með dæmi er þetta einn hér. Og einhver send okkur um þetta bara um daginn þegar hann sá eitthvað svipað á netinu. Svo að þekkingu mína, pinna kerfi er ekki viðkvæmt fyrir þessari árás. Og ég hef ekki hugmynd um hvort það notar jafnvel SQL gagnagrunn undir hetta. En við skulum nota það fyrir sakir umræðu. Hér er skjár sem Harvard fólkinu tilhneigingu að sjá þegar þú skráir þig inn með þeirra Harvard kennitölu og PIN-númer sitt. Og ætla að pinna kerfi væri framkvæmda í PHP og MySQL gagnasafn, kóðinn að einhver gæti hafa skrifað árum gæti litið svona út. First, lýsa yfir breytu kallað notandanafn. Og bara fá að frá Færslan sem superglobal. Þá fá aðra breytu heitir lykilorð og gera það sama. Og þá bara framkvæma þetta lengi fyrirspurn hér, Veldu stjörnu frá notendum þar notandanafn jafngildir svo og svo og lykilorð jafngildir svo og svo. Eftir því að hrokkið axlabönd Ég hef notað hér bara átt við PHP, fara undan og varamaður gildi þessara tveggja breytur þarna. Þeir eru ekki bráðnauðsynlegt, en þeir hafa tilhneigingu til að forðast lúmskur villur. Svo lítur þetta alveg rétt við fyrstu sýn. Og það er. Þú gæti framkvæma pinna kerfi á þennan hátt. En geri ráð fyrir að frábær klár og illar nemandi inntak þetta sem pinna hans eða hennar. Svo ég hef fjarlægt bullet merki hér í spotta upp, og ég hef reyndar í ljós hvað hann eða hún gæti verið að skrifa. Og það er svolítið skrítið. En hvað stökk út á þig með hugsanlega áhyggjuefni um inntak notandans, jafnvel ef þú hefur enga hugmynd um hvað a SQL innspýting árás þýðir. Hvers vegna er þetta líta svolítið Fishy? Hvað er það? [Inaudible] DAVID MALAN: The eða er smá grunsamlegt. Í staðreynd, það er leitarorð frá SQL. Svo sem ekki Bode vel. Sú staðreynd að það er Öll þessi einfalda gæsalöpp there-- í raun einn af the auðveldlega leiðir til að brjóta Sum gagnasöfn er með því að slá inn heiti eins O'Reilly sem hefur úrfellingarmerki í það því ef mönnum sem skrifaði kóðinn á bak við tjöldin tekur ekki tillit til þess að það gæti verið einfalda gæsalöpp í notanda inntak, og hann eða hún er að nota einfalda gæsalöpp í númerið þeirra, slæmir hlutir geta gerst. Í raun verri enn, íhuga þetta. Ef þetta var aftur kóðinn að einhver í Harvard ár síðan skrifaði fyrir pinna kerfi, taka eftir hvað er um það bil að fá setinn fyrir notandanafn og lykilorð Ef notandinn slær inn aftur skroob sem notandanafn þeirra og síðan einn, tveir, þrír, fjórir, fimm, vitna eða vitna unquote einn jafningja vitna einn. Og taka eftir hvað er lykillinn hér er að notandinn hefur ekki byrjaði lykilorð þeirra eða PIN-númer sitt með tilvísun. Og þeir hafa ekki endaði það með tilvísun vegna þess að hann eða hún er gert ráð fyrir því að ef forritari var ekki svo mikil, þeir eru að fara að hafa þá einfalda gæsalöpp í númer þeirra. Svo hér er kóðinn. Og útskipting sem gæti nú gerst er þetta. Og ég hef undirstrikað það notandinn hefur slegið inn. Svo áður, eftir. Og taka eftir hvað er mildilega áhyggjuefni nú um rétta hluta þessa SQL kóða? Það er a lítill flóknara, að vísu, en fyrirspurnum sem við höfum séð. En þetta getur ekki hugsanlega vera góður hlutur ef þú ert segja velja stjörnu, sem er að velja allt frá töflunni notandans þar notandanafn jafnt skroob og lykilorð er jafnt og einn, tveir, þrír, fjórir, fimm eða einn jafngildir einn. Hvað er rökrétt vísbendingu þeirrar síðustu ákvæði væntanlega? Það er bara alltaf satt. Og vegna þess að við höfum konar giska eða mynstrağur út með reynslu og villa að forritari sem skrifaði þennan kóða ekki ráð fyrir manna eða slæmt manneskja slá í einn quotes eins vel, getum setningafræðilega ljúka SQL fyrirspurn með eitthvað vitlausrar en eitthvað sem er setningafræðilega rangt sem alltaf metur að satt. Þannig að ef þetta númer er að nota til að svara spurningin sönn eða ósönn ætti þessi notandi leyft að fara, að Svarið er alltaf virðist fara til að vera satt því að þetta er alltaf að fara til að velja eitthvað úr gagnagrunni vegna þess að einn af sjálfsögðu jafngildir alltaf einn. Svo er það lausnin? Jæja í PSet 7, reyndar við forðast þetta allt saman. Við gefum þér fyrirspurn virka, og við hvetjum þig til að nota spurningarmerki sem staðgenglum, svipað í anda að printf er% s, en hvað er lykillinn um spurningarmerki hér er ef þú lesir í raun í gegnum functions.php, þar okkar fyrirspurn virka er hrint í framkvæmd, þessir spurningarmerki eru slapp, þar nokkuð hættuleg eins einn vitna er snúið inn slapp einn vitna. Svo er þetta það sem er raunverulega að gerast ef þú nota fyrirspurn virka CS50 er eða allir tala þriðja aðila ókeypis bókasöfn sem gera það sama. Skiptir ekki máli í þessu tilfelli, í grænt, ef notandinn hefur slegið í einum tilvísun vegna þess að fyrirspurn fall sem við skrifuðum er fara að bæta backslashes áður allir svo hættulegt vitna. Þannig að þetta er ekki, í staðreynd, að fara að vera legit. Þetta er eins og að slá í brjálaður útlit lykilorð sem er, að sjálfsögðu, ekki að fara vera raunverulegur lykilorð skroob er. Svo takeaway fyrir CS50 er einn, algerlega nota alltaf eitthvað eins CS50 er fyrirspurn virka eða undirliggjandi bókasafn, sem gerist að vera kölluð PDO. En aldrei, aldrei, aldrei gera kóðann svona án sleppi eða skúra eins og þeir segja inntak þinn. Og þú verður á einhverjum tímapunkti líklega rekast sumum vefsvæði eins og þetta. Í raun virðist það vera raunin eins og á flugvöllum og hótelum í stöðum þar sem þeir eru með ókeypis Wi-Fi Aðgang sem þú þarft að skrá þig inn til, Þessar vefsíður eru alltaf hryllilegur framkvæmda. Og svo eins konar gaman heima æfingu, ekki fyrir illgjarn tilgangur eða meira af gaman á veginum æfa, er bara að slá úrfellingarmerki, einn vitna, í form á einhverjum vef og sjá hvað gerist. Og ef hrun miðlara eða gefur þú einhvers konar villuboð, það getur mjög vel verið að einhver hefur ekki gert ráð fyrir þessu. Og þá ættir þú að láta rétta yfirvöld og halda ekki lengra. Svo nú þú krakkar ættu vonandi skilja aðeins meira geek húmor hér. [Hlátur] DAVID MALAN: Þú veist að þú ert gáfuð. Fyrir næstu ár, þú munt muna sem lítið Bobby Tables er vegna þessa teiknimynd hér. Svo halda að í huga þegar við samhengi skipta eitt síðasta skipti dag til JavaScript. Við höfum eytt tiltölulega lítið tími á setningafræði PHP því það er í raun Super svipað C Og fallega nóg, JavaScript of er frábær svipað setningafræði önnur C eins vel og við munum sjá í bara smá stund og svo við munum sjá síðar í þessari viku í sérstaklega. Það sem þú getur gert með þessu tungumáli, þó, er allt öflugri, sérstaklega með API. En fyrst a fljótur ferð. Svo, í JavaScript, það er eitt engin aðalæð virka, sem er ágætur. Eins og með PHP, getur þú bara að skrifa kóðann. Aðstæður líta svona út. Og Boolean tjáning gæti líta svona eða svona. Rofar til, og þeir gæti litið svona út. Fjórar lykkjur líta svona út. Þó lykkjur líta svona út. Gera endrum líta svona út. Og þá fylki líta eins þetta, mjög svipað PHP. En taka eftir, að í JavaScript lýsa breytu ekki með dollara undirrita, ekki með gögn gerð en bókstaflega með því að segja vágildi fyrir breytu fyrir það. Það of er lauslega slegið í því að það hefur gerðir, en þú hefur ekki beinlínis lýsa þeim. Og þá string, fyrir dæmi, gætu litið eins og þetta, að strengur vera kölluð s í þessu tilfelli. Og svo hlutur. Og þessir sem við munum sjá meira áður en langur. Og hlut er ef til vill einn af oftast séð gögn uppbygging í JavaScript byggt program því það gerir þér kleift að tengja handahófskennt lykill gildi pör bara eins tengnar fylki PHP er og bara eins og eigin kjötkássa töflunni eða reyna eins og við framkvæmd Nokkrum vikum aftur. Svo skulum raunverulega sjá hvað við getum gert með JavaScript. Og einkum er þetta þvottahús listi af lögun sem vafrar hafa þessi leyfa okkur að krókur JavaScript í viðbót á eftirfarandi hátt. JavaScript er oft notað sem viðskiptavinur hlið forskriftarþarfir tungumál. Það er ekki unnin. Það líka er túlkað. En ólíkt PHP, sem hefur verið í gangi á miðlara, the vefur framreiðslumaður, eða djúpt inni á viðskiptavinir, JavaScript er öðruvísi í því það yfirleitt keyrir í vafranum. Svo allir JavaScript kóða sem þú byrja að skrifa fyrir PSet 8 eða lokaverkefnið þitt, eða í raunveruleikanum er almennt að fara að vera vistuð á miðlara, algerlega í punktur HTML eða punktur JS fyrir JavaScript skrá. En vafrinn er að fara að sækja að JavaScript kóða til eigin dæmi þínu Chrome eða IE eða Firefox, eða hvað sem er. Og númerið er í raun að fara að fá keyrð innan eigin vafranum þínum. Bara til að gera þetta meira alvöru, skulum sjá þetta í steypu formi. Við höfum enga hugmynd um hvað þessi kóði gerir án þess að lesa í gegnum það. En láta mig fara í Facebook.com án að skrá þig inn. Leyfðu mér að fara að skoða frumefni og fara til, segjum, Network og endurhlaða síðunni. Og við munum see-- láta mig vakt endurhlaða Page að fá allar beiðnir til nýtt. Og fyrsta skrá ég er CSS, CSS. Hér er fyrst JavaScript skrá, og ég hef ekki hugmynd hvað þetta gerir, en hér er sumir af JavaScript kóða sem rekur Facebook. Það er ekki einu sinni í raun að sýna til að auka aðdrátt. Það er samt bara eins og nonsensical. En þú munt sjá enn niður hér, það er jafnvel fleiri af þessum JavaScript skrár. Úpps. Það er a smellur. Við skulum fara niður smá lengra, lengra, lengra. Það er eitt. Það er eitt. Það er eitt. Svo jafnvel þótt Facebook, á bak við tjöldin, er skrifuð að hluta til í PHP og eigin útgáfa Facebook þess, það er a gríðarstór magn af JavaScript. Í raun, eitthvað af spjalla sem þú gerir á Facebook, einhverju inline Tímalína uppfærslur að gerast í rauntíma, allt sem er ekið með JavaScript. Já? Áhorfendur: Ég er ekki viss ef þetta er Facebook, en ég hélt að Facebook þróað eigin í húsinu númer þeirra tungumál? DAVID MALAN: Þeir gerðu. Svo er það hvers vegna ég segi að dreifni PHP heitir Hip Hop sem þeir í raun og veru added lögun til þannig að þegar Mark framkvæmda fyrst Facebook, það var skrifað í PHP. Og því um hefur haldist einhverskonar forsíðu tungumál að þeir nota mikið kóðun þeirra, en það hefur ekki verið tungumál sem er vog sérstaklega vel að milljörðum fólks. Og svo hafa þeir bætt eigin spýtur úrbætur á bak við tjöldin. Og þeir nota allir tala annarra tungumála fyrir ýmsum stykki af uppbygging þeirra. Svo já, það er dreifni það sem við vitum nú eins PHP. Svo skulum taka a líta á nokkra dæmum um hvernig við gætum notað JavaScript hér. Í dag frumkóða, höfum við búnt af skrá, sá fyrsti sem, skulum kallast DOM núll. Svo DOM núll lítur sem hér segir. Leyfðu mér að fara inn í þessa möppu og opna domzero.html, efst sem hefur læknir gerð yfirlýsing, segja hér kemur HTML 5. Og nú er hér HTML tag. Hér er höfuð tag. Og hér er það sem er nýtt í dag. Við höfum nú handrit tag inni í höfði á síðunni. Og þetta virðist virkar mjög lítið, en tilkynning sem ég hef skilgreint að handrit, a JavaScript. Og Sem innskot, þar sem þetta er sameiginlegur misskilningur, JavaScript hefur nákvæmlega ekkert að gera með Java, tungumál að sumir af þú gætir hafa lært í APC. Það var meira um markaðssetningu hlutur en nokkuð, útreiðar the coattails af Java árum. En JavaScript, ekkert að gera með Java, bara álíka og annoyingly, confusingly heitir. Svo hér er hvernig þú lýsa aðgerð JavaScript, bókstaflega sagt virka, þá heiti virka, þá hvaða rök það gæti tekið, bara eins og í PHP. Skrúfjárn út í JavaScript, einn af mest pirrandi aðgerðir sem eru er Alert. Þetta er lítill gluggi sem mun skjóta upp og láta þig vita að einhverju stykki af upplýsingar. Það er yfirleitt hleypa brúnum. En við munum nota það sem okkar Fyrsta æfing hér. Takið nokkrar aðgerðir JavaScript. Single og tvöfaldar gæsalappir ekki í raun máli lengur. Einn quotes og tvöfaldur vitna má víxlað en í C, þú þarft að nota gæsalöppum fyrir strengi, og þú hefur tveimur einbreiðum vitna fyrir stafir. Í JavaScript heiminum, margir, flestir Notaðu einn quotes kringum strengi bara vegna þess að það er a stylistic hlutur. En hvað er plús rekstraraðila hér, sem við höfum ekki séð áður? Áhorfendur: Samtenging. DAVID MALAN: Samtenging. Svo C er ekki einu sinni að hafa þetta. PHP hefur punktur rekstraraðila, sem gerir þetta. JavaScript hefur auk rekstraraðila, sem villast er bara eins og Java. Nú hvað er að gerast hér? Svo er hér þar sem undirstöðu skilning á þeirri mynd Við kastaði upp nokkra dögum kemur inn í leik. Manstu þegar við höfðum einfalt útgáfa af HTML page-- hún sagði bara, halló heimur. Og þá erum við dró tré til hægri, sem átti fullt af rétthyrninga og línur tengja þá eins ættartré. Svo er það svokölluð DOM eða Document Object Model. Og það kemur í ljós að þú getur fengið aðgang að ferhyrninga í trén með setningafræði eins og eftirfarandi. Þú segir bókstaflega skjal, sem er sérstakt alþjóðlegt breytu í JavaScript forrit sem hefur fall í tengslum við það sem þú getur fengið aðgang að svipað strúktúrinn, en þú einfaldlega segja punktur og þá nafn Fallið er, fá eininguna með því auðkenni. The þáttur sem ég vil fá er virðist vitna unquote nafn. Og þá vil ég að fá gildi þess. Nú erum við að fá á undan okkur. Ég er ekki einu sinni viss um hvað allt þetta er um. Skulum hratt áfram til HTML á síðunni, sem er frábær einfalt. Takið eftir að ég hef skilgreint Eyðublað niður hér. Tilkynning Ég hef gefið það einstakt ID, jafnvel þó að við höfum ekki notað Þessi eiginleiki áður. En þetta er í HTML. Þú getur einstaklega þekkja sumir klumpur HTML með aðgreini svona. Tilkynning nú snýr this-- út HTML styður, á þeim þvottahús lista í smá stund síðan, allt fullt af atburði dýraþjálfari. Og þessi atburður dýraþjálfari segir á leggja. Á notandi framlagningu þessa formi, að hringja í eftirfarandi kóða. Og kóða sem er að gerast að vera kölluð eða framkvæma er einmitt þetta, gríska virka eftir return false. Allt annað ætti vera ansi kunnuglegt. Hér er inntak af taginu texta, sem ID, í þessu tilfelli, er að fara að vera nafn. Við höfum ekki í raun nafn eigindi þetta time-- og leggja hnappinn. Svo leiðir gáir svona. Og leiðir hegðun, þú munt sjá, lítur svona út. The síðu það staðbundin gestgjafi segir, halló David, varla fagurfræðilega ánægjulegt leið til að fagna notanda. En hvað er raunverulega að gerast? Jæja, íhuga hvað þetta er. Þetta er texti sviði. Og í samræmi við HTML hér, hef ég gefið það einstakt auðkenni kallast vitna unquote nafn. Á meðan ég hef sagt þegar notandinn leggur þetta eyðublað með hitting á Enter eða smella á Senda takkann, kalla aðgerðina heitir Heilsa og síðan aftur False. Skulum íhuga þá með öfugum formerkjum. Eftir þegar ég smelli á Senda, URL síðunnar breytist ekki. Íkon vafranum ekki byrja snúast. Ég vissi ekki að fara hvar sem er, og það er bókstaflega því ég sagði aftur False. Return false skammhlaup eða hættir sjálfgefið hegðun formi. Svo að þá skilur okkur þetta eina lokaspurningin. Hvað þýðir Heilsa gera? Jæja, Heilsið virðist kallar fall sem kallast Alert, fer í einu lengi rök sem er afleiðing concatenating saman fullt af substrings, halló komma rúm, þá hvað þetta skilar. Svo er skjal eins alþjóðlegt breytu þeirri rót trés, hringja í sérstaka aðgerð, annars nú þekkt sem aðferð. A fall sem er inni af breytu er kallað aðferð í stað þess að virka. Svo fá eininguna með því auðkenni. Hvaða þáttur gera þér langar að komast af auðkenni sínu? Vitna unquote nafn og þá sérstaklega gildi. Svo í öðrum orðum, sem kóða einfaldlega finnur textareitinn lét ID er nafn og þá fær gildi þess. Svo ef ég væri að breyta þessu og segja Davin stað Davíðs, og smelltu á Senda, nú erum við hafa kveðju fyrir Davin. Allt í lagi, svo allt fínt og gott. En við skulum sjá hvort við getum gert þetta svolítið hreinni síðan bara skrifa kóðann eins og þetta er almennt að fara að hleypa brúnum. Þetta er að fara að líta scarier. En hvað er fyrsta munurinn sem þú í huga hér í þessari útgáfu fyrir utan nafn breytast til DOM einn? Hvað byggingu lítur öðruvísi um þetta á móti öðrum? Já? Áhorfendur: Er mynd á efst á handriti núna? DAVID MALAN: Já, formið er ofan af handriti fyrir sumir forvitinn ástæða. Svo er það fyrsta sem sem stökk út á mig líka. Og sem betur fer að minnsta kosti, þessi hluti er eins. Svo það eina sem virðist að vera öðruvísi er þetta. Svo er hér það sem er sniðugt um JavaScript 2. Og það gerir það erfitt að skilja við fyrstu sýn, sérstaklega fyrir lokaverkefni ef þú ert að horfa á dæmi um kóða á netinu, en það snýst um að sumir undirstöðu nokkur dæmi um setningarleg lögun. Hér er aftur að global breyta skjali. Hér er aftur þessi aðferð eða fall sem segir fá frumefni með ID. Þessi skipti sem ég vil fá auðkennið heitir kynningu. Hvar er það? Það er greinilega rétt hér er mynd sjálft. Og nú eftir því að virðist ef ég fá aftur þessi hnút úr tré sem táknar form sjálft, ekki texta sviði, það kemur í ljós að mynd, sem hnút eða rétthyrningur af trénu, hefur það sem við munum kalla eign, mjög, mjög, mjög svipuð í anda þess sem strúktúrinn í C. Það er bara gögn meðlimur inni þessa rétthyrnings. Svo ég hef fengið mynd hér, og ég er að hengja, eða ég er framselja, til Á hennar Senda stjórnandinn eða frekar On Senda eign eftirfarandi aðgerð. Og þetta er, eftir langt, geggjaðasta hlutur svona langt setningafræðilega. Það kemur í ljós í JavaScript og PHP, og hreinskilnislega um þessi mál í C, jafnvel þótt við gerum það ekki, þú getur bæta nafnlaus, nafnlaus eða AKA lambda aðgerðir sem ekki hafa nafn en er hægt að kalla engu að síður. Svo það sem ég er að gera hér er að ég er að framselja þetta á Senda eign, sem er inni þessa hnút DOM trénu mínu, a virka, virka músina ef þú vilt. Það fall hefur ekki nafn, en það virkar ekki máli vegna þess að við munum sjá í smá stund hvernig á að hringja það. Þegar þessi aðgerð er kölluð, þetta númer fær keyrð, þá ósatt er skilað eins og áður. En taka það sem ég hef gert. Á þessum tímapunkti í saga, ég er með mynd. Það er got a einstakt ID kallast Demo. Down hér, ég er með handrit tag sem framkvæmir eftirfarandi kóða. Það leggur til þessi hnút í tré til þess 'On Senda eign þessi aðgerð hér. Og bara með eðli hvernig vafrar vinna, þegar ég smelli nú leggja eða ýttu á Enter, sem virka er að fara að fá kallað. Það þarf ekki nafn því hver Heck er ekki sama hvað það er kallað. Í eina skiptið sem það er alltaf að fara að fá kallað er þegar ég skila mynd. Það er engin þörf fyrir mig, mannlegur verktaki, á reyndar kalla það einhvers staðar annars. Nú bara sem beitu, eins og ef það voru ekki hug beygja nóg, við getum jafnvel gert þetta líta meira dulinn með frábær vinsæll bókasafn heitir jQuery. Í raun jQuery og JavaScript eru oft conflated. Og það sem við munum gera á miðvikudag er byrjun nota þetta tungumál og þessi bókasöfn að byggja sífellt ósamstilltur og dynamic forrit eins kortinu fá forrit, forrit að uppfæra vefsíðu í alvöru tíma, líkt og Facebook eða Gchat gera, og ekki lengur takmarka okkur til Hitting Senda með fá eða bara eftir einn. Svo ég mun sjá þig á miðvikudag. [Tónlist spila]