[Daqq ta mużika] DAVID Malan: Dan huwa CS 50, u dan huwa l-bidu ta 'disa ġimgħa. U dak ħsibna aħna'd nagħmlu llum mhijiex biss tagħlaq il-kapitolu fuq ġimgħa li għaddiet materjal fejn aħna iffukat fuq is-server programmazzjoni web ġenb ma PHP u SQL, xi għalf database. Aħna ser jitkellmu dwar daqsxejn ta ' illum is-sigurtà u mbagħad tranżizzjoni għal programmazzjoni naħa tal-klijent lingwa magħrufa bħala JavaScript. Imma l-ewwel, xi fidwa. Inti tista 'tfakkar li fuq L-Erbgħa, I stabbiliti jiktbu websajt li ħa fil-input utent minn HTML forma li mbagħad maħżuna li l-ismijiet input utent, telefon numri, u cellphone trasportaturi fid-database. U mbagħad I kellhom kmand ftit iskrittura linja miktub fil-PHP li suppost kellha jtenni fuq l-ringieli fid-database u jibgħat messaġġi. Minkejja diversi, diversi tentattivi, aħna ma jiksbu li xogħol sa l-aħħar. So I jintefqu din il-ġimgħa kollu taħdem fuq dan il-kodiċi li nikseb us passat il-punt fejn aħna jitħalla 'off, fejn kollha Sibt sa l-aħħar Erbgħa kien dan il-messaġġ test minn Margo kif I tħabtu, segwit minn messaġġ test minn ieħor classmate, You ħadthom ltqajna dan David. Segwit minn dan wieħed, wonderfully inkoraġġanti. Miżmuma fuq għaddejjin, iqawwi qalbu ħafna. I kważi ltqajna sal then-- u dak l-nota aħna spiċċajna nhar l-Erbgħa. U mbagħad fil-fatt forsi favorit tiegħi, mument wara, dan daħal. Indanna Live Stream. Hekk illum, aħna tiffissa dan ma 'malajr tħares lejn dak I ghamilt peress. Allura kollha ta 'dan il-kodiċi huwa disponibbli online minn ġimgħa li għaddiet, tmien ġimgħa, kodiċi tas-sors. U tkun taf tara li I marru permezz, u I attwalment mnaddfa affarijiet daqsxejn. I introdotti koppja oħra karatteristiċi ta 'database SQL. Per eżempju, minflok biss tagħmel trasportatur tal char var kif naħseb jien għamilt fuq il-fly aħħar ġimgħa. I minflok definit bħala dak li sejjaħ għal ENUM. U xi wħud minnkom tista raw dan kif aħna esplorati C. ENUM huwa attwalment karatteristika ta 'C fejn inti tista tenumera mazz sħiħ ta 'kostanti u jassenjawhom valuri awtomatiċi, bħal wieħed, tnejn, tlieta, erba ' mingħajr ma jkollhom numri tal-kodiċi iebes. Allura SQL jappoġġja l-istess, fejn jekk għandek qasam database li inti biss tixtieq li tieħu fuq waħda mill finite valuri, inti tista litteralment tispeċifika dan kif I għamlu hemmhekk għal erba trasportaturi popolari cellphone Istati Uniti. So I did li. U I għamel numru ta 'bidliet bħal sew, l-aktar importanti minnhom kien li tikseb email taħdem minħabba recall, li dan il-programm bbażat ruħha fuq liema ġeneralment imsejħa email lil Portal SMS, li huwa biss mod fancy ta 'tgħid li Verizon, u AT & T, u folks oħra huma favur server, li biha jekk tirċievi email, din tinbidel għall-SMS u tibgħat test messaġġ għall-telefon ta 'xi ħadd. Mela jekk jien għamilt dan b'mod korrett, hawnhekk hija forma ġdida u mtejba li ser jitkellmu ma kodiċi l-ġdid u mtejba, li inti tista 'tilgħab ma online. U wieħed jittama li tagħmel tiegħi ħoss telefon fi ftit mument. Allura l-ewwel, jien ser tip fl-isem tiegħi. Tieni, jien mhux ser biex jagħmlu dan dan iż-żmien. Jien ser tagħmel Spezzjona Element. U dan huwa biss ħaġa ftit so I ma joħolqu sigħat ta 'post-produzzjoni jaħdmu kif għamilt aħħar darba. Hemm issa numru tat-telefon tiegħi. I ser tagħżel Verizon. U hawn, ejja dawwar fuq din mikrofonu hawn, u jimmiraw dan fil-telefon tiegħi hawn. Jien ser ikklikkja Reġistru, li għandu nisperaw poġġih fid-database. Issa jien ser imorru għall- programm kmand linja, li irtirar kienet imsejħa dot mmejla test, u cross fingers tiegħek. Here we go. [Dings PHONE] [Applause] DAVID Malan: Allura gost aktar minn this-- huwa gost, naturalment, jekk I jsibu rwieħhom fiha. Iżda huwa aktar divertenti, ħsibt, jekk aħna maħluqa waħda minn dawk il-mumenti movie fejn bħal xi ħaġa verament ħażina ġara fid-dinja, u bħall-persuni kollha NSA cellphones tibda beeping ma messaġġi twissija biex dan il-fatt. So I ħsibt aħna se jipprova jirrikreaw l-istess hawn, li biha ma jużawx 'database, I minflok bil-quddiem kiteb programm li tidher bħal dan. Din hija index.php-- u nressaq online dan il-kodiċi kif well-- li apparentement biss jirrendi form.php, użu ta 'paradigma stil MVC li aħna jitkellmu dwar f'aktar dettall fil-sett problema sebgħa. Dik il-formola hija pjuttost sempliċi. Li għaddej biex jissottometti ruħu għal fajl imsejjaħ here.php via post. U huwa apparentement ser jistaqsu għal isem, u numru tat-telefon, u mbagħad permezz tal-hekk imsejħa Menu tagħżel, huwa ser jagħtuk inqas erba trasportaturi popolari cellphone Istati Uniti, u mbagħad jippermetti li inti effettiv jieħu attendenza billi tikklikkja hawn. U hawn, sadanittant, va jissellef xi wħud mill-kodiċi mill-aħħar darba. U jekk inti biss skim dan, tkun taf tara li hemm mazz sħiħ ta 'żball iċċekkjar. Iżda l-sbuħija fl-aħħar huwa li aħna mhux qed miktub għal database llum. Aħna qed iżommha sempliċi u biss tibgħat nisperaw messaġġ test via l-funzjoni I kiteb matul l-aħħar ftit jiem sejħa Test, li hija fil Funzjonijiet. PHP, li hija għal darb'oħra disponibbli online. Mela jekk inti tixtieq biex ikollhom sehem f'dan. Aħna mhux qed tmur biex tkun ħażna xejn. Mur dan il-URL hawn fil-ħin reali. Ma jissottomettux encore biss, imma ejja ara jekk nistgħu jkollhom waħda minn dawn movie mumenti fejn cellphone kulħadd jibda beeping, nisperaw biss darba din is-sena b'differenza fl-2011 fejn dan marru horribly awry. U ladarba inti tmur f'dak l-indirizz, inti għandek tara forma sempliċi super li jekk għandek isem, cell phone numru, u trasportatur cellphone li jaqbel mal-lista hemmhekk, mur quddiem u imla l-formola. Iżda ma hit jissottomettu għadha biss. Il-formola għaddej biex teżamina bħal dan. Jimxi 'l quddiem u tip isem tiegħek, numru tat-telefon. OOP, xi ħadd għaddej qabel il-kurva. Huwa OK. OK, kulħadd mimlija l-formola. Dan għandu jaħdmu fuq telefon, wisq, jekk inti tixtieq. Kull dritt, fuq il-marki tiegħek, nikseb stabbiliti, go. Hit Hawnhekk. Liema? No Jiena naħlef li Alla, I ttestjati din ħinijiet multipli llum. Inti ltqajna? [INTERPOSING VOICES] DAVID Malan: OK, żball mill-utent forsi. C'est tnejn. Hija ħadmet għal tnejn minn ftit mijiet, tlieta, erbgħa. OK, li tajjeb. Erbgħa minn ħamsa għal Korrettezza kif madwar. Allura dak li ġara biss? Allura preżumibbilment, mingħajr ma jaraw tiegħek skrins, għaliex jista 'dan ikun errored? Huwa probabbilment li aħna kienu biss tipprova tagħmel wisq konnessjonijiet biex mail server Harvard kollha fl ladarba mill-istess indirizz IP. Jien biss guessing peress I ma il-lussu ta 'ttestjar dan il-kodiċi ma 'xi 300 ruħ bil-quddiem iżda għal issa jirrealizzaw li li mill-inqas għandhom gotten-xogħol isir dan iż-żmien. Kull dritt, hekk għaliex huwa dan kollu l- aktar germane għall x'inhu għaddej? Ukoll l-ewwel, a quick Koppja ta 'avviżi. Allura wieħed, jekk inti tixtieq li jissieħbu Chang, u Nick, u oħrajn waqt l-ikla din il-ġimgħa, jagħmlu RSVP fuq il-URL tas-soltu hemmhekk. Jekk qed taħseb jikkonċentraw jew tagħmel sekondarja fil CS, jekk int sophomore, jew freshman, jew saħansitra junior jew anzjan f'dan il-punt u xorta jistgħu għafas fil-korsijiet, jirrealizzaw li l-iskola inġinerija huwa ġbir għall Ben b'xejn u Ġelat Jerry u konsulenza dan ftit wara klassi l-Erbgħa fil 04:00 fil-bini CS fil Maxwell Dworkin. Jekk dan huwa wisq malajr fuq l-iskrin, biss jmorru li cs50.harvard.edu għal link għall-avveniment Facebook fejn tista 'tara aktar dettalji. Sadanittant, ħsibt li se jikkoreġu ħaġa waħda oħra I goofed nhar l-Erbgħa. Jirriżulta li ID Mark fuq Facebook ma kienx tlieta. Kien erbgħa. Jinstabx huwa kellu aktar test kontijiet minn I recall. Imma dak li din qisni opportunità li tagħmel huwa li pull up URL bħal dan. Għalhekk jirriżulta li Facebook għandha API, Application Programming Interface, li huwa mekkaniżmu li bih inti jistgħu jitolbu data programmatically fil Facebook u terġa 'lura magna informazzjoni tinqara, mhux paġni web imma test biss prima, xi ħaġa imsejħa JavaScript Notazzjoni Għan. U fil-fatt, jekk I żjara dan URL, u zoom fi, kontumaċja, dan huwa Mark pubblikament informazzjoni aċċessibbli. U l-dettall interessanti hawnhekk huwa biss li ID tiegħu huwa tabilħaqq, numru erbgħa, li jiena realizzati malli Jien għamilt dan. Tista 'tagħmel dan lilek innifsek jekk inti taf username tiegħek Facebook jekk għandek wieħed. Just tip it up top hemmhekk. U xejn minn dan huwa privat. Jien biss tagħmel dan anki fil-modalità incognito. Hekk jien lanqas illoggjat. U int tara li I apparentement kien numru utent 6454 fuq Facebook, li mhuwiex bad wisq dawn il-jiem. Allura xorta, tkun taf tara wkoll informazzjoni addizzjonali hemmhekk. U l-aspett utli ta 'dan huwa li inti tista 'tikteb software tiegħek stess li b'xi tintegra data bħal din fl-applikazzjoni tiegħek. Inti tista 'tagħti s-setgħa lill-utenti għall- log fis-website tiegħek, ma jużawx username custom tagħhom stess u password imma forsi login Facebook tagħhom u jiksbu l-informazzjoni anki dwar il-ħbieb tagħhom, jekk huma japprovaw tali, jew simili. Allura wieħed jinnota li CS50, wisq, għandha wħud mill APIs tagħha stess, wieħed għad-data katalogu tal-kors, xi wħud għall-menus hugs fil-dining swali, kollha tal- bini u l-postijiet fuq il-kampus għandna API għal kif ukoll li inti tista query bl-istess mod u jiksbu data testwali lura li inti tista 'tintegra fi PHP, jew JavaScript, jew saħansitra, għalkemm anqas komuni, ta ' C ibbażat fuq proġetti finali. Tabilħaqq quddiem għall-finali proġett huma tragwardi ftit. Inti ltqajna email mill us-oħra jum. Jirrealizzaw li l-proposta huwa dovut dan it-tnejn li ġejjin. Mhuwiex neċessarjament vinkolanti, imma int do bżonn li jirċievu fellows tagħlim tiegħek approvazzjoni qabel ma tagħmel kwalunkwe bidliet wara. U allura l quddiem huma numru ta 'tragwardi oħra. Allura biex tease inti, wisq, ma 'xi possibilitajiet, għandna mazz ta ' dawn bozoz tad-dawl lewn. U xi wħud minnkom guys issa għandhom xi minn dawn fil-kamra dorm tiegħek ukoll. U huma wkoll ikollhom API. Allura recall dawk ġimgħat basal binarja ilu li Dan Bradley u Ansel Duff maħluqa għalina. Huma użati interface software biex dan bozza tad-dawl, li fil-mument huwa pplaggjat f'elettriku u mbagħad permezz wireless huwa konness ma 'ħaġa ftit imsejjaħ il-Pont stabbiliti hawn, bħal proprjetarja router ftit għal dan il-mezz partikolari. Iżda jirriżulta jekk I taf kif jibagħtu messaġġi HTTP, kif aħna kollha do issa, I tista 'tibgħat messaġġ bħal dan dan bozza tad-dawl li jduru fuq jew barra jew jagħmlu kwalunkwe numru ta ' operazzjonijiet oħra fuqha. Avviż li mhuwiex jiksbu, mhuwiex post. Hemm wieħed oħra msejħa mressqa. Hemm fil-fatt ftit verbi oħra bħal dawn. Imma avviż hemm triq hemmhekk, mmejla API, mmejla iżviluppatur ġodda, mmejla dawl, mmejla waħda, mmejla istat. Dik hija apparentement biss il- triq li l-kumpanija, Philips, iddeċieda inti għandek hit ma 'talba HTTP jekk inti tixtieq li tibdel l-istat tal-bozza jużaw HTTP 1.1. Imbagħad avviż il-linja vojta. U mbagħad fl-aħħar dak qisu tip ta 'firxa ta' xi tip, Dan għal darb'oħra se jiġu msejħa JavaScript Notazzjoni Għan, jew Jason. U dak li tara hawnhekk huwa li hemm tliet pari b'valur ewlenin. Wieħed ewlenin tissejjaħ fuq. U l-valur tagħha apparentement se jkun veru. Luminożità huwa 128, li huwa xi tip ta 'int. U allura ħin ta 'transizzjoni huwa żero, li hija apparentement kemm żmien li għaddej biex jieħdu biex jibdlu din ħaġa fuq. Allura issa dritt dan bozza tad-dawl huwa off. Imma jekk I do eżattament this-- let me mur iqarrqu folja ftit li Dan twaqqaf fl advance-- u jien ser jimxi 'l quddiem u kopja l-kmand li ġej. Curl, kif xi wħud minnkom jista 'jkollok miġbura fuq CS50 Iddiskuti huwa utilità simili telnet bħal li inti tista jissimulaw talbiet HTTP, speċifikament tpoġġi. I jista 'jibgħat din id-data, speċifikament dak li aħna biss raw mument ilu speċifikament għal dan il-URL hawn fuq. U mbagħad Curl se jimmaniġġjaw kollha tal-headers meħtieġa u parsing hemmhekk ta '. So I kollha għandek tagħmel huwa kopja dan fis tieqa terminal u mbagħad hit Ikteb. U l-bozza tad-dawl tmur fuq. U din hija kollha għaddejjin kompjuter tiegħi wirelessly b'xi mod l isfel għall-pont, li huwa mbagħad tkellem ma 'dan bozza tad-dawl. I tista 'tagħmel xi ħaġa oħra. I tista 'tagħmel dan ħaġa mur aħmar per eżempju. I jistgħu per eżempju jagħmlu dan ħaġa tmur aħdar. I jista 'jagħmilha tmur blu. U avviż f'kull wieħed minn dawn każijiet, kollha li jien jinbidlu huwa l-hekk imsejħa valur lewn li attwalment jagħtuh xi kulur. So let me paste dan wieħed fil ukoll. Issa huwa blu. U inti tista 'tagħmel anki fancier affarijiet where-- ejja mur aħdar. U I jistgħu jagħmlu dan ta ' kors bil-kodiċi tiegħi stess. Iżda anki l-API innifsu jappoġġja operazzjonijiet funky bħal dan, li issa se jolqot magħna għall-30 sekonda li jmiss. Allura dak togħma waħda mill dak li inti tista do ma 'API, dan wieħed jinvolvi bozoz tad-dawl. Innota li CS50 għandha koppja pari ta 'Google ħġieġ Jekk tixtieq tixtieq tindirizza xi ħaġa flimkien dawk il-linji, Arduino UNOS, li huma kompjuters ftit żgħira, essenzjalment, fuq bord ta 'ċirkwit ftit li inti tista 'tqabbad wajers u affarijiet oħra u fil-fatt l-kontroll ambjent tiegħek fid-dinja reali. U allura hemm koppja ġugarelli ta 'ġodda li għandna. Dan wieħed litteralment biss waslu l- ġurnata oħra bil-posta, ta 'faxxa Myo. U ħsibt huwa mod biex inti tikseb eċċitati dwar il-proġetti li inti tista 'tuża ma dan hardware kieku jkun li jilagħbu dan il-klipp qasir li huma jużaw biex tease folks li aħna issa qed jgħixu fil-futur. [Daqq ta mużika] DAVID Malan: Allura fi ftit ftit ġimgħat, inti wisq tista 'tkun li jibred fil-CS50 ġust. Mezz ieħor li aħna jkollhom mazz ta 'li aħna qed kuntenti li self għall-proġetti tissejjaħ kontrollur mozzjoni. Dan huwa mezz USB ftit inti tqabbad ma 'kompjuter li jippermettilek li jinteraġixxu ma ' laptop tiegħek, Mac jew PC, bħallikieku kellek qisni Kinect Xbox u fil-fatt jagħmlu mozzjonijiet fiżiċi ħafna bħal naraw f'dan viżjoni tal-futur. [Daqq ta mużika] DAVID Malan: Hekk anke jekk għandek ebda idea kif xi ħaġa bħal dik possibilment jistgħu jiġu ivvintati jew xogħol fuq livell hardware, irrelevanti. Anke wara biss ftit xhur ta 'CS50, u konoxxenza ta 'l-ipprogrammar b'mod aktar ġenerali, u l-programmazzjoni web aktar reċentement, u allura wkoll APIs, u HTTP, inti ser ikollok aċċess permezz APIs softwer jekk inti do jridu tissellef waħda minn dawn mezzi biex effettivament jitkellmu miegħu u ma għandekx għalfejn tinkwieta dwar l-implimentazzjoni sottostanti dettalji, li hija kompletament konsistenti ma 'dan il-kunċett ta' saffi astrazzjoni li konna jintlemħu madwar il-semestru. Hekk ukoll matul il-weekend, raw biċċiet koppja ta 'aħbarijiet. Mur ewwel, mur seminars jekk inti tixtieq titgħallem xi ħaġa aktar fuq kull numru ta 'suġġetti. Ara l-URL hemmhekk. U dan wieħed kien mibgħut lill lili mill Chang, li tafu, Min hu istampar armata tagħna ta 'iljunfanti. U kien headline kif ġej. Jien terrified tat-TV ġdida tiegħi. Għaliex jien jibżgħu li jibdlu din ħaġa fuq u youd tkun wisq. Allura aħna qed issa fil- punt fil-semestru, wisq, fejn anke jekk ikollok l-iċken ta 'fehim ta 'kif il-web jaħdem, u HTTP, u s-sigurtà, affarijiet bħal dan għandhom jibdew jaqbdu l-għajnejn tiegħek. Iżda wkoll, inti ser tifhem jekk dawn l-affarijiet huma jew mhumiex theddid attwali. So I ħa siltiet ftit minn dan l-artikolu hawn. U l-istorja hija kif ġej. Jien issa s-sid ta ' TV intelliġenti ġdida, li iwiegħed li jagħti streaming kontenut multimedjatiku, logħob, app, soċjali media, u l-internet browsing, oh u TV wisq. L-unika problema hija li jien issa jibżgħu li jużawh, jgħid l-awtur. Inti tkun, wisq, jekk inti taqra permezz il-politika tal-privatezza 46 paġna għat-TV tiegħek. L-ammont ta 'data dan tiġbor ħaġa huwa xokkanti. Hija zkuk fejn, meta, kif, u għal kemm żmien inti tuża l-TV. Hija tistabbilixxi tracking cookies, kif konna diskussi, u beacons mfassla biex tiskopri meta jkollok kontenut partikolari meqjusa jew messaġġ email partikolari jekk inti tixtieq li jiċċekkjaw email fuq it-TV tiegħek. Dan ir-rekords l-apps inti użu, il-websajts li żżur, u kif inti jinteraġixxu ma 'kontenut, tagħmel kollha ta 'dak permezz tat-TV intelliġenti tiegħek. Hija wkoll, yet-- creepier li l-addition-- tiegħi tkun mibnija in camera bil rikonoxximent tal-wiċċ. L-iskop huwa li jipprovdi kontroll ġest għall-TV u jgħinuk biex log fil- personalizzata kont jużaw wiċċ tiegħek. Fuq il-rasu, l-immaġini huma ffrankati fuq it-TV minflok uploaded ma 'server korporattiva. Fuq in-naħa negattiva, l-internet konnessjoni jagħmel l-TV kollu vulnerabbli għall-hackers li urew il-ħila jieħdu l-kontroll sħiħ tal-magna. Aktar inkwetanti, kif jekk dan ma kienx intelliġenti biżżejjed, huwa l-mikrofonu. Il-TV tiftaħar vuċi rikonoxximent karatteristika li tippermetti lit-telespettaturi sabiex jikkontrollaw l-iskrin bl vuċi jikkmanda. Iżda s-servizz jiġi ma twissija pjuttost ominous. Jekk jogħġbok ikunu konxji li jekk kliem mitkellma tiegħek jinkludu personali jew sensittiva oħra informazzjoni, dik l-informazzjoni se jkunu fost l-informazzjoni maqbudin u trasmessa lil parti terza. Ghandek li? Ma jgħidux personali jew sensittivi Jittieħed quddiem TV tiegħek. Allura dan huwa attwalment għall reali. U huwa diffiċli li ma tara jekk inti mur Best Buy jew bħalhom għall televiżjonijiet dawn il-jiem. Huma qed kollha intelliġenti b'xi mod. U dawn qed jkollna aktar intelliġenti u creepier. U dawn qed sempliċement ġbir ta 'data b'modi li aħna ve tkellem dwar u mbagħad uploading dan permezz HTTP jew xi protokoll ieħor għal xi server. Allura dan kien ta 'artikolu gost f'din il-website online hawn, li tkellem dwar bug partikolari jew kodiċi żbaljata li nistgħu attwalment torbot fid-diskussjoni ġimgħa li għaddiet. Allura dan headline kien isegwi, l-istorja tmur hawn, Josh Breckman ħadem għal kumpanija li żbarkati kuntratt biex tiżviluppa ġestjoni tal-kontenut sistema, jew CMS kif dawn qed jissejjaħ, għal websajt pjuttost kbir gvern. Ħafna mill-proġett involva iżvilupp ta 'sistema ta' ġestjoni kontenut sabiex l-impjegati jkunu kapaċi li jibnu u jżommu l-dejjem jinbidlu kontenut għall-sit tagħhom. L-affarijiet marru pretty ukoll għall ftit jiem wara jmorru jgħixu. Imma fuq sitt jum, l-affarijiet marru mhux hekk tajjeb. Kollha tal-kontenut fuq l- website kienu kompletament spiċċat. U l-paġni kollha wasslu għall-inadempjenza, jekk jogħġbok niżżel il-paġna web kontenut. Whoops. Josh kien msejħa sabiex jinvestigaw u ndunat li wieħed partikolarment idejquk esterna indirizz IP kellha marret fi u mħassra kollha ta ' il-kontenut fuq is-sistema. L-indirizz IP ma kienx jappartjeni għal xi barranin Hacker bent li jkissru utli informazzjoni tal-gvern. Hija solvuti li googlebot.com, Stess web crawling spider Google. Whoops. Wara daqsxejn ta 'riċerka u scrambling madwar biex isibu backup noncorrupt, Josh sabet il-problema. A utent kien kkupjati u pasted xi kontenut minn wieħed paġna għall-ieħor, inkluż l Hyperlink Edit li jeditjaw il-kontenut fuq il-paġna. Normalment dan ma jkunx ta ' kwistjoni peress li l-utent barra kieku bżonn li jidħol isem u password, iżda s-sistema ta 'awtentikazzjoni CMS, is-sistema login, ma ħaditx in kunsiderazzjoni hacking sofistikati tekniki ta 'Google Spider. Whoops. Kif jirriżulta, Google Spider ma jużax cookies, li jfisser li tista ' faċilment bypass kontroll għall- huwa logged fuq cookie sett li jkun falz. Hija wkoll ma tingħata attenzjoni għall JavaScript, li normalment pront u jagħtu direzzjoni ġdida lill-utenti li mhumiex illoggjat. Madankollu, hija ssegwi kull hyperlink fuq kull paġna isib, inklużi dawk Ħassar Page fit-titolu. Whoops. Allura dak li jfisser dan f'aktar termini tekniċi iżda pjuttost aċċessibbli? Dan ifisser biss li matul website tagħhom, huma kellhom URLs ma b'differenza dan wieħed li inti tista 'tara fil-problema sett sebgħa. Recall fl problema stabbiliti seba jew jafu fi problema stabbiliti seba li int ikkontestata, fost affarijiet oħra, ibigħu l-istokk għan-nom ta 'l-utenti. Iżda li timplimenta dik il-karatteristika permezz tal jiksbu permezz hyperlinks fil-utent tiegħek interface, probabbilment mhux l-idea smartest għaliex jekk is-sit tiegħek huwa b'xi mod aċċessibbli jew permezz ta 'bniedem Min hu tikklikkja madwar jew jixtru bot bħall-Google jew Spider kif dawn qed jissejjaħ li jinsab biss crawling il-web jippruvaw indiċi il-web bħala search engine, huma setgħu faċilment hit permezz jiksbu dan it-tip ta 'URL. U li funzjonalment ekwivalenti għal, f'dan il-każ, bejgħ ta 'ishma kollha ta' Google. Issa franchement, huwa kompletament asinine li l-CMS JavaScript użati u l-cookies biex timplimenta sistema login tagħha u ma nagħmilx dak server sekondarji, kif inti guys tagħmel u se fl PSet 7-- hemm login.php file-- dejjem, dejjem, dejjem sigurtà għandhom ikunu isir fuq in-naħa server, mhux fuq il-naħa tal-klijent għaliex, kif dan artikolu jissuġġerixxi u inti tista yourself tara f'xi punt, huwa trivjali għal utent, tajjeb jew ħażin, għal ftit itfi JavaScript biex ma nsemmux cookies. B'tali mod li huwa WTF kuljum tiegħek. Hemm wieħed aktar, li huwa biss tip ta 'scary, so I ser jsemmuha jekk biss bħala lezzjoni ħajja. Kull meta inti tuża applikazzjoni imsejħa bħall Snapchat jew bħalhom li tgħid dawn ir-ritratti biss għall-aħħar ħames sekondi, għaxar sekondi, jew whatnot. Huma qed effimeru Dan huwa assolutament mhux il-każ. Bħal ma hemm ebda mod, diġitalment, biex timplimenta xi forma ta 'video, jew immaġni, jew testwali qsim bħal li riċevitur fuq l-oħra ma tista 'b'xi mod jiffrankaw l-informazzjoni. Bl-aktar mod naive, xi ħadd tista 'tieħu telefon tagħhom. U dawn ikollhom 10 tieni tieqa filwaqt li tħares lejn xi snap ħu xi telefon oħra u r-ritratt huwa, ovvjament. Allura inti tista 'tħares xi ħaġa diġitalment li mod. Xi wħud minnkom jafu kif jieħdu screenshots fuq il-mobile tiegħek. Fil-fatt, jekk inti ma taf dan, jirrealizzaw li mill-inqas Snapchat, u naħseb oħra applikazzjonijiet f'dawn il-jiem, inqas jgħidlek jekk il- benefiċjarju effettivament ħadet screenshot ta 'immaġini tiegħek. Iżda agħar għadu, din kienet l-snappening, bħala xi ħadd maħluqa reċentement, fejn xi 100,000 snaps kienu meħlusa fil dak li sejjaħ fajl torrent fuq diversi websites finalment. U dawn jinsabu mazz sħiħ ta 'messaġġi privati ​​u postijiet. Jirriżulta ħafna minnhom beninni, hekk mhux dak li int tista 'tistenna. Iżda għaliex in-nies kellhom użat website parti terza, logging ma Snapchat tagħhom username u password u mbagħad iffrankar kollha ta 'snaps tagħhom fuq din il-websajt parti terza. U kien dik il-parti terza websajt li kien Hacked, li ftit fisser xi ħadd dehret kif biex tikseb kollha 100,000 plus ta dawk l-immaġini fis hard drive tagħhom stess għall-qsim sussegwenti. Franchement, hawnhekk ukoll, huwa sort ta asinine li Snapchat huwa implimentat b'tali mod li parti terza tista sort ta jinterċettaw id-data u li mhuwiex marbut ma tiegħek applikazzjoni stess running fuq it-telefon. Iżda hawnhekk, wisq, tirrealizza li dawn affarijiet m'għandhomx qabda inti mill sorpriża, jew għall-inqas hemm għandu jkun lezzjoni ħajja fil hawn. Jekk inti tixtieq l-tekniku dettalji, tmur f'dak URL hemmhekk li fil slides lum. Kull dritt, xi mistoqsijiet dwar lum lezzjonijiet tal-ħajja fil-CS? Dawran li off. Xejn affattu? Xejn affattu? Stajt qbilna ħafna ta 'nies verifika Snapchat tagħhom jew xi ħaġa issa. Kull dritt, hekk SQL, Strutturat Mistoqsija Lingwa. Ejja wrap dan. U wkoll, anki jekk aħna qed biss grif il-wiċċ ta 'din lingwa, aħna ser jagħtuk biżżejjed tal-lingwa fil-forma ta PSet 7 sabiex inti tista 'tindirizza xi funzjonalità pjuttost komuni. Iżda tirrealizza hemm koppja affarijiet aħna ma jeħtieġu minnkom, iżda dawn qed tmur biex tkun importanti come proġetti finali u ċertament ħafna jagħmlu attwali websajts ma 'utenti attwali hija din id-deċiżjoni tad-disinn. Jirriżulta li fil database MySQL, inti jkollhom għenieqed ta 'għażliet bħal tip ta 'data għall-kolonni tiegħek u affarijiet oħra, imma inti ukoll għandek l-għażla ta 'l-hekk imsejħa ħażna magna għall kollha tad-data tiegħek, t-tip tal-fajl sistema, jekk int familjari, għal kulħadd tad-data tiegħek. Dak il-format huwa finalment maħżun fil? U l-aktar komuni, forsi, kien MyISAM u InnoDB, termini tekniċi li aħna ser jimpurtahom biss sal-punt li wieħed għandu u wieħed ma jkollux il-karatteristika li ġejja. Ejja ngħidu li inti għandek fridge dorm ftit. U jissoponi li inti u tiegħek roommate, li jaqsmu din fridge, huma verament fond ta 'ħalib say. U dan huwa, fil-fatt, kif il- istorja kien qal lili mod lura fil-ġurnata meta I ħa kors imsejħa CS 161 Operating Systems, li Bl-istess mod jesplora dan is-suġġett. Allura inti ħadthom ltqajna dan fridge. Int minn ħalib. U inti come home, tal roommate tiegħek għadu fi klassi jew kwalunkwe, u inti tiddeċiedi jien ser go out u nikseb xi ħalib. Allura inti qrib il-fridge, lockup il-kamra dorm, mur fl-triq li CVS jew fejn, u jiksbu fil-linja li jixtru xi ħalib. Sadanittant, roommate tiegħek gets dar mill-klassi, jidħol fil-kamra dorm, jiftaħ il-fridge, jirrealizza wkoll ooph, aħna qed barra ta 'ħalib. Hekk hu jew hi jagħlaq il- fridge u mbagħad jiġri biex tmur fil-CVS oħra, li jiġri li jkun blokka waħda bogħod mill-CVS oħra fil-pjazza, u gets fil-linja hemm biex nikseb xi ħalib. Issa, naturalment, ftit minuti aktar tard, inti kemm nikseb lura, u l-agħar ta 'kollha possibbli riżultati ġara. Tnejn inti għandek ħalib. U inti ma verament bħall-ħalib li ħafna. Allura wieħed minnhom huwa biss ser qarsa f'xi punt. Allura issa għandek ammont eċċessiv tal-ħalib fil-friġġ kollha minħabba għaliex? [Inaudible] DAVID Malan: Yeah, inti ma b'xi jikkomunikaw ma 'xulxin li inti kienu jkollna ħalib. Hekk fil-aktar sempliċi ta ' modi fid-dinja tal-bniedem, kif jista 'inti tevita dan iblah xenarju mill jiġri bħal li inti biss tispiċċa bil wieħed. Test minnhom, iva tajba. Imma kif inkella? Post-jinnota. DAVID Malan: A nota Post-it. Kwalunkwe forma ta 'komunikazzjoni li tg roommate tiegħek ma jmorrux fil-friġġ għal ħalib. Jien se jmorru jerġgħu fuq tiegħi stess. Allura inti b'xi bżonn biex jissakkar din ir-riżorsa. Allura nistgħu nagħmlu this-- nistgħu tip ta ' rovina l-istorja u jduru fis storja CS li biha think ta 'dan bħala biss bħal varjabbli, li huwa ħażna xi valur. U d-dritt issa, il- valur tal-ħalib huwa żero, li ma tridu tiegħek roommate li jispezzjonaw dak il-varjabbli u mbagħad jagħmlu deċiżjoni lilu jew lilha nfisha bbażata fuq l-istat ta 'dak il-varjabbli jekk int fil-proċess ta ' jinbidlu l-istat ta 'dik varjabbli. Allura wieħed mill-linji ta 'SQL li aħna jtik fil PSet 7 ispeċifikazzjoni huwa dan wieħed hawn. U aħna ma jonfqu enormi ammont ta 'żmien jitkellem dwar dan. Iżda jirriżulta, jekk inti qed tipprova li jixtru xi stokk fil-finanzi CS50 li diġà għandek xi ishma ta ', inti tixtieq li tkun tista 'tagħmel numru ta 'affarijiet istantanjament flimkien. Inti tixtieq li tkun tista ' effettivament, fuq livell għoli, check-dritt, jekk irrid li jixtru aktar ishma tal Ħieles, l-istokk Penny we jitkellmu dwar fil-spec, Irrid li l-ewwel verifika kemm ishma għandi. U jissoponi huwa ħamsa. U jissoponi Irrid li jixtru 10 aktar, I finalment jridu li jkollhom 15-ishma ta 'stock. So I għandhom jistaqsu żewġ mistoqsijiet. X'inhu l-istat tal-varjabbli? X'inhu l-istat tar-ringiela? Kemm ishma do I bħalissa għandhom? Imbagħad inti tixtieq li tmur quddiem u taġġornah. Allura dak l-Analog għall- ħalib li inti tiċċekkja l-ringiela, u allura inti tixtieq li jaġġornah għaliex jekk inti tixtieq tixtri 10-ishma, inti ma tridx li jibdlu il-filliera sa 10, inti trid tibdel għal 5 flimkien ma '10 jew, naturalment, 15. Din il-linja tal-kodiċi jiżgura li dawn iż-żewġ ideat kunċettwali jiġri flimkien jew xejn affattu. Ebda wieħed, inkluż xi utent ieħor Min hu logged in l-istess websajt, tista 'b'xi mod jinterrompu il-verifika tar-ringiela u l-aġġornament tal-filliera, il- tagħżel u l-aġġornament jekk inti se. U l-sintassi mhix super ovvju, iżda din il-linja wieħed, twil huwa huwa, jiżgura li dawn iż-żewġ operazzjonijiet jivverifika l-varjabbli jew jiċċekkjaw il-filliera u taġġorna l-ringiela jiġri atomically. Oh here we go darb'oħra. Messaġġ ta 'test fuq il-mobile tiegħi. Mela ejja jagħmlu dan ftit aktar konkreta. Ejja ngħidu li int mhux implimentazzjoni friġġ, u int ma implimentattivi PSet 7 iżda bank attwali, jew ATM, l Teller Awtomatizzata Magna, li biha inti b'xi tixtieq li tkun tista 'tagħti s-setgħa utenti li jittrasferixxi flus minn kont għal ieħor. OK, hang fuq. Jien ser mute dan issa, grazie. Allura aħna tixtieq li jiċċaqalqu flus minn numru tal-kont wieħed f'kont differenti numru, speċifikament $ 100. Allura dan huwa tip ta 'arbitrarja eżempju, fejn inti, l-ATM, tista 'tixtieq li tesegwixxi tnejn SQL mistoqsijiet, naqqas minn kont wieħed, u żid għall-kont ieħor. Iżda inti tixtieq li tiżgura li dawn żewġ linji kemm jiġri jew xejn affattu. Inti ma tridx xi ħaġa jkollna interrott. Inti ma xi Guy ħażina intelliġenti b'xi wieqfa fil Bank of America b'żewġ ATMs quddiem minnu u b'xi mod tip ta 'ittajpjar fid- jikkmanda fl-istess ħin, nisperaw tipprova tnaqqas $ 200 minflok ta '$ 100 u li għandhom biss $ 100 kkreditat. Fil-qosor, inti tixtieq li dan jaġixxu eżattament kif inti tistenna. U l-mod inti tagħmel dan fil SQL database hija inti wrap fil x'hemm imsejħa tranżazzjoni. Litteralment fil SQL, inti tista 'sejħa tal CS50 funzjoni query ma kwotazzjoni bidu unquote transazzjoni. Allura inti tista 'tesegwixxi kull numru ta 'mistoqsijiet SQL sussegwenti, iżda ħadd minnhom jieħdu effett fuq id-database sakemm inti sejħa query unquote kwotazzjoni jimpenjaw, jekk darb'oħra bl-użu PHP. U b'dan il-mod, inti tista 'tiżgura li anke jekk ikollok 1,000 utenti kollha laqtu database tiegħek fl-istess ħin, SQL se wegħda li dawn żewġ mistoqsijiet se jkunu implimentat id-dritt wieħed wara l-ieħor. Sabiex inti ma tispiċċa bil eċċess ta ' ħalib jew l-ammont ħażin, finalment, ta 'flus. Allura jżomm dan f'moħħu, mhux tant għall PSet 7 iżda għall-proġetti finali jekk int fil-fatt jippruvaw jimxu data madwar madwar tabelli kif inti tista hawn. Imma forsi saħansitra aktar sempliċi u aktar ovvju li wieħed jifhem bi eżempju huwa dan wieħed hawn. U xi ħadd emailed magħna dwar dan biss l-oħra jum meta raw xi ħaġa online simili. Allura għall-għarfien tiegħi, is-sistema pin mhuwiex vulnerabbli għal dan l-attakk. U għandi l-ebda idea jekk anki l-użi database SQL taħt il-barnuża. Imma ejja jużawh għal l-fini ta 'diskussjoni. Hawn l-iskrin li Folks Harvard tendenza biex tara meta logging mal tagħhom Numru Harvard ID u pin tagħhom. U jissoponi li s-sistema pin kienu implimentati fil-PHP u ma 'MySQL database, il-kodiċi li xi ħadd snin seta 'bil-miktub ilu tista 'tidher bħal dan. L-ewwel, tiddikjara imsejħa username varjabbli. U biss jiksbu dak minn l-superglobal POST. Imbagħad nikseb varjabbli ieħor imsejħa password u jagħmlu l-istess. U mbagħad biss tesegwixxi din il-mistoqsija twil hawn, star tagħżel minn utenti fejn username ugwali tali u tali u password ugwali tali u tali. Avviż li l-kaboċċi braces Stajt użat hawnhekk jfissirx biss li PHP, mur quddiem u sostitut il-valur ta 'dawk iż-żewġ varjabbli hemm dritt. Dawn mhux qed strettament meħtieġ, iżda dawn għandhom tendenza li jiġu evitati żbalji sintassi sottili. Allura dan jistenna kompletament korretta ewwel daqqa t'għajn. U huwa. Inti jista 'jimplimenta l- sistema pin b'dan il-mod. Iżda jissoponi li super student intelliġenti u malizzjuż input dan bħala pin tiegħu jew tagħha. Hekk stajt jitneħħew il-bullet sinjali hawn fil-mock up, u stajt attwalment żvelat dak li hu jew hi jista 'jkun ittajpjar. U huwa ftit stramba. Imma dak jumps fil inti fil potenzjalment tħassib dwar l-input tal-utent, anki jekk ma jkollok ebda idea liema attakk injezzjoni SQL mezzi. Għaliex ma dan tfittex ftit fishy? X'hemm li? [Inaudible] DAVID Malan: Il-jew huwa ftit suspettużi. Fil-fatt, li l-keyword minn SQL. Allura li ma bode ukoll. Il-fatt li hemm kollha dawn kwotazzjonijiet uniku there-- fil-fatt, wieħed mill-eħfef modi biex ikissru xi databases huwa billi jittajpja fl-isem bħal O'Reilly li għandha apostrophe fiha għaliex jekk il-bniedem li kiteb il-kodiċi wara l-kwinti ma tieħu in kunsiderazzjoni li hemm Jista 'jkun kwotazzjonijiet uniku fi l-utent input, u hu jew hi qed tuża kwotazzjonijiet uniku fil-kodiċi tagħhom, affarijiet ħżiena jista 'jiġri. Fil-fatt, agħar għadu, jikkunsidraw dan. Jekk dan kien għal darb'oħra l-kodiċi li xi ħadd fil snin Harvard ilu kiteb għall-pin sistema, avviż x'hemm waslu biex tikseb sostitwiti għall username u password jekk it-tipi tal-utenti mill-ġdid skroob bħala username tagħhom u mbagħad wieħed, tnejn, tlieta, erba ', ħames, kwotazzjoni jew kwotazzjoni unquote wieħed ugwali nikkwota wieħed. U avviż x'hemm ċavetta hawnhekk huwa l-utent ma jkunx beda password tagħhom jew pin tagħhom bil-kwotazzjoni. U dawn ma jkunux spiċċaw dan bil-kwotazzjoni għaliex hu jew hi huwa wieħed jassumi li jekk l- programmer ma kienx daqshekk qawwi, huma ser ikollhom dawk kwotazzjonijiet uniku fil-kodiċi tagħhom. Allura hawnhekk il-kodiċi. U s-sostituzzjoni li jista 'jiġri issa huwa dan. U stajt enfasizzat dak l-utent ikun ittajpjat fil. Allura qabel, wara. U avviż x'hemm kemmxejn tħassib issa dwar il-nofs tal-lemin ta 'dan il-kodiċi SQL? Huwa ftit aktar kumpless, ċertament, milli l-mistoqsijiet Rajna. Iżda dan ma tistax possibilment tkun ħaġa tajba jekk int qal star tagħżel, li hija tagħżel kollox mit-tabella tal-utent fejn username ugwali skroob u password ugwali wieħed, tnejn, tlieta, erba ', ħamsa jew wieħed ugwali wieħed. X'hemm l-implikazzjoni loġiku din l-aħħar klawsola preżumibbilment? Huwa biss dejjem veru. U għaliex għandna tip ta guessed jew dehret bi prova u żball li l-programmer li kiteb dan il-kodiċi ma tantiċipa persuna umana jew ħżiena ittajpjar fl kwotazzjonijiet uniku kif ukoll, nistgħu sintattiku tlesti l-query SQL ma 'xi ħaġa jagħmel ebda sens imma xi ħaġa li huwa sintattiku żbaljata li dejjem jevalwa l veru. Hekk jekk dan il-kodiċi qed tintuża biex twieġeb il-kwistjoni vera jew falza għandha dan l-utent titħalla tgħaddi, il- tweġiba hija dejjem apparentement għaddej biex ikunu vera għaliex dan huwa dejjem se biex tagħżel xi ħaġa mid-database għaliex wieħed mill-kors dejjem ugwali wieħed. Allura x'inhu l-soluzzjoni? Ukoll fil PSet 7, għandna attwalment tevita dan kollu flimkien. Aħna nagħtuk funzjoni mistoqsija, u aħna ninkoraġġukom biex tuża trade marks in kwistjoni bħala placeholders, simili fl-ispirtu li printf tal% s, imma dak ewlieni dwar il-trade marks in kwistjoni hawnhekk hija jekk inti fil-fatt taqra permezz functions.php, fejn tagħna funzjoni query tiġi implimentata, dawk trade marks in kwistjoni huma maħruba, li biha xejn potenzjalment perikolużi bħal kwotazzjoni waħda hija mixgħula fi kwotazzjoni waħda maħruba. Allura dan huwa dak i verament jiġri jekk inti jużaw funzjoni mistoqsija CS50 jew kwalunkwe numru tal-libreriji ħielsa parti terza li jagħmlu l-istess. Ma jimpurtax f'dan il-każ, fl-aħdar, jekk l-utent ikun ittajpjat fil-kwotazzjoni waħda minħabba li l-query funzjoni li aħna kiteb huwa ser iżżid backslashes qabel kwalunkwe kwotazzjoni perikolużi bħal din. Allura dan mhux, fil- fatt, se jkun leġittimu. Dan huwa simili ittajpjar fil crazy tfittex password li l-, naturalment, mhux se li jkun password attwali skroob taċ. Allura l-takeaway għal CS50 hija waħda, assolutament dejjem jużaw xi ħaġa bħall-funzjoni query CS50 ta jew il-librerija sottostanti, li jiġri li jiġu msejħa DPO. Imma qatt, qatt, qatt do kodiċi bħal dan mingħajr jaħrab jew iscrubbing kif jgħidu inputs tiegħek. U inti ser f'xi punt probabbilment jiltaqgħu xi websajt bħal dan. Fil-fatt, jidher li jkun il-każ bħal fl-ajruporti u lukandi fil-postijiet fejn ikollhom ħielsa Wi-Fi aċċess li inti għandek login għal, dawn il-websites huma dejjem implimentati horribly. U għalhekk tip ta 'gost fil dar eżerċizzju, mhux għal skopijiet malizzjużi jew aktar ta 'gost fuq it-triq eżerċizzju, huwa biss tip apostrophe, kwotazzjoni waħda, ġo formola fuq xi websajt u tara x'jiġri. U jekk il-server ġġarrfu jew jagħti inti xi tip ta 'messaġġ ta' żball, jista 'jkun tajjeb ħafna li xi ħadd ma antiċipat din. U allura inti għandek twissi lill-xierqa awtoritajiet u ma jkomplux. Allura issa inti guys għandhom nisperaw jifhmu ftit aktar geek Humer hawn. [Rires] DAVID Malan: Inti taf int geek. Għall-diversi jmiss snin, int se tiftakar li Tabelli Bobby ftit huwa minħabba dan cartoons hawn. Sabiex iżommu dan f'moħħhom kif aħna kuntest swiċċ aħħar darba illum biex JavaScript. Imxejna jintefqu relattivament ftit ħin fuq il-sintassi ta 'PHP għaliex huwa attwalment simili super biex C. U nicely biżżejjed, JavaScript wisq huwa simili super biex sintassi C kif ukoll aħna ser tara fil ftit mument u kif aħna ser tara aktar tard din il-ġimgħa b'mod partikolari. X'tista 'tagħmel ma' din il-lingwa, għalkemm, hija aktar qawwija, speċjalment ma APIs. Imma l-ewwel tour malajr. Allura wieħed, fl JavaScript, hemm ebda funzjoni prinċipali, li huwa sabiħ. Bħal ma PHP, inti tista 'biss jiktbu kodiċi. Kundizzjonijiet teżamina bħal dan. U espressjonijiet Boolean jista teżamina bħal dan jew bħal dan. Jeżistu swiċċijiet, u dawn tista 'tidher bħal dan. Erba loops teżamina bħal dan. Filwaqt loops teżamina bħal dan. Do whiles teżamina bħal dan. U mbagħad arrays look like dan, simili ħafna għall PHP. Iżda avviż, li fil JavaScript inti tiddikjara varjabbli mhux bl-dollaru tiffirma, mhux ma 'tip data iżda litteralment billi qal var għal varjabbli quddiemha. Huwa wisq huwa laxk ittajpjat fis-sens li għandha t-tipi, imma inti ma jiddikjarawx b'mod espliċitu. U mbagħad string, għal eżempju, tista 'tidher bħal dan, dik string qed jissejjaħ i f'dan il-każ. U mbagħad oġġett. U dawn Ser naraw aktar qabel twil. U l-oġġett huwa forsi waħda mill- aktar komuni li dehru strutturi ta 'dejta fil-JavaScript bbażata programm minħabba li jippermetti inti tassoċja arbitrarja pari valur ewlenin biss bħal arrays assoċjattiva PHP u bħad-mejda tiegħek hash stess jew jippruvaw kif aħna implimentati ftit ġimgħat lura. Mela ejja attwalment tara liema nistgħu nagħmlu ma 'JavaScript. U b'mod partikolari, dan huwa lista tal-londri ta 'karatteristiċi li browsers jkollhom dik inessu ganċ JavaScript fi websajt fil-mod li ġej. JavaScript huwa spiss jintuża bħala naħa tal-klijent lingwa scripting. Mhuwiex ikkompilati. Wisq huwa interpretat. Iżda b'differenza PHP, li ilu għaddej fuq is-server, fil-web server, jew ġewwa fil-fond ta 'l- klijenti, JavaScript hija differenti minħabba li dan normalment runs fil-browser. Allura kwalunkwe kodiċi JavaScript inti tibda bil-miktub għall PSet 8, jew proġett finali tiegħek, jew fid-dinja reali huwa ġeneralment għaddej li jiġu salvati fuq is-server, assolutament fil-dot HTML jew dot JS għall JavaScript fajl. Iżda l-browser huwa għaddej li tniżżel dik JavaScript kodiċi li eżempju tiegħek stess ta 'Chrome, jew IE, Firefox jew, jew ikun x'ikun. U l-kodiċi huwa attwalment għaddejjin biex tikseb esegwiti ġewwa tal-browser tiegħek. Just biex tagħmel dan aktar reali, ejja ara dan forma konkreta. Aħna għandna ebda idea dak li dan il-kodiċi ma mingħajr ma verament qari permezz ta 'dan. Iżda let me go għal Facebook.com mingħajr qtugħ fl. Let me mur Spezzjona Element u mur, ejja ngħidu, Network u rikarigu-paġna. U aħna ser see-- let me ċċaqlaq Reload l Paġna biex jiksbu t-talbiet kollha għall-ġdid. U l-ewwel ħafna fajl nara hija CSS, CSS. Hawn l-ewwel JavaScript fajl, u għandi ebda idea liema dan ma, iżda hawnhekk huwa ftit mill-kodiċi JavaScript li drives Facebook. Mhuwiex anki verament li tiżvela li zoom. Huwa għadu daqstant jagħmel ebda sens. Imma inti taf tara anke stabbiliti hawn taħt, hemm saħansitra aktar ta 'dawn il-fajls JavaScript. Whoops. Li l-ping. Ejja jinżlu ftit ulterjuri, aktar, aktar. Hemm wieħed. Hemm wieħed. Hemm wieħed. Allura anke jekk Facebook, wara l- xeni, huwa miktub fil-parti fil-PHP u Facebook stess verżjoni tiegħu, hemm ammont kbir ta 'JavaScript. Fil-fatt, kwalunkwe mill- chatting inti tagħmel fuq Facebook, kwalunkwe mill-aġġornamenti kalendarju inline li jiġri fil-ħin reali, li kollha li huwa mmexxi mill JavaScript. Yeah? UDJENZA: M'inix ċert jekk dan huwa Facebook, imma ħsibt li Facebook żviluppati stess in-house kodiċi tal-lingwa tagħhom? DAVID Malan: Huma għamlu. Allura hu għalhekk li jien ngħid varjanza ta ' PHP imsejħa Hip Hop li huma attwalment karatteristiċi miżjuda lil tali li meta Mark ewwel implimentati Facebook, kien miktub fil-PHP. U dik it-tip ta 'baqgħet t-tip tal-lingwa tarf ta 'quddiem li huma jużaw għal ħafna tal kodifikazzjoni tagħhom, iżda ma kienx f'lingwa li l- skali partikolarment tajba biex biljuni ta 'nies. U hekk li jkunu miżjuda tagħhom stess titjib wara l-kwinti. U li jużaw kull numru ta 'lingwi oħra għal diversi biċċiet ta ' infrastruttura tagħhom. Allura iva, huwa varjanza ta ' dak li aħna issa jkunu jafu kif PHP. Mela ejja tagħti ħarsa lejn koppja ta 'eżempji ta 'kif nistgħu jużaw JavaScript hawn. Fil-kodiċi sors tal-lum, għandna mazz ta 'fajls, l-ewwel waħda minnhom, ejja imsejħa DOM żero. Allura DOM żero jistenna kif ġej. Let me go fis f'dan id-direttorju u jiftħu domzero.html, il-quċċata ta 'liema għandha tip doc dikjarazzjoni, qal hawnhekk jidħol HTML 5. U issa hawnhekk xi tag HTML. Hawn il-lametta ras. U hawnhekk x'hemm ġdid illum. Issa għandna tag iskrittura ġewwa tal-kap tal-paġna. U dan apparentement ma ftit, imma avviż li stajt ddefinixxa iskrittura, a JavaScript. U bħala twarrib, peress li dan huwa kunċett żbaljat komuni, JavaScript għandha assolutament xejn li tagħmel ma 'Java, il-lingwa li xi wħud minnkom tista ' tgħallmu fil APCs. Hija kienet aktar ta 'marketing Ħaġa minn kull ħaġa oħra, riding l-coattails ta Java snin ilu. Iżda JavaScript, x'taqsam xejn mal- Java, biss bl-istess mod, u annoyingly, joħloq konfużjoni jismu. Allura hawnhekk hija kif inti tiddikjara funzjoni fl JavaScript, litteralment jgħidu funzjoni, allura l-isem tal-funzjoni, allura kwalunkwe argumenti li tista 'tieħu, eżatt bħal fil-PHP. Jirriżulta fi JavaScript, waħda mill-aktar funzjonijiet annoying li jeżistu huwa Alert. Din hija tieqa ftit li se pop up u inti twissija għal xi biċċa informazzjoni. Huwa ġeneralment frowned fuq. Iżda aħna ser tużah kif tagħna ewwel eżerċizzju hawn. Avviż ftit karatteristiċi ta 'JavaScript. Kwotazzjonijiet uniku u kwotazzjonijiet doppja ma attwalment jimpurtax aktar. Kwotazzjonijiet uniku u doppju kwotazzjonijiet jistgħu jiġu skambjati, billi fil-C, inti għandek tuża kwotazzjonijiet doppja għall kordi, u għandek żewġ waħda kwotazzjonijiet għall Chars. Fid-dinja JavaScript, ħafna nies, ħafna nies jużaw kwotazzjonijiet uniku madwar kordi sempliċiment għaliex dan huwa ħaġa stilistika. Imma x'inhu l-operatur plus hawn, li ma rajniex qabel? UDJENZA: Konkatenazzjoni. DAVID Malan: Konkatenazzjoni. Allura C lanqas ma jkollhom dan. PHP għandu l-operatur dot, li ma dan. JavaScript għandha l-operatur plus, li joħloq konfużjoni huwa bħad Java. Issa x'inhu għaddej hawn? Allura hawnhekk fejn bażiku fehim ta 'dak l-istampa aħna threw up koppja jiem ilu tidħol fis-play. Tiftakar meta kellna sempliċi verżjoni ta 'HTML page-- hija biss qal, bonjour dinja. U allura aħna ġibdet siġra lejn il-lemin, li kellhom mazz ta 'rettangoli u linji konnessjoni tagħhom bħal siġra tal-familja. Allura dak l-hekk imsejħa DOM jew Għan Mudell Dokument. U jirriżulta li jista 'jkollok aċċess rettangoli f'dak siġra ma sintassi bħall-segwenti. Inti litteralment jgħidu dokument, li huwa varjabbli globali speċjali fil-JavaScript programm li għandu funzjoni assoċjati magħha li inti tista 'aċċess simili għal Struct, iżda inti sempliċiment jgħidu dot u mbagħad l-isem tal-funzjoni tal-, nikseb element mill ID. L-element Irrid li tikseb hija apparentement nikkwota isem unquote. U mbagħad I rridu nġibu valur tagħha. Issa aħna qed jkollna l quddiem ta 'ruħna. M'inix ċert anke dak dan kollu huwa madwar. Ejja quddiem sew mal-HTML fuq il-paġna, li huwa super sempliċi. Avviż li stajt definit Formola stabbiliti hawn. Avviż Stajt taha unika ID, anke jekk aħna ve mhux użati dan l-attribut qabel. Iżda dan jeżisti fl HTML. Inti tista unikament jidentifikaw xi chunk ta HTML b'identifikatur bħal dan. Avviż issa this-- jinstabx HTML jappoġġja, per dik il-lista tal-londri mument ilu, kollu kemm hu mazz ta 'handlers avveniment. U dan l-avveniment handler jgħid fuq jissottomettu. Dwar il-preżentazzjoni utent ta 'din forma, sejħa tal-kodiċi ta 'wara. U l-kodiċi li għaddej li jinxtraw jew eżegwiti huwa eżattament dan, il-Grieg funzjoni segwit minn falza ritorn. Kollox għandu jkun pjuttost familjari. Hawnhekk hija input ta 'test tip, li l- ID, f'dan il-każ, se jkun l-isem. Aħna ma jkollux isem attribut attwali dan time-- u buttuna issottometti. Allura l-paġna li tirriżulta tidher bħal dan. U l-imġieba tirriżulta, tkun taf tara, tidher bħal dan. Il-paġna Huwa jospita lokali jgħid, bonjour David, bilkemm estetikament heureuse mod biex insellem utent. Imma dak li attwalment jiġri? Ukoll, tikkunsidra liema dan huwa. Dan huwa qasam tat-test. U skond il- HTML hawn, stajt taha identifikatur uniku imsejħa kwotazzjoni isem unquote. Sadanittant, stajt qal meta l-utent jissottometti din il-formola billi jolqot Ikteb jew tikklikkja l Issottometti buttuna, sejħa tal-funzjoni msejħa Greet u mbagħad jirritornaw Foloz. Ejja jikkunsidraw dawk fir-reverse. Avviż meta I ikklikkja Submit, il- URL ta 'din il-paġna ma tinbidilx. Icon tal-browser ma tibda għażil. I ma tmurx kullimkien, u li l- litteralment minħabba I qal ritorn foloz. Ritorn ċirkwiti qosra foloz jew b'waqfiet l-imġieba default ta 'forma. Allura li mbagħad iħalli us ma din finali mistoqsija waħda. X'jagħmel Greet do? Ukoll, Greet apparentament jitlob funzjoni msejħa Twissija, jgħaddi f'wieħed argument twil li l- ir-riżultat ta concatenating flimkien mazz ta 'substrings, Hello ispazju comma, allura x'ikun dan jirritorna. Allura dokument huwa bħal globali varjabbli għal dik għerq ta 'dak siġra, ssejjaħ funzjoni speċjali, inkella issa magħrufa bħala metodu. A funzjoni li l- ġewwa ta 'varjabbli huwa imsejħa metodu minflok ta 'funzjoni. Allura nikseb element mill ID. What do you element tixtieq li tikseb mill ID tagħha? Ikkwota isem unquote u imbagħad valur speċifikament. Allura fi kliem ieħor, dan il-kodiċi sempliċiment isib l-qasam tat-test li ID huwa l-isem u mbagħad gets valur tagħha. Hekk jekk jien kienu li jbiddlu dan u jgħidu Davin minflok David, u kklikkja Issottometti, issa aħna jkollhom greeting għall Davin. Kull dritt, hekk kollha multa u tajba. Imma ejja ara jekk nistgħu nagħmlu dan ftit cleaner peress biss kitba kodiċi bħal dan huwa ġeneralment ser jiġu frowned fuq. Dan ser tħares scarier. Imma x'inhu l-ewwel differenza li inti wieħed jinnota hawnhekk f'dan il-verżjoni minbarra l- isem jinbidlu għal waħda DOM? Liema strutturalment jistenna differenti dwar dan versus l-oħra? Yeah? UDJENZA: Huwa l-formola dwar quċċata tal-iskrittura issa? DAVID Malan: Yeah, il-formola hija fuq nett tal-iskrittura għal xi raġuni kurjużi. Allura li l-ewwel ħaġa li jumps fil lili, wisq. U Thankfully għall-inqas, din il-parti hija identika. Allura l-unika ħaġa li jidher li tkun differenti hija din. Allura hawnhekk x'hemm pulita dwar JavaScript 2. U dan jagħmilha diffiċli li jifhmu ewwel daqqa t'għajn, speċjalment għal proġetti finali kif qed tfittex fi kodiċi kampjun online, iżda li jeħodna għal xi karatteristiċi sintattika bażiċi. Hawnhekk għal darb'oħra huwa li dokument varjabbli globali. Hawnhekk ukoll hija li metodu jew il-funzjoni li tgħid tikseb l-element minn ID. Din id-darba nixtieq li jiksbu l-ID imsejħa demo. Fejn huwa li? Dak apparentement dritt hawnhekk, il-formola innifsu. U issa avviż li apparentement jekk I nikseb lura li node mill-siġra li tirrappreżenta l-forma innifsu, mhux qasam tat-test, jirriżulta li formola, li node jew rettangolu mill-siġra, għandha dak li aħna ser sejħa proprjetà, ħafna, ħafna, simili ħafna fl-ispirtu għal Struct fil C. Huwa biss membru tad-data ġewwa ta 'dan ir-rettangolu. Hekk stajt ltqajna l-forma hawn, u jien twaħħil, jew jien tassenja, li fuq tagħha Issottometti handler jew pjuttost Fuq Issottometti proprjetà il-funzjoni li ġejja. U dan huwa, bil-bosta, l-craziest Ħaġa s'issa sintattiku. Jirriżulta fil-JavaScript u PHP, u franchement għal dik il-kwistjoni fis-C, anke jekk aħna ma tagħmel dan, inti tista ' żid nameless, anonima, jew lambda AKA funzjonijiet li ma għandhom isem iżda jistgħu jiġu msejħa xorta. Allura dak li jien tagħmel hawn qed jien assenjazzjoni dan Fuq Issottometti proprjetà, li huwa ġewwa ta 'dan node ta siġra DOM tiegħi, funzjoni, pointer funzjoni jekk inti se. Dik il-funzjoni għandha l-ebda isem, iżda li ma jimpurtax għax aħna ser tara fil-mument kif hija sejħa. Meta din il-funzjoni huwa msejjaħ, dan il-kodiċi gets esegwiti, imbagħad falza huwa rritornat biss bħal qabel. Imma Avviż dak I ghamilt. Fuq dan il-punt fil- istorja, I għandhom forma. Huwa ltqajna ID unika msejħa demo. Down hawn, għandi tag iskrittura li tesegwixxi l-kodiċi li ġej. Li jagħti lill dak node fil l-siġra li huwa fuq Issottometti proprjetà din il-funzjoni hawn. U biss min-natura ta 'kif browsers xogħol, meta I issa ikklikkja Submit jew hit Ikteb, dik il-funzjoni se tikseb imsejħa. Dan ma jeħtieġx isem għaliex li l-Heck cares dak li sejjaħ. Il-ħin biss huwa qatt se tikseb imsejħa huwa meta I tissottometti l-formola. M'hemm l-ebda ħtieġa għalija, l-iżviluppatur tal-bniedem, li attwalment hija sejħa imkien ieħor. Issa biss bħala teaser, bħallikieku dik ma kinux mind liwi biżżejjed, nistgħu anki jagħmlu dan tħares aktar cryptic użu librerija super popolari imsejħa jQuery. Fil-fatt jQuery u JavaScript huma spiss conflated. U dak li aħna ser nagħmlu l-Erbgħa huwa bidu jużaw din il-lingwa u dawn il-libreriji biex jibnu aktar mhux sinkroniku u applikazzjonijiet dinamiku bħal mappa jkollna applikazzjonijiet, l-applikazzjonijiet li taġġorna l-webpage fil reali ħin, ħafna bħall Facebook jew Gchat tagħmel, u m'għadhomx tillimita lilna nfusna biex laqtu Issottometti minn get jew eżatt wara waħdu. So I se tara inti nhar l-Erbgħa. [Daqq ta mużika]