>> [Muusika mängimine]
>> DAVID Humala: See on CS 50 ja see on algus nädalal üheksa.
Ja me arvasime me tahaks teha, ei ole täna ainult sulgeda peatükki eelmisel nädalal
materjali, kus keskendusime server pool veebi programmeerimine PHP ja SQL
mõned andmebaasi kraami.
Me räägime natuke turvalisus täna ja siis
Üleminek kliendipoolse programmeerimine keeles tuntud kui JavaScript.
Aga kõigepealt mõned lunastus.
>> Nette et Kolmapäev, I sätestatud
kirjutada kodulehel, et võttis kasutaja sisend
poolt HTML kujul, et siis salvestatud et kasutaja sisend nimesid,
numbrid ja mobiiltelefon Vedajate andmebaasis.
Ja siis oli mul veidi käsk line script kirjutatud PHP
mis pidi itereerima üle rida andmebaasis
ja saata tekstsõnumeid.
Vaatamata mitmetele, mitmeid katseid, me ei saada, et töö lõpuks.
>> Nii et ma veetsin kogu selle nädala tööpäeva selle koodi meid viimase punkti
kus meil pooleli jäi, kusjuures kõik Sain lõpuks kolmapäev
oli selle teksti sõnum alates Margo nagu ma võidelnud,
järgneb tekstisõnumi teise klassivend, Sul on see David.
Järgneb selle ühe, imeliselt julgustav.
Hoida läheb, väga julgustav.
Ma peaaegu sain selle alles then-- ja see märkus me lõppes kolmapäeval.
Ja siis tegelikult võib-olla mu lemmik, Hetk hiljem see tuli.
Damn Live Stream.
>> Nii et täna me määrata see kiire vaadata, mida ma olen teinud alates.
Nii et kõik see kood on olemas Internetis eelmise nädala, nädala kaheksa,
lähtekoodi.
Ja te näete, et ma läksin läbi, ja ma tegelikult puhastada asju natuke.
I tutvustas paar muud funktsioonid SQL andmebaasi.
Näiteks mitte lihtsalt kandja var char
nagu ma arvan, et ma tegin lennult eelmisel nädalal.
Ma asemel määratleda seda mida nimetatakse enum.
>> Ja mõned teist ehk näinud seda uurisime C. Väärtustik on tegelikult
tunnuseks C, kus saab loetleda terve hulk konstante
ning määrata need automaatselt väärtused, nagu üks, kaks, kolm, neli
ilma et peaks kõvasti koodi numbrid.
Nii SQL toetab sama, kusjuures kui teil on andmebaasis väli, et te ainult
taha võtta ühe piiratud väärtused, mida saab sõna-sõnalt, määra see
nagu ma olen teinud seal neli populaarne USA size kandjad.
>> Nii et ma tegin seda.
Ja ma teinud mitmeid muudatusi hästi, millest olulisemad
oli saada email tööta, sest turult, et see programm tugines mis
tavaliselt nimetatakse e- SMS gateway, mis on vaid
fancy viis öelda, et Verizon, ja AT & T ja teised inimesed toetavad server,
kusjuures, kui ta saab e teisendab selle SMS
ja saadab teksti teade kellegi telefoni.
Nii et kui ma tegin seda õigesti, siin on uus ja parandatud kujul
et läheb rääkima uue ja parema kood, mis
saab mängida võrgus.
Ja loodetavasti teeb mu telefon helisignaali vaid hetk.
>> Nii et esimene, ma lähen kirjuta oma nime.
Teiseks, ma ei kavatse seda teha seekord.
Ma lähen ära Kontrollige Element.
Ja see on lihtsalt väike asi, et ma seda ei tee
luua tundi post tootmine töö tegin viimast korda.
Seal nüüd on minu telefoninumber.
>> Ma valida Verizon.
Ja siin, lähme lülitage see mikrofon siin ja eesmärk see minu telefoni siin.
Ma lähen klõpsake registri mis peaks loodetavasti
pane see andmebaasi.
Nüüd ma lähen minema käsurea programm, mis
turult kutsuti dot kaldkriips teksti ja risti sõrmede.
Siin me läheme.
>> [PHONE DINGS]
>> [APPLAUSE]
DAVID Humala: Nii lõbusam kui see-- see on lõbus, muidugi, kui ma saan seda.
Aga see on rohkem lõbu, ma arvasin, et kui me loodud üks neist filmi hetked
kus nagu midagi tõesti halb juhtus maailmas
ja nagu kõik NSA inimeste mobiiltelefonides alustada piiksumist
sõnumiühenduses hoiatatakse neid sellest.
Nii et ma arvasin, et me peame püüdma taasloomine sama siin,
milles mitte kasutades andmebaasi, Ma asemel ette
kirjutas programmi, mis näeb välja selline.
>> See on index.php-- ja panin selle koodi Internetis
kui well-- et ilmselt lihtsalt muudab form.php,
kasutades MVC stiil paradigma, mida me räägime üksikasjalikumalt probleem komplekt
seitse.
See vorm on üsna lihtne.
See saab esitada fail nimega here.php posti teel.
Ja see on ilmselt küsin Nime ja telefoninumbri
ja seejärel läbi niinimetatud Valige menüü, siis on
annan teile vähemalt neli populaarne USA size vedajad,
ja seejärel võimaldab teil tõhusalt võtta kohalolijate klikkides siia.
>> Ja siin, vahepeal läheb laenata kood viimast korda.
Ja kui sa lihtsalt koorima see, näete, et seal on
terve hunnik vigu kontrollimata.
Aga ilu lõpus on see, et me ei kirjuta andmebaasi täna.
Me hoides seda lihtne ja lihtsalt saates loodetavasti
tekstisõnumi kaudu funktsiooni I kirjutas viimastel päevadel kõne
Tekst, mis on funktsioonid. php, mis on jälle saadaval internetis.
>> Nii et kui soovid osa saada sellest.
Me ei kavatse olla ladustamiseks midagi.
Mine seda URL siia reaalajas.
Ärge esitage see lihtsalt veel, aga olgem kas meil on üks neist filmi
hetki, kus igaühe mobiiltelefon hakkab piiksuma, loodetavasti lihtsalt
kui sel aastal erinevalt 2011. aastal kui see läks kohutavalt viltu.
Ja kui sa lähed sellele aadressile, sa näed super lihtne vorm
et kui sul on nimi, mobiiltelefoni number ja mobiiltelefon vedaja, et
sobib nimekirja seal minna minna ja täitke vorm.
Kuid ei tabanud esitada veel.
>> Vorm läheb välja nägema selline.
Lase käia ja kirjuta oma nimi ja telefoninumber.
Oop, keegi läheb ees kõver.
See on OK.
OK, kõik on täis vorm.
See peaks töötama telefon ka, kui tahad.
Olgu, teie kaubamärkide saada valitud, minna.
Tulemus siin.
Mis?
Ei.
Ma vannun, ma katsetada see mitu korda täna.
Sa said selle?
>> [Astudes VOICES]
>> DAVID Humala: OK, kasutaja viga olla.
See on kaks.
Ta töötas kaks välja mõnisada, kolm, neli.
OK, see on hea.
Neli viiest jaoks õigsuse kuidas.
>> Mis siis juhtus?
Nii et arvatavasti, nägemata oma ekraanid, miks võiks see on errored?
See on ilmselt, et me olime lihtsalt püüavad teha liiga palju ühendusi
Harvardi posti server kõik on üks kord sama IP aadress.
Ma lihtsalt aim sest ma ei ole on luksus testimine
Selle koodi mõned 300 inimest ette
aga nüüd aru, et et vähemalt peaks
on saanud tööd teha seekord.
>> Olgu, aga miks see kõik rohkem Sobiv mis toimub?
Noh esiteks, kiire Paar teadaandeid.
Nii üks, kui soovite liituda Chang, ja Nick ja teised lõunasöögi sel reedel,
teha RSVP tavalisel URL seal.
Kui te olete mõelnud, et keskenduda või teeme teisejärgulised CS,
kas sa oled üliõpilane või uustulnuk, või isegi noorem või vanem siinkohal
ja saab veel pigistada kursused, aru, et insener koolis
on kogumas tasuta Ben ja Jerry jäätis ja nõu
Kolmapäeval vahetult pärast klassi kell 04:00 CS hoone
kell Maxwell Dworkin.
Kui see on liiga kiire ekraanil, minge
et cs50.harvard.edu eest link Facebook sündmus
kus saab näha rohkem üksikasju.
>> Vahepeal ma mõtlesin parandada üks teine ​​asi, mida ma goofed kolmapäeval.
Selgub, et Markuse ID Facebook ei olnud kolm.
See oli neli.
Selgub, et ta oli rohkem test kontode kui ma mäletan.
Aga mida see tundsin võimalus teha on tõmmata URL niimoodi.
>> Nii selgub, et Facebook on API, Application Programming Interface,
mis on mehhanism, mille abil sa võib nõuda andmete programmiliselt
Facebookis ja saada tagasi masin loetava info ei veebilehtede
aga lihtsalt tavalist teksti, midagi nimetatakse JavaScript Object Märge.
Ja tegelikult, kui ma külastan seda URL ja suumida vaikimisi
see on Markuse avalikult kättesaadavat teavet.
>> Ja huvitav detail siin just tema ID
tõepoolest, number neli, mis on minu mõistsin kohe, kui ma tegin seda.
Seda saab teha ise, kui sa tead, oma Facebook kasutajanimi, kui teil on üks.
Lihtsalt kirjuta see üles top seal.
Ja ükski see on privaatne.
Ma lihtsalt teen seda isegi inkognito režiimis.
Nii et ma ei ole isegi veel sisenenud.
Ja te näete, et ma ilmselt oli kasutaja number 6454
Facebook, mis ei ole liiga halb nendel päevadel.
Nii et igal juhul, näete ka täiendavat teavet seal.
>> Ja kasulik aspekt selle, et sa
võiks kirjutada oma tarkvara, et kuidagi ühendab andmed, nagu see
teie enda taotluse.
Võite anda kasutajatele õiguse logida oma veebilehel,
ei kasuta oma kohandatud kasutajanime ja parooli, kuid äkki oma Facebook login
ja saada teavet isegi nende sõbrad,
kui nad on heaks kiitnud sellised või sarnased.
Nii et pange tähele, et CS50 Ka on mõnel tema API
üks muidugi kataloogi andmetel mõned neist kallistusi menüüd söögituba
hallid, kõik hooned ja kohad
ülikoolilinnakus meil API samuti et saate päringu sarnaselt ja saada
tagasi tekstilised andmed, mida saab integreerida arvesse PHP või JavaScripti, või isegi,
kuigi harvemini C põhineb lõplik projekt.
>> Tõepoolest enne lõpliku Projekt on mõned verstapostid.
Sul meilt e teisel päeval.
Aru, et ettepanek on tingitud tuleval esmaspäeval.
See ei ole tingimata siduvad, kuid te ei pea saada oma õpetamise stipendiaatide
heakskiitu enne mis tahes muudatuste järel.
Ja siis edasi on mitmed teised verstapostid.
>> Nii et kiusa ka mõned võimalustest,
meil on hunnik Nende tooni lambid.
Ja mõned kutid on nüüd mõned Nende oma Dorm tuba samuti.
Ja ka neil on API.
Nii meenutavad need binaarsed pirnid nädalat tagasi, et Dan Bradley ja Ansel
Duff loodud meile.
Nad kasutasid tarkvara liides see lamp, mis hetkel
on ühendatud elekter ja siis läbi traadita
on ühendatud väike asi nimega Bridge siin,
nagu väike ruuter varaliste selle konkreetse seadmega.
>> Aga selgub, kui ma tean, kuidas Kirjuta HTTP sõnumeid, nagu me kõik nüüd teha,
Võin saata sõnum niimoodi Selle lambi sisse- ja väljalülitamine
või teha mis tahes arv muid toiminguid ta.
Pange tähele, et see ei saa, see ei saa postitada.
Seal on veel üks nn panna.
Seal on tegelikult mõned muud sellised verbid.
Aga teate seal teed seal, kaldkriips API, kaldkriips uus arendaja,
kaldkriips valgus, kärpida üks, kärpida riik.
>> See on ilmselt lihtsalt tee, et firma, Philips,
otsustasid sa pead vajuta koos HTTP taotluse
Kui soovite muuta riigi pirn HTTP 1.1.
Siis teate tühi rida.
Ja siis lõpuks, mida näeb sellist massiivi mingisugune,
see jälle läheb nimetada JavaScript Object Märge, või Jason.
Ja mida sa näed on see, et on kolm põhiväärtus paari.
>> Üks võti on kutsunud.
Ja selle raha ilmselt läheb, et olla tõsi.
Heledus on 128, mis on mingi int.
Ja siis ülemineku aeg on null, mis on ilmselt
kui kaua see aega võtta, et muuta see asi.
>> Nii et just nüüd see lamp on välja lülitatud.
Aga kui ma teen täpselt see-- lasta mul minna veidi petma lehte
et Dan loodud advance-- ja ma lähen
minna ja kopeerida järgmine käsk.
Curl, nagu mõned teist oleks võinud väita kohta CS50
Arutle on utiliit nagu Telnet sellise et saate simuleerida HTTP päringuid,
eriti paneb.
Võin saata neid andmeid, konkreetselt, mida me lihtsalt
nägin hetk tagasi just Selle URL siia.
Ja siis Curl läheb käepide kõik vajalikud päised
ja sõelumine seal.
>> Nii et kõik, mida ma pean tegema, on kopeerida seda arvesse terminali aken ja vajuta Enter.
Ja lamp põlema.
Ja see kõik on läbimas minu arvuti juhtmevabalt
kuidagi alla silla, mis Seejärel räägi see lamp.
Ma võin teha midagi muud.
Võin teha seda asja mine punane näiteks.
Võin näiteks teha see asi minna roheline.
Ma saan selle käima sinine.
>> Ja teate kõik need juhtumeid, kõik, mis ma olen muutumas
on nn toon väärtust tegelikult annab see teatud värvi.
Nii et lubage mul kleebi see üks samuti.
Nüüd on sinine.
>> Ja seda saab teha isegi Kasvataja asjad where-- lähme roheliseks.
Ja ma võiks seda kohta muidugi mu enda koodi.
Aga isegi API ise toetab funky toimingud
nagu see, mis nüüd vaeva meil järgmiseks 30 sekundit.
>> Nii et see on üks maitse, mida sa võiksid pistmist API, see hõlmab
lambipirnid.
Pange tähele, et CS50 on paar paari Google Glass Kui soovite
meeldib tegeleda midagi mööda need read, Arduino unos, mis
on tilluke arvutid Sisuliselt on veidi trükiplaatide
et saate ühendada juhtmed ja muud asjad
ja tegelikult kontroll oma reaalses maailmas keskkonda.
Ja siis seal on paar Uute mänguasjad, mis meil on.
See üks sõna otseses mõttes just saabunud Teisel päeval posti, Müo Armbandist.
Ja ma arvasin, et see on viis, kuidas sulle põnevil projektid
mida te võite kasutada see riist oleks
on mängida selle lühikese klipi et nad kasutavad tease inimesed
et me oleme nüüd elavad tulevikus.
>> [Muusika mängimine]
>> DAVID Humala: Nii vaid paar nädalat, siis Ka võib olla, et jahedas CS50 õiglane.
Teine seade, mis me on hunnik, et me oleme
õnnelik laenata läbi projektide nimetatakse algatusel töötleja.
See on väike USB seade ühendate arvutiga,
võimaldab teil suhelda sülearvuti, Mac või PC,
nagu sa olid nagu Xbox Kinect ja tegelikult teha füüsiline liikumine palju
nagu me näeme seda tulevikunägemus.
>> [Muusika mängimine]
>> DAVID Humala: Nii et isegi kui teil on ei tea, kuidas midagi sellist
võiks leiutas või töö on riistvara tasandil, ükskõik.
Isegi pärast paari kuu CS50, ja arusaam programmeerimine
üldisemalt ja veebi programmeerimine rohkem hiljuti ja seejärel ka API-sid ja HTTP,
on teil juurdepääs kaudu tarkvara API-sid, kui te
ei taha laenata üks neist seadmete tegelikult rääkida ta
ja ei pea muretsema alusvara rakendamine
üksikasju, mis on täiesti kooskõlas käesoleva mõiste kihilisus
võtmiseks, et me oleme näha kogu semestri.
>> Nii ka nädalavahetusel nägin paar tükki uudis.
Mine esimese minge seminare kui te tahaks midagi õppida
rohkem iga mitmesugustel teemadel.
Vaata URL seal.
Ja see üks saadeti mulle Chang, kes te teate,
kes printimine meie armee elevandid.
Ja see oli ka peamiseks järgmiselt.
Ma olen hirmunud minu uus TV.
Miks ma kardan, et muuta see asi ja siis oleksin ka.
Nii et me oleme nüüd osutavad semestri
Ka juhul, kui ka siis, kui teil on vähimatki arusaamist
kuidas web töötab ja HTTP, ja turvalisuse asjad niimoodi
tuleks hakata saagi oma silmaga.
Aga ka, siis saad aru, kas need asjad on või ei ole
tegelikku ohtu.
>> Nii ma võtsin mõned katkendid see artikkel siin.
Ja lugu on järgmine.
Ma olen nüüd omanik Uue Smart TV, mis
lubab anda streaming multimeedia sisu, mängud, app,
sotsiaalse meedia ja internet sirvimise oh ja TV ka.
Ainus probleem on see, et ma olen nüüd karda seda kasutada, ütleb autor.
Sa oleks ka, kui sa loed läbi 46 Privacy Policy oma TV.
Andmemaht see asi kogub on vapustav.
Ta logib, kus, millal, kuidas ja kui kaua te kasutate telerit.
See seab jälgimise küpsiseid, nagu me oleme arutanud,
ja majakad kavandatud avastada, kui teil on
vaadatud eelkõige sisu või eriti e-kiri
kui sa tahad, et kontrollida e-posti oma TV.
See salvestab teie poolt kasutada teie külastatavad veebisaidid,
ja kuidas sa suhtled sisu teeme kõik, et tänu oma Smart TV.
Samuti, creepier yet-- see on minu addition--
on ehitatud kaamera näo tunnustamist.
>> Eesmärk on pakkuda žest kontrolli TV
ja võimaldab teil logida sisse isikliku konto, kasutades oma nägu.
Positiivsest küljest pildid salvestatud TV asemel üleslaaditud
et ettevõtte server.
Puuduseks on internet ühendus muudab kogu TV
haavatavaks häkkerite kes on tõendanud oma suutlikkust
võtta täieliku kontrolli seadme üle.
>> Rohkem murettekitav, sest see ei olnud piisavalt targad, on mikrofon.
TV uhke hääl tunnustamise funktsioon
mis võimaldab vaatajatel kontrollida Ekraani häälkäsklustega.
Aga teenuse kaasas üsna kurjakuulutav hoiatus.
Pange tähele, et kui oma kõnet hulka
isiklikku või muud tundlikku teavet, et teave
on üks neid andmeid pildistatud ja edastada kolmandale osapoolele.
Said aru?
Ärge öelge, isiklikke või tundlikke kraam ees oma TV.
>> Nii et see on tegelikult päris.
Ja see on raske mitte näha, kas te minna Best Buy vms teleritele
nendel päevadel.
Nad kõik on tark mingil moel.
Ja nad saavad targemaks ja creepier.
Ja nad lihtsalt andmete kogumine viisil, mida me rääkisime
ja siis üles laadida see HTTP või mõne teise protokolli mõned server.
>> Nii et see oli lõbus artikkel Selles veebisaidile
siin, mis rääkis eriti veast või eksinud kood
et me saame tegelikult siduda arvesse eelmisel nädalal toimunud arutelu.
Nii et see pealkiri oli järgmine lugu läheb siia,
Josh Breckman töötanud Ettevõte ei jõudnud lepingu
arendada sisuhaldustarkvara süsteemi või CMS kui nad kutsutakse,
jaoks üsna suur valitsuse veebilehel.
Suur osa projekti kaasatud arendada sisuhaldustarkvara
et töötajad oleksid võimalik luua ja säilitada
pidevalt muutuva sisu oma veebilehel.
Asjad läksid päris hästi Mõne päeva pärast minnakse elama.
Aga kuuendal päeval, asjad ei läinud nii hästi.
Kõik sisu kohta kodulehel oli täiesti kadunud.
Ja kõik lehed viinud Vaikimisi sisestage sisu veebilehel.
Oih.
Josh oli kutsutud uurima ja märkasin
et üks eriti häirivaks väline IP aadress oli
läinud ja kustutatakse kõik sisu süsteemi.
>> IP-aadress ei kuulu et meretaguste häkker painutatud
hävitades kasulik valitsuse informatsiooni.
Ta otsustas googlebot.com, Google'i enda veebi indekseerimise ämblik.
Oih.
Pärast natuke uurimistööd ja skrambleerimise ringi, et leida noncorrupt backup,
Josh leitud probleemi.
>> Kasutaja oli kopeeritud ja kleebitud mõned sisu ühest
leht teise, sealhulgas Muuda link
muuta lehe sisu.
Tavaliselt see ei oleks küsimus, sest väljaspool kasutaja oleks
vaja sisestada ja parool kuid CMS autentimise süsteem,
sisselogimise süsteemi, ei võtnud arvesse
keerukamaid häkkimine tehnikaid Google Spider.
Oih.
>> Nagu selgub, Google Spider ei kasuta
küpsised, mis tähendab, et ta saab lihtsalt mööda tšeki
on sisse loginud küpsis seatud valeks.
Samuti ei pöörata tähelepanu JavaScript, mis tavapäraselt
kiire ja suunata kasutajad kes pole veel sisenenud.
Ta peab siiski järgima iga hüperlink igal leheküljel ta leiab,
sealhulgas Kustuta Page pealkirjas.
Oih.
>> Nii et mida see tähendab rohkem tehniline, kuid üsna kättesaadavad terminoloogia?
See tähendab lihtsalt, et kogu oma veebilehel,
nad olid URL ei ole erinevalt see, et võite näha probleemi pani seitse.
Meenuta probleem pani seitse või teada, probleem seatud seitse
et sa oled vaidlustanud, muuhulgas
müüa varud nimel kasutajad.
Aga rakendavate funktsioon teel kohta saada kaudu hüperlinke oma kasutajanime
liides, ilmselt ei ole kõige targem mõte
sest kui teie sait on kuidagi kättesaadavad kas inimese
kes klõpsates ümber või osta bot nagu Google või Spider
kui nad kutsutakse see on lihtsalt indekseerimise web püüab indeks
veebi otsingumootori nad võiksid väga kergesti
tabas kaudu saada selline URL.
Ja see on funktsionaalselt samaväärne, antud juhul
müüa kõik aktsiad Google.
>> Nüüd ausalt öeldes, see on täiesti rumal, et CMS
kasutatud JavaScript ja küpsised rakendada oma sisselogimise süsteemi
ja ei tee seda serveri poolel, kui kutid teha ning peavad pset 7--
seal on login.php file-- alati, alati,
alati turvalisus peaks olema teha serveripoolne,
mitte kliendi poolel, sest see artikkel näitab, ja te võite ennast
vaata mingil ajahetkel, siis on triviaalne kasutaja, hea või halb,
lihtsalt välja lülitada JavaScript rääkimata küpsised.
Nii et on oma igapäevast WTF.
>> Seal on veel üks, mis on lihtsalt selline hirmutav,
nii et ma mainida seda, kui ainult elu õppetund.
Kui kasutad taotluse kutsus nagu Snapchat vms
mis ütleb, et need pildid alles möödunud viie sekundi, kümne sekundi või etažeer.
Nad on üürike Just absoluutselt ei ole.
Nagu ei ole võimalik digitaalselt, rakendada mingil kujul video,
või pilt või teksti jagamiseks selline et saaja teises otsas
saa kuidagi salvestada andmeid.
>> Kõige naiivne tee, keegi võiks oma telefonile.
Ja nad on 10 teine ​​osa samas vaadates mõned snap
lihtsalt võtta mõne muu telefoni ja pildistada seda, ilmselt.
Nii saab säilitada midagi digitaalselt nii.
Mõned teist teavad, kuidas võtta Ekraanikuvad telefoni.
Tegelikult, kui sa ei tea seda, aru, et vähemalt Snapchat,
ja ma arvan, et teised rakendused nendel päevadel,
vähemalt öelda, kui saajal on tegelikult
võtta screenshot oma pilt.
>> Aga veel hullem oli see snappening, kui keegi mõtles ta hiljuti,
kus mõned 100000 klõpsatusega oli vabastatud
mida nimetatakse torrent faili erinevatel veebilehtedel lõpuks.
Ja need sisaldasid terve hunnik privaatsõnumeid ja ametikohta.
Selgub, enamik neist healoomuline, nii ei ole, mida te võite arvata.
Aga kuna inimesed olid kasutada kolmanda osapoole veebilehel,
Logides sisse oma Snapchat kasutajanimi ja parool ning seejärel
säästa kõik oma klõpsatusega Selle kolmanda osapoole veebilehel.
Ja see oli see, et kolmas isik veebileht, mis oli häkkinud,
mis just mõeldud keegi arvasin, kuidas saada kõik 100.000 pluss nende pilte
Iseenda kõvaketas järgnevaks jagamine.
Ausalt, siin, see on omamoodi on rumal, et Snapchat
rakendatakse sellisel viisil, et kolmas isik saab järjestada ning lõikepunktide
andmete ja et see ei ole seotud teie enda rakendus telefonis.
Aga ka siin aru, et need asjad ei saagi sa üllatusena,
või vähemalt ei peaks olla elu õppetund siin.
Kui soovite tehnilise Lisateavet minna, et URL on
see on tänapäeva slaidid.
Olgu, mis tahes küsimustele Tänapäeva elu õppetunni CS?
Lülita see välja.
Üldse midagi?
Mul on palju inimesi kontrollida nende Snapchat või midagi nüüd.
>> Olgu, nii SQL, Structured Query Language.
Olgem murrab see.
Ja ka, kuigi me lihtsalt kriimustada
pind keelt, anname teile
piisavalt keelt kujul pset 7
nii, et saate lahendada mõned üsna levinud funktsionaalsust.
Aga siis on paar asjad, mida me ei vaja sind,
aga nad ei kavatse olla oluline tulla Lõputööde
ja kindlasti tulevad tegemise tegelik veebisaitide tegelikke kasutajaid
on see disain otsus.
>> Selgub, et MySQL andmebaasi, siis
on kobarad valikuid nagu andmetüübid oma veerud
ja muid asju, kuid siis on ka valik nn ladustamise
mootor kõik oma andmed, omamoodi failisüsteemi
kui sa oled tuttav, kõik oma andmed.
Mis formaati ta lõpuks salvestatakse?
Ja kõige levinum, võib-olla on olnud MyISAM ja InnoDB, tehnilised terminid
et me hoolime ainult sel määral, et üks on
ja üks ei ole järgmine funktsioon.
>> Oletame, et teil on veidi Dorm külmik.
Ja oletame, et teie ja teie toakaaslane, kes jagavad seda külmik,
on tõesti armastab rääkida piima.
Ja see on tegelikult, kuidas lugu öeldi mulle teed tagasi
sel päeval, kui ma võtsin muidugi nimega CS 161 operatsioonisüsteemid, mis
sarnaselt uurib seda teemat.
Nii et sul on see külmkappi.
Sa oled piima.
Ja sa tuled koju, oma toakaaslane on veel klassi või mis iganes,
ja teil otsustada, ma lähen minema ja saaksin piima.
Nii et sa sulgeda külmik, eellukustusega Dorm tuba, minna üle tänava
CVS või kus iganes, ja saada kooskõlas osta piima.
>> Vahepeal oma toakaaslane koju jõuab klassi, satub Dorm tuba,
avab külmik, mõistab ka ooph, oleme välja piima.
Nii et ta sulgeb külmkapp ja siis juhtub
minna teise CVS, mis juhtub olema
ühe kvartali kaugusel muud CVS ruudus, ja saab vastavalt
seal saaksin piima.
Nüüd, muidugi, paar minutit hiljem, siis saavad mõlemad tagasi
ja halvim kõik võimalik tulemused on juhtunud.
Mõlemad teil on piim.
Ja sa tõesti ei nagu piim, et palju.
Nii et üks neist on lihtsalt läheb hapuks mingil ajahetkel.
Nüüd olete liiga palju piima külmkappi kõik, sest miks?
>> [Kuuldamatu]
DAVID Humala: Jah, sa ei kuidagi üksteisega suhelda
et te ei saada piima.
Nii et lihtsaim kuidas inimeste maailma,
kuidas võiks teil vältida seda rumal stsenaarium juhtub selline
et te ainult lõpuks üks.
Tekst neid, jah hea.
Aga kuidas siis veel?
Post-it märkmepaberid.
DAVID Humala: Post-it note.
Igasugune kommunikatsioon mis ütleb teie toakaaslane
ei lähe külmkappi piima.
Ma lähen merega minu oma.
Nii et sa kuidagi vaja lukustada seda ressurssi.
Nii saame teha see-- saame omamoodi rikud lugu ja muutuda CS lugu
kusjuures mõtlen seda nagu muutuja, mis salvestab teatud väärtus.
Ja just nüüd, väärtus piim on null,
mida te ei soovi oma toakaaslane kontrollida, et muutuja
ja siis teha otsus ennast põhineb riigi muutuja
kui sa oled selles protsessis oleku muutmisel, et muutuv.
>> Nii et üks rida SQL, et me anda teile pset 7 spetsifikatsioon
on see siin.
Ja me ei kuluta suur aega rääkinud seda.
Aga selgub, kui sa üritad osta mõned varu CS50 rahandus
mis teil juba on mõned aktsiad, siis
tahan, et oleks võimalik teha mitmeid asju kohe kokku.
Sa tahad, et oleks võimalik tõhusalt, kõrgel tasemel,
vaadake kõik korras, kui ma tahan osta rohkem aktsiaid Free,
Penny varude me rääkida ka spec,
Tahan kõigepealt kontrollida kui palju aktsiaid mul on.
Ja arvan, et see on viis.
Ja arvan, et ma tahan osta 10 rohkem, ma lõpuks
tahad olla 15 aktsiaid.
Nii et mul on kaks küsimust.
Mis riik muutuja?
Mis on riigi rida?
Kui palju aktsiaid ma praegu?
Siis sa tahad minna ja seda ajakohastama.
Nii et analoog piima, et teil vaadata järjest,
ja siis sa tahad seda uuendada sest kui sa tahad osta 10 aktsiat,
sa ei taha muuta rida 10, siis
soovite seda muuta kuni 5 pluss 10 või muidugi 15.
>> See koodirida tagab Nende kahe ideestik
juhtuda koos või üldse mitte.
Keegi, ka mõne teise kasutaja kes on sisse loginud samal veebilehel,
saab kuidagi katkestada kontrollimise rida
ja ajakohastamisega järjest valida ja update kui soovite.
Ja süntaks ei ole super selge, aga see üks rida, pikk on see,
tagab selle, et need kaks operatsiooni kontrollida muutuja või vaadata järjest
ja ajakohastada rida juhtuda atomically.
>> Oh siin me läheme uuesti.
Lühisõnum mu telefon.
Nii et teeme seda natuke konkreetsem.
Oletame, et sa ei ole rakendamise külmkapp,
ja sa ei rakenda Pset 7, kuid tegelik pank,
või ATM, Automated Teller Machine, mille sa kuidagi
tahan, et oleks võimalik anda kasutajad saavad raha
ühelt kontolt teisele.
OK, riputada.
Ma lähen vaigistamiseks seda nüüd, aitäh.
Nii et me tahame liikuda raha ühest kontonumber
teisele kontole number, täpsemalt 100 $.
Nii et see on omamoodi suvaline Näiteks, millega te, ATM,
Võiksid täita kaks SQL päringuid, lahutama üks konto,
ja lisada teise konto.
Aga sa tahad, et need kaks rida nii juhtub või üldse mitte.
Sa ei taha midagi saada katkestada.
Sul ei ole mingi tark paha poiss kuidagi seisab Bank of America
kaks pangaautomaati ees Temast ja kuidagi
omamoodi kirjutades käsud samal ajal,
loodetavasti üritab maha $ 200 asemel $ 100 ja neil on ainult $ 100 krediiti.
Ühesõnaga, sa tahad seda käituda täpselt nii, nagu te ootate.
>> Ja kuidas te teete see SQL andmebaasi
te murrab ta, mis on nimetatakse tehingu.
Sõna otseses mõttes SQL, võite helistada CS50 on päringu funktsiooni viitega lõppeb algus
tehing.
Siis saab käivitada mis tahes arv Järgnevate SQL päringuid,
kuid ükski neist ei võta mõju andmebaas
kuni helistate päringu quote lõppeb toime, kui uuesti kasutades PHP.
Ja sel moel saab tagada, et isegi kui teil on 1000 kasutajad kõik
lööb oma andmebaasi samal ajal SQL
luban, et need kaks päringut on
rakendatud ühe peale teine.
Nii et sa ei lõpetame üle piima või vale summa lõppkokkuvõttes
raha.
>> Nii et pidage seda meeles, mitte niivõrd pset 7
kuid lõpliku projekti kui sa oled tegelikult
püüab liikuda andmed ümber kogu tabelid nagu te võite siin.
Aga võib-olla isegi lihtsam ja selgelt mõistetav, näite
on see siin.
Ja keegi saadetakse meile seda just paar päeva tagasi
kui ta nägi midagi sarnast võrgus.
>> Nii et minu teada pin süsteem ei ole ka haavatavad.
Ja ma ei tea, kas see isegi kasutusalad SQL andmebaasi all kapuuts.
Kuid olgem seda kasutada Huvides arutelu.
Siin on ekraan, mis Harvard inimesed kipuvad
näha, kui logite sisse oma Harvard ID number ja PIN-kood.
Ja oletame, et pin süsteem oli rakendada PHP ja MySQL
andmebaas, kood, et keegi oleks kirjutatud aastat tagasi
tunduda see.
Esiteks tunnistada muutuja nimega kasutajanime.
Ja just selle said POST superglobal.
Siis saad teise muutuja nimetatakse salasõna ja sama tegema.
Ja siis lihtsalt ellu Selle pika päring siin
valige star kasutajate kus kasutajanimi võrdub sellise ja sellise
ja salasõna võrdub selline ja selline.
>> Pange tähele, et lokkis traksid Olen kasutanud siin
tähenda ainult PHP minna edasi ja asenda
väärtus nende kahe muutujad seal.
Need ei ole tingimata vajalik, kuid nad kipuvad vältima peen süntaksi vigu.
Nii et see tundub täiesti õige esimesel pilgul.
Ja see on.
Sa võiksid rakendada pin süsteem niimoodi.
>> Aga oletame, et super tark ja pahatahtlikud õpilane
input seda oma pin.
Nii et ma olen ära bullet märgid siin mõnitama üles
ja ma olen tegelikult selgus mida ta võiks olla kirjutamist.
Ja see on natuke imelik.
Aga mis hüppab välja ennast potentsiaalselt murettekitav umbes kasutaja sisend,
isegi kui sa ei tea, mida SQL süst rünnak tähendab.
Miks see tunduda veidi kahtlane?
Mis see on?
[Kuuldamatu]
DAVID Humala: või on veidi kahtlane.
Tegelikult, see on märksõna SQL.
Nii et ei tõota.
Asjaolu, et seal on kõik need ülakoma
there-- tegelikult üks lihtsamaid kuidas murda mõned andmebaasid
on kirjutades nime nagu O'Reilly mis on ülakomaga see
sest kui inimene, kes kirjutas kood kulisside taga
ei võta arvesse seda, et võib olla ülakoma kasutaja juures
sisend ja ta kasutab ülakoma oma koodi
halbu asju võib juhtuda.
>> Tegelikult hullem veel, et sellest.
Kui see oli jälle koodi et keegi Harvardis aastat
tagasi kirjutas pin süsteemi, teate, mis on
umbes saada asendatud kasutajanime ja salasõna
kui kasutaja liigid uuesti skroob oma kasutajanime
ja siis üks, kaks, kolm, neli, viis, tsitaat või tsitaat lõppeb üks võrdsete
Tsiteerin ühte.
Ja teate, mis on võti siin on kasutaja pole
alustas oma salasõna või oma pin tsiteerida.
Ja nad ei ole lõppenud see tsiteerida, sest ta
Eeldame, et kui programmeerija ei olnud nii terav,
nad ei kavatse on need ülakoma oma koodi.
>> Nii et siin on kood.
Ja asendus et Nüüd võib juhtuda, on see.
Ja ma olen rõhutanud, mida kasutaja on sisestatud.
Nii enne, pärast.
Ja teate, mis on pisut murettekitav nüüd umbes parempoolses SQL koodi?
See on veidi keerulisem, küll kui päringuid oleme näinud.
Aga see ei saa olla oleks hea, kui sa oled
öeldes, valige täht, mis on valige kõike kasutaja tabelis
kus kasutajanimi võrdub skroob ja parooli võrdub ühe, kahe, kolme, nelja,
viis või üks võrdub üks.
Mis on loogiline jätk selle viimase lause arvatavasti?
See on lihtsalt alati tõsi.
>> Ja kuna me oleme omamoodi arvata või arvasin, katse-eksituse meetodil
et programmeerija, kes kirjutasin selle koodi ei
ennetada inimeste või halb inimene kirjutades ülakoma samuti,
saame süntaktiliselt lõpule SQL päring
millegi mõttetu kuid midagi, mis
on süntaktiliselt vale et alati hindab true.
Nii et kui see kood on kasutatud vastata Küsimus on õige või vale peaks
Selle kasutaja anda võimalus läbida, Vastus on alati ilmselt läheb
et olla tõsi, sest see on alati läheb valida midagi andmebaasis
sest üks kursus võrdub alati üks.
>> Mis siis lahendus?
Noh pset 7, me tegelikult Selle vältimiseks kõik koos.
Anname teile päringu funktsiooni ja me Soovitame Teil kasutada küsimärke
kui kohatäitjaid, mis on sarnane sisuga printf s% s,
kuid milline on võti umbes küsimärke siin on, kui sa tegelikult läbi lugeda
functions.php, kus meie päringu funktsioon on rakendatud,
need küsimärgid on põgenenud, kusjuures midagi potentsiaalselt ohtlike
nagu ülakoma lülitatakse sisse pääsesid ülakoma.
>> Nii et see on see, mis tegelikult toimub, kui
kasutada CS50 päringu funktsioon või number kolmandate isikute vaba raamatukogud, mis
sama tegema.
Vahet pole antud juhul roheline kui kasutaja on sisestanud ülakoma
sest päringu funktsioon, mis me kirjutasime on
läheb lisada längkriipse enne selliseid ohtlikke tsiteerida.
Nii see ei ole, on Tegelikult saab olema õigustatud.
See on nagu kirjutades hull otsin Parooli see muidugi ei kavatse
olema skroob tegelik parool.
>> Nii Buffee jaoks CS50 on üks, absoluutselt alati kasutada midagi
nagu CS50 päringu funktsiooni või selle aluseks olev raamatukogu
mis juhtub nimetada KPN.
Aga kunagi, mitte kunagi, ei tee kunagi koodi niimoodi
ilma põgenedes või puhastamine nagu nad ütlevad oma sisendeid.
Ja sa mingil hetkel ilmselt kohanud mõningaid veebilehel niimoodi.
Tegelikult tundub, et antud juhul nagu lennujaamades ja hotellides kohtades
kui neil on tasuta Wi-Fi juurdepääs, et sa pead sisse logima,
need veebilehed on alati jubedalt rakendada.
Ja nii omamoodi lõbus kodus kasutamise, ei kuritegelikel eesmärkidel või rohkem
on lõbus teedel kasutamise, on lihtsalt tüüp
ülakomaga, ülakoma, kujule mõnel veebilehel
ja vaata, mis juhtub.
Ja kui server jookseb või annab sa mingi veateate,
see võib väga hästi olla, et keegi ei ole seda ette näinud.
Ja siis tuleb hoiatada õige asutuste ja edasi enam.
>> Nüüd kutid peaks loodetavasti mõista veidi geek huumor siin.
>> [NAER]
DAVID Humala: Tead sa oled geek.
Järgmise mitu aastat, mäletate
kes vähe Bobby tabelid on sest see multikas siin.
Nii et hoidke seda meeles, kui me kontekstis lüliti viimast korda
täna JavaScript.
Veetsime suhteliselt vähe aega süntaksit PHP
sest see on tegelikult super sarnane C.
Ja kenasti kombel JavaScript liiga on super sarnane C süntaks
samuti me näeme hetk ja jagame
Vaata hiljem sel nädalal eriti.
Mida saab teha selles keeles, aga on veelgi võimsam,
eriti rakendusliideste.
>> Aga kõigepealt kiirülevaate.
Nii et üks, JavaScript, seal ei põhifunktsiooni, mis on kena.
Nagu PHP, võid lihtsalt kirjutada koodi.
Tingimused näeb välja selline.
Ja Loogiline väljendeid võiks näeb välja selline või selline.
Lülitid olemas ja nad tunduda see.
Neli silmad nägema selline.
Kuigi silmad nägema selline.
Kas whiles näeb välja selline.
Ja siis massiivid nägema Selle väga sarnane PHP.
Aga teate, et JavaScript sa kuulutada muutuja mitte dollar
kirjutada, mitte andmete tüüpi, kuid sõna-sõnalt öeldes var muutuja enne seda.
See liiga lõdvalt kirjutatud et sellel on tüübid,
aga sa ei ole selgesõnaliselt deklareerida neid.
Ja siis string jaoks Näiteks võiks vaadata
meeldib see, et string kutsutakse s käesolevas asjas.
Ja siis objekt.
Ja need me näeme veel enne pikk.
Ja objekt on ilmselt üks Kõige sagedamini täheldatud andmestruktuuride
sisse JavaScript põhineb programmi, sest see võimaldab
sa siduda suvalise põhiväärtus paari lihtsalt
nagu PHP assotsiatiivne massiivid ja nagu oma hash tabelit
või proovida kui me ellu paar nädalat tagasi.
Nii et olgem tegelikult näha, mida me saame teha JavaScript.
Ja eelkõige on see pesu omaduste loetelu
et brauserid on, et võimaldavad meil konksu JavaScript
arvesse veebilehel järgmisel viisil.
JavaScript kasutatakse tihti Kliendi skript keel.
See ei ole koostatud.
See liiga on tõlgendanud.
Kuid erinevalt PHP, mis on kestnud server, veebiserver,
või sügav sisemus kliendid, JavaScript
on erinev, et see Tavaliselt jookseb brauser.
>> Seega igasugused JavaScripti koodi hakkate kirjalikult jaoks pset 8 või oma lõpliku projekti
või reaalses maailmas üldiselt läheb salvestatakse serveris, absoluutselt
aasta dot HTML või dot JS JavaScripti fail.
Aga brauser läheb alla laadida, et JavaScript
koodi oma enda astme Chrome, või IE või Firefox, või mis iganes.
Ja kood on tegelikult hakka hukati sees oma brauserit.
Lihtsalt teha see rohkem reaalne, Vaatame selle konkreetse vormi.
>> Me ei tea, mida see kood teeb ilma tõesti lugedes seda.
Kuid lubage mul minna Facebook.com ilma sisse logimata.
Lubage mul minna Kontrollige Element ja minna, oletame, Võrgustik ja laadige leht uuesti.
Ja me see-- lase mul minna Reload Page saada kõik taotlused uus.
Ja kõige esimene fail ma näen, on CSS, CSS.
Siin on esimene JavaScript fail, ja mul on
ei tea, mida see teeb, kuid siin on mõned JavaScripti koodi
mis ajendab Facebook.
See ei ole isegi tõesti, et paljastavad, et suumida.
See on ikka sama absurdne.
>> Aga näete, isegi allapoole, seal on isegi mitu neist JavaScript faile.
Oih.
See on ping.
Lähme alla veidi veelgi, veelgi, veelgi.
Seal on üks.
>> Nii et kuigi Facebook, taga stseene, on kirjutatud osaliselt PHP
ja Facebook oma versiooni sellest, seal on tohutu JavaScript.
Tegelikult ükskõik jututoas sa Facebookis
ükskõik inline ajakava uuendused mis juhtub reaalajas, kõik see
on ajendatud JavaScript.
Jah?
>> Sihtrühm: Ma ei ole kindel kui see on Facebook,
aga ma mõtlesin, et Facebook arenenud oma in-house kood keelt?
DAVID Humala: Nad tegid.
Nii et miks ma ütlen hälbega PHP nimega Hip Hop, et nad tegelikult
lisafunktsioonid sellised, et kui Mark esmakordsel rakendamisel Facebook,
oli kirjutatud PHP.
Ja see omamoodi on jäänud omamoodi esiotsa keel
et nad kasutavad palju nende kodeerimist, kuid see
ei ole keel, mis on kaalud eriti hästi miljardeid
inimesi.
Ja nii nad lisasid oma parandusi kulisside taga.
Ja nad kasutada mis tahes arv teiste keelte
erinevat tükki oma infrastruktuuri.
Nii et jah, see on dispersiooni mida me teame nüüd, kui PHP.
>> Võtame pilk on paar näidet
kuidas me võiksime kasutada JavaScripti siin.
Tänapäeva lähtekoodi meil hunnik faile, millest esimene,
olgem nimetatakse DOM null.
Nii DOM null näeb välja järgmine.
Lubage mul minna selle kataloogi ja avada domzero.html,
mille peale on doc tüüp deklaratsioon, öeldes, siin on HTML 5.
Ja nüüd siin on HTML tag.
Siin on pea tag.
Ja siin on, mida uut täna.
>> Meil on nüüd script tag sees juht lehel.
Ja see ilmselt ei väga vähe, kuid teade
et ma olen määratletud script, JavaScript.
Ja kui kõrvale, kuna see on levinud väärarvamus,
JavaScript ei ole absoluutselt mitte midagi pistmist Java keeles
et mõned võite õppinud APCS.
See oli mitu turundus asi kui midagi,
ratsutamine coattails Java aastat tagasi.
Aga JavaScript, midagi pistmist Java, just samamoodi ja tüütult,
äravahetamiseni nimega.
>> Nii et siin on, kuidas deklareerida funktsiooni JavaScript sõnalt öelda funktsiooni
Seejärel nime funktsiooni siis ühtegi argumenti, see võib võtta,
just nagu PHP.
Selgub JavaScript, üks tüütu ülesandeid, mis on olemas, on teade.
See on väike aken, mis avaneb ja ärataks
teatud osa teabest.
See on tavaliselt kortsutas kulmu.
Aga me kasutame seda, kui meie Esimene harjutus.
>> Pane mõned omadused JavaScript.
Ülakoma ja jutumärkide tegelikult ei hooli enam sellest.
Single hinnapakkumisi ja topelt hinnapakkumisi omavahel vahetatavad,
arvestades, C, sa pead kasutama jutumärgid keelpillidele,
ja sul on kaks ühekohalist hinnapakkumisi tähemärki.
In JavaScript maailmas paljud inimesed, et enamik inimesi
Kasutada ülakoma ümber stringid lihtsalt sellepärast, et see on stilistiline asi.
Aga mis on pluss operaator siin mida me ei ole näinud?
>> Sihtrühm: ketistamine.
DAVID Humala: ketistamine.
Nii C ei ole isegi seda.
PHP on dot operaator, mis seda teeb.
JavaScript on pluss operaator, mis äravahetamiseni on nagu Java.
Nüüd sellest, mis siin toimub?
>> Nii et siin on, kui põhiline arusaam, et pilt
me oksendasin paar päeva tagasi hakkavad.
Mäletad, kui meil oli lihtne versioon HTML page--
ta just ütles, hello world.
Ja siis me tõmbas puu üles paremale,
oli hunnik ristkülikud ja liinid ühendab neid nagu sugupuu.
Nii et nn DOM või Document Object Model.
Ja selgub, et pääsete ruutude et puu süntaks
nagu järgmine.
Sa sõna otseses mõttes öelda dokument, mis on eriline globaalse muutuja JavaScript
programm, mis on funktsioon sellega seotud, mida saab kasutada
sarnaseid struktuure, aga sa lihtsalt öelda dot ja siis funktsioon nimi,
saada elemendi ID.
>> Element ma tahan saada on ilmselt tsiteerida lõppeb nimi.
Ja siis ma tahan saada selle väärtust.
Nüüd me saada enne ise.
Ma pole isegi kindel, mida see kõik on umbes.
Lähme edasi rutates HTML lehel, mis on super lihtne.
>> Pange tähele, et ma olen määratletud moodustavad siin.
Teadaanne olen andnud talle kordumatu ID, kuigi meil ei kasutata
seda omadust varem.
Aga see on olemas HTML.
Võite üheselt määratleda mõned patakas HTML tunnus niimoodi.
>> Teate nüüd see-- välja HTML toetab kohta, et pesu nimekirja
Hetk tagasi kogu hunnik korral käitleja.
Ja see sündmus ütleb esitama.
Kasutaja esitamist selle vorm, helista järgmine kood.
Ja kood, mis läheb mida nimetatakse ega hukata
Just see, et Kreeka funktsioon, millele järgneb tagasipöördumine vale.
Kõik muu peaks päris tuttav.
>> Siin on sisend teksti tüüp, kelle ID, sellisel juhul saab olema nimi.
Meil ei ole tegelik nimi atribuut Selle AEG_ ja detailid.
Nii saadud lehekülg näeb välja selline.
Ja tulemuseks käitumise näete, näeb välja selline.
Lehte see kohalikele masinatele ütleb tere David, vaevalt esteetiliselt meeldiv
viis tervitada kasutaja.
Aga mis tegelikult toimub?
>> Noh, mõtle, mis see on.
See on tekstiväljale.
Ja vastavalt HTML siin, ma olen teinud selle
kordumatu tunnus nimetatakse quote lõppeb nimi.
Vahepeal ma olen öelnud, kui kasutaja leiab selle vormi
lööb Enter või klõpsates Esita nupp, kõne funktsioon nimega Greet
ja siis tagasi False.
Vaatleme neid vastupidises.
Pange tähele, kui ma vajutad nupule Saada, URL selle lehekülje ei muutu.
Brauseri ikooni ei hakanud ketramine.
Ma ei lähe kuhugi, ja see on sõna otseses mõttes, sest ma ütlesin tagasi False.
Tagasi False lühise või seiskub vaikimisi käitumise vorm.
Nii et siis jätab meid see viimane küsimus.
Mis Greet teha?
Noh, Tervitage ilmselt kutsub funktsioon nimega
Alert läbib ühes pikk argument, mis on
tulemus concatenating kokku hunnik alamstringide, hello komaga ruumi,
siis mis iganes see tagasi.
Nii et dokument on nagu globaalne muutuja, mis juure, et puu,
helistades eriline funktsioon, vastasel nüüd tuntud meetodit.
Funktsioon, mis on sees muutuja on
nimetatakse meetodi asemel funktsiooni.
>> Nii et saada elemendi ID.
Mis element sa tahan saada oma ID?
Tsitaat lõppeb nimi ja siis konkreetselt väärtustada.
Nii et teiste sõnadega, et koodi lihtsalt leiab tekstiväljale kelle ID on nimi
ja siis saab selle väärtust.
Kui ma seda muuta ja öelda Davin Taaveti asemel,
ja vajutad nupule Saada, nüüd on tervitus Davin.
>> Olgu, nii et kõik on hea ja hea.
Aga vaatame, kas me saame teha see veidi puhtam, sest lihtsalt
kirjalikult kood, nagu see on üldiselt saab olema kortsutas kulmu.
See läheb otsima scarier.
Aga mis on esimene erinevusega, et sa tähele siin
selles versioonis lisaks nimi lendama DOM üks?
Mida struktuurilt näeb välja teistsugune sellest versus muud?
Jah?
Sihtrühm: Kas formaadis top script nüüd?
DAVID Humala: Jah, vorm on peal skripti mõned uudishimulikud põhjusel.
Nii et esimene asi, et hüppab mulle ka.
Ja õnneks vähemalt see osa on identsed.
Nii et ainus asi, mis tundub olla erinev on see.
>> Nii et siin on, mida on puhas umbes JavaScript 2.
Ja see muudab raskeks mõista esmapilgul
eriti viimane, kui projekti te vaatate proovi kood online,
kuid see taandub mõne põhilised süntaktilised funktsioonid.
Ka siin on see, et Globaalse muutuja dokument.
Ka siin on see, et meetod või ülesanne mis ütleb, et saada elemendi ID.
Seekord ma tahan saada ID nimega demo.
Kus see on?
See on ilmselt õigus Siit vormi ise.
>> Ja nüüd teate, et ilmselt kui ma saada tagasi, et sõlme puu
esindab kujul Iseenesest ei ole tekstiväljale
selgub, et vorm, mis sõlme või ristkülik puult,
on see, mida me kutsume vara, väga, väga, väga sarnased
sisuga struct C. See on lihtsalt andmed liige sees selle ristküliku.
>> Nii et mul on vormis siin, ja ma olen seotud,
või ma määrates, et tema On Esita käitleja või pigem Esita kinnisvara
järgmised funktsiooni.
Ja see on kaugelt craziest asi siiani süntaktiliselt.
Selgub, JavaScript ja PHP, ja ausalt öeldes, et asi on C,
kuigi me seda ei tee, võite lisada nimetu, anonüümse või AKA lambda
funktsioone, mis ei ole nime kuid selle võib sellegipoolest.
>> Nii et mida ma teen siin ma määrates see On Esita vara, mis
on sees see sõlm minu DOM puu, funktsioon, funktsiooni pointer kui soovite.
See funktsioon ei ole nimetada, kuid see ei
oluline, sest me näeme ühel hetkel, kuidas seda nimetada.
Kui see funktsioon on kutsutud, Selle koodi saab täita, siis
vale tagasi nagu enne.
>> Aga teate, mis ma olen teinud.
Sel hetkel lugu, mul on vormis.
See ju unikaalne ID nimega demo.
Alla siia, mul on script tag mis täidab järgmine kood.
See kinnitub, et sõlm puu on On Esita
vara see funktsioon siin.
Ja just olemuselt kuidas brauserid töötavad, kui ma nüüd nuppu Saada või vajutage Enter,
et funktsioon ei hakka kutsutud.
See ei vaja nime, sest kes kuradit huvitab, mida see nn.
Ainus kord, kui ta on kunagi hakka kutsunud on, kui ma saatke vorm.
Ei ole vaja minu jaoks, inimese arendaja,
tegelikult nimetada seda kusagil mujal.
>> Nüüd nagu teaser, sest kui see ei pahanda painutamine piisavalt,
saame isegi teha seda Vaata rohkem segasena kasutades
super populaarne raamatukogu kutsus jQuery.
Tegelikult jQuery ja JavaScript Sageli conflated.
Ja mida me teeme kolmapäeval on start kasutavad seda keelt ja neid raamatukogud
ehitada üha asünkroonse ja dünaamilisi rakendusi
nagu kaardi saamine rakendused, rakenduste
et uuendada veebilehe reaalne ajal palju nagu Facebook või Gchati
teha ja mitte enam piirduda seintele esitama get või lihtsalt postitus
üksi.
Nii et ma näen sind kolmapäeval.
>> [Muusika mängimine]