[Zenelejátszó] DAVID MALAN: Ez CS 50, és ez a kezdete hét kilencet. És mi azt hittük, ezt ma már nem csak zárja a fejezetet múlt heti anyag ahol összpontosított szerveren oldal Web programozás PHP és SQL, az adatbázis dolog. Fogunk beszélni egy kicsit biztonság ma majd átmenet a kliens oldali programozás nyelv úgynevezett JavaScript. De előbb egy kis megváltás. Talán emlékeznek, hogy a Szerda, azt tűzte ki hogy írjon egy weboldal, amely vette felhasználói input egy HTML formában, hogy az akkori tárolt hogy felhasználói nevek, telefonszámok számok, és mobiltelefon fuvarozók az adatbázisban. Aztán volt egy kis parancs sor script PHP-ben íródott kellett, hogy navigálhat át a sorokat az adatbázisban és küldjön szöveges üzeneteket. Annak ellenére, hogy több, több kísérlet is nem kap, hogy munkaképes végére. Szóval töltöttem az egész héten dolgozik az a kód, hogy minket múlt a lényeg ahol abbahagytuk, amely minden Megvan végére szerda volt ez a szöveges üzenet tól Margo ahogy küzdött, majd egy szöveges üzenetet egy másik osztálytársa, Van a David. Majd ezt, csodálatosan biztató. Mentem tovább, nagyon bátorító. Majdnem megvan ig then-- és hogy ez a megjegyzés is véget ért szerdán. És akkor tényleg talán a kedvencem, Egy pillanattal később, ez bejött. Francba Live Stream. Így ma, mi oldja meg egy gyors nézd meg, mit tettem már ettől. Tehát mindez kód áll rendelkezésre Online a múlt heti, heti nyolc, forráskód. És látni fogod, hogy mentem át, és én tényleg tisztították meg a dolgokat egy kicsit. Bevezettem egy pár más jellemzői egy SQL adatbázisba. Például, ahelyett, csak hogy hordozója var char ahogy azt hiszem menet közben a múlt héten. Én inkább úgy határozták meg mi a neve egy enum. És néhányan lehet, hogy láttam ezt ahogy feltártuk C. Felsorolt ​​valójában jellemző C, ahol lehet felsorolni egy csomó állandók és rendelje őket automata értékeket, mint egy, kettő, három, négy anélkül, hogy kemény kódszám. Így az SQL támogatja az azonos, ahol, ha Van egy adatbázis mezőt, hogy csak szeretné, hogy egy véges értékeket, akkor szó szerint adja meg ahogy én tettem ott négy népszerű amerikai mobiltelefon fuvarozók. Úgyhogy csináltam. És egy sor olyan változtatást is, a legfontosabb az, amely az volt, hogy az e-mail működik, mert emlékszem, hogy ez a program hivatkozott, amely általában az úgynevezett e-mailt SMS gateway, ami csak divatos módja mondván, hogy a Verizon, és AT & T és más emberek támogatják a szerveren, ahol, ha kap e-mailben, hogy átalakítja az SMS és küld egy szöveg üzenet egy másik telefonra. Tehát, ha én ezt jól, itt van egy új és javított formában hogy fog beszélni új és továbbfejlesztett kódot, amely játszhatsz online. És remélhetőleg, hogy a telefon sípoló csak egy pillanat. Tehát először, megyek, hogy írja az én nevemben. Másodszor, én nem megyek Ehhez ebben az időben. Megyek nem Vizsgálja Element. És ez csak egy kis dolog, úgyhogy nem létre óra utómunka működik én a múltkor. Itt most az én telefonszámot. Majd válasszuk a Verizon. És itt, most kapcsolja be a mikrofont itt, és ez a célja a telefonom itt. Megyek kattintson a Register, amely remélhetőleg tedd be az adatbázisba. Most megyek a parancssori program, ami visszahívás hívták pont perjel szöveg, és szurkoljon. Itt vagyunk. [TELEFON DINGS] [Taps] DAVID MALAN: Így sokkal szórakoztatóbb, mint this-- ez a móka, persze, ha kap bele. De ez több móka, azt gondoltam, ha létrehozott egy ilyen film pillanatok ahol, mint valami igazán rossz történt a világban, és mint a NSA nép mobiltelefon csipog A szöveges üzenetek figyelmeztetve őket, hogy ezt a tényt. Így azt gondoltam, mi lenne, próbálja meg hogy újra ugyanaz itt, amely nem használ adatbázist, Én inkább előre írt egy programot, amely úgy néz ki, mint ez. Ez egy index.php-- és én ezt a kódot az interneten mivel well-- hogy látszólag csak teszi form.php, segítségével MVC stílus paradigma, hogy mi beszélni részletesebben probléma készlet hét. Ez a forma nagyon egyszerű. Meg fog, hogy nyújtson be a nevű fájl here.php postán. És ez nyilvánvalóan fog kérni egy nevet, egy telefonszámot, majd keresztül az úgynevezett Válassza ki a menüt, akkor fog adni legalább négy népszerű amerikai mobiltelefon fuvarozók, majd lehetővé teszi, hogy hatékonyan a jelenlét, ha ide kattint. És itt, eközben fog kölcsön néhány kódot utoljára. És ha csak ezt sovány, látni fogja, hogy van egy csomó hiba ellenőrzés. De a szépség a végén, hogy a mi nem írásban adatbázist ma. Mi legyen egyszerű és csak küld ki remélhetőleg szöveges üzenetet a függvény I írta az elmúlt napokban hívás Szöveg, ami függvények. php, mely ismét elérhető online. Tehát, ha szeretne részt venni ebben. Mi nem fognak tárolására semmit. Ugrás erre az URL itt valós időben. Nem nyújt be, hogy csak még, de most hátha mi lehet egy ilyen film pillanat, amikor mindenki mobiltelefon sípolni kezd, remélhetőleg most egyszer ebben az évben ellentétben 2011-ben ha ez elment rettenetesen fonák. És ha egyszer megy, hogy a cím, látnod kell egy szuper egyszerű űrlap hogy ha van egy név, egy mobiltelefon szám, és egy mobiltelefon fuvarozó, amely megegyezik a lista, menj előre, és töltse ki az űrlapot. De ne nyomja benyújtására csak még. A forma fog kinézni. Menj előre, és írja be a a nevét, telefonszámát. OOP, valaki megy előre a görbe. Ez rendben van. OK, mindenki kitöltötte az űrlapot. Ennek működnie kell a telefon, is, ha akarod. Rendben, a jelek, kap meg, menni. Hit ide. Mi az? Nem. Istenre esküszöm, én tesztelt ezt többször ma. Megvan? [Közbeiktatásával VOICES] DAVID MALAN: OK, a felhasználó hiba talán. Ez két. Ez működött a kettő egy Néhány száz, három, négy. OK, ez jó. Ötből négy a korrektség mi a helyzet. Szóval, mi történt? Szóval valószínűleg, nem látta a képernyő, miért is ez lett errored? Valószínűleg, hogy mi volt, csak arra törekedjünk, hogy túl sok kapcsolat a Harvard-mail szerver egészet egyszer ugyanazt az IP-címet. Én csak találgatás, mert én nem azt a luxust, a vizsgálat ezt a kódot az egyes 300 ember előre de most észre, hogy hogy legalább kellene ütött a munkát ebben az időben. Rendben, miért van ez az összes inkább illenek a mi folyik itt? Hát először is, a gyors pár bejelentések. Tehát az egyik, ha szeretne csatlakozni Chang, és Nick, és mások ebéd pénteken, ezt RSVP a szokásos URL-t is. Ha arra gondolsz, koncentrált vagy csinál egy másodlagos CS, hogy te egy másodéves, vagy gólya, vagy akár junior vagy senior ezen a ponton és továbbra is nyomja a tanfolyamok, észre, hogy a mérnöki iskola gyűjt ingyenes Ben és Jerry fagylalt és tanácsadás szerdán röviddel óra után at 04:00 a CS épületben A Maxwell Dworkin. Ha ez túl gyorsan a képernyőn, csak megy hogy cs50.harvard.edu a link a Facebook esemény ahol láthatjuk a részleteket. Közben arra gondoltam, hogy korrigálni Egy másik dolog, amit elrontottam szerdán. Kiderült, hogy Mark azonosító a Facebook-on nem volt három. Ez volt négy. Kiderült, hogy már több teszt számlák, mint én emlékszem. De mi ez úgy éreztem, egy lehetőség tennie, hogy húzza fel a URL, mint ez. Így kiderül, hogy a Facebook egy API, Application Programming Interface, amely egy olyan mechanizmus, amely akkor kérhet adatot programozott A Facebook és kap vissza a gép olvasható információ, nem weboldalakat de csak a nyers szöveget, valami nevű JavaScript Object Notation. És valóban, ha én látogasson el a URL, és nagyítás, alapértelmezés szerint, ez a Mark által nyilvánosan hozzáférhető információkat. És érdekes részlet itt csak az, hogy az igazolványát Valóban, a negyedik, amelyet én rájött, amint én tettem ezt. Megteheti ezt magad, ha tudod Facebook felhasználónév ha van. Csak írja fel Felül. És mindez privát. Én csak ezt még Az inkognitó módban. Szóval nem is vagy bejelentkezve. És te látván, hogy én nyilvánvalóan volt felhasználói szám 6454 a Facebook-on, ami nem rossz ezekben a napokban. Szóval egyébként, akkor is látni További információ itt. És a hasznos szempont e az, hogy tudott írni a saját szoftver valahogy integrálja az adatokat, mint ez a saját alkalmazás. Tudod tenni a felhasználók számára jelentkezzen be a honlapon, nem használja a saját egyéni felhasználónév és jelszót, de talán a Facebook login és kap információt még arról, hogy a barátok, ha jóváhagyja, vagy hasonló. Tehát vegye figyelembe, hogy CS50 is néhány saját API-k, egy a kurzus katalógus adat, néhány a menük ölelést az étkezőben termek, mind a épületek és helyszínek az egyetemen van egy API is hogy lehet lekérdezni hasonlóan és kap vissza szöveges adatokat lehet integrálni egy PHP vagy JavaScript, vagy akár, bár ritkábban, a C alapú végleges projekt. Sőt előre az utolsó projekt néhány mérföldkövek. Van egy e-mailt, minap. Ismerd fel, hogy a javaslat köszönhető ez a jövő hétfő. Ez nem feltétlenül kötelező, de nem kell, hogy megkapja a tanítás fickók jóváhagyás előtt változtatásokat követően. És akkor előre egy számos egyéb mérföldkövek. Tehát, hogy ugratni is, Néhány lehetőség, van egy csomó ezek árnyalat izzók. És néhány srácok most van néhány Ezeknek a kollégiumi szobában is. És túl van egy API. Így emlékszem azok bináris izzók hét ezelőtt, hogy a Dan Bradley és Ansel Duff készített nekünk. Ezek egy szoftveres felület ez villanykörte, amely abban a pillanatban be van dugva a villamos energia majd a vezeték nélküli csatlakozik egy kis dolog az úgynevezett híd le itt, mint egy kis router saját hogy ezzel az eszközzel. De kiderül, hogy én tudom, hogyan kell küld HTTP-üzenetek, mint mi mindannyian most csinálni, Tudok üzenetet küldeni, mint ez a ezt villanykörte, hogy kapcsolja be vagy ki vagy nem akárhány egyéb műveletek rajta. Figyeljük meg, hogy ez nem fog, ez nem post. Van egy másik egy úgynevezett put. Van valójában néhány más hasonló igék. Vegyük észre, van egy út van, perjel API, slash új fejlesztő, vágás könnyű, vágás egy, perjel állapot. Ez nyilvánvalóan csak a út, amely a cég, a Philips, úgy döntött, meg kell, hogy elérje egy HTTP kérés Ha meg akarja változtatni az állam Az izzó a HTTP 1.1. Aztán észre az üres sort. Aztán végül amit úgy néz ki, mint a fajta egy sor valamilyen, ez megint fog hívják JavaScript Object Notation, vagy Jason. És mit lát az, hogy három kulcs-érték pár. Az egyik legfontosabb az úgynevezett fel. És az értéke látszólag lesz igaz. Fényerő 128, amely valamilyen int. És akkor átmeneti idő nulla, ami látszólag mennyi időbe fog vinni be ez a dolog. Akkor most ez izzó nem világít. De ha én pontosan this-- legyen menjek egy kis puskát hogy Dan létrehozott advance-- és megyek hogy menjen előre, és másolja a következő parancsot. Curl, ahogy néhányan Lehet, hogy a félretett CS50 Beszéljétek meg a típus, mint például Telnet hogy képes szimulálni HTTP kérések kifejezetten hozza. Tudok küldeni az adatokat, konkrétan, amit most látta, hogy egy pillanat ezelőtt kifejezetten hogy erre az URL itt. És akkor Curl fog kezelni az összes szükséges fejlécek és ott az elemzés. Tehát minden, amit meg kell tennie, hogy bemásolja egy terminál ablakot, majd nyomja meg az Entert. És a villanykörte megy. És ez mind megy keresztül A számítógép vezeték nélkül valahogy le a híd, amely Ezután beszél ez a lámpa. Én valami mást. Tudom, hogy ez a dolog megy a piros például. Én például, hogy ez a dolog megy a zöld. Én lehet, hogy megy a kék. És észre minden ilyen esetekben, mind, hogy én vagyok a változó az úgynevezett árnyalat érték valóban kap némi színt. Tehát én ezt be egyet is. Most már kék. És meg tudod csinálni még cifrább dolgok where-- menjünk a zöld. És én is ezt a Természetesen a saját kódját. De még az API maga támogatja a funky műveletek mint ez, ami most zavar nekünk a következő 30 másodpercre. Szóval ez egy íz, amit talán csinálni egy API, ez magában izzók. Ne feledje, hogy van egy pár CS50 pár Google Glass, ha azt szándékodat valami mentén ezeket a sorokat, Arduino unos, amely apró kis számítógépek, lényegében egy kis áramköri hogy tud-e csatlakozni vezetékek és egyéb dolgok és valóban ellenőrzés A valós környezetben. És akkor van egy pár Az új játékok, hogy van. Ez az egy szó szerint most érkezett a minap e-mailben, a Myo karszalagot. És azt gondoltam, hogy ez egy módja annak, hogy neked izgatott projektek hogy lehet használni ez a hardver lenne lehet játszani ezt a rövid klipet hogy az általuk használt ugratni emberek hogy mi most él a jövőben. [Zenelejátszó] DAVID MALAN: Tehát csak néhány hét, akkor is lehet, hogy hideg a CS50 vásár. A másik eszköz, hogy van egy csomó, hogy mi vagyunk szívesen kölcsön ki projektek nevezzük mozgást vezérlő. Ez egy kis USB-eszköz csatlakozik a számítógéphez lehetővé teszi, hogy kölcsönhatásba lépnek a laptop, Mac vagy PC, mintha te volt, mint egy Xbox Kinect és valóban fizikai mozgások sokkal mint látjuk ebben jövőkép. [Zenelejátszó] DAVID MALAN: Tehát akkor is, ha fogalmam sincs, hogy valami ilyesmi esetleg kitalált vagy munka a hardver szintű, nem számít. Után is csak néhány hónap CS50, és ismeri programozás általánosabb, és a webes programozás több az utóbbi időben, és akkor is, API-kat, és a HTTP, akkor van hozzáférés szoftver API-k, ha nem akar kölcsönkérni egy ilyen eszközök valójában beszélni vele és nem kell aggódnia a mögöttes végrehajtás Részletesen, amely teljesen összhangban ez a fogalom a réteg absztrakció, hogy mi már látta az egész félévben. Így is a hétvégén, látta, hogy egy-két hír. Menjünk az első, menjen a szemináriumok, ha Szeretnék tanulni valamit több, tetszőleges számú téma. Lásd az URL-t is. És ezt küldték nekem Chang, aki tudja, aki nyomtat hadseregünk elefántok. És ez volt a főcím a következő. Vagyok rémülve az új TV-t. Miért félek, hogy ezt a dolog, és azt túl. Tehát mi most a pont a félévben, is, ahol akkor is, ha a legkisebb megértés arról, hogy az interneten működik, és a HTTP, és biztonság, a dolgok, mint ez a meg kell kezdeni, hogy utolérjék a szemét. De, meg fogod érteni hogy ezek a dolgok, vagy nem tényleges fenyegetést. Szóval volt egy pár szemelvények ezt a cikket itt. És a történet a következő. Én most a tulajdonos új smart TV, ami ígér streaming multimédiás tartalmak, játékok, app, szociális média, és az internet böngészés, oh, és TV-vel is. Az egyetlen probléma az, hogy én vagyok most félek használni, mondja a szerző. Ön lenne is, ha elolvasta 46 oldal adatvédelmi irányelveit a TV. Az adatok mennyisége ezt dolog gyűjti megdöbbentő. A rönk hol, mikor, hogyan, és mennyi ideig használja a TV-t. A készletek nyomkövető cookie-kat, ahogy már említettük, és jeladók tervezett felismerni, ha van nézett adott tartalom vagy Egy adott e-mail üzenet Ha szeretné, hogy ellenőrizze e-mail a TV. Ez rögzíti az alkalmazásokat, használja, a meglátogatott weboldalakat, és hogyan használják a tartalmakat, mindent megtesz, hogy az okos TV-n keresztül. Azt is, hátborzongatóbb yet-- ez az én addition-- van egy beépített kamera arcfelismerő. A cél az, hogy gesztus vezérlés a TV és lehetővé teszi, hogy jelentkezzen be személyre szabott fiókot arcod. A fejjel, a képek mentett televízió helyett a feltöltött a vállalati szerverre. A hátránya, az internet kapcsolat teszi az egész tv érzékenyek a hackerek, akik bizonyították, hogy képesek teljes mértékben átvehetik a gép. További aggasztó, mivel ha ez nem elég okos, a mikrofon. A TV büszkélkedhet hang felismerés funkció amely lehetővé teszi a nézők, hogy ellenőrizzék A képernyő hangutasításokkal. De a szolgáltatás jön meglehetősen baljós figyelmeztetés. Felhívjuk figyelmét, hogy ha A kimondott szavak közé személyes vagy más érzékeny információ, hogy az információ között lesz a rögzített adatokat és továbbítják-e harmadik félnek. Van, hogy az? Ne mondd, hogy személyes vagy bizalmas dolog előtt a TV-t. Szóval ez tényleg az igazi. És nehéz nem látni, ha megy a Best Buy vagy hasonló TV ezekben a napokban. Mind okos valamilyen módon. És ők egyre intelligensebb és hátborzongatóbb. És ők csak az adatgyűjtés oly módon, hogy beszéltünk majd feltölti HTTP vagy más protokoll néhány szerverre. Tehát ez volt a móka cikk az online website itt, amely beszélt különös hiba vagy téves kód hogy mi is valójában döntetlen a múlt heti vita. Tehát ez a főcím volt következik, a történet itt, Josh Breckman dolgozott egy cég, amely leszállt a szerződés hogy dolgozzon ki egy tartalomkezelő rendszer rendszer, vagy CMS ahogy hívják, Egy meglehetősen nagy kormány honlapján. Sok a projekt keretében kialakítása tartalomkezelő rendszert hogy a munkavállalók lennének képes felépíteni és fenntartani az állandóan változó tartalom a helyszínen. A dolgok elég jól ment a Néhány nappal azután, hogy élesben. De a hatodik napon, a dolgok nem olyan jól. Minden tartalom weboldal már teljesen eltűnt. És az összes oldalt vezetett az alapértelmezett, Kérjük, adja tartalom weboldalt. Hoppá. Josh nevezték, hogy vizsgálja, és észrevettem, hogy egy különösen problémás a külső IP-cím volt elment és törölt minden A tartalom a rendszerben. Az IP-cím nem tartozik Egyes tengerentúli hacker hajlított A pusztító hasznos kormányzati információkat. Az döntött, hogy googlebot.com, A Google maga web mászik pók. Hoppá. Miután egy kis kutatást, és kézzel-lábbal körül, hogy megtalálják a noncorrupt hát, Josh talált a problémára. A felhasználó már másolt és beillesztett néhány tartalom egy oldalról a másikra, beleértve a Szerkesztés Hivatkozás szerkeszteni a tartalmat az oldalon. Normális esetben ez nem lehet kérdés, mivel egy külső felhasználónak meg kell adni a nevet és a jelszót, de a CMS hitelesítési rendszer, a bejelentkezési rendszer, nem veszi figyelembe kifinomult hacker technikák Google Spider. Hoppá. Mint kiderült, a Google Spider nem használja cookie-kat, ami azt jelenti, hogy képes könnyen megkerülni egy csekket a bejelentkezett cookie-készlet, hogy hamis. Ugyancsak nem figyelni JavaScript, ami általában azonnali és átirányítani a felhasználókat akik nem vagy bejelentkezve. Ennek ellenére nem követi minden hivatkozás minden oldalon találja, beleértve a Oldal törlése a címben. Hoppá. Szóval, mit jelent ez a több műszaki de eléggé hozzáférhető feltételek? Ez csak annyit jelent, hogy egész weboldal, ők URL nem ellentétben ez az egyik, hogy lehet látni probléma beállított hét. Emlékezzünk a probléma meghatározott hét vagy tudni probléma beállítva hét hogy te kétségbe, többek között, eladni készletek a felhasználók nevében. De, hogy a végrehajtó funkció útján Az kap hiperlinkek segítségével a felhasználói felület, valószínűleg nem a legokosabb ötlet mert ha a webhely valahogy hozzáférhető vagy egy emberi aki kattintással körül, vagy vesz egy bot, mint a Google vagy a Spider ahogy ők nevezik, hogy ez csak mászik az interneten próbál index az interneten, mint a kereső, tudták nagyon könnyen hit keresztül kap ez a fajta URL-t. És ez funkcionálisan egyenértékű, ebben az esetben értékesítés minden részvény Google. Most őszintén, ez teljesen ostoba, hogy a CMS használt JavaScript és a cookie-k hogy hajtsák végre a login rendszer és nem csinálja szerver oldalon, mint ti srácok és akarat Pset 7-- van egy login.php file-- mindig, mindig, mindig a biztonság legyen kész a szerver oldalon, nem a kliens oldalon, mert, mivel ez cikk azt sugallja, és lehet, hogy magad hogy egy bizonyos ponton, akkor triviális a felhasználó, jó vagy rossz, hogy csak kapcsolja ki a JavaScript nem is beszélve a cookie-kat. Annak érdekében, hogy ez a napi WTF. Van még egy, ami csak ijesztő, így fogom említeni, ha csak az élet leckét. Valahányszor egy alkalmazás így hívják Snapchat vagy hasonlók azt mondja, ezek a képek csak az utolsó öt másodperc, tíz másodperc, vagy miegymás. Ők efemer Ez egyáltalán nem ez a helyzet. Like nincs mód, digitális, végrehajtani valamilyen videó, vagy kép, vagy szöveges megosztása ilyen hogy a címzett a másik végén nem lehet valahogy menteni az adatokat. A legtöbb naiv módon, hogy valaki kerülhet a telefont. És van egy 10 másodperces ablak miközben néztem néhány pillanat alatt csak hogy néhány másik telefon és lefényképezni, nyilvánvalóan. Szóval lehet őrizni valami digitálisan így. Néhányan tudjátok, hogyan kell screenshotok a telefon. Sőt, ha nem tudja ezt, észre, hogy legalább Snapchat, és azt hiszem, más alkalmazások ezekben a napokban, legalább mondani, ha a címzett ténylegesen hozott egy screenshot a kép. De ami még rosszabb, ez volt az snappening, mivel valaki megalkotta azt a közelmúltban, ahol néhány 100.000 patent már megjelent A mi úgynevezett torrent fájl A különböző honlapokon végül. És ezek a tartalmazott egy csomó A privát üzenetek és hozzászólások. Kiderült, a legtöbb jóindulatú, tehát nem az, amit várnánk. Hanem azért, mert az emberek már használt harmadik fél honlapján, bejelentkezés azok Snapchat felhasználónevet és jelszót, majd megtakarítás minden a patentos ezen harmadik fél weboldalán. És ez volt a harmadik fél honlapján, hogy volt, csapkodott, ami csak azt jelentette, hogy valaki rájött, hogyan hogy minden 100.000 plusz a képek a saját merevlemezén későbbi megosztását. Őszintén szólva, itt is, ez a fajta Az ostoba, hogy a Snapchat hajtják végre oly módon, hogy egy harmadik fél rendezheti A lehallgatott az adatokat, és hogy ez nem kötődik a saját alkalmazás fut a telefonon. De itt is, rájönnek, hogy ezek a dolgokat nem elkapni meglepetésként, vagy legalábbis ott kell egy élet lecke itt. Ha azt szeretné, a műszaki Részletek az URL-t is, hogy ami a mai diák. Rendben, bármilyen kérdésre mai életben órákat CS? Kapcsold ki. Bármi? Bármi? Van egy csomó ember ellenőrzése a Snapchat vagy valami most. Rendben, SQL, Structured Query Language. Nézzük ezt csomagolja. És azt is, annak ellenére, mi csak karcolás a felülete nyelv, kapsz elég a nyelv formájában Pset 7 így meg tudják oldani néhány meglehetősen gyakori funkcionalitás. De észre, van egy pár dolgokat nem igényel tőled, de ők lesznek Fontos jön végső projektek és biztosan jön, hogy a tényleges honlapok tényleges felhasználók ez a tervezési döntés. Kiderül, hogy a A MySQL adatbázis, akkor Van csokor választás, mint a az adattípusok az oszlopok és más dolog, de akkor is van a választás egy úgynevezett tárolás motor az összes adatot, az a fajta fájlrendszer, ha ismerős, az összes adatot. Mi formátum azt végül tárolja? És a leggyakoribb talán már MyISAM és InnoDB, szakkifejezések hogy mi érdekel csak olyan mértékben, hogy az egyik, és az egyik nem A következő szolgáltatások. Tegyük fel, hogy van egy kis kollégiumi hűtőszekrény. És tegyük fel, hogy Ön és a szobatársam, aki osztja ezt a hűtőszekrény, nagyon szereti mondjuk a tej. És ez, sőt, hogy a történet azt mondták, hogy nekem vissza A nap, amikor vettem egy kurzus úgynevezett CS 161 operációs rendszerek, amelyek hasonlóan vizsgálja ezt a témát. Szóval van ez a hűtő. Te ki a tej. És jössz haza, a szobatársam még osztály, vagy bármi, és úgy dönt, hogy megyek menj ki, és egy kis tejet. Szóval becsukod a hűtőt, börtön a kollégiumi szobában, menjen át az utca a CVS vagy bárhova, és kap összhangban vásárolni egy kis tejet. Eközben a szobatársam hazaér osztálytól, bejut a kollégiumi szobájában, Megnyílik a hűtőszekrény is rájön ooph, kifogytunk a tej. Így ő becsukja a hűtő és akkor történik menni a másik CVS, amely történetesen egy saroknyira a többi CVS a téren, és megkapja a sorban ott egy kis tejet. Most, persze, néhány perc alatt később, akkor is kap vissza, és a legrosszabb lehetséges eredmények történt. Mindketten van tej. És nem igazán mint a tej, hogy sok. Tehát az egyik ezek közül csak megy savanyú valamikor. Tehát most már túl sok A tej a hűtőben minden, mert miért? [Hallható] DAVID MALAN: Igen, nem valahogy kommunikálni egymással hogy kezdtek tejet. Így a legegyszerűbb módon az emberi világban, hogyan lehet elkerülni a buta forgatókönyv történik ilyen hogy csak a végén egy. Szöveg őket, igen jó. De hogyan máshogy? Post-it jegyzetek. DAVID MALAN: A Post-it jegyzet. Bármilyen forma kommunikáció hogy mondja meg a szobatársam nem megy be a hűtőbe tej. Én megyek a saját újratelepítésére. Szóval valahogy szüksége van zár ehhez az erőforráshoz. Így lehet, hogy this-- tudjuk milyen tönkreteheti a történet, és kapcsolja be a CS történet amely gondolni ezt, mint egy változó, ami tárolja bizonyos értéket. És most, a értéke tej nulla, amely nem szeretné, hogy a szobatársa, hogy vizsgálja meg a változó majd döntést saját maga alapján az állam, hogy a változó ha a folyamat állapotának megváltoztatásával, hogy a változó. Tehát az egyik vonal, amit SQL Önnek a Pset 7 leírásban ez itt. És mi nem költenek egy hatalmas időt beszélni róla. De kiderült, ha megpróbálják hogy vásároljon néhány állomány CS50 pénzügy hogy már van egyes részvények, akkor szeretné, hogy képes megtenni több A dolgok azonnal együtt. Azt akarod, hogy képes legyen hatékonyan, a magas szintű, ellenőrizze a helyes, ha azt akarom, hogy többet vásárolnak részvényeket szabad, A penny állomány is beszélni a spec, Szeretnék első ellenőrzés hány részvényt van. És hiszem, ez öt. És tegyük fel, azt akarom, hogy vásárolni 10 több, én végül szeretné, hogy 15 részvény állomány. Szóval kell feltenni két kérdést. Mi az állam a változó? Mi az állam a sor? Hány részvények tudom jelenleg? Akkor akarsz menni előre, és frissíti azt. Szóval ez az analóg a tej, hogy ellenőrizze a sor, és akkor szeretnénk frissíteni mert ha meg akarja vásárolni 10 részvény, nem akar változtatni a sor, hogy 10, akkor szeretné változtatni, hogy 5 plusz 10 vagy természetesen, 15. Ez a vonal a kód biztosítja, hogy e két elképzeléseket közösen történik, vagy egyáltalán nem. Senki, még egy másik felhasználó aki belépett az ugyanazon a honlapon, valahogy szakítani ellenőrzését a sor és aktualizálását a sor, a válassza ki a frissítést, ha úgy tetszik. És a szintaxis nem szuper nyilvánvaló, de ez egy sor, amíg van ez, garantálja, hogy a két művelet ellenőrizze a változó vagy ellenőrizze a sor és frissítse a sorban történik atomically. Ó, itt vagyunk megint. Szöveges üzenet a telefonon. Szóval, hogy ez a kicsit konkrétabb. Tegyük fel, hogy te nem megvalósítása hűtőszekrény, és te nem végrehajtó Pset 7, de a tényleges bank, vagy egy ATM, egy Automated Teller Gép, amely valahogy szeretné, hogy képes legyen képessé felhasználók számára, hogy pénzt az egyik számláról a másikra. OK, tarts ki. Fogom némítani ezt most, köszönöm. Ezért szeretnénk mozgatni a pénzt egy számlaszám egy másik fiókba szám, különösen a 100 dollárt. Tehát ez a fajta önkényes Például, ahol te, az ATM, Lehet, hogy végre két SQL lekérdezések, kivonni az egyik fiókból, és hozzáadjuk a többi számla. De szeretnénk, hogy ezek az két vonal mindkét történik, vagy egyáltalán nem. Nem akar valamit egyre megszakadt. Ugye nem valami okos rosszfiú valahogy állt a Bank of America két ATM-ek előtt Az őt és valahogy fajta beírja a parancsok egy időben, remélhetőleg megpróbálta levonni 200 $ helyett $ 100, és csak miután 100 $ jóváírásra. Röviden, ha szeretnénk, hogy ez viselkednek, pontosan úgy, ahogy elvárható. És ahogy te ezt az SQL adatbázisban tekerje be mi úgynevezett tranzakció. Szó SQL, akkor hívja a CS50 lekérdezés funkció idézettel idézet vége kezdet tranzakció. Akkor végre bármilyen szám A későbbi SQL lekérdezések, de egyikük sem vesz hatása az adatbázisban amíg a hívás lekérdezés idézet idézet vége követ el, ha újra a PHP. És így, tudod, hogy akkor is, ha 1000 felhasználók minden üti az adatbázis ugyanabban az időben, az SQL megígérem, hogy ezek a két lekérdezés lesz megvalósított egyik a másik után. Szóval nem a végén meghaladja a tej vagy a megfelelő összeget, végül, a pénz. Tehát ezt tartsd szem előtt, nem annyira Pset 7 de végső projektek ha tényleg próbálja mozgatni az adatokat körülbelül a táblázatok, ahogy talán itt. De talán még egyszerűbb, nyilvánvaló, hogy megértsük egy példa ez itt. És valaki e-mailben nekünk ez csak a minap amikor látta, valami hasonlót az interneten. Szóval, hogy tudomásom szerint a csap rendszer nem érinti ez a támadás. És fogalmam sincs, ha még felhasználásra Az SQL adatbázis a motorháztető alatt. De nézzük azt használjuk a vita kedvéért. Itt a képernyőn, Harvard emberek hajlamosak látni, amikor bejelentkezik a saját Harvard azonosító szám és pin. És tegyük fel, hogy a csap rendszer volt megvalósításra a PHP és a MySQL adatbázis, a kódot, hogy valaki Lehet, hogy írt évvel ezelőtt így néz ki. Először is kijelentem, a nevű változó felhasználónév. És csak kap, hogy a a POST szuperglobális. Aztán még egy változó úgynevezett jelszó, és nem ugyanaz. És akkor csak végre ez a hosszú lekérdezés itt, válassza ki a csillag a felhasználóktól, amennyiben felhasználónév megegyezik az ilyen és ilyen és a jelszó megegyezik az ilyen és ilyen. Figyeljük meg, hogy a göndör nadrágtartó Én is használtam itt csupán azt jelenti, hogy PHP-t, menjen előre, és a helyettesítő értéke e két változók ott. Ők nem feltétlenül szükséges, de hajlamosak kerülni finom szintaktikai hibákat. Tehát ez úgy néz ki, teljesen megfelelő első pillantásra. És ez. Lehet végre a csap rendszer ezen a módon. De tegyük fel, hogy egy szuper okos és rosszindulatú diák bemenet ezt ő pin. Szóval eltávolították a golyó jelek itt a modell fel, és én már feltárták, amit ő lehet gépelni. És ez egy kicsit furcsa. De mi ugrik ki téged a lehetségesen aggasztó a felhasználó által megadott, akkor is, ha fogalma sincs, mit SQL injekciós támadás jelenti. Miért ez meg egy kicsit gyanús? Mi ez? [Hallható] DAVID MALAN: A, vagy egy kicsit gyanús. Tény, hogy ez egy kulcsszót SQL. Annak érdekében, hogy semmi jót nem. Az a tény, hogy van Mindezen aposztrófot there-- sőt, az egyik legegyszerűbb módon megtörni egyes adatbázisok az beírja a nevet, mint O'Reilly hogy van egy aposztróf benne mert ha az ember, aki írta A kód a színfalak mögött nem veszi figyelembe, hogy ott Lehet, hogy egyes idézetek nem a felhasználó bemenet, és ő használ aposztrófot a saját kódját, rossz dolgok is történnek. Sőt, ami még rosszabb, hogy ezt. Ha ez ismét a kódot hogy valaki a Harvardon év ezelőtt írt a csap rendszer, észre mi arról, hogy kap helyette A felhasználónév és jelszó ha a felhasználó beír újra skroob azok felhasználónév majd egy, két, három, négy, öt, idézet vagy idézet idézőjel bezárva egy egyenlő idézet egy. És észre, mi a kulcs itt van a felhasználó nem kezdték jelszót vagy a pin egy idézet. És még nem ért véget az egy idézet, mert ő azt feltételezi, hogy ha a programozó nem volt olyan éles, fognak, hogy e aposztrófot a saját kódját. Tehát itt a kódot. És az, hogy a helyettesítés Lehet, most ez történik. És én hangsúlyozta, milyen a felhasználó beírt. Szóval mielőtt után. És észre, mi enyhén aggasztó most a jobb fele a SQL-kódot? Ez egy kicsit bonyolultabb, igaz, mint a lekérdezések láttunk. De ez nem lehetséges egy jó dolog, ha mondván válasszuk csillag, ami válasszuk mindent a felhasználó asztal ahol a felhasználónév és egyenlő skroob jelszó értéke egy, kettő, három, négy, öt vagy egy egyenlő egy. Mi a logikai következmény Az, hogy az utolsó záradék feltehetően? Csak mindig igaz. És mivel mi fajta sejtette vagy kitalálta próbálgatással hogy a programozó, aki írta ezt a kódot nem előre egy ember vagy rossz ember gépelés aposztrófot is, tudjuk szintaktikailag teljes SQL lekérdezés valami értelmetlen hanem valami, ami szintaktikailag hibás hogy mindig értékeli az igaz. Tehát, ha a kódot használják, hogy válaszoljon a kérdés igaz vagy hamis kell felhasználó átmehet, a válasz mindig látszólag megy hogy igaz legyen, mert ez mindig megy válassza ki valamit az adatbázisból mert az egyik persze mindig egyenlő egy. Tehát mi a megoldás? Nos Pset 7, valójában Ennek elkerülése érdekében minden együtt. Adunk egy lekérdezés funkciót, és mi javasoljuk, hogy használja a kérdőjel helyőrzőként, hasonló a szellem a printf% s, de mi a legfontosabb a kérdőjelek itt, ha tényleg elolvasta functions.php, hol mi lekérdezés funkció elérhető, ezek a kérdőjelek vannak megszökött, amely valami potenciálisan veszélyes mint egy idézet van egy szökött egy idézet. Szóval, ez az, ami tényleg történik, ha használja CS50 lekérdezés funkciót vagy bármilyen szám Harmadik fél szabad könyvtárak nem ugyanaz. Nem számít, ebben az esetben a zöld, ha a felhasználó beírt egyetlen idézet mert a lekérdezés funkció, amit írtam az fog hozzá visszaperjelek előtt ilyen veszélyes árajánlatot. Tehát ez nem a Sőt, lesz legális. Ez olyan, mint beírni a keresett őrült jelszó, ami, persze, nem megy hogy skroob aktuális jelszavát. Így az elvihető az CS50 egy, teljesen mindig valamit mint CS50 lekérdezés funkciója vagy az alapul szolgáló könyvtár, amely történetesen az úgynevezett OEM. De soha, soha, Soha nem kód, mint ez nélkül elkerülni vagy súroló mint mondják a bemenet. És akkor egy bizonyos ponton valószínűleg ráakad néhány weboldal, mint ez. Sőt, úgy tűnik, hogy ez a helyzet mint a repülőterek és szállodák helyeken ahol ingyenes Wi-Fi-vel hozzáférés, hogy kell jelentkezned hogy, ezek a weboldalak mindig rettenetesen végre. És így egyfajta szórakozás otthon gyakorolja, nem rosszindulatú célokra vagy több A móka az úton gyakorlat az, hogy csak a típus egy aposztróf, egy idézet, egy űrlap a honlap bizonyos és meglátjuk, mi történik. És ha a szerver összeomlik, vagy ad Ön valamilyen hibaüzenet, ez nagyon jól lehet, hogy valaki nem számított erre. És akkor kell figyelmeztetni a megfelelő hatóságok és folytassa tovább. Tehát most, srácok remélhetőleg megérteni egy kicsit stréber humor itt. [Nevetés] DAVID MALAN: Tudod, te egy stréber. A következő néhány év, akkor emlékezni fog aki kis Bobby táblázatok mert ez a rajzfilm itt. Tehát, hogy tartsa szem előtt, mint mi kontextus kapcsoló egyszer, utoljára ma JavaScript. Már töltött viszonylag kevés idő a szintaxis a PHP mert valójában szuper hasonló a C. És szépen elég, JavaScript is szuper hasonlít a C szintaxisa továbbá fogunk látni Csak egy pillanatra, és mivel mi lásd később ezen a héten különösen. Mit lehet csinálni ezen a nyelven, bár, annál is erősebb, különösen API-k. De először egy gyors túra. Így egy, a JavaScript, van nem fő funkciója, ami szép. Mint a PHP, akkor csak írni kódot. Feltételek kinéznie. És lehet, hogy logikai kifejezések néz ki, mint ez, vagy ehhez hasonló. Kapcsolók létezik, és ők így néz ki. Négy hurok kinéznie. While kinéznie. Tetszik mindaddig néz ki. És akkor tömbök kinézni ez nagyon hasonlít a PHP. De észre, hogy a JavaScript te hogy egy változót nem a dollár írja alá, nem pedig egy adattípust, hanem a szó szoros értelmében azzal var változó előtt. Ez is lazán gépelt annyiban, hogy típusok, de nem kifejezetten nyilvánítja őket. És akkor egy karaktersorozatot Például, lehet nézni ilyen, hogy húr hívott s ebben az esetben. És akkor egy tárgy. És ezek fogunk többet látni hamarosan. És egy tárgy talán az egyik leggyakrabban látott adatszerkezetek egy JavaScript alapú program, mert lehetővé teszi, hogy Ön társítani önkényes kulcs érték párok csak mint a PHP asszociatív tömbök és mint a saját hash tábla vagy próbálja ahogy végre néhány hete. Úgyhogy tulajdonképpen mit tehetünk JavaScript. És különösen, ez mosodai szolgáltatások listája hogy böngészők hogy lehetővé teszi a horog JavaScript egy weboldal a következő módon. JavaScript sokszor használják a kliens oldali programozási nyelv. Ez nem összeállítani. Azt is értelmezhető. De ellentétben a PHP, amely már működik a szerveren, a webszerver, vagy mélyen a az ügyfelek, JavaScript különbözik annyiban, hogy általában fut a böngészőben. Tehát bármilyen JavaScript kódot íráshoz A Pset 8 vagy a projekt végső, vagy a valós világban általában megy kell menteni a szerveren, teljesen Egy pont a HTML vagy pont JS JavaScript fájlt. De a böngésző megy letölteni a JavaScript kód a saját példányának Chrome, vagy IE vagy a Firefox, vagy bármi. És a kód valóban fog kapni végre belül a saját böngészője. Csak, hogy ez még a valódi, nézzük ezt a konkrét formában. Fogalmunk sincs, hogy mi ez a kód nem nem igazán olvassa át azt. De hadd menjek Facebook.com bejelentkezés nélkül. Hadd menjen Vizsgálja Element, és menjen, mondjuk, a Hálózat és az oldal újratöltődik. És mi csak-- hadd váltás Reload az Oldal, hogy minden kérést új. És az első fájl, amit látok, CSS, CSS. Itt az első JavaScript fájlt, és én fogalmam sincs, hogy ez mire jó, de itt néhány, a JavaScript kód ami hajtja a Facebook. Ez nem is igazán, hogy felfedve a nagyításhoz. Még mindig ugyanolyan értelmetlen. De látni fogod azt is, lent, ott van még több ilyen JavaScript fájlokat. Hoppá. Ez a ping. Menjünk le egy kicsit további továbbá, tovább. Van egy. Van egy. Van egy. Így, bár a Facebook mögött a jelenetek, van írva részben PHP és a Facebook a saját verzióját cikkére, van egy hatalmas mennyiségű JavaScript. Valójában bármely, a beszélgetni te a Facebook-on, bármelyik inline idővonal frissítések hogy valós időben történik, az összes, hogy hajtja JavaScript. Igen? KÖZÖNSÉG: Nem vagyok benne biztos ha ez a Facebook, de úgy gondoltam, hogy a Facebook kifejlesztett saját házon kód nyelvet? DAVID MALAN: Tették. Szóval ezért mondom a variancia PHP nevű Hip Hop, hogy ténylegesen hozzáadott funkciók, hogy ha Mark először végre a Facebook, azt írták PHP. És ez a fajta maradt A fajta front end nyelv hogy az általuk használt, sokkal azok kódolás, de nem volt olyan nyelv, ami skálázható különösen jól milliárd az emberek. És így hozzá saját fejlesztések a színfalak mögött. És használja fel a számot más nyelvek különböző darab az infrastruktúra. Szóval igen, ez egy szórása amit mi már tudjuk, a PHP. Szóval vessünk egy pillantást egy pár példa Az hogyan lehet használni JavaScript ide. A mai forráskódját, hogy van egy csomó kép, amelyek közül az első, nézzük az úgynevezett DOM nulla. Így DOM nulla a következőképpen néz ki. Hadd menjek ebbe a könyvtárba és nyissa fel domzero.html, a tetején, amely egy doc típus nyilatkozat, mondván, itt jön a HTML 5. És most itt van egy HTML-címke. Itt a fejét tag. És itt van, mi újság ma. Most van egy script tag belsejében a fejét a lap. És ez nyilvánvalóan nem nagyon kevés, de nyilatkozat hogy már meghatározta a script, a JavaScript. És mint félre, mert ez egy közös tévhit, JavaScript egyáltalán semmi köze a Java, a nyelv hogy néhányan talán tanultak APCS. Ez inkább egy marketing dolog, mint bármi, lovaglás a coattails Java évvel ezelőtt. De JavaScript, semmi köze Java, csak hasonlóan, és bosszantóan, zavaróan nevét. Tehát itt van, hogyan állapítsa meg a függvény JavaScript, szó szerint azt mondják funkció, akkor a függvény neve, akkor olyan érveket is eltarthat, Csak úgy, mint a PHP. Kiderült a JavaScript, az egyik bosszantó funkciók, akkor lehet Alert. Ez egy kis ablak, jelenik meg, és figyelmeztet néhány darab információt. Ez általában elítélik. De majd használni, mint a mi első gyakorlat itt. Figyeljük meg néhány jellemzője JavaScript. Egyetlen idézetek és dupla idézőjelek valójában nem számít többé. Egyetlen idézetek és kettős idézetek felcserélhető, mivel a C, meg kell használni dupla idézőjelek vonósokra, és van két egyszemélyes A karakter idézi. A JavaScript világban, Sok ember a legtöbb ember használjon egy idézőjelbe húrok csak azért, mert ez egy stilisztikai dolog. De mi az a plusz operátor itt, amit még nem látott? KÖZÖNSÉG: összefűzése. DAVID MALAN: összefűzése. Tehát C nem is kell ezt. A PHP a pont operátor, ami ez. JavaScript az a plusz üzemeltető ami megtévesztésig olyan, mint a Java. Most mi folyik itt? Szóval, itt van, ahol az alap megértése, hogy a kép dobtunk egy pár nappal ezelőtt kerül szóba. Emlékszel, amikor volt egy egyszerű változata egy HTML page-- ez csak azt mondta, hello world. Aztán felhívta a fa jobbra, ami volt egy csomó téglalapok és vezetékek összekötő őket, mint a családfa. Szóval ez az úgynevezett DOM vagy Document Object Model. És kiderül, hogy te férsz hozzá téglalapok azon a fán a szintaxis mint a következő. Azt mondják, a szó szoros értelmében a dokumentum, amely a speciális globális változó egy JavaScript program, amely a funkció társított hogy érheti hasonló a struct, de egyszerűen mondjuk pont, majd a függvény nevét, kap elem ID. Az elem akarok az látszólag idézet idézet vége nevét. És akkor azt akarom, hogy az értékét. Most már egyre előtt magunkat. Nem is vagyok biztos benne, mi ez az egész. Nézzük gyorsan előre, hogy a HTML-t A lap, amely szuper egyszerű. Figyeljük meg, hogy én már definiált a formában le itt. Figyeljük adtam, hogy egy egyedi ID, bár most már nem használják ez az attribútum előtt. De ez van a HTML-ben. Akkor egyedileg azonosítani néhány darab HTML azonosítójával, mint ez. Közlemény most this-- kiderül HTML támogatja, hogy egy mosodai listát Egy pillanat ezelőtt, a teljes csomó esemény rakodók. És ez eseménykezelő mond benyújtására. A felhasználó benyújtása e forma, hívja az alábbi kódot. És a kód, ami megy hogy hívják, vagy végre pontosan ez, a görög funkciót, majd visszatérés hamis. Minden más kellene elég ismerős. Itt van egy bemeneti típusú szöveg, melynek Azonosító, ebben az esetben lesz nevét. Nincs tényleges neve tulajdonság ez time-- és a küldés gomb. Így a kapott oldal úgy néz ki, mint ez. És a kapott viselkedés, Majd meglátod, hogy úgy néz ki, mint ez. A lap azt a helyi gazdák mondja, helló David, alig esztétikus módja annak, hogy üdvözölje a felhasználónak. De mi történt valójában? Nos, úgy, hogy mi ez. Ez egy szöveges mező. És szerint HTML ide, én adtam meg egy egyedi azonosítót az úgynevezett idézet idézet vége nevét. Közben mondtam, ha a felhasználó elküldi az űrlapot által az Enter vagy a Küldés gombra kattintva gomb, hívja a nevezett funkció Greet majd vissza hamis. Vizsgáljuk meg ezeket a fordított. Figyeld meg, amikor kattintson a Küldés gombra, a Az oldal URL címe nem változik. A böngésző ikonja nem kezd forogni. Nem megy sehova, és ez Szó szerint, mert azt mondtam vissza False. Return false rövidzárlat vagy leáll alapértelmezett viselkedése formában. Annak érdekében, hogy akkor hagy minket ez egy utolsó kérdés. Mit Greet csinálni? Nos, úgy tűnik Köszöntsétek meghív egy függvényt nevű Alert, halad egy hosszú érvet, hogy ez eredménye egybetoldjuk együtt egy csomó részstring helló vessző tér, akkor bármi ad vissza. Így a dokumentum, mint a globális változót, hogy a gyökere az, hogy a fa, hívás egy speciális funkció, egyébként ma már ismert, mint módszert. A függvény, ami belsejében egy változó nevezett eljárás helyett a függvény. Szóval elem ID. Mi ugye elem szeretnénk, hogy annak azonosító? Idézet idézőjel bezárva neve és majd külön értékelik. Tehát más szavakkal, hogy a kód egyszerűen úgy véli, a szöveges mező, melynek azonosító neve majd megkapja az értékét. Tehát, ha én változtatni ezt és mondjuk Davin Dávid helyett, és kattintson a Küldés gombra, most mi Van egy köszöntést Davin. Rendben, szóval minden szép és jó. De lássuk, ha tudjuk, hogy a ez egy kicsit tisztább, mivel csak kódot írni, mint ez a általában lesz elítélik. Ez fog nézni rémisztőbb. De mi az első különbséggel, hogy itt megjegyezni, ez a verzió mellett név váltáskor DOM egy? Mi szerkezetileg máshogy néz ki erről a másikkal szemben? Igen? KÖZÖNSÉG: Az űrlapot tetején a script most? DAVID MALAN: Igen, a forma tetejére A szkript valamilyen furcsa oknál fogva. Szóval ez az első dolog, hogy ugrik ki engem is. És szerencsére legalább ez a rész megegyezik. Tehát az egyetlen dolog, ami úgy tűnik, hogy más ez. Szóval, itt van, ami szép körülbelül 2 JavaScript. És ez teszi nehéz megérteni első pillantásra, különösen az utolsó projekteket, amennyiben nézel példakód az interneten, de ez csapódik le, hogy bizonyos alapvető szintaktikai funkciókat. Itt ismét az, hogy a globális változót dokumentum. Itt megint az, hogy a módszer vagy funkció azt mondja, hogy az elem ID. Ezúttal szeretnék kap az ID nevű demo. Hol van ez? Ez nyilvánvalóan jobb itt, a forma is. És most észre, hogy ha látszólag vissza a csomópont a fa képviseli formájában önmagában nem egy szöveges mező, kiderül, hogy a forma, hogy csomópont vagy téglalap a fáról, van, mi fogjuk hívni a tulajdonság, nagyon, nagyon, nagyon hasonló lélekben egy struct C. Ez csak egy adat tag belsejében a téglalap. Szóval megvan a nyomtatvány itt, és én fűződő, vagy én vagyok rendel, annak a Submit felvezető vagy inkább On Submit ingatlan A következő függvény. És ez, messze a legőrültebb dolog eddig szintaktikai. Kiderül, a JavaScript és a PHP, és őszintén szólva azt illeti C, még ha ezt nem tesszük meg, akkor add névtelen, névtelen, vagy AKA lambda funkciók, amelyek nem rendelkeznek egy nevet de nevezhetjük mégis. Szóval, mit csinálok itt vagyok kijelölése A Küldés e tulajdonság, amely belsejében van ez a csomópont az én DOM fa, a függvény, függvény pointer ha úgy tetszik. Ez a funkció nem nevet, de ez nem számít, mert majd meglátjuk egy pillanat alatt, hogy hogyan hívják. Ha ez a funkció neve, ez kód kerül végrehajtásra, akkor hamis visszakerül, mint azelőtt. De figyeld meg, mit tettem. Ezen a ponton a történet, van egy forma. Van rajta egy egyedi azonosítóval, úgynevezett demo. Itt lent, van egy script tag hogy végrehajtja a következő kódot. Tulajdonít, hogy a csomópont a fa ez On elküldése Ingatlan itt ez a funkció. És csak a természet, hogyan böngészők működik, amikor én most kattintson a Küldés gombra vagy nyomja meg az Enter, hogy funkció fog, hogy hívják. Nem kell a nevét, mert aki a fene érdekel, mi a neve. Az egyetlen alkalom, hogy valaha is, hogy hívott mikor küldje el az űrlapot. Nincs szükség rám, A humán fejlesztő, hogy valóban hívják máshol. Most csak egy teaser, mintha azt nem bánja hajlítás elég, tudjuk is, hogy ez meg még a rejtélyes Egy szuper népszerű nevű könyvtárat jQuery. Valójában jQuery és JavaScript gyakran keveri. És mit fogunk tenni szerdán a kezdet ezt a nyelvet, és ezeket a könyvtárakat építeni egyre aszinkron és dinamikus alkalmazásokhoz mint szerzés térkép alkalmazások, alkalmazások hogy frissítse a weboldal valós idő, ugyanúgy, mint a Facebook vagy a Gchat igen, és nem szorítkozunk eltalálásáról küldése egy GET vagy csak postai úton egyedül. Szóval találkozunk szerdán. [Zenelejátszó]