>> [Glazbom]
>> DAVID Malan: Ovo je CS 50, a ovo je početak tjedna devet.
A ono što smo mislili da ćemo to danas nije samo zatvoriti poglavlje o prošlotjednom
Materijal gdje smo usredotočeni na poslužitelju strana web programiranje s PHP i SQL,
neke stvari baze podataka.
Razgovarat ćemo o malo Sigurnost danas i onda
prijelaz na strani klijenta programiranje jezik poznat kao JavaScript.
Ali prvo, neki otkupljenje.
>> Možda se sjećate da je Srijeda, sam krenuo
napisati web stranicu koja uzeo je u korisnikov ulaz
pomoću HTML obrazac koji se zatim pohranjuju da korisnik ulazni imena, telefon
Brojevi i mobitel nositelji u bazi podataka.
A onda sam imao malo naredbu Linija scenarij napisan u PHP
koji je trebao ponoviti više redaka u bazi podataka
i slati SMS poruke.
Unatoč nekoliko, nekoliko pokušaja, mi nisu dobili taj rad do kraja.
>> Tako sam proveo cijeli ovaj tjedan raditi na taj broj kako bi dobili nas prošlosti točke
tamo gdje smo stali, pri čemu svi Dobio sam do kraja u srijedu
je ovaj tekst poruke od Margo kao što sam se borio,
nakon čega slijedi SMS poruke iz drugoga kolega, Imate ovu Davida.
Slijedi ove, predivno ohrabrujući.
Zadržao na ide, vrlo ohrabrujuće.
Skoro sam ga dobio do then-- i to je napomena da je završila u srijedu.
A onda je zapravo možda i moj favorit, Trenutak kasnije, taj je došao u.
Prokletstvo live stream.
>> Tako je danas, možemo popraviti ovo s brzim pogled na ono što sam učinio tada.
Dakle, sve ove kôd je dostupan online od prošlotjednog, tjedan osam,
izvorni kod.
I vidjet ćete da sam prošao, a ja zapravo očistio stvari malo.
Upoznao sam par drugoga značajke SQL baze podataka.
Na primjer, umjesto samo bi nositelj var char
kao što mislim da sam učinio u letu prošlog tjedna.
Umjesto da sam ga definira kao ono što se naziva nabrajanja.
>> A neki od vas možda vidio ovo kao što smo istražiti C nabrajanja je zapravo
značajka C gdje možete nabrojiti hrpu konstanti
i dodijeliti ih automatske vrijednosti, kao jedna, dvije, tri, četiri
bez tvrdih kod brojeva.
Dakle, SQL podržava isti, pri čemu ako se imate polje baze podataka koju je samo
žele da se na jednoj od konačnih Vrijednosti, možete doslovno ga navesti
kao što sam učinio bilo za četiri Popularni američki mobitel nositelji.
>> Tako sam to učinio.
I ja sam napravio niz promjena što i od kojih je najvažnija
je da se e-mail raditi jer opoziva, da je ovaj program oslonio na kojem
obično naziva e-mail na SMS gateway, što je samo
fancy način govoreći da je Verizon, i AT & T, a drugi ljudi podržavaju poslužitelj,
pri čemu ako primi e, to ga pretvara u SMS
i šalje tekst Poruka na nečiju telefon.
Dakle, ako sam to učinio ispravno, Ovdje je novi i poboljšani oblik
koja će se razgovarati novi i poboljšani broj, koji
možete igrati online.
I nadamo se da će napraviti moj Telefon piskutavi u samo trenutak.
>> Tako je prvi, ja ću upisati u moje ime.
Drugo, ja ne idem to ovaj put učiniti.
Ja ću učiniti Pregledajte element.
A to je samo mala stvar tako da ne znam
stvaraju sati postprodukciji raditi kao što sam prošli put.
Sada je moj broj telefona.
>> Odabrat ću Verizon.
I ovdje, idemo okrenuti na ovoj mikrofon ovdje, a cilj to na moj telefon ovdje.
Idem kliknite registar, koji je trebao nadamo
stavite ga u bazu podataka.
Sada ću ići u naredbenog retka program, koji
Opoziv se zove dot slash tekst i fige.
Ovdje ćemo ići.
>> [PHONE tragova]
>> [PLJESAK]
DAVID Malan: Pa zabavnije od this-- to je zabavno, naravno, ako se u nju.
No, to je zabavnije, mislio sam, ako mi stvorio jedan od onih filmskih trenutaka
gdje se kao nešto stvarno loše se dogodilo u svijetu,
i kao i svi NSA Narodne mobiteli početi bip
s tekstualnim porukama upozorite ih na ovu činjenicu.
Pa sam mislio da će pokušati da ponovno isto ovdje,
pri čemu se ne koriste bazu podataka, I umjesto da se unaprijed
je napisao program koji izgleda ovako.
>> To je index.php-- i ja staviti ovaj kod on-line
kao well-- koji očito Samo čini form.php,
pomoću MVC stil paradigmu koja smo govoriti o detaljnije u problemu setu
sedam.
Taj oblik je prilično jednostavan.
To će dostaviti Datoteka naziva here.php poštom.
I to očito ide pitati za ime i broj telefona,
a zatim preko takozvane Odaberite izbornik, to je
će vam dati najmanje četiri Popularni američki mobitel prijevoznici,
a onda vam omogućiti da učinkovito uzeti pohađanje klikom ovdje.
>> I ovdje, u međuvremenu će se posuditi neki od koda od prošlog puta.
A ako ste samo dotaknuti to, vidjet ćete da postoji
cijela hrpa provjere pogreške.
No, ljepota na kraju je da mi ne pišete u bazu podataka i danas.
Mi smo imajući to jednostavno i Samo slanje nadam
SMS poruka putem funkcije I. napisao je u proteklih nekoliko dana poziva
Tekst, koji je u funkcijama. php, što je opet dostupan online.
>> Dakle, ako želite sudjelovati u tome.
Nećemo biti spremanje ništa.
Idi na ovom URL ovdje u realnom vremenu.
Nemojte ga podnijeti samo još, ali neka je vidjeti ako možemo imati jednu od ovih film
trenuci u kojima svačija mobitel počne oglašavati zvučnim signalom, nadamo se samo
Jednom ove godine za razliku od 2011. godine gdje je ovaj otišao užasno krivim putem.
I jednom kada ići na tu adresu, trebali biste vidjeti super jednostavan oblik
da, ako imate ime, mobitel broj i mobitel prijevoznik koji
odgovara popis tamo, idite naprijed i ispunite obrazac.
Ali ne pogoditi podnijeti samo još.
>> Obrazac će izgledati ovako.
Idi naprijed i upišite Vaše ime i prezime, broj telefona.
Oop, netko ide ispred krivulje.
To je u redu.
U redu, svatko je ispunjen obrazac.
To bi trebalo raditi na telefona, također, ako želite.
U redu, na svojim oznakama, pozor, ići.
Hit ovdje.
Što je?
Ne.
Kunem se Bogom, sam testirao to više puta danas.
Možete ga dobio?
>> [Ubacivanjem GLAS]
>> DAVID Malan: OK, korisnik pogreške možda.
To je dva.
On je radio za dvije od Nekoliko stotina, tri, četiri.
U redu, to je dobro.
Četiri od pet za ispravnost o tome.
>> Dakle, što se upravo dogodilo?
Dakle, vjerojatno, ne vidim svoje ekrani, zašto bi moglo da se errored?
To je vjerojatno da smo bili samo pokušava napraviti previše veze
na Harvardu mail server sve na Jednom od iste IP adrese.
Ja sam samo nagađanje, jer nisam imati luksuz testiranja
ovaj kod s nekim 300 ljudi unaprijed
ali za sada shvatiti da da bi barem trebala
dobivši posao učinio ovaj put.
>> U redu, pa zašto je to sve više povezan s onim što se događa?
Pa prvo, brzo Nekoliko najave.
Dakle, jedan, ako želite da se pridruže Chang, i Nick, a drugi na ručku ovaj petak,
to RSVP na uobičajenom URL tamo.
Ako ste mislili koncentriraju ili radi sekundarna u CS,
da li ste student, ili brucoš, ili čak mlađi ili stariji u ovom trenutku
i još uvijek može stisnuti u tečajevima, shvatili da inženjerske škole
je okupljanje za besplatno Ben i Jerry sladoled i savjeti
u srijedu nedugo nakon klasa u 4:00 sati u CS zgradi
na Maxwell Dworkinu.
Ako je ovo prebrzo na zaslonu, samo idi
da cs50.harvard.edu za link na Facebook događaj
gdje možete vidjeti detalje.
>> U međuvremenu, mislila sam da ću ispraviti još jedna stvar koju sam goofed srijedu.
Ispada da je Marka ID Facebook nije bio tri.
Bilo je četiri.
Ispostavilo se da je imao više testa računi nego se sjećam.
No, što to osjećao kao na priliku učiniti je podići URL kao što je ovaj.
>> Tako ispada da Facebook ima API, Application Programming Interface,
što je mehanizam kojim vas može zatražiti podatke programatski
na Facebooku i vratiti stroj čitljive informacije, a ne web stranice
nego samo sirovi tekst, nešto zove JavaScript objekta oznake.
A u stvari, ako posjetite ovaj URL-i povećavanje, po defaultu,
ovo je Marka javno dostupne informacije.
>> A zanimljiva pojedinost ovdje je samo da njegov ID
uistinu, broj četiri, koji sam shvatila čim sam to učinio.
To možete učiniti sami ako znate vaša Facebook korisničko ime, ako ga imate.
Samo upišite ga do vrha tamo.
I ništa od toga nije privatna.
Ja samo to, čak u anonimnom načinu rada.
Pa nisam ni prijavljeni.
A ti vidim da sam očito je korisnički broj 6454
na Facebooku, što nije Šteta ovih dana.
Dakle, u svakom slučaju, vidjet ćete dodatne informacije tamo.
>> I korisni aspekt to je da vas
mogao napisati vlastiti softver koji nekako integrira podatke kao što je ovaj
u vlastitoj aplikaciji.
Možete osnažiti korisnicima na prijavite se na svoj web stranici,
Ne koristeći svoje korisničko ime i prilagođenu Lozinka ali možda njihov Facebook login
i dobiti informacije, čak i o svojim prijateljima,
ako oni odobre takav, ili slično.
Dakle, imajte na umu da je CS50, također, ima neke od svojih API-ja,
jedan za podatke kataloga, naravno, neki za zagrljaje izbornika u blagovaonici
dvorane, svi građevine i mjesta
na kampusu imamo API za te koje možete upita slično i dobiti
natrag tekstualni podaci koje možete integrirati u PHP ili Javascript, ili čak,
iako rjeđe, C temelji završnog rada.
>> Doista naprijed za konačni Projekt nekoliko prekretnice.
Imaš e-mail od nas neki dan.
Shvatite da je prijedlog je zbog toga dolazi u ponedjeljak.
To nije nužno i obvezujuće, ali trebate primati nastavnih bližnjima
odobrenje prije nego što sve nakon toga mijenja.
A onda su ispred niz drugih događaja.
>> Tako da vas zafrkavati, također, s nekim mogućnostima,
imamo hrpu ove nijanse žarulje.
A neki od vas sada imaju neke od njih u svom domu sobi kao dobro.
I oni imaju API.
Dakle sjetim tih binarnih žarulje tjedna Prije da je Dan Bradley i Ansel
Duff je stvorio za nas.
Oni su koristili softver sučelje ovo žarulja, koje u ovom trenutku
priključen u električnu energiju a zatim putem bežične
povezan na malo stvar zove most ovdje,
kao malo usmjerivač vlasnički na ovom uređaju.
>> No, ispostavlja se, ako znam kako slanje HTTP poruke, kao što svi sada učiniti,
Mogu poslati poruku kao što je to ovo žarulja da ga uključivanje ili isključivanje
ili učiniti bilo koji broj ostali poslovi na njemu.
Uočite da to nije mogao, to ne postavljati.
Tu je još jednom pozvao staviti.
Tu je zapravo još nekoliko takvih glagola.
Ali primijetite postoji put tamo, slash API, slash novi developer,
slash svjetlo, slash jedan, slash stanje.
>> To je očito samo Put koji tvrtka Philips,
odlučio morate pogoditi s HTTP zahtjev
ako želite promijeniti stanje od žarulja pomoću HTTP 1.1.
Zatim primijetiti praznu crtu.
I onda na kraju ono što izgleda kao vrsta niz neke vrste,
to opet će se zvati JavaScript Objekt oznake, ili Jason.
A ono što vidite ovdje je da postoje tri ključna para vrijednosti.
>> Jedan ključ je pozvao.
I njegova vrijednost očito će biti istina.
Svjetlina je 128, što je neka vrsta int.
A onda prijelaz vrijeme nula, što je očito
koliko dugo će poduzeti kako biste ovu stvar dalje.
>> Tako sada ovaj žarulja isključena.
Ali ako činim upravo this-- neka da odem na malo varati list
da je Dan postaviti u advance-- i ja ću
ići naprijed i kopirati sljedeću naredbu.
Curl, kao što neki od vas možda sakupljen na CS50
Raspravite je alat kao što je Telnet takvog da može simulirati HTTP zahtjeva,
posebno stavlja.
Ja mogu poslati te podatke, posebno što smo upravo
vidjela trenutak prije specifično na ovom URL više ovdje.
A onda Curl će nositi sve potrebne zaglavlja
raščlanjivanja i tamo je.
>> Dakle, sve što morate učiniti je kopirati ovo u terminala prozor, a zatim pritisnite Enter.
A žarulja ide dalje.
I to sve ide preko moje računalo bežično
nekako do mosta, koji je je tada u razgovoru s ovom žarulja.
Ja mogu učiniti nešto drugo.
Ja mogu napraviti ovu stvar pocrveni na primjer.
Mogu primjerice napraviti ova stvar ići zelena.
Ja mogu učiniti ići plava.
>> A primjetiti u svakoj od tih instance, sve da sam mijenja
je tzv nijansa vrijednost zapravo da je to malo boje.
Pa neka mi zalijepite ovaj kao dobro.
Sada je plava.
>> A vi možete učiniti čak i ljubitelj stvari where-- idemo u zeleno.
A ja mogu to učiniti od Naravno, s mojim vlastitim kodom.
Ali čak i sama API podržava funky operacije
kao što je ovaj, što će se sada zamarati nas za sljedećih 30 sekundi.
>> Dakle, to je jedan djelić onoga što bi moglo učiniti s API, ovo uključuje
žarulje.
Imajte na umu da CS50 ima par para Google Glass ako želite
Željeli bi se borila nešto zajedno one linije, Arduino UNOS, koji
su maleni malo računalima, uglavnom, na maloj pločici
da se možete povezati žice i druge stvari
da se i zapravo kontrola Vaš stvarni svijet okoliš.
A onda tu su par od nove igračke koje imamo.
Ovo je jedna doslovno samo stigao Neki dan putem pošte, Myo vrpcu.
A ja mislio da je način dobili ste uzbuđeni o projektima
da biste mogli koristiti s takav hardver bi
se igrati ovaj kratki isječak da oni koriste zafrkavati ljude
da sada živimo u budućnosti.
>> [Glazbom]
>> DAVID Malan: Tako je u samo nekoliko tjedana, što također može biti da je super na CS50 sajmu.
Još jedan uređaj koji smo ima hrpa koji smo
rado posuditi za projekte naziva kontroler pokreta.
To je malo USB uređaj povežete na računalo koje
omogućuje interakciju s vaš laptop, Mac ili računalo,
kao da ste imali kao Xbox Kinect i zapravo čine fizičke pokrete mnogo
kao što vidimo u tome vizija budućnosti.
>> [Glazbom]
>> DAVID Malan: Dakle, čak i ako imate nemam pojma kako nešto slično
eventualno mogao biti izmišljen ili rad na razini hardvera, bez obzira.
Čak i nakon samo nekoliko mjeseci CS50, i razumijevanje programiranja
općenitije, i web programiranja više Nedavno, a potom i API-ja, i HTTP,
ćete imati pristup putem softvera API-ji, ako vas
želim posuditi jedan od njih Uređaji zapravo razgovarati s njim
i ne morate brinuti o Provedba temeljne
pojedinosti, što je potpuno u skladu s ovim pojmom raslojavanje
apstrakcija koje smo vidjela tijekom semestra.
>> Tako je također tijekom vikenda, Vidio par komada vijesti.
Idi prvi, ići na seminare, ako vas želite saznati nešto
više na bilo koji broj tema.
Pogledajte URL tamo.
I ovaj je bio poslan ja Chang, koji znate,
tko ispisuje našu vojsku slonova.
I to je bio naslov na sljedeći način.
Ja sam prestrašena moj novi TV.
Zašto se bojim okrenuti ovo stvar na i vama bi bilo previše.
Tako smo sada na točka u semestru,
također, u kojoj čak i ako imate najmanji razumijevanja
o tome kako web radi, i HTTP, i sigurnosti, stvari kao što je ovaj
trebao početi uhvatiti vaše oči.
Ali isto tako, da ćete shvatiti da li su te stvari ili ne
stvarne prijetnje.
>> Zato sam uzeo nekoliko izvadaka iz ovog članka ovdje.
A priča je sljedeća.
Ja sam sada vlasnik Novi pametni TV, koji je
obećava streaming multimedijalnih sadržaja, igara, aplikacija,
društveni mediji i internet pregledavanja, oh i TV previše.
Jedini problem je u tome što sam sada bojao da ga koristiti, kaže autor.
Ti bi se, također, ako ste pročitali kroz 46 stranica pravila o privatnosti vašem televizoru.
Količina podataka ovog prikuplja stvar je zapanjujući.
To logove gdje, kada, kako i koliko dugo ćete koristiti TV.
Ona postavlja praćenje kolačiće, kao što smo razgovarali,
i farovi osmišljen otkriti kada imate
pregledan posebno sadržaja ili Posebno e-mail poruka
Ako želite provjeriti e-pošte na vašem televizoru.
On bilježi aplikacije koje koristiti, web stranice koje posjećujete,
i kako komunicirati sa sadržajem, radiš sve to preko svog pametnog televizora.
Također, creepier yet-- to je moj addition--
je izgrađen u kameru prepoznavanje lica.
>> Cilj je pružiti gesta upravljač za TV
i omogućiti vam da se prijavite na personalizirane račun pomoću svoje lice.
Na naglavce, slike su Spremaju se na TV-u, umjesto ustupio
za korporativne poslužitelju.
S druge strane, internet Priključak čini cijelu TV
osjetljiva na hakere koji su pokazali sposobnost
preuzeti potpunu kontrolu nad strojem.
>> Više zabrinjava, kao da to nije bilo dovoljno pametan, je mikrofon.
TV ima glas Prepoznavanje značajka
koji omogućuje gledateljima da kontrolu Zaslon s glasovnim naredbama.
No usluga dolazi s a zloslutna upozorenja.
Imajte na umu da, ako Vaši izgovorena riječ su
osobne ili druge osjetljive Informacije, da informacije
će biti među podacima zarobljenih i prenosi na treću osobu.
Imaš to?
Nemojte reći osobne ili osjetljive stvari ispred TV-a.
>> Dakle, ovo je zapravo za real.
I teško je ne vidjeti ako vas ići na Best Buy ili slično za televizore
ovih dana.
Oni su svi pametni na neki način.
I oni su uzimajući pametniji i jezivije.
I oni su jednostavno prikupljanje podataka na način da smo razgovarali o tome
a zatim ga upload preko HTTP ili neki drugi protokol na neki poslužitelj.
>> Tako je to bilo od zabavan članak U ovoj online web stranice
Ovdje, koji je govorio o Posebno bug ili pogriješili kod
koje zapravo možemo povezati u prošlotjednom raspravu.
Dakle, ovaj naslov je bio slijedi, priča ide ovdje,
Josh Breckman radio Tvrtka koja je sletio ugovor
razviti upravljanje sadržajem Sustav ili CMS nakon što se zove,
za prilično velike vladine web stranice.
Velik dio projekta uključeni razvoj sustava za upravljanje sadržajem
tako da zaposlenici bi se mogućnosti za izgradnju i održavanje
sve mijenja sadržaja za njihovim stranicama.
Stvari otišao prilično dobro nekoliko dana nakon ide uživo.
No, u šest dana, stvari nisu otišli tako dobro.
Sve sadržaja na Web stranica je u potpunosti nestao.
A sve stranice dovelo do zadane, unesite sadržaj web stranice.
Ups.
Josh je bio pozvan u istražiti i primijetio
da je jedan posebno uznemiruje Vanjska IP adresa je imao
otišao i brišu sve sadržaja na sustavu.
>> IP adresa ne pripada na neki inozemstvo hakerske savijena
na uništavanje pomoći Informacije vlada.
To odlučio googlebot.com, Googleov vrlo vlastiti web puzeći pauk.
Ups.
Nakon malo istraživanja i remećenje okolo pronaći noncorrupt backup,
Josh pronašao problem.
>> Korisnik je kopirao i zalijepiti neki sadržaj iz jednog
Stranica na drugo, uključujući Uredi Hyperlink
urediti sadržaj na stranici.
Obično to ne bi bilo Pitanje budući vanjskog korisnika bi
potrebno unijeti ime i lozinku, ali CMS sustav autentifikacije,
sustav za prijavu, ne uzeti u obzir
sofisticiran sjeckanje tehnike Google Spider.
Ups.
>> Kao što se ispostavilo, Google Pauk ne koristi
kolačići, što znači da može jednostavno zaobići ček za
prijavljen na skupu kolačića biti lažno.
Također ne obratite pozornost na JavaScript, koja bi normalno
brz i preusmjeriti korisnike koji nisu prijavljeni.
To međutim ne slijedi svaki link na svakoj stranici se nalazi,
uključujući i one s Brisanje stranice u naslovu.
Ups.
>> Dakle, što to znači u više tehnički, ali prilično dostupne pojmovi?
To samo znači da je tijekom svoje web stranice,
imali su URL-a ne za razliku ovog koji možete vidjeti u Problem postaviti sedam.
Podsjetimo u problemu postaviti sedam ili znate u problemu postaviti sedam
da ste izazvali, između ostalog,
prodati dionice na ime korisnika.
No provedbi tu značajku način od dobiti putem linkova u vašem korisnika
sučelje, vjerojatno Ne najpametniji ideja
jer ako vaš site je nekako dostupni bilo čovjeka
tko klika oko ili kupiti bot poput Google-a, ili pauka
nakon što se zove to je samo indeksiranja weba pokušava indeksa
Web kao tražilicu, su mogli vrlo lako
hit putem dobili ovakvu URL.
I to je funkcionalno ekvivalent, u ovom slučaju,
prodaju svih dionica Googlea.
>> Sad iskreno, to je potpuno glup da CMS
korišteni JavaScript i kolačići implementirati svoj sustav za prijavu
a ne radi tu stranu poslužitelja, kao što je vi učiniti i da će se u PSet 7--
postoji login.php file-- uvijek, uvijek,
Uvijek sigurnost bi trebao biti učinjeno na strani poslužitelja,
nije na strani klijenta, jer, kao što je to članak sugerira i možda sami
vidim u nekom trenutku, to je trivijalno za korisnika, dobro ili loše,
samo isključite JavaScript da ne spominjem kolačiće.
Tako da je vaš dnevni WTF.
>> Postoji još jedan, koji je samo vrsta zastrašujuće,
pa ću ga spomenuti, ako samo kao lekciju života.
Svaki put kada koristite aplikaciju zove se kao Snapchat ili slično
koji kaže ove fotografije trajati samo pet sekundi, deset sekundi ili sitnica.
Oni su prolazna To je apsolutno nije slučaj.
Kao da ne postoji način, digitalno, provesti neki oblik videa,
ili slike ili tekstualni dijeljenje kao da je primatelj na drugom kraju
Ne mogu nekako spasiti podatke.
>> U većini naivan način, netko mogao uzeti svoj telefon.
I oni imaju drugi prozor 10 dok gleda u nekom trenu
samo uzeti neki drugi mobitel i fotografirati ga, očito.
Na taj način možete sačuvati nešto digitalno na taj način.
Neki od vas zna kako se screenshot na vašem telefonu.
U stvari, ako ne znaš, shvatite da barem Snapchat,
i mislim da drugi Prijave ovih dana,
barem ako vam kažem primatelj ima zapravo
uzeti screenshot vaše slike.
>> No, još gore, to je bio snappening, kao što je netko skovao je nedavno,
gdje su neki 100.000 sjedne bio pušten
u ono što se zove torrent datoteka na raznim web stranicama u konačnici.
I to je sadržavala hrpu privatnih poruka i postova.
Ispada većina njih benigno, tako da nije ono što bi mogli očekivati.
No, budući da su ljudi imali koristiti treće strane web stranice,
prijave sa svojim Snapchat korisničko ime i lozinku, a zatim
Ušteda sve svoje snaps na ovoj web stranici treće strane.
I to je to treća strana website koji je sjeckan,
koja je upravo značilo je netko shvatio kako dobiti sve 100.000 plus tih slika
u svom tvrdom disku za daljnje dijeljenje.
Iskreno, ovdje, to je vrsta od glup da Snapchat
se provodi na takav način da se treća strana može sortirati od križanju
podatke i da nije vezan za svoj vlastita aplikacija trčanje na telefon.
Ali ovdje, također, shvatiti da to stvari koje ne bi trebali uhvatiti po iznenađenje,
ili barem tamo trebao biti života lekciju ovdje.
Ako želite tehničku Pojedinosti potražite na tom URL-ima
to je u današnjem slajdovima.
U redu, bilo kakva pitanja o današnja lekcija života u CS?
Turn off to.
Bilo što?
Imam puno ljudi provjeru njihova Snapchat ili nešto sada.
>> U redu, SQL, Structured Query Language.
Idemo završiti ovo.
I također, iako mi smo samo grebanje
Površina ovog jezik, mi ćemo vam dati
dosta jezika u obliku PSet 7
tako da možete uhvatiti u koštac neke prilično česta funkcionalnost.
No, shvatili su par stvari koje ne zahtijevaju od vas,
ali oni će biti važno doći završne projekte
a sigurno dolaze izradu stvarna web stranice sa stvarnim korisnicima
je ovaj dizajn odluka.
>> Ispada da je u MySQL baza podataka, te
imaju grozdove izbora kao vrste podataka za svoje stupce
i druge stvari, ali ćete također imati Izbor tzv skladištenja
motor za sve vaše podatke, vrsta datotečnog sustava,
ako ste upoznati, za sve vaše podatke.
Koji format je to u konačnici pohranjena u?
A najčešći, možda, bio MyISAM i InnoDB, tehnički uvjeti
da ćemo stalo samo do te mjere da se mora
a jedan nema Sljedeća značajka.
>> Pretpostavimo da imate Malo spavaonica hladnjak.
I pretpostavljam da vi i vaš cimer, koji dijele ovaj hladnjak,
stvarno vole recimo mlijeka.
A to je, u stvari, koliko je Priča je rekao da mi je put natrag
u dan kad sam uzeo tečaj zove CS 161 Operacijski sustavi, koji
Slično istražuje ovu temu.
Dakle imaš taj hladnjak.
Ti si iz mlijeka.
I dođete kući, tvoja cimerica je još uvijek u razredu ili bilo što drugo,
a vi odlučite da ću izaći i dobiti malo mlijeka.
Tako da zatvorite frižider, zatvor spavaonica soba, ide preko ulice
na CVS ili gdje god, i dobiti u redu kupiti mlijeko.
>> U međuvremenu, vaš cimer dođe kući iz razreda, dobiva u sobi u studentskom domu,
otvara hladnjak, također shvaća ooph, mi smo iz mlijeka.
Dakle, on ili ona zatvara hladnjak i onda se događa
ići na drugu CVS, koji se dogoditi da bude
jedan blok daleko od drugih CVS na trgu, i dobiva u redu
tamo dobiti malo mlijeka.
Sada, naravno, nekoliko minuta kasnije, obojica vratiti,
a najgore od svega je moguće ishodi se dogodilo.
Obje od vas ima mlijeka.
A ti stvarno ne kao mlijeko toliko.
Dakle, jedan od njih je samo ide kiselo u nekom trenutku.
Tako sada imate pretjeranu količinu mlijeka u hladnjaku sve zbog čega?
>> [Nečujan]
DAVID Malan: Da, nisi nekako komuniciraju jedni s drugima
koje su sve mlijeko.
Tako je u najjednostavnijim putovi u ljudskom svijetu,
kako možda bi to izbjegli glup Scenarij iz događa, kao
da ste samo završiti s jednim.
Tekst ih, da dobro.
No, kako drukčije?
Post-it papiriće.
DAVID Malan: post-it note.
Bilo koji oblik komunikacije koji govori svoj cimera
ne ide u frižider za mlijeko.
Ja ću ići obnoviti zalihu na svoje.
Dakle, nekako je potrebno zaključati taj resurs.
Dakle, možemo napraviti this-- možemo vrsta upropastiti priču i pretvaraju se u priču CS
pri čemu mislim da to što je baš kao i varijabla, koja je pohranjivanje neku vrijednost.
I upravo sada, Vrijednost mlijeka je nula,
koje ne želite da vaše cimer pregledati tu varijablu
a onda donijeti odluku njega ili sebe na temelju stanja te varijable
Ako ste u procesu mijenja stanje te varijable.
>> Dakle, jedan od linije SQL koje smo dati u PSet 7 specifikaciji
je ovaj ovdje.
I ne trošimo ogromne Iznos od vrijeme govori o tome.
Ali ispada, ako pokušavate kupiti neke dionice u CS50 financija
koje već imate neke dionice, vama
želite biti u mogućnosti to učiniti niz stvari odmah zajedno.
Želite li biti u mogućnosti učinkovito, na visokoj razini,
provjeriti sve u redu, ako želim kupiti više dionica besplatno,
penny stock smo govoriti o u spec,
Želim prvo provjeri koliko dionica imam.
I pretpostavljam da je pet.
I pretpostavimo želim kupi 10 više, sam u konačnici
Želite imati 15 dionica dionica.
Dakle, moram postaviti dva pitanja.
Što je stanje varijable?
Što je stanje u redu?
Koliko dionica ja trenutno imaju?
Onda želite ići naprijed i ažurirati.
Dakle, to je analog mlijeko u koje ste provjeriti red,
a zatim želite ga ažurirati jer ako želite kupiti 10 dionica,
ne želite mijenjati red do 10, što
želite promijeniti 5 10 plus ili, naravno, 15.
>> Ova linija koda osigurava da te dvije konceptualne ideje
dogoditi zajedno ili uopće ne.
Nitko, uključujući i neki drugi korisnika tko je prijavljen na istoj internetskoj stranici,
može se nekako prekinuti provjera redu
i ažuriranje reda, odabir i ažuriranje ako hoćete.
I sintaksa je ne super očito, ali ovaj jedan redak, davno je to,
osigurava da se te dvije operacije provjerite varijablu ili provjeriti red
i ažurirati red dogoditi atomically.
>> Oh, ovdje mi ići opet.
Tekst poruke na moj telefon.
Tako ćemo napraviti ovaj malo konkretniji.
Pretpostavimo da niste provedbi hladnjak,
a niste provedbi PSet 7, ali stvarna banka,
ili bankomat, automatizirani Teller Stroj, pri čemu ti nekako
želite biti u mogućnosti osnažiti korisnicima za prijenos novca
s jednog računa na drugi.
U redu, objesiti na.
Idem za isključenje ovo sada, hvala.
Dakle, želimo premjestiti novac iz jednog broja računa
u drugi račun broj, posebno 100 dolara.
Dakle, to je vrsta proizvoljna Primjerice, pri čemu si, bankomat,
možda želite izvršiti dva SQL upiti, oduzmite od jednog računa,
i dodati na drugi račun.
No, želite kako bi se osiguralo da su ti dvije linije i dogoditi, ili uopće ne.
Vi ne želite nešto uzimajući prekinut.
Vi ne neke pametne negativac nekako stoji na Bank of America
s dva bankomata ispred od njega i nekako
vrsta upisivati ​​u naredbe istovremeno,
nadamo se pokušava oduzeti 200 dolara, umjesto od $ 100 i imaju samo 100 dolara zaslužan.
Ukratko, vi to želite ponašaju točno onako kako ste očekivali.
>> A način na koji radite to SQL baza podataka
što ga zamotajte u ono što je nazvao transakcije.
Doslovno u SQL, možete nazvati CS50-a Funkcija upita sa citatom citat početak
transakcije.
Tada možete izvršiti bilo koji broj naknadnih SQL upita,
ali nitko od njih uzeti utjecati na bazi podataka
dok vi zovete upita citat citat počiniti, ako se ponovno koristiti PHP.
I na ovaj način, možete osigurati da čak i ako imate 1.000 korisnika sve
udarajući baze podataka istovremeno, SQL
će obećati da je to Dva upiti će biti
provode jedan neposredno nakon drugog.
Tako da ne završiti s viškom mlijeko ili pogrešna količina, u konačnici,
novca.
>> Dakle, imajte to na umu, Ne toliko za PSet 7
ali za konačne projekte Ako ste zapravo
pokušavate premjestiti podatke oko po stolovima kao možda ovdje.
No, možda čak i jednostavniji i Očito razumjeti s primjerom
je ovaj ovdje.
A nas netko e-poštom o to samo drugi dan
kad je vidio nešto slično na internetu.
>> Dakle, prema mojim saznanjima, pin sustava nije ranjiv na takav napad.
A ja nemam pojma je li to čak i namjene SQL baza podataka ispod haube.
Ali neka ga koristiti za radi rasprave.
Evo zaslon koji Harvardski ljudi imaju tendenciju
vidjeti kada se prijavite sa svojim Harvard ID broj i PIN-a.
I pretpostavimo da je pin sustav su provodi u PHP i MySQL s
baze podataka, koda da je netko Prije možda pisane godina
može izgledati ovako.
Prvo, proglasiti varijabla zove korisničko ime.
I samo se to od POST superglobal.
Zatim dobiti još jednu varijablu zove lozinkom i učiniti isto.
I onda samo izvršiti ovo dugo upit ovdje,
odaberite zvijezda od korisnika gdje korisničko ime jednako kao i takva
i lozinku jednako takav i takav.
>> Obavijest da je kovrčava aparatić sam ovdje koristi
Samo znači da PHP, idite naprijed i zamjena
vrijednost tih dvoje varijable tamo.
Oni nisu strogo potrebno, ali oni imaju tendenciju da se izbjegne suptilne pogreške u sintaksi.
Dakle, ovo izgleda potpuno točne prvi pogled.
I to je.
Ti bi mogao provesti pin sustav na ovaj način.
>> Ali pretpostavimo da je super pametan i zlonamjerni studenta
ulazna to kao njegov ili njezin pin.
Tako sam ukloniti metak Znakovi ovdje u maketa,
a ja sam zapravo otkrila ono što on ili ona može biti tipkati.
I to je malo čudno.
No, ono što skače se na vas na potencijalno zabrinjavajuće o korisnikovom ulaz,
čak i ako nemate pojma što SQL injection napad znači.
Zašto to izgleda malo sumnjivo?
Što je to?
[Nečujan]
DAVID Malan: ili je malo sumnjivo.
U stvari, to je ključna riječ iz SQL.
Dakle, to ne sluti na dobro.
Činjenica da postoji svi ti pojedinačni citati
there-- u stvari, jedan od najlakši načine kako razbiti neke baze podataka
je upisivanjem u ime poput O'Reilly da ima apostrof u njemu
jer ako ljudska koji je napisao Kod iza kulisa
ne uzeti u obzir da postoji Možda jednostruke navodnike u korisnikova
ulaz, a on ili ona koristi jednostruke navodnike u svom kodu,
loše stvari mogu dogoditi.
>> U stvari, još gore, razmislite o ovom.
Ako je to opet kod da je netko na Harvardu godina
Prije pisao za pin Sustav, primijetiti ono što je
o tome da se supstituirani za korisničko ime i lozinku
ako korisnik upiše u jednom skroob što svojim korisničkim imenom
i jedan, dva, tri, četiri, pet, citat ili citat citat jedne jednakima
citiram jednu.
A primijetiti ono što je ključno Ovdje se korisnik ne
započeo njihove lozinke ili njihov polni sa citat.
I nisu to završilo uz citat jer on ili ona
je uz pretpostavku da ako programer nije bio tako oštar,
oni će imati one jednostruke navodnike u svom kodu.
>> Dakle, ovdje je kod.
I da supstitucija Sada bi se moglo dogoditi je to.
I sam je naglasio ono što korisnik upisali u.
Dakle, prije, poslije.
A primijetiti ono što je blago zabrinjavajuća sada o desnoj polovici ove SQL koda?
To je malo složenije, doduše, od upita što smo vidjeli.
No, to nikako ne može biti dobra stvar ako ste
govoreći odaberite zvijezdu, koja je odaberite sve od korisnika stolu
gdje korisničko ime jednako skroob i lozinka jednak jedan, dva, tri, četiri,
pet ili jedan jednako jedan.
Što je logično implicira tog posljednjeg klauzule valjda?
To je samo uvijek istina.
>> I zato smo nekako pogodili ili shvatio metodom pokušaja i pogreške
da je programer koji je je napisao ovaj kod nije
predviđaju ljudsko ili lošu osobu upisivati ​​u jednostrukim navodnicima, kao i,
možemo sintaktički dovršiti SQL upit
s nešto besmislen ali nešto što
sintaktički je netočna koja uvijek true.
Dakle, ako ovaj broj se koristi za odgovor Pitanje istina ili laž treba
ovaj korisnik biti dopušteno da prođe, Odgovor je uvijek očito ide
da bi bilo istinito, jer to uvijek ide odaberite nešto iz baze podataka
jer je jedan, naravno, uvijek jednaka jedan.
>> Dakle, ono što je rješenje?
Pa u PSet 7, mi zapravo to izbjegli svi zajedno.
Mi vam dati funkciju upita, a mi potičemo vas da koristite upitnike
kao rezervirana mjesta, slično U duhu printf-a% s,
ali ono što je ključno o upitnike Ovdje je, ako ste zapravo pročitali
functions.php, gdje je naš Funkcija upita se provodi,
ti upitnici su pobjegli, pri čemu sve potencijalno opasne
kao jedan citat je uključen u jednom pobjegao citat.
>> Dakle, to je ono što je stvarno događa, ako vas
koristiti CS50 je upita funkciju ili bilo koji broj od trećih strana slobodnih knjižnica koje
učiniti isto.
Nije bitno u ovom slučaju, u zelenom, Ako korisnik upisali u jednom citat
jer upit Funkcija koju je napisao je
će dodati obrnute kose crte prije svaka takva opasna citat.
Dakle, to nije u Činjenica, će biti čitljiv.
To je kao da upišete luda potrazi Lozinka to je, naravno, ne ide
biti skroob stvarnog lozinku.
>> Tako takeaway za CS50 je jedan, Apsolutno uvijek koristiti nešto
kao CS50 upit funkcije odnosno temeljni knjižnica,
što će se dogoditi da se zove PDO.
Ali nikad, nikad, Nikad ne kod ovako
bez bijega ili ribanje kako kažu vaši inputi.
A što će se u nekom trenutku, vjerojatno naići na neke web stranice kao što je ovaj.
Zapravo, čini se da je slučaj kao u zračnim lukama i hotelima u mjestima
gdje imaju besplatni bežični pristup internetu Pristup da morate prijaviti na,
Ove web stranice su uvijek užasno provodi.
I tako neka vrsta zabave kod kuće vježbe, ne za zlonamjerne svrhe ili više
od zabave na cesti vježbe, je samo upišite
apostrof, jedan citat, u obliku na nekom web stranice
i vidjeti što se događa.
A ako poslužitelj ruši ili daje li neka vrsta poruke o pogrešci,
to može vrlo dobro biti da netko nije predvidio.
I onda biste trebali upozoriti odgovarajuće vlasti i nastavite dalje.
>> Pa sad vi trebali nadam razumjeti malo više monstrum humor ovdje.
>> [Smijeh]
DAVID Malan: Znaš da si monstrum.
Za sljedećih nekoliko godine, sjetit ćete se
koji je malo Bobby Tablice je zbog ovog crtića ovdje.
Dakle, imajte to na umu kao i mi Prekidač kontekst jedan posljednji put
danas JavaScript.
Mi smo proveli relativno malo Vrijeme na sintaksu PHP
jer to je zapravo super sličan C
I dovoljno lijepo, JavaScript previše je super sličan kasiopejske sintakse
kao što ćete vidjeti u Samo trenutak, a kao što ćemo
vidi kasnije ovog tjedna posebno.
Što možete učiniti s tom jeziku, iako je sve moćniji,
posebno s API-ja.
>> Ali prvo brzo turneju.
Tako je jedan, u JavaScriptu, postoji nije glavna funkcija, što je lijepo.
Kao i kod PHP, možete samo napisati kod.
Uvjeti izgledati ovako.
I Boolean izraza možda izgledati ovako ili ovako.
Sklopke postoje, a oni može izgledati ovako.
Četiri petlje izgledati ovako.
Dok petlje izgledati ovako.
Da li dokle izgledati ovako.
A onda polja izgledati to, vrlo slično PHP.
Ali primijetiti, da je u JavaScriptu vas proglasiti varijablu ne s dolar
potpisati, a ne s tipom podataka, ali doslovno rekavši var za varijablu prije njega.
To je previše labavo upisali time, da je vrsta,
ali nemojte ih izričito izjaviti.
A onda niz, za primjer, može izgledati
ovako, da je niz se zove a u ovom slučaju.
A onda objekt.
A to ćemo vidjeti još prije dugo.
A objekt je možda jedan od najčešće vidi struktura podataka
u JavaScriptu temelji Program jer omogućuje
li povezati proizvoljna Ključni parova vrijednost samo
kao što su PHP-a asocijativnih nizova i baš kao i svoje vlastite hash tablicu
ili pokušati što smo provoditi prije nekoliko tjedana.
Tako ćemo zapravo vidjeti što možemo učiniti s JavaScript.
I posebno, to jest Popis pranja značajki
da preglednici su da omogućuju nam da kuka JavaScript
na web stranici na sljedeći način.
JavaScript se često koristi kao strani klijenta skriptni jezik.
To nije sastavljen.
To je previše tumačiti.
No, za razliku od PHP, koji je pokrenut na poslužitelju, na web poslužitelju,
ili duboko unutar klijenti, JavaScript
razlikuje po tome što obično traje u pregledniku.
>> Dakle, bilo JavaScript kôd počnete pisati PSet za 8, odnosno konačnog projekta,
ili u stvarnom svijetu općenito ide da se spremaju na poslužitelju, apsolutno
u dot HTML ili dot JS za JavaScript datoteke.
No preglednik ide za preuzimanje da JavaScript
Kod za svoj primjerak Chrome, ili IE ili Firefox, ili što god.
I kod zapravo će dobiti izvršiti unutar vlastitog pregledniku.
Samo da bi se to više stvaran, da vidimo to u konkretnom obliku.
>> Nemamo pojma što je to kod radi bez stvarno čitanja kroz nju.
No, dopustite mi ići na Facebook.com bez prijave.
Pusti me da Pregledajte element i otići, recimo, mreže i ponovno učitati stranicu.
A mi ćemo see-- neka mi pomak ponovno učitavanje Stranica dobiti sve zahtjeve za nove.
I prvi file vidim je CSS, CSS.
Evo prvi JavaScript datoteke, a ja imam
nema pojma što to radi, ali ovdje neki od JavaScript kôd
koji vozi Facebook.
Nije ni stvarno tako otkriva za povećavanje.
To je još uvijek jednako besmisleno.
>> Ali vidjet ćete čak i dolje, postoji čak i više od ovih JavaScript datoteke.
Ups.
To je ping.
Idemo dolje malo Nadalje, dodatno, dalje.
Postoji jedan.
>> Dakle, iako je Facebook, iza scene, piše u dijelu u PHP
Facebook i vlastiti njegove verzije, postoji ogromna količina JavaScript.
Zapravo, bilo koji od razgovor radite na Facebooku,
bilo koji od inline Timeline ažuriranja da se to dogodi u stvarnom vremenu, sve to
pokreće JavaScript.
Da?
>> PUBLIKA: Nisam siguran ako je to Facebook,
ali mislio sam da je Facebook razvio sami u kući kod jezika?
DAVID Malan: Oni su učinili.
Dakle, to je razlog zašto sam reći varijance PHP zove Hip Hop da su oni zapravo
dodano značajke na takva da kada Mark Prvi provodi Facebook,
što je napisano u PHP.
I to vrsta ostao vrsta prednjeg kraja jeziku
da oni koriste mnogo njihovog kodiranja, ali to
nije bio jezik koji je vage posebno dobro se milijardama
ljudi.
I tako su dodali svoje vlastite Poboljšanja iza kulisa.
I oni koriste bilo koji broj drugim jezicima
za razne komada njihova infrastruktura.
Pa da, to je varijanca ono što mi sada znamo kao PHP.
>> Tako ćemo pogledati na nekoliko primjera
kako bismo mogli iskoristiti JavaScript ovdje.
U današnjem izvornog koda, imamo hrpa datoteka, od kojih je prvi,
neka se zove DOM nula.
Dakle DOM nula izgleda ovako.
Pusti me u ovaj imenik i otvoriti domzero.html,
vrhu koji ima doc tip Deklaracija, rekavši ovdje dolazi HTML 5.
I sad evo HTML oznaka.
Evo glava oznaka.
A evo što je novo i danas.
>> Sada imaju oznaku skriptu unutar glave stranice.
I to očito radi vrlo malo, ali obavijest
da sam definira skripta, JavaScript.
I kao stranu, jer to je česta zabluda,
JavaScript mora apsolutno ništa raditi s Javom, jezik
da su neki od vas možda naučili u APC.
Bilo je to više od marketinga stvar od svega,
jahanje coattails Java godina.
Ali JavaScript, nema nikakve veze s Java, samo slično, i dosadno,
zbunjujuće ime.
>> Dakle, ovdje je, kako se proglasiti funkciju u JavaScriptu, doslovce kažu funkciju,
onda naziv funkcije, tada bilo argumenata da bi moglo potrajati,
baš kao u PHP.
Ispada u JavaScriptu, jedan od najviše dosadnih funkcija koje postoje na oprezu.
To je mali prozor koji će se pojaviti i vas upozoriti
na neki komad informacija.
To je općenito namršti.
No, mi ćemo ga koristiti kao naš Prva vježba ovdje.
>> Obavijest nekoliko obilježja JavaScript.
Pojedinačne citati i dvostruki navodnici to zapravo nije bitno više.
Pojedinačne citati i dvostruka citati mogu se zamijeniti,
dok je u C, morate koristiti dvostruki navodnici za gudače,
i imate dva jedan citati za znakova.
U JavaScript svijetu, mnogi ljudi, većina ljudi
koristiti jednostruke navodnike oko žice Samo zato što je stilska stvar.
No, ono što je plus operatera ovdje, koje nismo vidjeli prije?
>> PUBLIKA: Concatenation.
DAVID Malan: Concatenation.
Dakle C nema ni to.
PHP ima operator točkica, što to čini.
JavaScript ima plus operatora, koji je zbunjujuće je baš kao i Java.
Sada što se ovdje događa?
>> Dakle, evo gdje osnovni razumijevanje toj slici
smo povratio par dana dolazi u igru.
Sjećaš li se kad smo imali jednostavan verzija HTML page--
to samo rekao, pozdravio svijet.
A onda smo nacrtali stablo desno, što
imao hrpu pravokutnika i linija povezujući ih poput obiteljskog stabla.
Dakle, to je tzv DOM ili Document Object Model.
I ispada da možete pristupiti pravokutnici u tom stablu s sintakse
kao što je sljedeće.
Vi doslovno kažu dokument, koji je Poseban globalna varijabla u JavaScriptu
program koji ima funkciju povezana s njom da možete pristupiti
sličan STRUCT, ali jednostavno kažu točku, a zatim funkciju ime,
dobili elementa po ID.
>> Element želim dobiti je očito citat citat ime.
A onda želim dobiti svoju vrijednost.
Sada smo sve ispred sebe.
Nisam ni siguran što sve to je oko.
Idemo brzo naprijed u HTML na stranica, što je super jednostavna.
>> Obavijest da sam definira formirati ovdje.
Obavijest sam joj dao jedinstven ID, iako nismo koristi
ovaj atribut prije.
No, to postoji u HTML.
Možete jedinstveno prepoznati neki komad HTML s identifikator kao što je ovaj.
>> Obavijest sada this-- ispada HTML podržava, po tom popisu pranja
Trenutak prije, cijeli hrpa rukovatelje događajima.
I ovaj događaj rukovatelj govori o dostavi.
Na korisničkom podnošenja ove oblik, nazovite sljedeći kod.
I kod koji se događa da se zove ili pogubljeni
je upravo to, grčki Funkcija slijedi povratak false.
Sve ostalo bi trebalo biti prilično upoznati.
>> Ovdje je ulaz tipa teksta, čiji je ID, u ovom slučaju, će biti ime.
Nemamo stvarni naziv atribut ovo time-- i tipku podnijeti.
Dakle, što je rezultiralo stranica izgleda ovako.
I što je rezultiralo ponašanja, vidjet ćete, izgleda ovako.
Stranica to lokalni domaćini, kaže, Pozdrav David jedva estetski ugodan
način pozdraviti korisnika.
Ali što se zapravo događa?
>> Pa, razmislite što je to.
Ovaj je tekst polje.
A prema HTML ovdje, što sam ga dao
jedinstveni identifikator zove citat citat ime.
U međuvremenu, ja sam rekao, kada korisnik pošalje ovaj obrazac
skom Enter, ili kliknuti Pošalji gumb, nazovite funkciju nazvanu Pozdravite
a zatim se vratiti False.
Razmotrimo one u rikverc.
Obavijest kada sam kliknite na Pošalji, URL ove stranice se ne mijenja.
Ikona preglednika nije početi vrti.
Nisam nigdje ići, a to je doslovno jer sam rekao povratak False.
Return false kratkog spoja ili zaustavlja zadani ponašanje obliku.
Tako da nas onda ostavlja ovo posljednje pitanje.
Što Pozdravite učiniti?
Pa, očito Pozdravite poziva funkciju nazvanu
Uzbuna, prolazi u jednom dugo argument da je
Rezultat nadovezivanjem zajedno hrpa podnizova, pozdravi zarezom prostor,
onda god to vraća.
Dakle, dokument je kao globalni varijabla na taj korijen tog stabla,
nazivajući posebnu funkciju, drugdje, poznat kao postupak.
Funkcija koja je unutar varijabla
zove metoda umjesto funkcija.
>> Dakle, dobili elementa po ID.
Ono što je element vi želite dobiti po ID?
Citat citat ime i zatim posebno cijeniti.
Dakle, drugim riječima, da se kod jednostavno pronalazi polje teksta čiji ID je ime
a zatim dobiva svoju vrijednost.
Dakle, ako bih da se to promijeni i reći Davin umjesto Davida,
i kliknite Pošalji, sada smo imaju pozdrav za Davin.
>> U redu, tako da sve u redu i dobro.
No, da vidimo možemo li napraviti ovo malo čišći, jer jednostavno
pisanje koda kao što je to općenito će se namršti.
To će izgledati strašnije.
No, ono što je prvi Razlika koju umu ovdje
U ovoj verziji osim ime mijenja u DOM jedan?
Što strukturno izgleda drugačije o tome u odnosu na druge?
Da?
PUBLIKA: Je obrazac na vrhu pisma sada?
DAVID Malan: Da, forma je na vrhu skripte za neki neobjašnjiv razloga.
Dakle, to je prva stvar da skače u mene, previše.
I hvala bogu barem, ovaj dio je identičan.
Dakle, jedino što se čini biti drugačiji je to.
>> Evo što je uredan o JavaScript 2.
I to ga čini teško razumjeti na prvi pogled,
pogotovo za konačnih projekata ukoliko gledaš uzorak koda na internetu,
ali to se svodi na neki osnovna sintaktička obilježja.
Ovdje ponovno je da globalna varijabla dokument.
Ovdje ponovno je da metoda ili funkcija koji kaže dobili element po ID.
Ovaj put želim dobiti ID zove demo.
Gdje je to?
To je očito u pravu Ovdje, sama forma.
>> A sada primijetiti da je očito da sam vratiti taj čvor iz drveta koje
predstavlja oblik sama, a ne riječi,
Ispada da je obrazac, koji čvor ili pravokutnika s drveta,
ima ono što ćemo nazvati nekretninu, vrlo, vrlo, vrlo sličan
U duhu na STRUCT u C. To je samo Član podataka unutar tog pravokutnika.
>> Tako sam dobio obrazac ovdje, a ja sam pridaje,
ili ću ustupanje, da njegova Na Pošaljite rukovatelj odnosno Dana Pošaljite nekretninu
Sljedeća funkcija.
A to je, daleko, najluđi što do sada sintaktički.
Ispada u JavaScriptu i PHP, i iskreno se toga tiče u C,
iako mi to ne učinite, možete dodaj bezimeni, anonimni ili AKA lambda
Funkcije koje nemaju ime ali može biti pozvan svejedno.
>> Dakle, ono što ja radim ovdje sam dodjeljivanje Na ovaj Pošaljite imovinu, koji
je unutar tog čvora mog DOM stabla, funkcija, funkcija pokazivača ako hoćete.
Ta funkcija nema ime, ali to ne
stvar, jer vidjet ćemo u trenutku kako ga zovu.
Kada je ova funkcija se zove, ovaj kod dobiva pogubljeni, a zatim
lažno se vratio baš kao i prije.
>> Ali primijetiti ono što sam učinio.
U ovom trenutku u Priča, imam oblik.
To je dobio jedinstveni ID zove demo.
Ovdje dolje, imam oznaku skriptu da izvršava sljedeći kod.
Ona pridaje taj čvor u Stablo se da je na Dostaviti
Objekt ova funkcija ovdje.
I samo po prirodi kako preglednici rade, kad sam sada kliknite Pošalji ili pritisnite tipku Enter,
da je funkcija će se zove.
To ne treba ime jer tko kritički brine ono što se zove.
Jedini put je ikada idući u dobiti nazvao je kad sam dostaviti obrazac.
Nema potrebe za mene, ljudski programer,
zapravo ga nazvati bilo gdje drugdje.
>> Sada samo kao teaser, kao da ne smeta dovoljno savijanje,
mi čak može napraviti ovo izgledaju više zagonetan pomoću
super popularna knjižnica zove jQuery.
U stvari jQuery i JavaScript često spajaju.
A što ćemo učiniti u srijedu je početak Korištenjem ove jezika i ove knjižnice
graditi sve asinkroni i dinamičke aplikacije
kao što su karte za dobivanje aplikacije, aplikacije
da ažuriranje web stranicu u realnom Vrijeme, slično kao Facebook ili Gchat
učiniti, i više ne se ograničiti na Udaranje Pošaljite strane get ili samo poštom
sama.
Dakle, ja ću vas vidjeti u srijedu.
>> [Glazbom]