>> [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?
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.
>> Í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ó]