>> [Prehrávanie hudby]
>> DAVID Malan: Toto je CS 50, a to je začiatok týždňa deväť.
A to, čo sme si mysleli, že to dnes nie je zavrieť len kapitola minulého týždňa
materiál, kde sme sa zamerali na serveri strana webové programovanie s PHP a SQL,
niektoré databázy veci.
Porozprávame si o trochu bezpečnosť dnes a potom
Prechod na strane klienta programovanie jazyk známy ako JavaScript.
Ale najprv, niektorí vykúpenie.
>> Možno si spomeniete, že na Streda, som sa vydal
písať webové stránky, ktoré sa na vstupe užívateľa
pomocou HTML formulárov, ktoré potom uloží že mená užívateľského vstupného, ​​telefón
čísla a mobil nosiče v databáze.
A potom som mal trochu príkazu linka skript napísaný v PHP
ktorý mal opakovať nad riadky v databáze
a posielať textové správy.
Napriek niekoľkým, niekoľkých pokusoch sme nedostal tú prácu do konca.
>> Tak som strávil celý tento týždeň pracovať Na tento kód sa k nám dostať cez bod
, Kde sme skončili, pričom všetky Dostal som na konci v stredu
bol tento text správy od Margo, ako som sa snažil,
nasleduje textové správy z iného spolužiak, Máte tento Davida.
Nasledoval tento jeden, úžasne povzbudzujúce.
Držal ďalej, veľmi povzbudivé.
Skoro som ho, kým then-- a to je poznámka sme skončili v stredu.
A potom vlastne možno moja obľúbená, O chvíľu neskôr, to prišlo v.
Sakra live stream.
>> Takže dnes sme sa to napraviť s rýchlym pozrieť sa na to, čo som urobil od tej doby.
Takže všetko, čo tohto kódu je k dispozícii on-line z minulého týždňa, týždeň osem,
zdrojový kód.
A uvidíte, že som prešiel, a ja som vlastne upratal veci trochu.
Predstavil som pár iných vlastnosti SQL databázy.
Napríklad, skôr než len aby dopravca var char
ako ja, že som to urobil za behu minulý týždeň.
Namiesto toho som definoval to ako čo sa nazýva enum.
>> A niektorí z vás možno videli toto ako sme skúmali C. Enum je vlastne
rysom C, kde si môžete vymenovať veľa konštánt
a priradiť ich automatické hodnoty, ako jeden, dva, tri, štyri
aby bolo nutné čísel pevný kód.
Takže SQL podporuje rovnaké, pričom v prípade Máte databázové polia, že len vy
chcú, aby sa na jednej z konečných hodnoty, môžete doslova špecifikovať
ako som urobil tam pre štyri populárne mobil dopravcovia z USA.
>> Tak som to urobil.
A ja som urobil viacero zmien, ako no, z ktorých najvýznamnejšie
bolo, aby sa e-mail v práci, pretože odvolanie, že tento program sa spoliehal na ktoré
všeobecne nazývaný email SMS brána, ktorá je práve
ozdobný spôsob, ako hovoriť, že Verizon, a AT & T, a ďalší ľudia podporovať server,
pričom v prípade, že dostane e-mail, že ho prevedie na SMS
a rozosiela text správu do iného telefónu.
Takže či som to urobil správne, Tu je nová a lepšia forma
ktorá sa bude hovoriť Nový a vylepšený kód, ktorý
môžete hrať s on-line.
A dúfajme, aby môj telefón pípnutie za chvíľu.
>> Takže najprv, budem písať v mojom mene.
Za druhé, ja nejdem aby to tentoraz.
Chystám sa do Skontrolujte prvok.
A to je len maličkosť, tak sa mi nepáči
vytvoriť hodiny postprodukcii pracovať ako som to urobil minule.
Tam je teraz moje telefónne číslo.
>> Budem vybrať Verizon.
A tu, poďme zapnúť tento mikrofón tu, a ich cieľom je to na môj telefón tu.
Idem na tlačidlo Registrovať, ktoré by snáď
vložiť do databázy.
Teraz budem chodiť do program príkazového riadku, ktorý
odvolanie bolo nazývané bodka lomítko text, a cez prsty.
Ideme na to.
>> [PHONE Dings]
>> [APPLAUSE]
DAVID Malan: Takže oveľa zábavnejšie, než tohle-- je to zábava, samozrejme, keď som si do nej.
Ale je to väčšia zábava, pomyslel som si, keď sme vytvoril jeden z tých filmových momentov
kde ako niečo, čo v skutočnosti zlé sa stalo vo svete,
a rovnako ako všetky ľudové NSA mobily začať pípať
s textovými správami upozornenie o tejto skutočnosti.
Tak som si myslel, že by som skúsiť znova to isté tu,
kedy nepoužívate databázu, Som namiesto toho vopred
napísal program, ktorý vyzerá takto.
>> To je index.php-- a dal som tento kód on-line
ako well-- to zrejme len omietky form.php,
za použitia MVC štýlu paradigma, ktoré sme hovoriť podrobnejšie v problémovej sady
sedem.
Táto forma je pomerne jednoduchý.
Bude to predložiť súbor s názvom here.php poštou.
A to vraj sa opýtať na meno a telefónne číslo,
a potom pomocou takzvaných Vyberte menu, je to
dám vám aspoň štyri populárne mobil dopravcovia z USA,
a potom vám umožní efektívne dochádzku kliknutím tu.
>> A tu, medzitým sa chystá požičať kódu od minule.
A ak si len zbierať to, uvidíte, že tam je
celá partia kontrolu chýb.
Ale krása na konci, ktorý je nie sme dnes zápis do databázy.
Sme držať to jednoduchý a Len dúfajme, že rozosielanie
textové správy pomocou funkcie I napísal počas posledných niekoľkých dní volanie
Text, ktorý je vo funkciách. php, čo je opäť k dispozícii on-line.
>> Takže ak by ste chceli podieľať sa na toto.
Nebudeme sa ukladanie nič.
Prejdite na túto adresu URL tu v reálnom čase.
Nekopírujte to ešte nie, ale poďme uvidíme, či môže mať jeden z týchto filmov
momenty, kde každý má mobil začne pípať, dúfajme, že len
raz tento rok na rozdiel od v roku 2011 kde to šlo strašne nakrivo.
A keď idete na túto adresu, mali by ste vidieť super jednoduchý formulár
že ak máte meno, mobilný telefón číslo a mobil dopravcu, ktorý
zodpovedá zoznamu tam ísť dopredu a vyplňte formulár.
Ale nie hit predložiť ešte nie.
>> Formulár to bude vyzerať takto.
Nehanbite sa a zadajte Vaše meno, telefónne číslo.
OOP, niekto sa deje na špici.
To je v poriadku.
OK, každý to vyplníte formulár.
To by malo fungovať na telefón, taky, či chcete.
V poriadku, pripraviť, pozor, teraz.
Hit TU.
Čo je?
Nie.
Prisahám Bohu, som testoval to viackrát dnes.
Máš to?
>> [Vradiť hlasy]
>> DAVID Malan: OK, chyba používateľa možná.
To sú dva.
Že pracoval pre dvoch z niekoľko sto, tri, štyri.
OK, to je dobré.
Štyri z piatich na správnosť a čo.
>> Takže to, čo sa stalo?
Takže všetkého, bez toho, aby videl svoj obrazovky, prečo by to byť chybných?
Je pravdepodobné, že sme boli len snaží, aby sa príliš veľa pripojení
k poštovému serveru Harvarde to všetko za jednou z rovnakej IP adresy.
Ja som len hádať, pretože som nemal luxus testovanie
tento kód s niektorými 300 ľudí vo vopred
ale teraz si uvedomil, že že aspoň mal
sa dostali na prácu tejto doby.
>> Dobre, tak prečo je to všetko viac relevantné k, čo sa deje?
Tak prvý, rýchly pár oznámenia.
Takže jeden, ak chcete pripojiť Chang, a Nick, a ďalšie na obed v piatok,
robiť RSVP na tam obvyklú URL.
Ak uvažujete o sústredení alebo robí sekundárne v SK,
či už ste vo druháku, alebo nováčik, alebo dokonca junior alebo senior v tomto bode
a môže ešte stlačiť v kurzoch, Uvedomujem si, že v inžinierske školy
zhromažďuje zadarmo Ben a Jerry zmrzlina a poradenstvo
túto stredu krátko po trieda o 16:00 v budove SK
na Maxwell Dworkin.
Ak je to príliš rýchlo na obrazovke, stačí ísť
k cs50.harvard.edu pre odkaz na udalosť na Facebooku
kde môžete vidieť viac detailov.
>> Medzitým, myslel som si, že opraviť ešte jedna vec, ktorú som podelal v stredu.
Ukázalo sa, že Marka ID na Facebooku nebol tri.
Bolo to štyri.
Ukázalo sa, že mal viac skúške účty, než som si spomenúť.
Ale čo to cítil ako príležitosť urobiť, je vytiahnuť URL, ako je tento.
>> Tak to dopadá, že Facebook má API, Application Programming Interface,
čo je mechanizmus, ktorým ťa môže požadovať dáta programovo
na Facebooku a vrátiť stroj čitateľné informácie, nie webové stránky
ale len surový text, niečo volal JavaScript Object Notation.
A v skutočnosti, keď som navštíviť tento URL, a priblížiť tým, že v predvolenom nastavení,
To je Mark je verejne dostupné informácie.
>> A zaujímavý detail Tu je len, že jeho ID
je naozaj, číslo štyri, ktoré som Akonáhle som to urobil realizovaný.
Môžete to urobiť sami, ak viete, váš Facebook užívateľské meno, ak máte jeden.
Proste to napíšte do vrcholu.
A nič z toho je súkromný.
Robím len to, aj inkognito.
Takže som ani prihlásený.
A vidíte, že ja zrejme bol používateľ číslo 6454
na Facebooku, ktorý nie je Škoda, v týchto dňoch.
Tak či onak, budete tiež vidieť ďalšie informácie tu.
>> A užitočný aspekt z toho, že vás
mohol napísať svoj vlastný softvér, ktorý nejako integruje dáta, ako je tento
do vlastnej aplikácie.
Môžete posilniť užívateľom prihláste na svoj web,
nepoužívajú vlastné vlastné užívateľské meno a heslo, ale možno ich Facebook login
a získať informácie aj o svojich priateľov,
ak sa schváli také, alebo podobné.
Tak na vedomie, že CS50 taky, má niektoré zo svojich vlastných API,
jeden pre katalóg predmetov dát, niektoré pre objatí menu v jedálni
haly, všetky budovy a miesta
na akademickej pôde máme API pre i ktoré môžete zadať otázku podobne a získať
späť textové dáta, ktoré je možné integrovať do PHP alebo JavaScript, alebo dokonca,
aj keď menej často, C na základe záverečného projektu.
>> Naozaj dopredu na finále Projekt je niekoľko míľnikov.
Máš e-mail od nás druhý deň.
Uvedomte si, že návrh je splatná tento rok v pondelok.
Nie je to nutne záväzné, ale Je potreba prijímať svoje pedagogické chlapi
schválenie pred tým, než akékoľvek potom zmeny.
A potom sa pred nami sú rada ďalších míľnikov.
>> Takže Ťa podpichovať, taky, s niektorými možnosťami,
máme veľa Tieto odtieň žiarovky.
A niektorí z vás majú teraz niektoré z nich vo svojom kolejním izbe rovnako.
A oni majú API.
Tak spomínam na tie binárne žiarovky týždne Pred, že Dan Bradley a Ansel
Duff vytvoril pre nás.
Oni používali softvérové ​​rozhranie táto žiarovka, ktorá v súčasnej dobe
je zapojený do elektriny a potom cez bezdrôtové
je spojená s malou vec volal most sem,
ako malý router vlastnícke práva, do tohto konkrétneho zariadenia.
>> Ale ukazuje sa, či viem, ako sa odosielať správy HTTP, ako my všetci teraz robiť,
Môžem odoslať správu ako je táto táto žiarovka ju zapnúť alebo vypnúť
alebo si ľubovoľný počet ďalšie operácie na ňom.
Všimnite si, že to nechápem, že to žiadny príspevok.
Je tu ešte jeden s názvom put.
Je to vlastne niekoľko ďalších takých slovies.
Povšimnime si ale, že je to cesta tam, lomka API, lomítko nové vývojárov,
lomka svetlo, lomítko jeden, lomítko stave.
>> To je zrejme len cesta, ktorú spoločnosť Philips,
Rozhodli ste sa trafiť s HTTP požiadavky
Ak chcete zmeniť stav žiarovky pomocou protokolu HTTP 1.1.
Všimnite si, prázdny riadok.
A potom konečne, čo vyzerá ako druh poľa nejakého druhu,
To opäť sa bude nazývaný JavaScript Object Notation, alebo Jason.
A to, čo vidíte, je to, že existujú tri páry kľúč hodnota.
>> Jedným z hlavných je vyzval.
A jeho hodnota zrejme bude pravda.
Jas je 128, čo je nejaký int.
A potom prechodový čas je nula, čo je zrejme
ako dlho to bude vziať, aby túto vec na.
>> Takže teraz to žiarovka nesvieti.
Ale keď to urobím presne tohle-- nechať ma ísť na malý ťahák
že Dan nastaviť v advance-- a idem
pokračovať a kopírovanie nasledujúci príkaz.
Curl, ako sa niektorí z vás mohol získaných na CS50
Diskutovať sa o nástroj, ako Telnet také že môžete simulovať HTTP požiadaviek,
výslovne uvádza.
Môžem poslať tieto údaje, konkrétne, čo sme práve
videl pred chvíľou špecificky na tejto adrese tu.
A potom Curl bude zaobchádzať všetkých potrebných záhlavia
a analýze tamojšej.
>> Takže všetko, čo musíte urobiť, je skopírovať to do okno terminálu a potom stlačte kláves Enter.
A žiarovka sa rozsvieti.
A to je všetko prechádza môj počítač bezdrôtovo
nejako sa k mostu, ktorý sa potom hovorí k tejto žiarovky.
Môžem robiť niečo iné.
Môžem túto vec ísť red napr.
Môžem napríklad vytvoriť táto vec ísť zelene.
Môžem robiť to ísť modrej.
>> A všimnite si v každom z nich prípady, všetko, čo som sa mením
je tzv odtieň hodnotu vlastne dať mu trochu farby.
Takže mi dovoľte vložiť tento jeden v i.
Teraz je to modré.
>> A môžete to urobiť aj milovník veci where-- poďme na zelenú.
A mohol by som to urobiť z Samozrejme s mojím vlastným kódom.
Ale aj samotné API podporuje funky operácie
ako je to, ktoré bude teraz obťažovať nám v najbližších 30 sekúnd.
>> Takže to je jedna chuť na to, čo by mohlo čo robiť s API, tohle zahŕňajúce
žiarovky.
Všimnite si, že CS50 má pár pary Google Glass, keby si
chceli niečo riešiť spolu tieto riadky, Arduino Únos, ktorý
sú malinké počítače, v podstate, na malej doske
že sa môžete pripojiť drôty a ďalšie veci
na a vlastne kontrola Váš reálnom svete prostredia.
A potom je tu pár z novej hračky, ktoré máme.
Ten doslova prišiel druhý deň poštou, Myo Armband.
A ja si myslel, že je to spôsob, ako vám nadšenie o projektoch
ktoré môžete použiť s tento hardvér by
bude hrať tento krátky klip že používajú podpichovať ľudí
že sme teraz žije v budúcnosti.
>> [Prehrávanie hudby]
>> DAVID Malan: Takže počas niekoľkých týždňov, môžete tiež môže byť, že v pohode na CS50 veľtrhu.
Ďalšie zariadenia, ktoré sme majú veľa, že sme
šťastný, že požičať si pozor na projekty sa nazýva riadenie pohybu.
Jedná sa o malý USB zariadení pripojenie k počítaču
umožňuje komunikovať s notebook, Mac alebo PC,
ako keby ste mali ako Xbox Kinect a vlastne robiť fyzické pohyby moc
ako vidíme v tom vízie budúcnosti.
>> [Prehrávanie hudby]
>> DAVID Malan: Takže aj keď máte potuchy, ako niečo také
by mohlo byť vynájdené, alebo práca na hardwarovej úrovni, bez ohľadu na to.
Dokonca aj po niekoľkých mesiacoch CS50, a porozumenie programovanie
všeobecnejšie, a webové programovanie viac v poslednej dobe, a následne aj API a HTTP,
budete mať prístup cez softvérové ​​rozhrania API, ak vás
chcem si požičať jeden z nich zariadenie skutočne hovoriť s ním
a nemusíte sa starať o základnej implementácie
informácie, ktorá je úplne v súlade s týmto pojmom vrstvenia
abstrakcie, že máme vidieť po celú dobu semestra.
>> Takže aj cez víkend, videl pár kúskov správy.
Ísť ako prvý, prejdite na seminároch, ak vás sa chceli dozvedieť niečo
viac na ľubovoľný počet tém.
Vidieť, že URL.
A ten bol poslaný do me Chang, kto viete,
Kto je tlač našu armádu slonov.
A to bol titulok takto.
Desím sa môjho nového televízora.
Prečo Bojím sa, aby túto vec na a vás to bude taky.
Takže sme teraz v bod v semestri,
aj tam, kde aj keď máte ani najmenšie pochopenie
o tom, ako web funguje, a HTTP, a zabezpečenia, veci, ako je tento
by mala začať upútať tvoju pozornosť.
Ale tiež, budete rozumieť, či tieto veci sú, alebo nie sú
skutočné hrozby.
>> Tak som vzal pár ukážok z tohto článku tu.
A príbeh je nasledujúci.
Ja som sa stal majiteľom Nový inteligentný TV, ktoré
sľubuje streaming multimediálny obsah, hry, aplikácie,
sociálne médiá a internet prehliadanie, oh a TV taky.
Jediný problém je, že som teraz bojí sa ho použiť, hovorí autor.
Tie by sa taky, keď si prečítate cez 46 stránka Privacy Policy pre váš televízor.
Množstvo dát tohto vec, zhromažďuje je ohromujúci.
Zaznamenáva, kde, kedy, ako a za akú dlhú dobu používate televízor.
Stanovuje tracking cookies, ako sme diskutovali,
a majáky určený zistiť, kedy máte
zobraziť konkrétny obsah alebo konkrétne e-mailové správy
Ak chcete skontrolovať e-mail na vašom televízore.
Zaznamenáva aplikácie, ktoré používať, webové stránky, ktoré navštívite,
a ako budete komunikovať s obsahom, robí to všetko pomocou vášho smart TV.
Rovnako, creepier yet-- to je môj addition--
má vstavaný fotoaparát s rozpoznávania tváre.
>> Účelom je poskytnúť Ovládanie gestami pre televízor
a umožní vám sa prihlásiť do osobný účet pomocou vašej tvári.
Na druhú stranu, sú obrázky uložené na televízore miesto nahraný
na firemnom serveri.
Na druhú stranu, internet Pripojenie je celý televízor
citlivé na hackerov, ktorí sa preukázali schopnosť
získať úplnú kontrolu nad strojom.
>> Viac znepokojujúce, ako by to nebolo dosť chytrý, je mikrofón.
TV sa môže pochváliť hlas Funkcia rozpoznávania
ktorý umožňuje ovládať diváci obrazovka s hlasovými príkazmi.
Ale služba je dodávaný s trochu zlovestné varovanie.
Majte prosím na pamäti, že ak vaše hovorené slová sú
osobné alebo iné citlivé Informácie, že informácie
bude medzi dátami zachytených a odovzdané tretej strane.
Máte to?
Nehovor, že osobné alebo citlivé materiál v prednej časti televízora.
>> Takže je to vlastne naozaj.
A nie je ťažké zistiť, či vás prejsť na Best Buy alebo podobne pre televízory
v týchto dňoch.
Všetci sú chytrí nejakým spôsobom.
A oni sú stále múdrejší a desivejšie.
A oni jednoducho zber dát spôsobom, ktorý sme hovorili o
a potom ju nahrať cez HTTP alebo nejaký iný protokol k nejakému serveru.
>> Takže to bol zábavný článok V tejto on-line webové stránky
tu, ktorý hovoril o najmä bug alebo mylné kód
že vlastne môžeme uviazať do diskusie minulý týždeň.
Takže tento titulok bol ako vyplýva, príbeh sa odohráva tu,
Josh Breckman pracoval pre spoločnosť, ktorá pristála zmluvu
rozvíjať pre správu obsahu systém alebo CMS ako sú nazývaní,
za pomerne veľké vládne webové stránky.
Veľa z projektu zúčastňujú vytvorenie systému pre správu obsahu
tak, že zamestnanci by schopní vytvoriť a udržiavať
stále sa meniace obsah na svojich stránkach.
To išlo celkom dobre pár dní potom, čo žiť.
Ale v deň šesť, všetko išlo tak dobre nie.
Všetok obsah na webové stránky úplne zmizli.
A všetky strany viedli k východiskovým zadajte obsahu webovej stránky.
Jejda.
Josh bol povolaný do vyšetrovať a všimol si,
že jeden obzvlášť nepríjemné externé IP adresy bolo
preč a odstránené všetky obsah v systéme.
>> IP adresa nepatrí do istej zámoria hacker sa ohýbal
zničiť užitočné Informácie vlády.
To sa rozhodol googlebot.com, Google veľmi vlastný web lezie pavúk.
Jejda.
Po chvíli výskumu a kódovanie okolo nájsť noncorrupt zálohy,
Josh našiel problém.
>> Užívateľ opísal a vložiť nejaký obsah z jedného
stránky na druhú, vrátane Upraviť hypertextové prepojenie
upraviť obsah na stránke.
Za normálnych okolností by to nebolo problém, pretože vonkajšia používateľ by
je potrebné zadať meno a heslo, ale autentizačný systém CMS,
prihlasovací systém, nevzal do úvahy
prepracovaný hacking Techniky Google Spider.
Jejda.
>> Ako to dopadá, Google Spider nepoužíva
cookies, čo znamená, že môže ľahko obísť kontrolu pre
je prihlásený cookie súboru, že je falošný.
Nie je tiež venovať pozornosť tomu, JavaScript, ktorý by za normálnych okolností
rýchle a presmerovať užívateľa ktorí nie sú prihlásení.
Neznamená to však sledovať každý hypertextový odkaz na každej stránke nájde,
vrátane tých, ktoré sa Odstrániť stránku v názve.
Jejda.
>> Takže čo to znamená viac technické, ale celkom zrozumiteľne?
To jednoducho znamená, že po celú dobu ich webové stránky,
mali URL nie je na rozdiel od tohto ten, ktorý môžete vidieť na problém nastaviť sedem.
Recall v probléme nastaviť sedem alebo vedieť, problém nastaviť sedem
že ste spochybnil, okrem iného,
predať akcie menom užívateľa.
Ale vykonávacie túto funkciu sa formou z dostať cez hypertextové odkazy vo vašom užívateľa
rozhranie, pravdepodobne nie je nejchytřejší nápad
pretože ak sú vaše stránky nejakým spôsobom prístupné buď človek
kto Kliknutím okolo alebo kúpiť topánok ako Google je alebo Spider
ako sa im hovorí, že je to len prehliadania webu sa snažia index
web ako vyhľadávač, mohli ľahko
hit prostredníctvom získať tento druh URL.
A to je funkčne rovnocenné, v tomto prípade,
predaj všetkých akcií spoločnosti Google.
>> Teraz úprimne povedané, je to úplne hlúpy, že CMS
Použité JavaScript a cookies k vykonávaniu svojej prihlasovací systém
a nie robiť, že na strane servera, as vy robiť, a bude v pset 7--
tam je login.php file-- vždy, vždy,
vždy bezpečnosť by mali byť vykonáva na strane servera,
nie na strane klienta, pretože, ako to článok naznačuje, a vy by ste mohli sami
vidieť na nejakom mieste, je triviálne pre používateľa, dobré alebo zlé,
len vypnúť JavaScript nehovoriac o cookies.
Tak to je váš denný WTF.
>> Je tu ešte jeden, ktorý je len trochu desivé,
tak som si to uvedené, či iba ako životnú lekciu.
Vždy, keď použijete aplikáciu nazýva ako Snapchat a podobne
ktorý hovorí, že tieto fotografie trvať len piatich sekúnd desať sekúnd alebo ktovie čo ešte.
Sú to pominuteľné To je rozhodne nie je tento prípad.
Rovnako ako neexistuje žiadny spôsob, digitálne, zaviesť nejakú formu videa,
alebo obrázok, alebo textový zdieľanie, ako že príjemca na druhom konci
nemôže nejako uložiť dáta.
>> V najviac naivné spôsobom, niekto mohol zobrať svoj telefón.
A majú druhé okno 10 pri pohľade na nejakú Snap
len vziať nejaký iný telefón a odfotiť to, samozrejme.
Takže si môžete zachovať niečo digitálne týmto spôsobom.
Niektorí z vás vedia, ako sa screenshoty na telefóne.
V skutočnosti, ak to neviete, Uvedomujem si, že aspoň Snapchat,
a myslím, že ďalšie Aplikácia týchto dňoch,
aspoň povedať, či príjemca má v skutočnosti
vziať screenshot obrázku.
>> Ale ešte horšie, to bolo snappening, ako to niekto vymyslel v poslednej dobe,
kde niektorí 100.000 Uchopenie bol prepustený
to, čo sa nazýva súbor torrent na rôznych internetových stránkach nakoniec.
A to obsahovalo veľa súkromných správ a príspevkov.
Ukázalo sa, že väčšina z nich benígne, takže nie je to, čo by ste mohli očakávať.
Ale pretože ľudia mali použiť webové stránky tretej strany,
prihlásenie sa svojím Snapchat užívateľské meno a heslo a kliknite na
ukladanie všetkých svojich patentky na týchto webových stránkach tretích strán.
A to bolo to, že tretia strana webové stránky, ktoré bol hacknut,
ktorá sa práve chcel niekto prišiel na to, ako dostať všetky 100,000 nárast o týchto obrázkov
do svojej vlastnej pevný disk pre následné zdieľanie.
Úprimne povedané, aj tu, je to niečo o hlúpy, že Snapchat
sa uskutočňuje takým spôsobom, aby tretia strana druhu odpočúvania
dáta, a že to nie je viazaná na vaše vlastné aplikácie bežiace na telefóne.
Ale aj tu si uvedomiť, že tieto čo by vás nechytí prekvapením,
alebo aspoň, že by byť životnú lekciu tu.
Ak by ste chceli technickej Podrobnosti nájdete na tejto adrese URL tu
to je v dnešných snímok.
V poriadku, akékoľvek otázky týkajúce sa Dnešné životné lekcie v SK?
Vypni to.
Vôbec niečo?
Mám veľa ľudí kontrolu ich Snapchat alebo tak niečo dnes.
>> Dobre, tak SQL, Structured Query Language.
Poďme zabaliť.
A tiež, aj keď sme len poškriabaniu
Povrch tejto jazyka, budeme vám
dosť jazyka vo forme pset 7
takže môžete riešiť niektoré celkom bežné funkcie.
Ale uvedomila, že existujú pár veci, ktoré nevyžadujú z vás,
ale budeš dôležité prísť záverečných prác
a určite príde robiť skutočné webové stránky s aktuálnymi užívateľmi
je toto rozhodnutie dizajnu.
>> Ukazuje sa, že v MySQL databázy, môžete
majú zväzky možností, ako je dátové typy pre vaše stĺpy
a ďalšie veci, ale máte tiež voľba tzv skladovanie
motor pre všetky vaše dáta, druh súborového systému,
ak ste oboznámení, pre všetky vaše dáta.
Aký formát je to nakoniec uložená v?
A najčastejšia, snáď, bol MyISAM a InnoDB, technické termíny
že budeme záleží iba do tej miery, že má človek
a jeden nemá nasledujúce funkcie.
>> Predpokladajme, že máte malá chladnička koľaji.
A predpokladám, že vy a vaša spolubývajúci, ktorí majú túto chladničku,
naozaj rád povedzme mlieka.
A to je, v skutočnosti, ako príbeh bolo povedané, pre mňa cesta späť
v deň, kedy som sa zúčastnil kurzu tzv SK 161 Operačné systémy, ktoré
Podobne skúma túto tému.
Takže ste dostal túto chladničku.
Ste z mlieka.
A vy ste prišiel domov, váš spolubývajúci je stále triedu alebo čokoľvek,
a vy sa rozhodnete idem ísť von a trochu mlieka.
Takže zatvorte chladničku, väzenia koľaji, prejdite cez ulicu
k CVS alebo kdekoľvek, a získať v súlade so kúpiť nejaké mlieko.
>> Medzitým, váš spolubývajúci príde domov z triedy, sa dostane do koľaji izba,
otvorí chladničku, tiež si uvedomuje, ooph, sme z mlieka.
Tak on alebo ona sa zatvorí chladničky a potom sa stane,
ísť na druhú CVS, ktorý sa stane byť
jeden blok od ostatných CVS na námestí, a dostane do súladu
tam trochu mlieka.
Teraz, samozrejme, pár minút neskôr, obaja sa vrátim,
a najhoršie zo všetkého je to možné Výsledky sa stalo.
Obidva majú mlieko.
A nemáte naozaj ako mlieko, že veľa.
Takže jeden z nich je práve bude kyslá v určitom okamihu.
Takže teraz máte nadmerné množstvo mlieka v chladničke to všetko preto, prečo?
>> [Nepočuteľné]
DAVID Malan: Jo, to nie nejako vzájomne komunikovať
že ste sa dostať mlieko.
Takže najjednoduchšie spôsoby, ako v ľudskom svete,
ako by sa vyhnúť tejto hlúpe scenár z deja ako
že si len skončiť s jedným.
Text je, áno, dobre.
Ale ako inak?
Post-it poznámky.
DAVID Malan: Post-it note.
Každá forma komunikácie že povie svoje spolubývajúci
nechodia do chladničky na mlieko.
Chystám sa ísť doplniť zásoby na vlastnú päsť.
Takže budete nejako potrebovať zamknúť tohto zdroja.
Takže môžeme tohle-- môžeme druh zničiť príbeh a zase do príbehu SK
kedy myslieť na to, ako je, rovnako ako premenná, ktorá ukladá nejakú hodnotu.
A práve teraz, hodnota mlieka je nula,
ktoré nechcete, aby vaše spolubývajúci na kontrolu tejto premennej
a potom sa rozhodnúť ho alebo seba v závislosti na stave tejto premennej
ak ste v procese zmenu stavu tejto premennej.
>> Takže jeden z riadkov SQL, ktoré sme dať v pset 7 špecifikácia
je to jeden tu.
A nebudeme míňať obrovské množstvo času, o tom hovorí.
Ale ukazuje sa, ak sa snažíte kúpiť nejaké akcie CS50 financií
že už máte Niektoré akcie, vás
chcete byť schopní urobiť rad vecí okamžite dohromady.
Ak chcete byť schopní efektívne, na vysokej úrovni,
skontrolovať v poriadku, keď chcem kúpiť viac akcií zadarmo,
penny zásoby hovoriť o v špecifikácii,
Chcem prvej kontrole koľko akcií mám.
A predpokladám, že je to päť.
A predpokladám, že chcem, aby kúpiť ďalších 10, som nakoniec
chcú mať 15 akcií skladom.
Tak som sa opýtať na dve otázky.
Aký je stav premenné?
Aký je stav riadku?
Koľko akcií mám v súčasnej dobe?
Potom budete chcieť pokračovať a aktualizovať.
Tak to je analóg na mlieko skontrolovať riadok,
a potom chcete aktualizovať pretože ak si chcete kúpiť 10 akcií,
Ak nechcete zmeniť riadok 10, je
chcete ho zmeniť na 5 a 10, alebo, samozrejme, 15.
>> Tento riadok kódu zaisťuje, že tieto dve koncepčné nápady
stáť, spoločne, alebo vôbec nie.
Nikto, vrátane nejakého iného užívateľa Kto je prihlásený do rovnakej webovej stránky,
nejako prerušiť kontrola riadku
a aktualizácia riadka, vybrať a aktualizácie, ak chcete.
A syntax nie je výborný zrejmé, ale táto linka, dlho to je,
zaisťuje, že tieto dve operácie skontrolujte premennú alebo skontrolujte riadok
a aktualizovať riadok sa stalo atomárny.
>> Oh je to tu zase.
Textová správa na môj telefón.
Tak poďme, aby to trochu konkrétnejší.
Predpokladajme, že nie ste vykonávanie chladničku,
a nie ste vykonávania Pset 7, ale skutočná banka,
alebo bankomat, bankomat Stroj, čím vám nejako
chcete mať možnosť posilniť používateľom prenášať peňazí
z jedného účtu na druhý.
OK, vydrž.
Chystám sa stlmiť to teraz, ďakujem.
Takže chceme presunúť peniaze z jedného čísla účtu
do iného účtu číslo, konkrétne 100 dolárov.
Tak to je druh ľubovoľný príklad, kedy ste, ATM,
chcieť vykonať dva SQL otázky, odpočítať z jedného účtu,
a pridať na iný účet.
Ale vy chcete, aby zabezpečili, že tieto dva riadky ako sa stalo, alebo vôbec nie.
Nechcete, aby niečo dostať prerušený.
Nemáte nejaký šikovný zlý človek nejako stojí v Bank of America
s dvoma bankomatov v prednej ním a nejako
druh písania v príkazy v rovnakú dobu,
dúfajme, že sa snaží odpočítať 200 dolárov miesto 100 dolárov a len s 100 dolármi pripočítaný.
Stručne povedané, ak chcete, aby sa správajú presne tak, ako ste očakávali.
>> A ako vy to v SQL databázy
ju zabaliť do čo je volal transakcie.
Doslova v SQL, môžete volať CS50 je funkcie dotaze s citátom koniec citátu štartom
transakcie.
Potom môžete spustiť ľubovoľný počet následných SQL dotazov,
ale žiadny z nich sa vplyv na databázu
kým nezavoláte dotazu citácie unquote ak spácha znovu pomocou PHP.
A týmto spôsobom, môžete zaistiť, že aj keď máte 1000 Všetci užívatelia
biť databázy v rovnakom čase, SQL
bude sľubovať, že tieto dva dotazy bude
realizovaný jeden za druhým.
Takže nemusíte skončiť s prebytkom mlieko alebo zlé množstvo, nakoniec,
peňazí.
>> Takže majte na pamäti, ani nie tak pre pset 7
ale záverečných prác ak ste skutočne
snaží sa pohybovať okolo dát cez tabuľky, ako si možno tu.
Ale možno ešte jednoduchšie a viac zrejmé porozumieť s príkladom
je to jeden tu.
A niekto nám e-mailom o to len ďalší deň
keď videl niečo podobné online.
>> Takže viem, pin systému nie je náchylné k útoku.
A ja nemám potuchy, či IT aj použitie SQL databázy pod kapotou.
Ale poďme ju použiť pre saké diskusie.
Tu je obrazovka, ktorá Harvard ľudia majú tendenciu
vidieť pri prihlasovaní s ich Harvard identifikačné číslo a PIN.
A predpokladám, že pin systém bol implementované v PHP a MySQL s
databázy, kód, ktorý niekto Pred mohlo písomné roky
môže vyzerať napríklad takto.
Po prvé, vyhlásiť premenná s názvom užívateľské meno.
A len tak, že od POST superglobal.
Potom si ďalšiu premennú volal heslo a to isté.
A potom už len spustiť tak dlho otázku tu
vyberte hviezda od užívateľov prípadne Užívateľské meno rovná taký a taký
a heslo rovná taký a taký.
>> Všimnite si, že kučeravý traky som tu použitý
len znamená PHP, ísť dopredu a náhradné
hodnota z týchto dvoch premenné práve tam.
Sú to nie je nevyhnutne nutné, ale majú tendenciu, aby sa zabránilo jemné syntaktické chyby.
Takže to vyzerá úplne Správna na prvý pohľad.
A je to.
Dalo by sa realizovať čap systém týmto spôsobom.
>> Ale predpokladám, že super šikovný a nebezpečný študenta
Vstupné to ako jeho kolík.
Tak som odstránil guľku známky tu v mock-up,
a ja som vlastne odhalil to, čo on alebo ona môže byť písanie.
A je to trochu divné.
Ale to, čo vyskočí na vás na potenciálne znepokojujúce o vstup užívateľa,
aj keď nemáte tušenie, čo útok SQL injection znamená.
Prečo to vyzerá trochu podozrivo?
Čo je to?
[Nepočuteľné]
DAVID Malan: alebo je trochu podozrivé.
V skutočnosti, to je kľúčové slovo z SQL.
Tak, že to neveští nič dobré.
Skutočnosť, že je všetky tieto jednoduché úvodzovky
there-- v skutočnosti, jeden z najjednoduchších spôsoby, ako zlomiť niektoré databázy
sa zadaním mena ako O'Reilly ktorý má apostrof v ňom
preto, že v prípade, že človek, ktorý napísal Kód zákulisia
neberie do úvahy, že môže byť jednoduché úvodzovky v užívateľa
vstup, a on alebo ona je s použitím jednoduché úvodzovky v ich kóde,
zlé veci sa môže stať.
>> V skutočnosti ešte horšie, zvážte to.
Ak to bolo opäť kód že niekto na Harvarde rokov
Pred písal pre kolík Systém si všimnite, čo je
o dostať substituovaný užívateľské meno a heslo
pokiaľ užívateľ zadá znova skroob, pretože ich mená
a potom jeden, dva, tri, štyri, päť, citát alebo citácie unquote jedna rovná sa
citovať.
A všimnite si, čo je kľúč Tu je užívateľ nemá
začal svoje heslo, alebo ich pin s citátom.
A neskončili ju s citátom, pretože on alebo ona
je za predpokladu, že v prípade, že programátor nebol tak ostrý,
že budú mať tie jednoduché úvodzovky v ich kóde.
>> Tak tu je kód.
A náhrada, ktorá Teraz sa môže stať je to.
A ja som zdôraznil to, čo užívateľ zadať.
Tak pred, po.
A všimnite si, čo je mierne znepokojujúce teraz o pravej polovici tohto kódu SQL?
Je to trochu zložitejšie, pravda, než dotazov sme videli.
Ale to nemôže byť dobrá vec, ak ste
povedal vyberte hviezdu, ktorá je vyberte všetko z tabuľky užívateľa
kde používateľské meno odpovedá skroob a heslo sa rovná jeden, dva, tri, štyri,
päť alebo jeden rovný jednej.
Čo je to logický dôsledok tohto posledného ustanovenia všetkého?
Je to proste vždy pravda.
>> A preto, že sme tak nejako tušil alebo prišiel na to, metódou pokusu a omylu
že programátor, ktorý napísal tento kód nie
predvídať ľudské alebo zlý človek písať v jednoduchých úvodzovkách rovnako,
môžeme syntakticky dokončenie dotazu SQL
s niečím nezmyselné ale niečo, čo
je syntakticky nesprávny že vždy vyhodnotí na true.
Takže ak je tento kód sa používa na zodpovedanie otázka true alebo false by
tento užívateľ môcť prejsť, Odpoveď je vždy zrejme bude
je to pravda, pretože to je vždy vybrať niečo z databázy
pretože jeden samozrejme vždy rovná jednej.
>> Takže aké je riešenie?
No v pset 7, sme vlastne vyhnúť sa to všetko dohromady.
Dáme vám funkcie dopytu a my Odporúčame vám použiť otázniky
ako zástupné symboly, podobné duchom printf je% s,
ale to, čo je kľúčom k otázniky Tu je, keď ste vlastne prečítali
functions.php, kde naša funkcia dotazu je implementovaná,
tie otázniky sú unikol, kedy niečo potenciálne nebezpečné
ako jediný citát je zapnuté do utiekli jednoduchú úvodzovky.
>> Tak toto je to, čo je skutočne deje, ak vás
použiť funkciu dotazu CS50, alebo ľubovoľný počet voľných knižníc tretích strán, ktoré
to isté.
Nezáleží na tom, v tomto prípade, v zelenej farbe, v prípade, že používateľ zadal jednoduchú úvodzovky
pretože dotaze funkcie, ktoré sme písali, je
pridáme spätné lomítka pred každá taká nebezpečná citácie.
Tak to nie je, v Skutočnosť, bude dôveryhodne.
Je to ako písať v blázon hľadá Heslo, ktoré je, samozrejme, nebude
byť aktuálne heslo skroob ľudovej.
>> Takže stánok s jedlom pre CS50 je jedna, úplne vždy niečo
ako funkcia dotazu CS50 je alebo základná knižnica,
ktorý sa stane byť nazývaný CHOP.
Ale nikdy, nikdy, nikdy neurobil kód, ako je tento
bez úniku alebo čistenie ako sa hovorí vaše vstupy.
A budete v určitom okamihu pravdepodobne narazíte na nejaké webové stránky, ako je tento.
V skutočnosti sa zdá, že to tak je ako na letiskách a hotely v miestach
kde majú bezplatné Wi-Fi pripojenie k internetu prístup, ktorý musíte sa prihlásiť do,
Tieto webové stránky sú vždy strašne vykonaná.
A tak trochu zábavy doma cvičenie, Nie je na nekalé účely alebo viac
zo zábavy na ceste cvičenie, je jednoducho typ
apostrof, jeden citát, do formy na určitej webovej stránke
a uvidíte, čo sa stane.
A ak server havaruje, alebo dáva ste nejaké chybové hlásenie,
to môže byť to, že veľmi dobre niekto Nepredpokladá sa to.
A potom by ste mali upozorniť správne orgány a pokračovať ďalej.
>> Takže teraz vy by snáď rozumieť trochu viac geek humor tu.
>> [SMIECH]
DAVID Malan: Viete, že ste geek.
Pre budúci niekoľko rokov, budete pamätať
kto málo Bobby Tables je kvôli tejto karikatúre tu.
Takže majte na pamäti, že keď sme prepnutie kontextu naposled
dnes JavaScript.
Strávili sme pomerne málo čas na syntax PHP
pretože je to v skutočnosti Veľmi podobný C.
A dosť dobre, JavaScript taky je super podobná syntax C je
rovnako ako uvidíme v len na chvíľu, a ako sme to
pozri v tomto týždni predovšetkým.
Čo môžete robiť s týmto jazykom, aj keď, je všetko silnejší,
najmä s API.
>> Ale najprv rýchlo tour.
Takže človek, v JavaScripte, je tu nie je hlavnou funkciou, čo je pekné.
Rovnako ako u PHP, stačí napísať kód.
Podmienky vyzerať takto.
A logické výrazy by mohol vyzerať takto alebo takto.
Prepínače existujú, a môže vyzerať napríklad takto.
Štyri pútka vyzerať takto.
While vyzerať takto.
Páči chvíle vyzerať takto.
A potom sa pole vyzerať Táto, veľmi podobné PHP.
Povšimnime si však, že v JavaScripte vás deklarujete premennú nie s dolárom
podpísať, a to s typom dát, ale doslova tým VaR pre premenné pred ním.
To tiež je voľne zadali v tom, že má druhy,
ale nie je explicitne deklarovať.
A potom reťazec, pre inštancie, môže vyzerať
takto, že reťazec volaná s v tomto prípade.
A potom objekt.
A títo uvidíme viac, ako dlho.
A objekt je pravdepodobne jedným z najčastejšie vidieť dátové štruktúry
v JavaScripte na základe Program, pretože umožňuje
môžete priradiť ľubovoľný Kľúčové páry hodnota len
ako PHP asociatívne pole a rovnako ako svoje vlastné hash tabuľky
alebo vyskúšať, ako sme zaviedli pár týždňov späť.
Takže poďme sa pozrieť, čo vlastne môžeme robiť s jazykom JavaScript.
A hlavne, je to Zoznam prác funkcií
že prehliadače majú, že nám umožňujú pripojiť JavaScript
na webových stránkach v nasledujúcim spôsobom.
JavaScript je často používaný ako na strane klienta skriptovací jazyk.
To nie je vybudovaný.
To tiež je interpretovaný.
Ale na rozdiel od PHP, ktorá bola spustená na serveri, na webový server,
alebo hlboko vnútri klienti, JavaScript
sa líši v tom, že zvyčajne beží v prehliadači.
>> Takže akýkoľvek kód JavaScript začnete písať pre pset 8 alebo konečného projektu,
alebo v reálnom svete sa všeobecne deje musia byť uložené na serveri, absolútne
v dot HTML alebo bodka JS pre súbor JavaScript.
Ale prehliadač sa deje na prevzatie, ktorý JavaScript
Kód na vlastnú inštanciu Chrome, alebo IE alebo Firefox, alebo čokoľvek iného.
A kód je vlastne dostane vykonaný vnútri svojej vlastnej prehliadači.
Len aby to reálnejšie, poďme sa pozrieť na túto konkrétnu podobe.
>> Nemáme tušenie, čo tento kód robí bez skutočne čítať cez to.
Ale nechaj ma ísť na Facebook.com bez prihlásenia.
Nechaj ma ísť do Skontrolujte Element a ísť do, povedzme, Sieť a obnovte stránku.
A budeme see-- dovoľte mi, aby som posunúť znova načítať Page získať všetky požiadavky na nové.
A prvý súbor vidím CSS, CSS.
Tu je prvá JavaScript súbor, a ja som
žiadny nápad, čo to robí, ale tu Je to jedna z kódu JavaScript
ktorý poháňa Facebook.
Nie je to ani v skutočnosti, že odhaľujúce priblížiť.
Je to stále rovnako nezmyselné.
>> Ale uvidíte aj dole, je tu ešte viac týchto súborov JavaScript.
Jejda.
To je ping.
Poďme trochu dole Ďalej, ďalej ďalšie.
Je tu ešte jedna.
>> Takže aj keď Facebook, za scény, je napísaný v časti v PHP
Facebook a vlastné verzie tejto zmluvy, je tu obrovské množstvo JavaScript.
V skutočnosti, niektoré z chatovanie robíte na Facebooku,
niektoré aktualizácie inline časovej osi že sa stalo v reálnom čase, to všetko
je riadený JavaScript.
Jo?
>> Divákov: Nie som si istý, ak je to Facebook,
ale myslel som si, že Facebook vyvinutý vlastné in-house kód jazyka?
DAVID Malan: Robili.
Takže to je dôvod, prečo hovorím rozptyl PHP s názvom Hip Hop, že v skutočnosti
pridané funkcie až tak, že pri Mark najprv realizovaný Facebook,
to bolo napísaný v PHP.
A to tak nejako zostalo druh čelné jazyka
že používajú oveľa ich kódovania, ale to
nebol jazyk, ktorý je váhy obzvlášť dobre na miliardy
ľudí.
A tak sa pridali ich vlastné zlepšenie v zákulisí.
A používať ľubovoľný počet ďalších jazykov
pre rôzne kusy ich infraštruktúra.
Takže áno, je to rozptyl to, čo dnes poznáme ako PHP.
>> Takže poďme sa pozrieť na pár príkladov
o tom, ako môžeme tu použiť JavaScript.
V dnešnom zdrojového kódu, máme banda súborov, z ktorých prvá,
poďme tzv DOM nula.
Takže DOM nula vyzerá nasledovne.
Nechaj ma ísť do tohto adresára a otvoriť domzero.html,
v hornej časti, ktorý má typ doc vyhlásenie s tým, tu je HTML 5.
A teraz tu je tag HTML.
Tu je tag hlava.
A tu je to, čo je nové dnes.
>> Teraz máme tag script Vnútri hlavy stránky.
A to zrejme robí veľmi málo, ale oznámenia
že som definované skript JavaScript.
A ako je stranou, pretože táto Je mylná predstava,
JavaScript nemá nič čo robiť s Java, jazyk
že niektorí z vás by mohlo naučili v APC.
Bolo to skôr o marketing vec než čokoľvek iné,
ísť na coattails Java rokov.
Ale JavaScript, nemá nič spoločného s Java, len podobne, a protivne,
zmätene menovaný.
>> Tak tu je, ako deklarovať funkciu v JavaScripte, doslova hovoria funkcie,
potom názov funkcie, potom všetky argumenty, že to môže trvať,
rovnako ako v PHP.
Ukázalo sa, že v JavaScripte, jeden z najviac otravné funkcie, ktoré existujú, je Alert.
To je trochu okno, ktoré vyskočí a upozorní vás,
na časti informácie.
To je všeobecne odsudzovaná.
Ale budeme používať ako naše Prvé cvičenie tu.
>> Všimnite si niekoľko funkcií JavaScript.
Jednotlivé citácie a dvojité úvodzovky nie sú v skutočnosti už je jedno.
Jednotlivé citácie a double citácie môžu byť vymenené,
zatiaľ čo v C, budete musieť použiť úvodzovky pre reťazca,
a máte dve samostatné citácie pre znakov.
Vo svete JavaScript veľa ľudí, väčšina ľudí
použiť jednoduché úvodzovky okolo reťazca len preto, že je to štýlová záležitosť.
Ale čo je operátor a tu, ktoré sme ešte nevideli?
>> Divákov: reťazenie.
DAVID Malan: reťazenie.
Takže C nemá ani to.
PHP má operátor bodky, ktorý to robí.
JavaScript má operátor plus, ktorý zmätene je rovnako ako Java.
Tak čo sa to tu deje?
>> Tak tu je miesto, kde základné chápanie tohto obrázku
sme vyhodil pár dni vstúpi do hry.
Pamätám si, keď sme mali jednoduchý verzia HTML page--
to práve povedal, hello world.
A potom sme nakreslil strom doprava, ktorá
mal veľa obdĺžnikov a liniek ich pripojenie ako rodokmeň.
Tak to je takzvaný DOM alebo Document Object Model.
A ukázalo sa, že máte prístup obdĺžniky v tomto strome so syntaxou
ako nasledujúce.
Doslova hovorí dokument, ktorý je špeciálna globálne premenné v JavaScripte
program, ktorý má funkciu s ním spojené, ktoré môžete pristupovať
podobne ako struct, ale jednoducho povedať, bodka a názov funkcie je,
dostať element podľa ID.
>> Prvok Chcem sa dostať je zrejme citovať koniec citátu meno.
A potom chcem, aby si jeho hodnotu.
Teraz sa dostávame pred seba.
Nie som si ani istý, čo to všetko je.
Poďme rýchlo vpred do formátu HTML strana, ktorá je super jednoduché.
>> Všimnite si, že som definované tvorí tu dole.
Všimnite si, dal som to jedinečný ID, aj keď sme sa nepoužíva
tento atribút pred.
Ale to existuje v HTML.
Môžete jednoznačne identifikovať nejaký kus HTML s identifikátorom, ako je tento.
>> Upozornenie teraz tohle-- dopadá HTML podporuje, na tomto zozname na bielizeň
pred chvíľou, celý banda obsluhy udalostí.
A to handler udalosti hovorí na odoslať.
V užívateľskom podania tejto formulár, zavolajte nasledujúci kód.
A kód, ktorý sa deje byť nazývaný ani popravený
je presne to, gréckej Funkcie a následne return false.
Všetko ostatné by byť celkom povedome.
>> Tu je vstupná typu textu, ktorého ID, v tomto prípade, bude meno.
Nemáme aktuálny atribút name tento time-- a tlačidlo odoslať.
Takže výsledná stránka vyzerá takto.
A výsledné správanie, uvidíte, vyzerá takto.
Stránky, na miestnych hostiteľov hovorí, ahoj David, sotva esteticky
spôsob, ako pozdraviť užívateľa.
Ale čo to vlastne deje?
>> Dobre zvážte, čo to je.
Jedná sa o textové pole.
A podľa HTML tu, som ho dal
jedinečný identifikátor volal quote unquote názov.
Medzitým, čo som povedal, keď užívateľ odošle tento formulár
tým, že udrie Enter alebo kliknutím na tlačidlo Odoslať tlačidlo, volanie funkcie s názvom Greet
a potom sa vrátiť na FALSE.
Pozrime sa na tie, ktoré v opačnom smere.
Všimnite si, keď som kliknite na tlačidlo Odoslať, URL tejto stránky sa nemení.
Ikona prehliadača nezačal točiť.
Nechcel som nikam, a to doslova, pretože som povedal, vráti False.
Return false skraty alebo zastavuje predvolené správanie formulára.
Tak, že nás potom necháva táto posledná otázka.
Čo Greet robiť?
No, zrejme Pozdravte volá funkciu nazvanú
Alert, prechádza v jednom dlhé argument, že je to
Výsledkom zreťazenie spoločne banda podreťazca, ahoj čiarka priestor,
potom, čo to vráti.
Takže dokument je ako globálny Premenná tohto koreňa tohto stromu,
volanie špeciálne funkcie, inak teraz známy ako metóda.
Funkcia, ktorá je vnútri premenná
nazýva metóda namiesto funkcie.
>> Tak sa element podľa ID.
Čo element robíte chcú získať jeho ID?
Citáty koniec citátu meno a potom konkrétne hodnotu.
Takže inými slovami, že kód jednoducho nachádza textové pole, ktorého ID je názov
a potom dostane jeho hodnotu.
Takže ak by som mal zmeniť a hovoria Davin miesto Dávida,
a kliknite na tlačidlo Odoslať teraz majú pozdrav pre Davin.
>> Dobre, takže všetko v poriadku a dobré.
Ale uvidíme, či môžeme urobiť to trochu čistejšie, pretože len
písanie kódu, ako je to všeobecne bude odsudzovaný.
To bude vyzerať desivejšie.
Ale to, čo je prvá Rozdiel, aby ste si tu
V tejto verzii okrem meno mení na DOM jeden?
Čo štrukturálne vyzerá inak o tom v porovnaní s ostatnými?
Jo?
Divákov: Je forma na Horná časť skriptu teraz?
DAVID Malan: Áno, formulár je na vrchole scenáre z nejakého dôvodu zvedavý.
Takže to je prvá vec, že vyskočí na mňa tiež.
A našťastie aspoň táto časť je totožná.
Takže jediná vec, ktorá sa zdá byť iný, je to.
>> Tak tu je to, čo je pekné o JavaScriptu 2.
A to je ťažké pochopiť na prvý pohľad,
najmä pri záverečných prác ak pozeráte sa na ukážkový kód on-line,
ale to sa scvrkáva na niektoré základné syntaktické funkcie.
Tu opäť je, že globálna premenná dokument.
Tu opäť je, že metóda alebo funkcie ktorý hovorí, že si prvok podľa ID.
Tentoraz chcem získať ID s názvom demo.
Kde je to?
To je zrejme pravdu tu, formulár sám.
>> A teraz si všimnite, že vraj keď som vrátiť sa, že uzol zo stromu, ktorý
predstavuje formulár sama o sebe, nie je textové pole,
Ukazuje sa, že tvar, ktorý uzol alebo obdĺžnik zo stromu,
má všetko, čo budeme nazývať vlastnosť, veľmi, veľmi, veľmi podobné
duchom struct v C Je to len dátový člen vnútri tohto obdĺžnika.
>> Tak som dostal formulár tu, a ja pripojenie,
alebo som priradenie k jeho On Odoslať handler alebo skôr na Odoslať majetku
Nasledujúce funkcie.
A to je, zďaleka, najbláznivejšie vec tak ďaleko syntakticky.
Ukazuje sa, že v JavaScripte a PHP, a úprimne povedané, keď na to príde v C,
aj keď to neurobíte, môžete pridať bezmennej, anonymný, alebo AKA lambda
funkcie, ktoré nemajú mená ale môže byť nazývaný však.
>> Takže to, čo tu robím je, že som priradenie Tento On Odoslať majetok, ktorý
je vnútri tohto uzla môjho stromu DOM, funkcie, ukazovateľ na funkciu, ak chcete.
Táto funkcia nemá žiadny meno, ale to neznamená,
nevadí, pretože uvidíme vo chvíli, ako to nazvať.
Ak je táto funkcia sa nazýva, tento kód dostane popravený, potom
false je vrátená rovnako ako predtým.
>> Povšimnime si ale, čo som urobil.
V tomto bode príbeh, mám formu.
Má to jedinečný identifikátor s názvom demo.
Tu dole, mám tag script ktorý vykoná nasledujúci kód.
To sa viaže k tomuto uzlu v strom je to na Odoslať
Vlastnosť táto funkcia tu.
A práve od prírody, ako prehliadača práce, keď som teraz na tlačidlo Odoslať alebo stlačte klávesu Enter,
že funkcia bude dorovnaný.
Nepotrebuje meno pretože kto sakra zaujíma, ako sa to volalo.
Jediný okamih, kedy to niekedy dostanem volal je, keď odošlite formulár.
Nie je potrebné pre mňa, človek developer,
skutočne volať kdekoľvek inde.
>> Teraz len ako ukážku, ako v prípade, že boli nevadí dosť ohýbanie,
môžeme dokonca to vyzerajú skôr mystický použitie
Super populárnej knižnica s názvom jQuery.
V skutočnosti jQuery a JavaScript často sa zjednotil.
A čo budeme robiť, v strede je začiatok pomocou tohto jazyka a tieto knižnice
stavať stále asynchrónne a dynamické aplikácie
ako mapu dostať aplikácie, aplikácie
že aktualizovať webové stránky v reálnom čas, podobne ako Facebook alebo Gchat
robiť, a už obmedziť na biť Odoslať pomocou GET alebo len poštou
sám.
Tak som vás vidieť v stredu.
>> [Prehrávanie hudby]