[Přehrávání hudby] DAVID Malan: Toto je CS 50, a to je začátek týdne devět. A to, co jsme si mysleli, že tomu dnes není zavřít pouze kapitola minulého týdne materiál, kde jsme se zaměřili na serveru strana webové programování s PHP a SQL, některé databáze věci. Promluvíme si o trochu bezpečnost dnes a pak Přechod na straně klienta programování jazyk známý jako JavaScript. Ale nejdřív, někteří vykoupení. Možná si vzpomenete, že na Středa, jsem se vydal psát webové stránky, které se na vstupu uživatele pomocí HTML formulářů, které pak uloží že jména uživatelského vstupního, telefon čísla a mobil nosiče v databázi. A pak jsem měl trochu příkazu linka skript napsaný v PHP který měl opakovat nad řádky v databázi a posílat textové zprávy. Navzdory několika, několika pokusech jsme nedostal tu práci do konce. Tak jsem strávil celý tento týden pracovat Na tento kód se k nám dostat přes bod , kde jsme skončili, přičemž všechny Dostal jsem na konci ve středu byl tento text zprávy od Margo, jak jsem se snažil, následuje textové zprávy z jiného spolužák, Máte tento Davida. Následoval tento jeden, úžasně povzbuzující. Držel dál, velmi povzbudivé. Málem jsem ho, dokud then-- a to je poznámka jsme skončili ve středu. A pak vlastně možná moje oblíbená, O chvíli později, to přišlo v. Sakra live stream. Takže dnes jsme se to napravit s rychlým podívat se na to, co jsem udělal od té doby. Takže vše, co tohoto kódu je k dispozici on-line z minulého týdne, týden osm, zdrojový kód. A uvidíte, že jsem prošel, a já jsem vlastně uklidil věci trochu. Představil jsem pár jiných vlastnosti SQL databáze. Například, spíše než jen aby dopravce var char jako já, že jsem to udělal za běhu minulý týden. Místo toho jsem definoval to jako co se nazývá enum. A někteří z vás možná viděli toto jak jsme zkoumali C. Enum je vlastně rysem C, kde si můžete vyjmenovat spoustu konstant a přiřadit je automatické hodnoty, jako jeden, dva, tři, čtyři aniž by bylo nutné čísel pevný kód. Takže SQL podporuje stejné, přičemž v případě Máte databázové pole, že jen vy chtějí, aby se na jedné z konečných hodnoty, můžete doslova specifikovat jak jsem udělal tam pro čtyři populární mobil dopravci z USA. Tak jsem to udělal. A já jsem udělal řadu změn, jako no, z nichž nejvýznamnější bylo, aby se e-mail v práci, protože odvolání, že tento program se spoléhal na které obecně nazýván email SMS brána, která je právě ozdobný způsob, jak říkat, že Verizon, a AT & T, a další lidé podporovat server, přičemž v případě, že obdrží e-mail, že jej převede na SMS a rozesílá text zprávu do jiného telefonu. Takže jestli jsem to udělal správně, Zde je nová a lepší forma která se bude mluvit Nový a vylepšený kód, který můžete hrát s on-line. A doufejme, aby můj telefon pípnutí za chvíli. Takže nejprve, budu psát v mém jménu. Za druhé, já nejdu aby to tentokrát. Chystám se do Zkontrolujte prvek. A to je jen maličkost, tak se mi nelíbí vytvořit hodiny postprodukci pracovat jako jsem to udělal minule. Tam je nyní moje telefonní číslo. Budu vybrat Verizon. A tady, pojďme zapnout tento mikrofon tady, a jejich cílem je to na můj telefon zde. Jdu na tlačítko Registrovat, které by snad vložit do databáze. Teď budu chodit do program příkazové řádky, který odvolání bylo nazýváno tečka lomítko text, a přes prsty. Jdeme na to. [PHONE Dings] [APPLAUSE] DAVID Malan: Takže mnohem zábavnější, než tohle-- je to zábava, samozřejmě, když jsem si do ní. Ale je to větší zábava, pomyslel jsem si, když jsme vytvořil jeden z těch filmových momentů kde jako něco, co ve skutečnosti špatného se stalo ve světě, a stejně jako všechny lidové NSA mobily začít pípat s textovými zprávami upozornění o této skutečnosti. Tak jsem si myslel, že bych zkusit znovu totéž tady, kdy nepoužíváte databázi, Jsem místo toho předem napsal program, který vypadá takto. To je index.php-- a dal jsem tento kód on-line jako well-- to zřejmě jen omítky form.php, za použití MVC stylu paradigma, které jsme mluvit podrobněji v problémové sady sedm. Tato forma je poměrně jednoduchý. Bude to předložit soubor s názvem here.php poštou. A to prý se zeptat na jméno a telefonní číslo, a pak pomocí takzvaných Vyberte menu, je to dám vám alespoň čtyři populární mobil dopravci z USA, a pak vám umožní efektivně docházku kliknutím zde. A tady, mezitím se chystá půjčit kódu od minule. A jestli si jen sbírat to, uvidíte, že tam je celá parta kontrolu chyb. Ale krása na konci, který je nejsme dnes zápis do databáze. Jsme držet to jednoduchý a Jen doufejme, že rozesílání textové zprávy pomocí funkce I napsal během posledních několika dní volání Text, který je ve funkcích. php, což je opět k dispozici on-line. Takže pokud byste chtěli podílet se na tohle. Nebudeme se ukládání nic. Přejděte na tuto adresu URL zde v reálném čase. Nekopírujte to ještě ne, ale pojďme uvidíme, jestli může mít jeden z těchto filmů momenty, kde každý má mobil začne pípat, doufejme, že jen jednou letos na rozdíl od v roce 2011 kde to šlo strašně nakřivo. A když jdete na tuto adresu, měli byste vidět super jednoduchý formulář že pokud máte jméno, mobilní telefon číslo a mobil dopravce, který odpovídá seznamu tam jet dopředu a vyplňte formulář. Ale ne hit předložit ještě ne. Formulář to bude vypadat takto. Nestyď se a zadejte Vaše jméno, telefonní číslo. OOP, někdo se děje na špici. To je v pořádku. OK, každý to vyplníte formulář. To by mělo fungovat na telefon, taky, jestli chcete. V pořádku, připravit, pozor, teď. Hit ZDE. Co je? Ne. Přísahám Bohu, jsem testoval to vícekrát dnes. Máš to? [Vřadit hlasy] DAVID Malan: OK, chyba uživatele možná. To jsou dva. Že pracoval pro dva z několik set, tři, čtyři. OK, to je dobré. Čtyři z pěti na správnost a co. Takže to, co se stalo? Takže všeho, aniž by viděl svůj obrazovky, proč by to být chybných? Je pravděpodobné, že jsme byli jen snaží, aby se příliš mnoho připojení k poštovnímu serveru Harvardu to vše za jednou ze stejné IP adresy. Já jsem jen hádat, protože jsem neměl luxus testování tento kód s některými 300 lidí v předem ale teď si uvědomil, že že alespoň měl se dostali na práci této doby. Dobře, tak proč je to všechno více relevantní k, co se děje? Tak první, rychlý pár oznámení. Takže jeden, pokud chcete připojit Chang, a Nick, a další na oběd v pátek, dělat RSVP na tam obvyklou URL. Pokud uvažujete o soustředění nebo dělá sekundární v CS, ať už jste ve druháku, nebo nováček, nebo dokonce junior nebo senior v tomto bodě a může ještě zmáčknout v kurzech, Uvědomuji si, že v inženýrské školy shromažďuje zdarma Ben a Jerry zmrzlina a poradenství tuto středu krátce po třída v 16:00 v budově CS na Maxwell Dworkin. Pokud je to příliš rychle na obrazovce, stačí jít k cs50.harvard.edu pro odkaz na událost na Facebooku kde můžete vidět více detailů. Mezitím, myslel jsem si, že opravit ještě jedna věc, kterou jsem podělal ve středu. Ukázalo se, že Marka ID na Facebooku nebyl tři. Bylo to čtyři. Ukázalo se, že měl více zkoušce účty, než jsem si vzpomenout. Ale co to cítil jako příležitost udělat, je vytáhnout URL, jako je tento. Tak to dopadá, že Facebook má API, Application Programming Interface, což je mechanismus, kterým tě může požadovat data programově na Facebooku a vrátit stroj čitelné informace, nikoliv webové stránky ale jen surový text, něco volal JavaScript Object Notation. A ve skutečnosti, když jsem navštívit tento URL, a přiblížit tím, že ve výchozím nastavení, To je Mark je veřejně dostupné informace. A zajímavý detail Zde je jen, že jeho ID je opravdu, číslo čtyři, které jsem Jakmile jsem to udělal realizován. Můžete to udělat sami, pokud víte, váš Facebook uživatelské jméno, pokud máte jeden. Prostě to napište do vrcholu. A nic z toho je soukromý. Dělám jen to, i v anonymním režimu. Takže jsem ani přihlášen. A vidíte, že já zřejmě byl uživatel číslo 6454 na Facebooku, který není Škoda, v těchto dnech. Tak či onak, budete také vidět další informace zde. A užitečný aspekt z toho, že vás mohl napsat svůj vlastní software, který nějak integruje data, jako je tento do vlastní aplikace. Můžete posílit uživatelům přihlaste na svůj web, nepoužívají vlastní vlastní uživatelské jméno a heslo, ale možná jejich Facebook login a získat informace i o své přátele, pokud se schválí takové, nebo podobné. Tak na vědomí, že CS50 taky, má některé ze svých vlastních API, jeden pro katalog předmětů dat, některé pro objetí menu v jídelně haly, všechny budovy a místa na akademické půdě máme API pro i které můžete zadat dotaz podobně a získat zpět textová data, která lze integrovat do PHP nebo JavaScript, nebo dokonce, i když méně často, C na základě závěrečného projektu. Opravdu dopředu na finále Projekt je několik milníků. Máš e-mail od nás druhý den. Uvědomte si, že návrh je splatná letos v pondělí. Není to nutně závazné, ale Je potřeba přijímat své pedagogické chlapi schválení před tím, než jakékoliv poté změny. A pak se před námi jsou řada dalších milníků. Takže Tě škádlit, taky, s některými možnostmi, máme spoustu Tyto odstín žárovky. A někteří z vás mají nyní některé z nich ve svém kolejním pokoji stejně. A oni mají API. Tak vzpomínám na ty binární žárovky týdny Před, že Dan Bradley a Ansel Duff vytvořil pro nás. Oni používali softwarové rozhraní tato žárovka, která v současné době je zapojen do elektřiny a pak přes bezdrátové je spojena s malou věc volal most sem, jako malý router vlastnická práva, do tohoto konkrétního zařízení. Ale ukazuje se, jestli vím, jak se odesílat zprávy HTTP, jako my všichni teď dělat, Mohu odeslat zprávu jako je tato tato žárovka ji zapnout nebo vypnout nebo si libovolný počet další operace na něm. Všimněte si, že to nechápu, že to žádný příspěvek. Je tu ještě jeden s názvem put. Je to vlastně několik dalších takových sloves. Povšimněme si ale, že je to cesta tam, lomítko API, lomítko nové vývojáře, lomítko světlo, lomítko jeden, lomítko stavu. To je zřejmě jen cesta, kterou společnost Philips, Rozhodli jste se trefit s HTTP požadavku Chcete-li změnit stav žárovky pomocí protokolu HTTP 1.1. Všimněte si, prázdný řádek. A pak konečně, co vypadá jako druh pole nějakého druhu, To opět se bude nazýván JavaScript Object Notation, nebo Jason. A to, co vidíte, je to, že existují tři páry klíč hodnota. Jedním z hlavních je vyzval. A jeho hodnota zřejmě bude pravda. Jas je 128, což je nějaký int. A pak přechodový čas je nula, což je zřejmě jak dlouho to bude vzít, aby tuto věc na. Takže teď to žárovka nesvítí. Ale když to udělám přesně tohle-- nechat mě jít na malý tahák že Dan nastavit v advance-- a jdu pokračovat a kopírování následující příkaz. Curl, jak se někteří z vás mohl získaných na CS50 Diskutovat se o nástroj, jako Telnet takové že můžete simulovat HTTP požadavků, výslovně uvádí. Mohu poslat tyto údaje, konkrétně, co jsme právě viděl před chvílí specificky na této adrese tady. A pak Curl bude zacházet všech potřebných záhlaví a analýze tamní. Takže vše, co musíte udělat, je zkopírovat to do okno terminálu a poté stiskněte klávesu Enter. A žárovka se rozsvítí. A to je vše prochází můj počítač bezdrátově nějak se k mostu, který se pak mluví k této žárovky. Můžu dělat něco jiného. Mohu tuto věc jít red např. Mohu například vytvořit tahle věc jít zeleně. Můžu dělat to jít modré. A všimněte si v každém z nich případy, všechno, co jsem se měním je tzv odstín hodnotu vlastně dát mu trochu barvy. Takže mi dovolte vložit tento jeden v i. Teď je to modré. A můžete to udělat i milovník věci where-- pojďme na zelenou. A mohl bych to udělat z Samozřejmě s mým vlastním kódem. Ale i samotné API podporuje funky operace jako je to, které bude nyní obtěžovat nám v příštích 30 sekund. Takže to je jedna chuť na to, co by mohlo co dělat s API, tohle zahrnující žárovky. Všimněte si, že CS50 má pár páry Google Glass, kdybys chtěli něco řešit spolu tyto řádky, Arduino Únos, který jsou malinké počítače, v podstatě, na malé desce že se můžete připojit dráty a další věci na a vlastně kontrola Váš reálném světě prostředí. A pak je tu pár z nové hračky, které máme. Ten doslova přišel druhý den poštou, Myo Armband. A já si myslel, že je to způsob, jak vám nadšení o projektech které můžete použít s tento hardware by bude hrát tento krátký klip že používají škádlit lidi že jsme nyní žije v budoucnosti. [Přehrávání hudby] DAVID Malan: Takže během několika týdnů, můžete také může být, že v pohodě na CS50 veletrhu. Další zařízení, které jsme mají spoustu, že jsme šťastný, že půjčit si pozor na projekty se nazývá řízení pohybu. Jedná se o malý USB zařízení připojení k počítači umožňuje komunikovat s notebook, Mac nebo PC, jako kdyby jste měli jako Xbox Kinect a vlastně dělat fyzické pohyby moc jako vidíme v tom vize budoucnosti. [Přehrávání hudby] DAVID Malan: Takže i když máte ponětí, jak něco takového by mohlo být vynalezeno, nebo práce na hardwarové úrovni, bez ohledu na to. Dokonce i po několika měsících CS50, a porozumění programování obecněji, a webové programování více v poslední době, a následně i API a HTTP, budete mít přístup přes softwarové rozhraní API, pokud vás chci si půjčit jeden z nich zařízení skutečně mluvit s ním a nemusíte se starat o základní implementace informace, která je zcela v souladu s tímto pojmem vrstvení abstrakce, že máme vidět po celou dobu semestru. Takže i přes víkend, viděl pár kousků zprávy. Jít jako první, přejděte na seminářích, pokud vás se chtěli dozvědět něco více na libovolný počet témat. Vidět, že URL. A ten byl poslán do me Chang, kdo víte, Kdo je tisk naši armádu slonů. A to byl titulek takto. Děsím se mého nového televizoru. Proč Bojím se, aby tuto věc na a vás to bude taky. Takže jsme teď v bod v semestru, i tam, kde i když máte sebemenší pochopení o tom, jak web funguje, a HTTP, a zabezpečení, věci, jako je tento by měla začít upoutat tvou pozornost. Ale také, budete rozumět, zda tyto věci jsou, nebo nejsou skutečné hrozby. Tak jsem vzal pár ukázek z tohoto článku zde. A příběh je následující. Já jsem se stal majitelem Nový inteligentní TV, které slibuje streaming multimediální obsah, hry, aplikace, sociální média a internet prohlížení, oh a TV taky. Jediný problém je, že jsem teď bojí se ho použít, říká autor. Ty by se taky, když si přečtete přes 46 stránka Privacy Policy pro váš televizor. Množství dat tohoto věc, shromažďuje je ohromující. Zaznamenává, kde, kdy, jak a za jak dlouhou dobu používáte televizor. Stanoví tracking cookies, jak jsme diskutovali, a majáky určen zjistit, kdy máte zobrazit konkrétní obsah nebo konkrétní e-mailové zprávy Chcete-li zkontrolovat e-mail na vašem televizoru. Zaznamenává aplikace, které používat, webové stránky, které navštívíte, a jak budete komunikovat s obsahem, dělá to vše pomocí vašeho smart TV. Rovněž, creepier yet-- to je můj addition-- má vestavěný fotoaparát s rozpoznávání obličeje. Účelem je poskytnout Ovládání gesty pro televizor a umožní vám se přihlásit do osobní účet pomocí vaší tváři. Na druhou stranu, jsou obrázky uloženo na televizoru místo nahrán na firemním serveru. Na druhou stranu, internet Připojení je celý televizor citlivé na hackery, kteří se prokázali schopnost získat úplnou kontrolu nad strojem. Více znepokojující, jako by to nebylo dost chytrý, je mikrofon. TV se může pochlubit hlas Funkce rozpoznávání který umožňuje ovládat diváci obrazovka s hlasovými příkazy. Ale služba je dodáván s poněkud zlověstné varování. Mějte prosím na paměti, že pokud vaše mluvená slova jsou osobní nebo jiné citlivé Informace, že informace bude mezi daty zachycených a předány třetí straně. Máte to? Neříkej, že osobní nebo citlivé materiál v přední části televizoru. Takže je to vlastně doopravdy. A není těžké zjistit, jestli vás přejít na Best Buy nebo podobně pro televizory v těchto dnech. Všichni jsou chytří nějakým způsobem. A oni jsou stále chytřejší a děsivější. A oni prostě sběr dat způsobem, který jsme mluvili o a poté ji nahrát přes HTTP nebo nějaký jiný protokol k nějakému serveru. Takže to byl zábavný článek V této on-line webové stránky tu, který hovořil o zejména bug nebo mylné kód že vlastně můžeme uvázat do diskuze minulý týden. Takže tento titulek byl jako vyplývá, příběh se odehrává zde, Josh Breckman pracoval pro společnost, která přistála smlouvu rozvíjet pro správu obsahu systém nebo CMS jak jsou nazýváni, za poměrně velké vládní webové stránky. Hodně z projektu účastní vytvoření systému pro správu obsahu tak, že zaměstnanci by schopni vytvořit a udržovat stále se měnící obsah na svých stránkách. To šlo docela dobře pár dní poté, co žít. Ale v den šest, všechno šlo tak dobře ne. Veškerý obsah na webové stránky úplně zmizely. A všechny strany vedly k výchozím zadejte obsahu webové stránky. Jejda. Josh byl povolán do vyšetřovat a všiml si, že jeden obzvláště nepříjemné externí IP adresy bylo pryč a odstraněny všechny obsah v systému. IP adresa nepatří do jisté zámoří hacker se ohýbal zničit užitečné Informace vlády. To se rozhodl googlebot.com, Google velmi vlastní web leze pavouk. Jejda. Po chvíli výzkumu a kódování kolem najít noncorrupt zálohy, Josh našel problém. Uživatel opsal a vložit nějaký obsah z jednoho stránky na druhou, včetně Upravit hypertextový odkaz upravit obsah na stránce. Za normálních okolností by to nebylo problém, protože vnější uživatel by je třeba zadat jméno a heslo, ale autentizační systém CMS, přihlašovací systém, nevzal v úvahu propracovaný hacking Techniky Google Spider. Jejda. Jak to dopadá, Google Spider nepoužívá cookies, což znamená, že může snadno obejít kontrolu pro je přihlášen cookie souboru, že je falešný. Není také věnovat pozornost tomu, JavaScript, který by za normálních okolností rychlé a přesměrovat uživatele kteří nejsou přihlášeni. Neznamená to však sledovat každý hypertextový odkaz na každé stránce nalezne, včetně těch, které se Odstranit stránku v názvu. Jejda. Takže co to znamená více technické, ale docela srozumitelně? To prostě znamená, že po celou dobu jejich webové stránky, měli URL není na rozdíl od tohoto ten, který můžete vidět na problém nastavit sedm. Recall v problému nastavit sedm nebo vědět, problém nastavit sedm že jste zpochybnil, mimo jiné, prodat akcie jménem uživatele. Ale prováděcí tuto funkci se formou z dostat přes hypertextové odkazy ve vašem uživatele rozhraní, pravděpodobně není nejchytřejší nápad protože pokud jsou vaše stránky nějakým způsobem přístupné buď člověk kdo Kliknutím kolem nebo koupit bot jako Google je nebo Spider jak se jim říká, že je to jen procházení webu se snaží index web jako vyhledávač, mohli snadno hit prostřednictvím získat tento druh URL. A to je funkčně rovnocenné, v tomto případě, prodej všech akcií společnosti Google. Teď upřímně řečeno, je to úplně hloupý, že CMS Použité JavaScript a cookies k provádění své přihlašovací systém a ne dělat, že na straně serveru, as vy dělat, a bude v pset 7-- tam je login.php file-- vždycky, vždycky, vždy bezpečnost by měly být provádí na straně serveru, ne na straně klienta, protože, jak to článek naznačuje, a vy byste mohli sami vidět na nějakém místě, je triviální pro uživatele, dobré nebo špatné, jen vypnout JavaScript nemluvě o cookies. Tak to je váš denní WTF. Je tu ještě jeden, který je jen trochu děsivé, tak jsem si to uvedeno, zda pouze jako životní lekci. Vždy, když použijete aplikaci nazývá jako Snapchat a podobně který říká, že tyto fotografie trvat jen pěti sekund deset sekund nebo kdoví co ještě. Jsou to pomíjející To je rozhodně není tento případ. Stejně jako neexistuje žádný způsob, digitálně, zavést nějakou formu videa, nebo obrázek, nebo textový sdílení, jako že příjemce na druhém konci nemůže nějak uložit data. V nejvíce naivní způsobem, někdo mohl vzít svůj telefon. A mají druhé okno 10 při pohledu na nějakou Snap jen vzít nějaký jiný telefon a vyfotit to, samozřejmě. Takže si můžete zachovat něco digitálně tímto způsobem. Někteří z vás vědí, jak se screenshoty na telefonu. Ve skutečnosti, pokud to nevíte, Uvědomuji si, že alespoň Snapchat, a myslím, že další Aplikace těchto dnech, alespoň říct, jestli příjemce má ve skutečnosti vzít screenshot obrázku. Ale ještě horší, to bylo snappening, jak to někdo vymyslel v poslední době, kde někteří 100.000 Uchopení byl propuštěn to, co se nazývá soubor torrent na různých internetových stránkách nakonec. A to obsahovalo spoustu soukromých zpráv a příspěvků. Ukázalo se, že většina z nich benigní, takže není to, co byste mohli očekávat. Ale protože lidé měli použít webové stránky třetí strany, přihlášení se svým Snapchat uživatelské jméno a heslo a klepněte na ukládání všech svých patentky na těchto webových stránkách třetích stran. A to bylo to, že třetí strana webové stránky, které byl hacknutý, která se právě chtěl někdo přišel na to, jak dostat všechny 100,000 nárůst o těchto obrázků do své vlastní pevný disk pro následné sdílení. Upřímně řečeno, i zde, je to něco o hloupý, že Snapchat se provádí takovým způsobem, aby třetí strana druhu odposlechu data, a že to není vázána na vaše vlastní aplikace běžící na telefonu. Ale i zde si uvědomit, že tyto co by vás nechytí překvapením, nebo alespoň, že by být životní lekci zde. Pokud byste chtěli technické Podrobnosti naleznete na této adrese URL zde to je v dnešních snímků. V pořádku, jakékoliv dotazy týkající se Dnešní životní lekce v CS? Vypni to. Vůbec něco? Vůbec něco? Mám hodně lidí kontrolu jejich Snapchat nebo tak něco dnes. Dobře, tak SQL, Structured Query Language. Pojďme zabalit. A také, i když jsme jen poškrábání Povrch této jazyka, budeme vám dost jazyka ve formě pset 7 takže můžete řešit některé docela běžné funkce. Ale uvědomila, že existují pár věci, které nevyžadují z vás, ale budeš důležité přijít závěrečných prací a jistě přijde dělat skutečné webové stránky s aktuálními uživateli je toto rozhodnutí designu. Ukazuje se, že v MySQL databáze, můžete mají svazky možností, jako je datové typy pro vaše sloupy a další věci, ale máte také volba tzv skladování motor pro všechna vaše data, druh souborového systému, pokud jste obeznámeni, pro všechna vaše data. Jaký formát je to nakonec uložena v? A nejčastější, snad, byl MyISAM a InnoDB, technické termíny že budeme záleží pouze do té míry, že má člověk a jeden nemá následující funkce. Předpokládejme, že máte malá lednička koleji. A předpokládám, že vy a vaše spolubydlící, kteří mají tuto lednici, opravdu rád řekněme mléka. A to je, ve skutečnosti, jak příběh bylo řečeno, pro mě cesta zpět v den, kdy jsem se zúčastnil kurzu tzv CS 161 Operační systémy, které Podobně zkoumá toto téma. Takže jste dostal tuto lednici. Jste z mléka. A vy jste přišel domů, váš spolubydlící je stále třídu nebo cokoliv, a vy se rozhodnete jdu jít ven a trochu mléka. Takže zavřete ledničku, vězení koleji, přejděte přes ulici k CVS nebo kdekoli, a získat v souladu se koupit nějaké mléko. Mezitím, váš spolubydlící přijde domů ze třídy, se dostane do koleji pokoj, otevře ledničku, také si uvědomuje, ooph, jsme z mléka. Tak on nebo ona se zavře lednice a pak se stane, jít na druhou CVS, který se stane být jeden blok od ostatních CVS na náměstí, a dostane do souladu tam trochu mléka. Teď, samozřejmě, pár minut později, oba se vrátím, a nejhorší ze všeho je to možné Výsledky se stalo. Oba dva mají mléko. A nemáte opravdu jako mléko, že hodně. Takže jeden z nich je právě bude kyselá v určitém okamžiku. Takže teď máte nadměrné množství mléka v lednici to všechno proto, proč? [Neslyšitelné] DAVID Malan: Jo, to ne nějak vzájemně komunikovat že jste se dostat mléko. Takže nejjednodušší způsoby, jak v lidském světě, jak by se vyhnout této hloupé scénář z děje jako že si jen skončit s jedním. Text je, ano, dobře. Ale jak jinak? Post-it poznámky. DAVID Malan: Post-it note. Jakákoliv forma sdělení že řekne své spolubydlící nechodí do ledničky na mléko. Chystám se jít doplnit zásoby na vlastní pěst. Takže budete nějak potřebovat zamknout tohoto zdroje. Takže můžeme tohle-- můžeme druh zničit příběh a zase do příběhu CS kdy myslet na to, jak je, stejně jako proměnná, která ukládá nějakou hodnotu. A právě teď, hodnota mléka je nula, které nechcete, aby vaše spolubydlící ke kontrole této proměnné a pak se rozhodnout jej nebo sebe v závislosti na stavu této proměnné pokud jste v procesu změnu stavu této proměnné. Takže jeden z řádků SQL, které jsme dát v pset 7 specifikace je to jeden tady. A nebudeme utrácet obrovské množství času, o tom mluví. Ale ukazuje se, pokud se snažíte koupit nějaké akcie CS50 financí že již máte Některé akcie, vás chcete být schopni udělat řadu věcí okamžitě dohromady. Chcete-li být schopni efektivně, na vysoké úrovni, zkontrolovat v pořádku, když chci koupit více akcií zdarma, penny zásoby mluvit o ve specifikaci, Chci první kontrole kolik akcií mám. A předpokládám, že je to pět. A předpokládám, že chci, aby koupit dalších 10, jsem nakonec chtějí mít 15 akcií skladem. Tak jsem se zeptat na dvě otázky. Jaký je stav proměnné? Jaký je stav řádku? Kolik akcií mám v současné době? Pak budete chtít pokračovat a aktualizovat. Tak to je analog na mléko zkontrolovat řádek, a pak chcete aktualizovat protože pokud si chcete koupit 10 akcí, Nechcete-li změnit řádek 10, je chcete jej změnit na 5 a 10, nebo, samozřejmě, 15. Tento řádek kódu zajišťuje, že tyto dvě koncepční nápady stát, společně, nebo vůbec ne. Nikdo, včetně nějakého jiného uživatele Kdo je přihlášen do stejné webové stránky, nějak přerušit kontrola řádku a aktualizace řádku, vybrat a aktualizace, pokud chcete. A syntaxe není výborný zřejmé, ale tahle linka, dlouho to je, zajišťuje, že tyto dvě operace zkontrolujte proměnnou nebo zkontrolujte řádek a aktualizovat řádek se stalo atomicky. Oh je to tady zase. Textová zpráva na můj telefon. Tak pojďme, aby to trochu konkrétnější. Předpokládejme, že nejste provádění ledničku, a nejste provádění Pset 7, ale skutečná banka, nebo bankomat, bankomat Stroj, čímž vám nějak chcete mít možnost posílit uživatelům přenášet peněz z jednoho účtu na druhý. OK, vydrž. Chystám se ztlumit to teď, děkuji. Takže chceme přesunout peníze z jednoho čísla účtu do jiného účtu číslo, konkrétně 100 dolarů. Tak to je druh libovolný příklad, kdy jste, ATM, chtít vykonat dva SQL dotazy, odečíst z jednoho účtu, a přidat na jiný účet. Ale vy chcete, aby zajistily, že tyto dva řádky jak se stalo, nebo vůbec ne. Nechcete, aby něco dostat přerušen. Nemáte nějaký chytrý špatný člověk nějak stojí v Bank of America se dvěma bankomatů v přední ním a nějak druh psaní v příkazy ve stejnou dobu, doufejme, že se snaží odečíst 200 dolarů místo 100 dolarů a jen s 100 dolary připočítán. Stručně řečeno, pokud chcete, aby se chovají přesně tak, jak jste očekávali. A jak vy to v SQL databáze ji zabalit do co je volal transakce. Doslova v SQL, můžete volat CS50 je funkce dotazu s citátem konec citátu startem transakce. Pak můžete spustit libovolný počet následných SQL dotazů, ale žádný z nich se vliv na databázi dokud nezavoláte dotazu citace unquote dopustí-li znovu pomocí PHP. A tímto způsobem, můžete zajistit, že i když máte 1000 Všichni uživatelé bít databáze ve stejnou dobu, SQL bude slibovat, že tyto dva dotazy bude realizován jeden za druhým. Takže nemusíte skončit s přebytkem mléko nebo špatné množství, nakonec, peněz. Takže mějte na paměti, ani ne tak pro pset 7 ale závěrečných prací pokud jste skutečně snaží se pohybovat kolem dat přes tabulky, jak si možná zde. Ale možná ještě jednodušší a více zřejmé porozumět s příkladem je to jeden tady. A někdo nám e-mailem o to jen další den když viděl něco podobného online. Takže vím, pin systému není náchylné k útoku. A já nemám ponětí, jestli IT i použití SQL databáze pod kapotou. Ale pojďme ji použít pro saké diskuse. Zde je obrazovka, která Harvard lidé mají tendenci vidět při přihlašování s jejich Harvard identifikační číslo a PIN. A předpokládám, že pin systém byl implementovány v PHP a MySQL s databáze, kód, který někdo Před mohlo písemné roky může vypadat například takto. Za prvé, prohlásit proměnná s názvem uživatelské jméno. A jen tak, že od POST superglobal. Pak si další proměnnou volal heslo a totéž. A pak už jen spustit tak dlouho dotaz zde vyberte hvězda od uživatelů případně Uživatelské jméno rovná takový a takový a heslo rovná takový a takový. Všimněte si, že kudrnatý šle jsem zde použit jen znamená PHP, jít dopředu a náhradní hodnota z těchto dvou proměnné právě tam. Jsou to není nezbytně nutné, ale mají tendenci, aby se zabránilo jemné syntaktické chyby. Takže to vypadá úplně Správná na první pohled. A je to. Dalo by se realizovat čep systém tímto způsobem. Ale předpokládám, že super chytrý a nebezpečný studenta Vstupní to jako jeho kolík. Tak jsem odstranil kulku známky zde v mock-up, a já jsem vlastně odhalil to, co on nebo ona může být psaní. A je to trochu divné. Ale to, co vyskočí na vás na potenciálně znepokojující o vstup uživatele, i když nemáte tušení, co útok SQL injection znamená. Proč to vypadá trochu podezřele? Co je to? [Neslyšitelné] DAVID Malan: nebo je trochu podezřelé. Ve skutečnosti, to je klíčové slovo z SQL. Tak, že to nevěstí nic dobrého. Skutečnost, že je všechny tyto jednoduché uvozovky there-- ve skutečnosti, jeden z nejjednodušších způsoby, jak zlomit některé databáze se zadáním jména jako O'Reilly který má apostrof v něm proto, že v případě, že člověk, který napsal Kód zákulisí nebere v úvahu, že může být jednoduché uvozovky v uživatele vstup, a on nebo ona je s použitím jednoduché uvozovky v jejich kódu, špatné věci se může stát. Ve skutečnosti ještě horší, zvažte to. Pokud to bylo opět kód že někdo na Harvardu let Před psal pro kolík Systém si všimněte, co je o dostat substituovaný uživatelské jméno a heslo pokud uživatel zadá znovu skroob, protože jejich jména a pak jeden, dva, tři, čtyři, pět, citát nebo citace unquote jedna rovná se citovat. A všimněte si, co je klíč Zde je uživatel nemá začal své heslo, nebo jejich pin s citátem. A neskončily ji s citátem, protože on nebo ona je za předpokladu, že v případě, že programátor nebyl tak ostrý, že budou mít ty jednoduché uvozovky v jejich kódu. Tak tady je kód. A náhrada, která Nyní se může stát je to. A já jsem zdůraznil to, co uživatel zadat. Tak před, po. A všimněte si, co je mírně znepokojující nyní o pravé polovině tohoto kódu SQL? Je to trochu složitější, pravda, než dotazů jsme viděli. Ale to nemůže být dobrá věc, pokud jste řekl vyberte hvězdu, která je vyberte vše z tabulky uživatele kde uživatelské jméno odpovídá skroob a heslo se rovná jeden, dva, tři, čtyři, pět nebo jeden roven jedné. Co je to logický důsledek tohoto posledního ustanovení všeho? Je to prostě vždy pravda. A proto, že jsme tak nějak tušil nebo přišel na to, metodou pokusu a omylu že programátor, který napsal tento kód ne předvídat lidské nebo špatný člověk psát v jednoduchých uvozovkách stejně, můžeme syntakticky dokončení dotazu SQL s něčím nesmyslné ale něco, co je syntakticky nesprávný že vždy vyhodnotí na true. Takže pokud je tento kód se používá k zodpovězení otázka true nebo false by tento uživatel moci projít, Odpověď je vždy zřejmě bude je to pravda, protože to je vždycky vybrat něco z databáze protože jeden samozřejmě vždy roven jedné. Takže jaké je řešení? No v pset 7, jsme vlastně vyhnout se to všechno dohromady. Dáme vám funkce dotazu a my Doporučujeme vám použít otazníky jako zástupné symboly, podobné duchem printf je% s, ale to, co je klíčem k otazníky Zde je, když jste vlastně přečetli functions.php, kde naše funkce dotazu je implementována, ty otazníky jsou unikl, kdy něco potenciálně nebezpečné jako jediný citát je zapnuto do uprchlý jednoduchou uvozovku. Tak tohle je to, co je skutečně děje, pokud vás použít funkci dotazu CS50, nebo libovolný počet volných knihoven třetích stran, které to samé. Nezáleží na tom, v tomto případě, v zelené barvě, v případě, že uživatel zadal jednoduchou uvozovku protože dotazu funkce, které jsme psali, je přidáme zpětná lomítka před každá taková nebezpečná citace. Tak to není, v Skutečnost, bude důvěryhodně. Je to jako psát v blázen hledá Heslo, které je, samozřejmě, nebude být aktuální heslo skroob lidové. Takže stánek s jídlem pro CS50 je jedna, naprosto vždy něco jako funkce dotazu CS50 je nebo základní knihovna, který se stane být nazýván CHOP. Ale nikdy, nikdy, nikdy neudělal kód, jako je tento bez úniku nebo čištění jak se říká vaše vstupy. A budete v určitém okamžiku pravděpodobně narazíte na nějaké webové stránky, jako je tento. Ve skutečnosti se zdá, že tomu tak je jako na letištích a hotely v místech kde mají bezplatné Wi-Fi připojení k internetu přístup, který musíte se přihlásit do, Tyto webové stránky jsou vždy strašně provedena. A tak trochu zábavy doma cvičení, Není k nekalým účelům nebo více ze zábavy na cestě cvičení, je prostě typ apostrof, jeden citát, do formy na určité webové stránce a uvidíte, co se stane. A pokud server havaruje, nebo dává jste nějaká chybová zpráva, to může být to, že velmi dobře někdo Nepředpokládá se to. A pak byste měli upozornit správné orgány a pokračovat dál. Takže teď vy by snad rozumět trochu víc geek humor zde. [SMÍCH] DAVID Malan: Víte, že jste geek. Pro příští několik let, budete pamatovat kdo málo Bobby Tables je kvůli této karikatuře zde. Takže mějte na paměti, že když jsme přepnutí kontextu naposled dnes JavaScript. Strávili jsme poměrně málo čas na syntaxi PHP protože je to ve skutečnosti Hodně podobný C. A dost dobře, JavaScript taky je super podobná syntaxi C je stejně jako uvidíme v jen na chvíli, a jak jsme to viz v tomto týdnu především. Co můžete dělat s tímto jazykem, i když, je vše silnější, zejména s API. Ale nejdřív rychle tour. Takže člověk, v JavaScriptu, je tu není hlavní funkcí, což je hezké. Stejně jako u PHP, stačí napsat kód. Podmínky vypadat takto. A logické výrazy by mohl vypadat takto nebo takto. Přepínače existují, a může vypadat například takto. Čtyři poutka vypadat takto. While vypadat takto. Líbí chvíle vypadat takto. A pak se pole vypadat Tato, velmi podobné PHP. Povšimněme si ale, že v JavaScriptu vás deklarujete proměnnou ne s dolarem podepsat, a to s typem dat, ale doslova tím VaR pro proměnné před ním. To také je volně zadali v tom, že má druhy, ale není explicitně deklarovat. A pak řetězec, pro instance, může vypadat takhle, že řetězec volána s v tomto případě. A pak objekt. A tito uvidíme více, než dlouho. A objekt je pravděpodobně jedním z nejčastěji vidět datové struktury v JavaScriptu na základě Program, protože umožňuje můžete přiřadit libovolný Klíčové páry hodnota jen jako PHP asociativní pole a stejně jako své vlastní hash tabulky nebo vyzkoušet, jak jsme zavedli pár týdnů zpět. Takže pojďme se podívat, co vlastně můžeme dělat s jazykem JavaScript. A zejména, je to Seznam prací funkcí že prohlížeče mají, že nám umožňují připojit JavaScript na webových stránkách v následujícím způsobem. JavaScript je často používán jako na straně klienta skriptovací jazyk. To není kompilován. To také je interpretován. Ale na rozdíl od PHP, která byla spuštěna na serveru, na webový server, nebo hluboko uvnitř klienti, JavaScript se liší v tom, že obvykle běží v prohlížeči. Takže jakýkoli kód JavaScript začnete psát pro pset 8 nebo konečného projektu, nebo v reálném světě se obecně děje musí být uloženy na serveru, absolutně v dot HTML nebo tečka JS pro soubor JavaScript. Ale prohlížeč se děje ke stažení, který JavaScript Kód na vlastní instanci Chrome, nebo IE nebo Firefox, nebo cokoliv jiného. A kód je vlastně dostane proveden uvnitř své vlastní prohlížeči. Jen aby to reálnější, pojďme se podívat na tuto konkrétní podobě. Nemáme tušení, co tento kód dělá aniž by skutečně číst přes to. Ale nech mě jít na Facebook.com bez přihlášení. Nech mě jít do Zkontrolujte Element a jít do, řekněme, Síť a obnovte stránku. A budeme see-- dovolte mi, abych posunout znovu načíst Page získat všechny požadavky na nové. A první soubor vidím CSS, CSS. Zde je první JavaScript soubor, a já jsem žádný nápad, co to dělá, ale tady Je to jedna z kódu JavaScript který pohání Facebook. Není to ani ve skutečnosti, že odhalující přiblížit. Je to stále stejně nesmyslné. Ale uvidíte i dole, je tu ještě více těchto souborů JavaScript. Jejda. To je ping. Pojďme trochu dolů Dále, dále další. Je tu ještě jedna. Je tu ještě jedna. Je tu ještě jedna. Takže i když Facebook, za scény, je napsán v části v PHP Facebook a vlastní verze této smlouvy, je tu obrovské množství JavaScript. Ve skutečnosti, některé z chatování děláte na Facebooku, některé aktualizace inline časové osy že se stalo v reálném čase, to vše je řízen JavaScript. Jo? Diváků: Nejsem si jistý, pokud je to Facebook, ale myslel jsem si, že Facebook vyvinut vlastní in-house kód jazyka? DAVID Malan: Dělali. Takže to je důvod, proč říkám rozptyl PHP s názvem Hip Hop, že ve skutečnosti přidané funkce až tak, že při Mark nejprve realizován Facebook, to bylo napsaný v PHP. A to tak nějak zůstalo druh čelní jazyka že používají mnohem jejich kódování, ale to nebyl jazyk, který je váhy obzvláště dobře na miliardy lidí. A tak se přidali jejich vlastní zlepšení v zákulisí. A používat libovolný počet dalších jazyků pro různé kusy jejich infrastruktura. Takže ano, je to rozptyl to, co dnes známe jako PHP. Takže pojďme se podívat na pár příkladů o tom, jak můžeme zde použít JavaScript. V dnešním zdrojového kódu, máme banda souborů, z nichž první, pojďme tzv DOM nula. Takže DOM nula vypadá následovně. Nech mě jít do tohoto adresáře a otevřít domzero.html, v horní části, který má typ doc prohlášení s tím, tady je HTML 5. A teď tady je tag HTML. Zde je tag hlava. A tady je to, co je nového dnes. Nyní máme tag script Uvnitř hlavy stránky. A to zřejmě dělá velmi málo, ale oznámení že jsem definováno skript JavaScript. A jak je stranou, protože tato Je mylná představa, JavaScript nemá nic co dělat s Java, jazyk že někteří z vás by mohlo naučili v APC. Bylo to spíš o marketing věc než cokoliv jiného, jet na coattails Java let. Ale JavaScript, nemá nic společného s Java, jen podobně, a protivně, zmateně jmenován. Tak tady je, jak deklarovat funkci v JavaScriptu, doslova říkají funkce, pak název funkce, potom všechny argumenty, že to může trvat, stejně jako v PHP. Ukázalo se, že v JavaScriptu, jeden z nejvíce otravné funkce, které existují, je Alert. To je trochu okno, které vyskočí a upozorní vás, na části informace. To je obecně odsuzována. Ale budeme používat jako naše První cvičení zde. Všimněte si několik funkcí JavaScript. Jednotlivé citace a dvojité uvozovky nejsou ve skutečnosti už je jedno. Jednotlivé citace a double citace mohou být vyměněny, zatímco v C, budete muset použít uvozovky pro řetězce, a máte dvě samostatné citace pro znaků. Ve světě JavaScript, mnoho lidí, většina lidí použít jednoduché uvozovky kolem řetězce jen proto, že je to stylová záležitost. Ale co je operátor a tady, které jsme ještě neviděli? Diváků: řetězení. DAVID Malan: řetězení. Takže C nemá ani to. PHP má operátor tečky, který to dělá. JavaScript má operátor plus, který zmateně je stejně jako Java. Tak co se to tu děje? Tak tady je místo, kde základní chápání tohoto obrázku jsme vyhodil pár dny vstoupí do hry. Pamatuji si, když jsme měli jednoduchý verze HTML page-- to právě řekl, hello world. A pak jsme nakreslil strom doprava, která měl spoustu obdélníků a linek jejich připojení jako rodokmen. Tak to je takzvaný DOM nebo Document Object Model. A ukázalo se, že máte přístup obdélníky v tomto stromu se syntaxí jako následující. Doslova říká dokument, který je speciální globální proměnné v JavaScriptu program, který má funkci s ním spojené, které můžete přistupovat podobně jako struct, ale prostě říci, tečka a název funkce je, dostat element podle ID. Prvek Chci se dostat je zřejmě citovat konec citátu jméno. A pak chci, aby si jeho hodnotu. Nyní se dostáváme před sebe. Nejsem si ani jistý, co to vše je. Pojďme rychle vpřed do formátu HTML strana, která je super jednoduché. Všimněte si, že jsem definováno tvoří tady dole. Všimněte si, dal jsem to jedinečný ID, i když jsme se nepoužívá tento atribut před. Ale to existuje v HTML. Můžete jednoznačně identifikovat nějaký kus HTML s identifikátorem, jako je tento. Upozornění nyní tohle-- dopadá HTML podporuje, na tomto seznamu na prádlo před chvílí, celý banda obslužné rutiny událostí. A to handler události říká na odeslat. V uživatelském podání této formulář, zavolejte následující kód. A kód, který se děje být nazýván ani popraven je přesně to, řecké Funkce a následně return false. Všechno ostatní by být docela povědomě. Zde je vstupní typu textu, jehož ID, v tomto případě, bude jméno. Nemáme aktuální atribut name tento time-- a tlačítko odeslat. Takže výsledná stránka vypadá takhle. A výsledné chování, uvidíte, vypadá takto. Stránky, na místních hostitelů říká, ahoj David, sotva esteticky způsob, jak pozdravit uživatele. Ale co to vlastně děje? Dobře zvažte, co to je. Jedná se o textové pole. A podle HTML tady, jsem ho dal jedinečný identifikátor volal quote unquote název. Mezitím, co jsem řekl, když uživatel odešle tento formulář tím, že udeří Enter nebo klepnutím na tlačítko Odeslat tlačítko, volání funkce s názvem Greet a pak se vrátit na hodnotu FALSE. Podívejme se na ty, které v opačném směru. Všimněte si, když jsem klepněte na tlačítko Odeslat, URL této stránky se nemění. Ikona prohlížeče nezačal točit. Nechtěl jsem nikam, a to doslova, protože jsem řekl, vrátí False. Return false zkraty nebo zastavuje výchozí chování formuláře. Tak, že nás pak nechává tato poslední otázka. Co Greet dělat? No, zřejmě Pozdravte volá funkci nazvanou Alert, prochází v jednom dlouhé argument, že je to Výsledkem zřetězení společně banda podřetězce, ahoj čárka prostor, poté, co to vrátí. Takže dokument je jako globální Proměnná tohoto kořene tohoto stromu, volání speciální funkce, jinak nyní známý jako metoda. Funkce, která je uvnitř proměnná nazývá metoda namísto funkce. Tak se element podle ID. Co element děláte chtějí získat jeho ID? Citáty konec citátu jméno a pak konkrétně hodnotu. Takže jinými slovy, že kód jednoduše nachází textové pole, jehož ID je název a pak dostane jeho hodnotu. Takže pokud bych měl změnit a říkají Davin místo Davida, a klepněte na tlačítko Odeslat teď mají pozdrav pro Davin. Dobře, takže vše v pořádku a dobré. Ale uvidíme, jestli můžeme udělat to trochu čistší, protože jen psaní kódu, jako je to obecně bude odsuzován. To bude vypadat děsivější. Ale to, co je první Rozdíl, abyste si zde V této verzi kromě jméno mění na DOM jeden? Co strukturálně vypadá jinak o tom ve srovnání s ostatními? Jo? Diváků: Je forma na Horní část skriptu teď? DAVID Malan: Ano, formulář je na vrcholu scénáře z nějakého důvodu zvědavý. Takže to je první věc, že vyskočí na mě taky. A naštěstí alespoň tato část je totožná. Takže jediná věc, která se zdá být jiný, je to. Tak tady je to, co je hezké o JavaScriptu 2. A to je těžké pochopit na první pohled, zejména u závěrečných prací pokud díváte se na ukázkový kód on-line, ale to se scvrkává na některé základní syntaktické funkce. Zde opět je, že globální proměnná dokument. Zde opět je, že metoda nebo funkce který říká, že si prvek podle ID. Tentokrát chci získat ID s názvem demo. Kde je to? To je zřejmě pravdu zde, formulář sám. A teď si všimněte, že prý když jsem vrátit se, že uzel ze stromu, který představuje formulář sama o sobě, není textové pole, Ukazuje se, že tvar, který uzel nebo obdélník ze stromu, má vše, co budeme nazývat vlastnost, velmi, velmi, velmi podobné duchem struct v C Je to jen datový člen uvnitř tohoto obdélníku. Tak jsem dostal formulář tady, a já připojení, nebo jsem přiřazení k jeho On Odeslat handler nebo spíše na Odeslat majetku Následující funkce. A to je, zdaleka, nejbláznivější věc tak daleko syntakticky. Ukazuje se, že v JavaScriptu a PHP, a upřímně řečeno, když na to přijde v C, i když to neuděláte, můžete přidat bezejmenné, anonymní, nebo AKA lambda funkce, které nemají jména ale může být nazýván nicméně. Takže to, co tu dělám je, že jsem přiřazení Tento On Odeslat majetek, který je uvnitř tohoto uzlu mého stromu DOM, funkce, ukazatel na funkci, pokud chcete. Tato funkce nemá žádný jméno, ale to neznamená, nevadí, protože uvidíme ve chvíli, jak to nazvat. Je-li tato funkce se nazývá, tento kód dostane popraven, pak false je vrácena stejně jako předtím. Povšimněme si ale, co jsem udělal. V tomto bodě příběh, mám formu. Má to jedinečný identifikátor s názvem demo. Tady dole, mám tag script který provede následující kód. To se váže k tomuto uzlu v strom je to na Odeslat Vlastnost tato funkce zde. A právě od přírody, jak prohlížeče práce, když jsem teď na tlačítko Odeslat nebo stiskněte klávesu Enter, že funkce bude dorovnán. Nepotřebuje jméno protože kdo sakra zajímá, jak se to jmenovalo. Jediný okamžik, kdy to někdy dostanu volal je, když odešlete formulář. Není třeba pro mě, člověk developer, skutečně volat kdekoliv jinde. Nyní jen jako ukázku, jako v případě, že byly nevadí dost ohýbání, můžeme dokonce to vypadají spíše mystický použití Super populární knihovna s názvem jQuery. Ve skutečnosti jQuery a JavaScript často se sjednotil. A co budeme dělat, ve středu je začátek pomocí tohoto jazyka a tyto knihovny stavět stále asynchronní a dynamické aplikace jako mapu dostat aplikace, aplikace že aktualizovat webové stránky v reálném čas, podobně jako Facebook nebo Gchat dělat, a už omezit na bít Odeslat pomocí GET nebo jen poštou sám. Tak jsem vás vidět ve středu. [Přehrávání hudby]