>> [Muzikos grojimo]
>> DAVID Malan: Tai CS 50, ir tai devynių savaitę pradžia.
Ir tai, ką mes manome, kad mes norime padaryti šiandien nėra tik u "praėjusios savaitės skyrių
medžiaga, kurioje mes sutelktas į serverį pusė Web programavimas su PHP ir SQL,
kai duomenų bazė stuff.
Mes kalbame apie bito saugumas šiandien ir tada
perėjimas prie kliento pusėje programavimas kalba vadinama JavaScript.
Bet pirmiausia, kai išpirkimo.
>> Kaip Jūs tikriausiai žinote, kad Trečiadienis, išdėsčiau
rašyti svetainėje, kad paėmė į vartotojo įvestį
by HTML formą, kad tada saugomi kad naudotojo įvesties pavadinimai, telefono
numeriai, o telefonams vežėjai į duomenų bazę.
Ir tada aš turėjau mažai komandą linija scenarijus parašytas PHP
kuris turėjo pakartoti per duomenų bazėje eilučių
ir siųsti tekstinius pranešimus.
Nepaisant kelių, kelių bandymų, mes negavau, kad darbo iki galo.
>> Taigi, aš praleido visą šią savaitę dirbame tą kodą gauti mūsų praeities taško
kur mes baigėte, pagal kurią visi Gavau iš trečiadienio pabaigoje
buvo šio teksto žinutė iš Margo kaip aš sunkiai,
po tekstinio prane¹imo forma i¹ kito klasiokas, Jūs turite šį Dovydą.
Po šio vieno, nuostabiai džiuginantys.
Nuolat plečiasi, labai Džiugu.
Aš beveik gavo jį, kol then-- ir tai dėmesį, mes baigėsi trečiadienis.
Ir tada iš tikrųjų galbūt mano mėgstamiausia, dar po kurio laiko, tai atėjo.
Damn gyvų srautas.
>> Taigi, šiandien mes išspręsti šią problemą su greitai pažvelgti, kas aš padariau, nes.
Taigi visą šį kodą yra internetu iš praėjusios savaitės, savaitei aštuoni,
kodo.
Ir jūs pamatysite, kad aš per, ir aš iš tikrųjų tvarkė dalykus tiek.
Aš pristatė pora kita bruožai SQL duomenų bazėje.
Pavyzdžiui, o ne tiesiog padaryti vežėjas var char
kaip aš manau, praeitą savaitę padarė skristi.
Aš vietoj apibrėžė kaip tai, kas vadinama pervedimą.
>> Ir kai kurie iš jūsų galėjo pastebėti tai kaip mes ištirti C. Enum yra iš tikrųjų
C funkcija, kur Jūs galite išvardyti visa krūva konstantų
ir priskirti juos automatiniai vertės, kaip vienas, du, trys, keturi
be kietų kodų.
Taigi SQL palaiko tas pats, pagal kurį, jei turite duomenų bazės lauką, kad jūs tik
nori imtis vieno iš baigtinės vertės, galite tiesiog nurodyti jį
kaip aš dariau ten keturių lankytinos JAV telefoną vežėjai.
>> Taigi, aš padariau, kad.
Ir aš padariau keletą pakeitimų, kaip skaičių gerai, iš kurių svarbiausias
buvo gauti laišką dirbti, nes pamenu, kad ši programa rėmėsi kuris
paprastai vadinamas į laišką SMS Gateway, kuris yra tiesiog
išgalvotas būdas pasakyti, kad "Verizon", ir AT & T, o kitų žmonių paremti serverį,
pagal kurią, jei ji gauna laišką, jis konvertuojamas į SMS
ir siunčia tekstą žinutė kažkieno telefono.
Taigi, jei aš tai padariau teisingai, Čia yra naujas ir patobulintas forma
kad ketina pasikalbėti su Naujas ir patobulintas kodas, kuris
Jūs galite žaisti su internetu.
Ir tai, tikimės, bus priimti mano telefonas nepypsi vos akimirką.
>> Taigi, pirmiausia, aš ruošiuosi rašyti mano vardu.
Antra, aš nesiruošia tai šį kartą padaryti.
Aš ruošiuosi daryti Tikrinti elementą.
Ir tai tik smulkmena, kad aš ne
sukurti valandų po gamybos dirbti, kaip aš paskutinį kartą.
Šiuo metu yra mano telefono numeris.
>> Pasirinksiu Verizon.
Ir čia galime įjungti šį mikrofoną čia ir siekia tai ne mano telefonas čia.
Aš ruošiuosi spustelėkite registras, kuris turėtų tikiuosi
įdėti ją į duomenų bazę.
Dabar aš ruošiuosi eiti į Komandų eilutės programa, kurią
priminti vadinosi dot velniop tekstas ir laikykite kumščius.
Here we go.
>> [PHONE DINGS]
>> [Plojimai]
DAVID Malan: Taigi smagiau nei this-- tai smagu, žinoma, jei aš į jį patekti.
Bet tai smagiau, aš maniau, jei mes sukūrė vieną iš tų filmų akimirkas
kur kažkas tikrai blogai nutiko pasaulyje,
ir kaip ir visi NSI liaudis mobiliųjų telefonų pradėti pypsėti
su teksto pranešimus atkreipdami į šį faktą.
Taigi aš maniau, mes bandytume atkurti čia tas pats,
kai ne naudojant duomenų bazės, Aš vietoj iš anksto
parašė programą, kuri atrodo kaip šis.
>> Tai index.php-- ir aš įdėti šį kodą internete
kaip well-- kad matyt tiesiog teikia form.php,
naudojant MVC stiliaus paradigmą, kad mes kalbėti apie išsamiau problemą,
septyni.
Ši anketa yra gana paprasta.
Jis ketina pateikti failas, vadinamas here.php siuntimas paštu.
Ir tai, matyt, ketina prašyti Vardo ir telefono numerio,
ir tada per vadinamasis Pasirinkite meniu, tai
norėčiau duoti jums ne mažiau kaip keturis lankytinos JAV telefoną vežėjai,
ir tada leidžia efektyviai imtis lankomumą paspaudę čia.
>> Ir čia, tuo tarpu, ketina skolintis kai kodo iš paskutiniu laiku.
Ir jei jūs tiesiog nugriebti tai, pamatysite, kad ten
visa krūva klaidų tikrinimas.
Bet pabaigoje grožis yra tai, kad mes ne rašyti į duomenų bazę šiandien.
Mes laikome, kad paprastas ir tiesiog siunčiant tikiuosi
tekstinė žinutė per funkcija I rašė per pastaruosius keletą dienų skambučio
Tekstas, kuris yra funkcijų. php, kuris vėl galima rasti internete.
>> Taigi, jei norite įsitraukti į tai.
Mes neketiname būti saugojimui nieko.
Eiti į URL čia realiu laiku.
Nerašykite nėra, bet galime pamatyti, jei mes galime turėti vieną iš šių filmų
akimirkos, kur kiekvienas savo telefoną pradeda pypsėti, tikiuosi tik
kartą šiemet, skirtingai nei 2011 kur tai atėjo siaubingai kreivai.
Ir, kai jūs einate į tą adresą, Jūs turėtumėte pamatyti super paprastą formą
kad jei turite vardą, mobilųjį telefoną skaičius, ir telefoną vežėjas, kad
atitinka sąrašą ten eiti į priekį ir užpildyti formą.
Bet ne hit pateikti tik dar.
>> Forma ketina atrodyti taip.
Eiti į priekį ir įveskite jūsų vardas, telefono numeris.
Oop, kažkas vyksta prieš kreivė.
Viskas OK.
Gerai, visi manimi užpildė formą.
Tai turėtų dirbti telefonas, taip pat, jei norite.
Gerai, jūsų ženklais, gauti nustatytas eikite.
Rezultatas čia.
Ką?
Ne.
Prisiekiu Dievu, aš išbandyti tai kelis kartus šiandien.
Jūs turite jį?
>> [Tarpines BALSAS]
>> DAVID Malan: Gerai, vartotojo klaida gal.
Štai du.
Jis dirbo dvi iš keli šimtai, trys, keturi.
Gerai, kad tai gerai.
Keturi iš penkių už korektiškumo kaip apie.
>> Taigi, kas atsitiko?
Taigi, matyt, nematydami savo ekranai, kodėl jis galėtų būti rodyti klaidingai?
Tai tikriausiai, kad mes buvome tik bando padaryti per daug jungčių
į Harvardo pašto serverio visi tuo kartą iš to paties IP adreso.
Aš tik spėlioti, nes aš ne turėti testavimo prabanga
šis kodas su kai 300 žmonių iš anksto
bet dabar suprantu, kad kad bent turėtų
Dotarłeś darbą šiuo metu.
>> Gerai, tai kodėl visa tai daugiau Priklauso kas vyksta?
Na, pirma, greitai pora temų.
Taigi vienas, jei norite prisijungti prie Chang, ir Nikas, o kiti per pietus tai penktadienis,
padaryti RSVP įprastu URL ten.
Jei galvojate apie sutelkiant arba daro CS antrinė,
ar esate antrakursis arba pirmakursis, ar net jaunesnysis ar vyresnysis šiuo
ir dar gali išspausti kursuose, suprasti, kad inžinerinės mokyklos
yra surinkti nemokamai Ben ir Džeris ledai ir patarimai
Šį trečiadienį netrukus po klasę 4:00 PM CS pastato
ne Maxwell Dworkin.
Jei tai per greitai Ekrane, eikite
į cs50.harvard.edu už nuoroda į "Facebook" renginį
kur galima pamatyti daugiau informacijos.
>> Tuo tarpu, aš maniau aš norėčiau ištaisyti Vienas kitas dalykas, aš goofed trečiadienį.
Pasirodo, kad Marko ID Facebook nebuvo trys.
Tai buvo keturi.
Pasirodo jis turėjo daugiau testą sąskaitos už prisimenu.
Bet ką tai jaučiau galimybę padaryti, tai atsigriebti panašaus URL.
>> Taigi paaiškėja, kad "Facebook" turi API, Application Programming Interface,
kuri yra mechanizmas, pagal kurį jus gali prašyti duomenų programiškai
Facebook ir grįžti mašina įskaitoma informacija, o ne interneto puslapiai
bet tiesiog žalias tekstas, kažkas vadinamas JavaScript Object Notation.
Ir iš tiesų, jei grįžtu tai URL, ir padidinti, pagal nutylėjimą,
Marko tai viešai prieinama informacija.
>> Ir įdomi detalė čia yra tik tai, kad jo ID
Iš tiesų, skaičius keturi, kurį aš supratau, kai aš tai padariau.
Jūs galite tai padaryti patys, jei žinote "Facebook" vartotojo vardas, jei turite vieną.
Tiesiog įveskite jį viršuje.
Ir visa tai yra privatus.
Aš tiesiog daro tai net į inkognito režimu.
Taigi aš net prisijungęs.
Ir jūs matote, kad aš matyt buvo vartotojo numeris 6454
Facebook, kuris nėra labai blogai šių dienų.
Taigi šiaip ar taip, jūs taip pat pamatysite Papildoma informacija ten.
>> Ir naudinga aspektas to, kad jūs
gali parašyti savo programinę įrangą, kuri kažkaip integruoja duomenis, kaip šis
į savo paraišką.
Galite įgalinti vartotojus prisijungti prie savo interneto svetainėje,
nenaudoja savo pasirinktinį vartotojo vardą ir slaptažodis bet gal jų Prisijunk
ir gauti informaciją, net apie savo draugus,
jei jie patvirtinti tokie, ar panašūs.
Taigi dėmesį, kad CS50 irgi turi kai kurių savo API,
vienas už kursų katalogu duomenimis, kai už Apkabinimai meniu Valgykla
salės, visi iš pastatai ir jų vietos
kampusie turime API, taip pat kad galite užklausa panašiai ir gauti
atgal tekstinę duomenys, kuriuos galima integruoti į PHP arba JavaScript arba net,
nors rečiau C pagrįstas galutinį projektą.
>> Iš tiesų į priekį į finalą Projektas yra keletas laimėjimų.
Jūs turite mūsų elektroninio laiško antrą dieną.
Suprantu, kad pasiūlymo yra dėl ateinančiais pirmadienis.
Tai nebūtinai privalomas, bet jūs tikrai reikia gauti savo mokymo bičiulius
apžiūra iki priėmimo bet paskui pokyčiai.
Ir tada į priekį yra skaičius kitų etapų.
>> Taigi erzinti jus, taip pat, su kai kuriais galimybes,
mes turime krūva šie atspalvis lemputes.
Ir kai kurie iš jūsų vaikinai dabar turi kai kurios iš jų savo bendrabučio kambarį, taip pat.
Ir jie taip pat turi API.
Taigi prisiminti tuos dvejetainius lempos savaites prieš tai Dan Bradley ir Anselį
Duff sukurtas mūsų.
Jie naudojami programinės įrangos sąsaja šis šviesos lemputė, kuri šiuo metu
yra prijungtas prie elektros energijos ir tada per Wireless
yra prijungtas prie mažai ką vadinamas tiltas žemyn čia,
kaip mažas frezavimo patentuotų su šia konkrečia prietaiso.
>> Tačiau paaiškėja, jei aš žinau, kaip siųsti HTTP pranešimus, kaip mes visi dabar daryti,
Galiu siųsti žinutę kaip tai tai lemputė ją įjungti arba išjungti
ar atlikti kokį nors skaičių kiti darbai ant jo.
Atkreipkite dėmesį, kad tai ne gauti, tai ne rašyti.
Yra dar vienas vadinamas įdėti.
Ten tikrai keletas kitų tokių veiksmažodžių.
Bet Pastebėjus kelias ten, Slash API, velniop naują kūrėjas,
Slash šviesą, velniop vieną, velniop būklę.
>> Štai, matyt, tiesiog kelias, kompanija Philips,
nusprendė turite paspausti su HTTP užklausa
jei norite pakeisti būseną ropelių naudojant HTTP 1,1.
Tada pastebėsite tuščią eilutę.
Ir tada galiausiai, kas atrodo rūšies yra tam tikros rūšies masyvo,
tai vėl ketina būti vadinamas JavaScript Object Notation arba Jason.
Ir tai, ką matote čia yra tai, kad yra trys pagrindinės reikšmės poros.
>> Vienas raktas paragino.
Ir jos vertė matyt bus tiesa.
Ryškumas yra 128, kuris yra kai kurie iš int tipo.
Ir tada perėjimas laikas yra nulis, kuris yra akivaizdžiai
kaip ilgai jis ketina imtis tam, kad šis dalykas apie.
>> Taigi dabar ši lemputė nešviečia.
Bet jei aš tiksliai this-- leiskite man eiti į mažai Cheat sheet
kad Danas įsteigtas advance-- ir aš ruošiuosi
eiti į priekį ir kopijuoti Ši komanda.
Curl, kaip kai kurie iš jūsų galėjo surinktą ant CS50
Aptarkite tai kaip Telnet tokio naudingumo kad galite imituoti HTTP užklausas,
specialiai daro.
Galiu siųsti šiuos duomenis, ką konkrečiai mes tiesiog
pamačiau akimirką prieš specialiai į šį URL čia.
Ir tada Curl ketina tvarkyti visos reikiamos antraštes
ir analizuojant ten iš.
>> Taigi viskas, ką turiu padaryti, tai nukopijuoti į tai terminalo langą ir tada paspauskite Enter.
Ir lemputė tęsiasi.
Ir tai yra viskas vyksta per mano kompiuteris bevieliu
kažkaip žemyn prie tilto, kuris tada kalbėti su šio lemputę.
Galiu daryti ką nors kita.
Galiu padaryti šį dalyką Poczerwienieć pavyzdžiui.
Galiu pavyzdžiui padaryti šis dalykas eiti žalia.
Galiu padaryti jį mėlynai.
>> Ir pranešimas kiekvienas iš jų atvejų, visų, kad aš keičiasi
yra vadinamasis atspalvis vertė iš tikrųjų mano, kad tai šiek tiek spalvų.
Taigi leiskite man įdėti šį vieną iš, kaip gerai.
Dabar atėjo mėlyna.
>> Ir jūs galite padaryti net mėgėjas dalykų where-- eikime į žalią.
Ir aš toks galėtų padaryti Žinoma su savo kodą.
Bet net pati API palaiko funky operacijas
kaip tai, kuri dabar vargintis mums per ateinančius 30 sekundžių.
>> Štai vienas skonis, ką galima daryti su API, tai iš kurių vienas
lemputės.
Atkreipkite dėmesį, kad CS50 yra pora porų Google Glass, jei norite
patinka spręsti kažką kartu Ribos, kurios Arduino unos, kuris
yra maža maža kompiuteriai iš esmės, dėl mažai plokštės
kad galėtumėte prisijungti laidai ir kiti dalykai
į ir iš tikrųjų kontrolė Jūsų realaus pasaulio aplinkoje.
Ir tada yra pora iš naujų žaislų, kad mes turime.
Tai vienas tiesiog tik atvyko Kitą dieną paštu, Myo Armband.
Ir aš maniau, kad tai būdas jums malonu apie projektų
kad galite naudoti su tai techninė įranga būtų
būti, kad žaisti šį trumpą klipą kad jie naudoja erzinti žmonės
kad mes dabar gyvename ateityje.
>> [Muzikos grojimo]
>> DAVID Malan: Taigi per kelias savaites, jūs taip pat gali būti, kad kietas tuo CS50 mugėje.
Kitas prietaisas, kad mes turėti, kad mes krūva
laimingas paskola iš projektų vadinama judesio valdiklis.
Tai šiek tiek USB įrenginys Prijungus prie kompiuterio,
leidžia jums bendrauti su Jūsų nešiojamas kompiuteris, Mac arba PC,
lyg turėtumėte kaip Xbox Kinect ir iš tikrųjų fiziškai judesių daug
kaip matome tai ateities vizija.
>> [Muzikos grojimo]
>> DAVID Malan: Taigi, net jei jūs turite neįsivaizduoju, kaip kažkas panašaus
galėtų būti sugalvotas ar darbas ant aparatūros lygis, nesvarbu.
Net po kelių mėnesių CS50, ir programavimo supratimas
apskritai ir interneto programavimo daugiau Neseniai, po to taip pat API ir HTTP,
Jūs turėsite prieigą per programinės įrangos API jei jus
noriu pasiskolinti vieną iš šių prietaisai iš tikrųjų kalbėti su juo
ir neturite jaudintis pagrindinės įgyvendinimas
informacija, kuri yra visiškai suderinamas su šio sluoksniavimasis sąvoka
abstrakcija, kad mes apylygiai semestrą.
>> Taip ir per savaitgalį, mačiau porą gabaliukų naujienos.
Eiti pirmiausia, eikite į seminarus, jei jums norėtų sužinoti kažką
daugiau bet įvairiomis temomis.
Pamatyti ten URL.
Ir tai vienas buvo išsiųsta man iki Chang, kas žinote,
kas spausdinti mūsų armiją drambliai.
Ir tai buvo antraštė taip.
Aš išsigandusi mano naują TV.
Kodėl aš bijau išjungti šią dalykas ir jums reikia būti per daug.
Taigi mes dabar atkreipti semestrą,
taip pat, jei, net jei turite menkiausio supratimo
kaip veikia tinklas ir HTTP, ir saugumo, tokie dalykai kaip šis
turėtų pradėti sugauti savo akis.
Bet, jūs suprasite, ar šie dalykai yra arba nėra
realios grėsmės.
>> Taigi, aš paėmė keletą ištraukų iš šio straipsnio čia.
Ir istorija yra tokia.
Aš dabar savininkas Naujas sumanus TV, kurie
žada pristatyti transliacijos daugialypės terpės turinį, žaidimai, app,
socialinės žiniasklaidos, ir interneto Naršymas, OH ir televizija taip pat.
Vienintelė problema yra tai, kad aš dabar bijau jį naudoti, sako autorius.
Jums bus taip pat, jei jūs skaitote per 46 puslapis privatumo politika jūsų televizoriui.
Duomenų Ši suma dalykas renka yra stulbinantis.
Įėjusi, kur, kada, kaip ir kaip ilgai jūs naudoti televizorių.
Ji nustato sekimo slapukai, kaip mes aptarti,
ir švyturių sukurta aptikti, kai jūs turite
žiūrimi konkretus turinys arba ypač Laišką
Jeigu norite patikrinti laišką jūsų televizoriuje.
Jis įrašai apps jums naudoti, lankomų svetainių,
ir kaip jums bendrauti su turiniu, daro viską, kad per savo "Smart TV".
Taip pat, creepier yet-- tai mano addition--
sukūrė kamera su veido atpažinimu.
>> Tikslas yra suteikti gestas kontrolė TV
ir leidžia jums prisijungti prie Asmeninės sąskaitos naudojantis savo veidą.
Kad ji augs, vaizdai yra išsaugotas televizoriaus vietoj įkeltas
prie įmonės serverio.
Kita vertus, interneto jungtis leidžia visą TV
pažeidžiami įsilaužėlių, kuriems įrodo, kad sugeba
imtis visiškai kontroliuoti mašina.
>> Daugiau nerimą, nes, jei tai buvo ne pakankamai protingas, tai mikrofonas.
TV pasigirti balsas atpažinimo funkcija
kad leidžia žiūrovams kontroliuoti ekranas su balso komandomis.
Tačiau paslauga ateina su o grėsmingas įspėjimas.
Atkreipkite dėmesį, kad jei Jūsų ištarti žodžiai yra
asmens ar kitos jautrios informacija, kad informacija
bus tarp duomenų nufotografuotų ir perduodami trečiajai šaliai.
Supratai?
Negalima sakyti asmeninių ar jautri Daiktai priešais televizorių.
>> Taigi tai tikrai realus.
Ir tai nėra sunku pamatyti, jei jums eiti į Best Buy ar panašūs televizorių
šių dienų.
Jie visi smart tam tikru būdu.
Ir jie gauna protingesni ir creepier.
Ir jie tiesiog renka duomenis tokiu būdu, kad mes kalbėjome apie
ir tada įkelti jį per HTTP arba kai kitą protokolą tam serveriui.
>> Taigi tai buvo įdomus straipsnis Šioje interneto svetainėje
čia kuris kalbėjo apie Ypač klaidą ar klaidingas kodas
kad mes iš tikrųjų galite susieti į praėjusios savaitės diskusiją.
Taigi ši antraštė buvo kaip taip, sakoma čia
Josh Breckman dirbo kompanija, kuri nusileido sutartį
sukurti turinio valdymo sistema, ar TVS, kaip jie vadinami,
Per gana didelis vyriausybės interneto svetainėje.
Daug padėtį projekto kuriant turinio valdymo sistemą
kad darbuotojai būtų galima statyti ir prižiūrėti
nuolat kinta Turinio jų svetainėje.
Daiktai viskas vyko labai gerai praėjus kelioms dienoms po going gyventi.
Bet dienos šešerių dalykai nėjo taip gerai.
Visi ant turinio svetainė buvo visiškai išnykęs.
Ir visi puslapiai paskatino nutylėjimą Įveskite turinio tinklalapį.
Oho.
Josh buvo vadinamas į ištirti ir pastebėjau
kad vienas gedimus išorinis IP adresas buvo
dingo ir ištrinti visus dėl sistemos turinys.
>> IP adresas nepriklausė tam tikru užjūrio hacker smilga
nuo griauna naudinga Vyriausybės informacija.
Nutarė googlebot.com, Pačių "Google" žiniatinklio nuskaitymo Spider.
Oho.
Po tyrimų ir kodavimo bitų aplink rasti noncorrupt atsarginę kopiją,
Josh rado problemą.
>> Vartotojas buvo nukopijuotas įklijuoti tam tikrą paramą iš vieno turinį
puslapis į kitą, įskaitant Redaguoti hipersaitą
redaguoti puslapio turiniu.
Paprastai tai nebūtų klausimas, nes išorės naudotojas
reikia įvesti vardą ir slaptažodį, bet TVS autentiškumo patvirtinimo sistemą,
prisijungimo sistemą, neatsižvelgė į tai,
sudėtingas įsilaužimo būdai Google voras.
Oho.
>> As it turns out, Google Spider nenaudoja
slapukai, o tai reiškia, kad jis gali lengvai apeiti patikrinimui
yra prisijungęs slapukų rinkinys yra neteisinga.
Ji taip pat nekreipia dėmesio į JavaScript, kurie būtų paprastai
greitai ir nukreipti vartotojus kas nesate prisijungęs.
Tačiau tai taip pat nereiškia, kas hipersaitą kiekviename puslapyje jis ras,
įskaitant su Ištrinti puslapį pavadinime.
Oho.
>> Taigi, ką tai reiškia daugiau techniniai, bet gana suprantamais žodžiais?
Tai tiesiog reiškia, kad visoje savo svetainę,
jie turėjo URL nėra nei šį vieną, kad jūs galite pamatyti skyriuje nustatyti septyni.
Priminti problemą septynis arba žinoti problemos septynis
kad jūs iššūkį, be kitų dalykų,
parduoti atsargas naudotojų vardu.
Bet įgyvendinant tą sistemą pagal funkciją iš gauti per hipersaitus savo naudotojo
sąsaja, tikriausiai ne protingiausias mintis
nes jei jūsų svetainė yra kažkaip prieinama arba pagal žmogaus
kas Naršyti aplink ar pirkti botas kaip "Google" ar voras
kaip jie vadinami, kad tik nuskaitymo internete bando indeksas
interneto, kaip paieškos, jie gali labai lengvai
nukentėjo per gauti šią URL natūra.
Ir tai funkciškai jiems lygiaverčiai, šiuo atveju,
parduoti visų "Google" akcijų.
>> Dabar atvirai, tai visiškai Oli kad TVS
Naudota JavaScript ir slapukai įgyvendinti savo prisijungimo sistema
o ne daryti, kad serverio pusėje, kaip Jūs vaikinai ir kreips PSet 7--
ten login.php file-- visada, visada,
visada saugumas turėtų būti daroma serverio pusėje,
ne dėl kliento pusėje, nes, kaip tai Straipsnis rodo ir jums gali sau
matyti tam tikru momentu, tai yra trivialus vartotojas, geras ar blogas,
tiesiog išjungti JavaScript nekalbant slapukus.
Taigi tai yra jūsų dienos WTF.
>> Yra dar vienas, kuris yra tik rūšies baisu,
todėl aš sakiau, kad ji, jei tik kaip gyvenimo pamoką.
Kai jūs naudojate programą vadinamas kaip Snapchat ar panašiai
kad sako šios nuotraukos tik tęstis penkias sekundes, dešimt sekundžių arba Papuošalą.
Jie efemeriška Tai visiškai ne tas atvejis.
Kaip nėra taip, skaitmeniniu, įgyvendinti kai vaizdo forma,
ar vaizdo arba tekstinė dalintis tokia kad kitame gale gavėjas
negali kažkaip išsaugoti duomenis.
>> Labiausiai naivus būdu, kažkas gali imtis savo telefoną.
Ir jie turi 10 antrą langą o ieško tam tikru akimirksniu
tiesiog imtis kokio nors kito telefono ir fotografija jį, žinoma.
Taigi galite išsaugoti kažkas skaitmeniniu, kad taip.
Kai kurie iš jūsų žino, kaip priimti Screenshots telefone.
Iš tiesų, jei jūs nežinote, tai, suprasti, kad bent Snapchat,
ir aš manau, kita paraiškas šių dienų,
bent pasakyti, jei gavėjas iš tikrųjų
ėmėsi savo įvaizdį ekrano.
>> Bet dar blogiau, tai buvo snappening, kaip kažkas sugalvojo jį neseniai,
kai kurie 100,000 Snaps buvo paleistas
į tai, kas vadinama torrent failą įvairių svetainių galiausiai.
Ir tai pateikiama visa krūva Privačių žinučių ir pranešimų.
Pasirodo dauguma jų gerybinis, taip ne, ką jūs galite tikėtis.
Bet todėl, kad žmonės turėjo naudojami trečiosios šalies interneto svetainę,
Prisijungdami su jų Snapchat Vartotojo vardas ir slaptažodis, o tada
taupyti visus savo Snaps dėl šio trečiojo asmens internetinėje svetainėje.
Ir tai buvo, kad trečioji šalis svetainė buvo nulaužė,
kuris tiesiog reiškia, kažkas suprato, kaip gauti visus 100,000 plius tų vaizdų
į savo kietąjį diską tolesniam pasidalijimo.
Atvirai kalbant, čia, tai tarsi iš Oli kad Snapchat
būtų įgyvendintas tokiu būdu, kad trečioji šalis gali rūšiuoti ašyje
duomenys ir kad ji nėra susieta su jūsų pareiškimui veikia ant telefono.
Bet čia taip pat suprantu, kad tai dalykai neturėtų sugauti jums netikėtai,
arba bent tai turėtų būti gyvenimo pamoka čia.
Jei norite techninis Išsamiau, eikite į šį URL ten
tai šiandien skaidres.
Gerai, bet klausimai šiandien gyvenimo pamokos CS?
Pasukite, kad ne.
Nieko visai?
Aš turiu daug žmonių tikrinimas jų Snapchat ar kažką dabar.
>> Gerai, taigi SQL, Structured Query Language.
Leiskite wrap tai.
Ir taip pat, nors mes tik įbrėžimas
tai paviršius kalba, mes suteiksime jums
pakankamai kalbos į PSet 7 forma
taip, kad jūs galite spręsti kai gana bendra funkcija.
Bet suprantate, yra pora tai, ką mes nereikia iš jūsų,
bet jie bus Svarbu ateiti galutinius projektus
ir tikrai ateis priėmimo faktinis svetainės dabartinių vartotojų
tai dizaino sprendimas.
>> Pasirodo, kad į MySQL duomenų bazės, jums
turi kekių pasirinkimų kaip duomenų tipai jūsų stulpelius
ir kitų dalykų, bet jūs taip pat turite iš vadinamojo saugoti,
variklis visus savo duomenis, iš failų sistema rūšiuoti,
Jei esate susipažinę, už visus savo duomenis.
Ką formatas galiausiai saugomi?
Ir dažniausiai, ko gero, buvo MyISAM ir InnoDB, techniniai terminai
kad mes rūpinamės tik tiek, kiek, kad vienas turi
ir vienas neturi Žemiau funkcija.
>> Tarkime, kad jūs turite mažai bendrabučio šaldytuvas.
Ir tarkime, kad jūs ir jūsų kambarioku, kuris pasidalinti šaldytuvas,
tikrai mėgsta tarkim pieną.
Ir tai yra, iš tiesų, kaip istorija buvo pasakyta, kad man kelią atgal
tą dieną, kai aš paėmė kursą vadinama CS 161 Operacinės sistemos, kuri
panašiai tyrinėja šią temą.
Taigi, jūs turite šį šaldytuvą.
Jūs iš pieno.
Ir grįžti namo, jūsų draugas s dar klasėje ar kas,
ir jums nuspręsti, aš ruošiuosi išeiti ir gauti pieno.
Taigi jūs uždarote šaldytuvas, darbo baigimo laikas bendrabučio kambarys, eiti per gatvę
CVS ar kur, ir gauti atsižvelgiant nusipirkti pieno.
>> Tuo tarpu jūsų kambarioku gauna namų iš klasės, patenka į bendrabučio kambarį,
atidaro šaldytuvą, taip pat supranta, ooph, mes iš pieno.
Taigi jis užsidaro šaldytuvas ir tada atsitinka
eiti į kitą CVS, kuris atsitinka būti
vienas blokas nuo kitų CVS aikštėje, ir gauna pagal
ten kažkiek pieno.
Dabar, žinoma, keletą minučių vėliau, jūs abu grįžti,
ir blogiausia įmanoma rezultatai nutiko.
Jūs abu turite pieną.
Ir jūs tikrai ne kaip pienas, kad daug.
Taigi vienas iš jų yra tiesiog ketina rūgštus tam tikru momentu.
Taigi, dabar jūs turite per daug Pieno šaldytuvą visi, nes kodėl?
>> [Nesigirdi]
DAVID Malan: Taip, tu negali kažkaip bendrauti tarpusavyje
kad jūs gaunate pieno.
Taigi paprasčiausias būdų, kad žmogaus pasaulį,
kaip tai galėtumėte išvengti kvailas scenarijus neįvyktų tokių
kad jūs tik baigti su vienu.
Tekstas jas, taip gera.
Bet kaip kitaip?
Pranešimo lapeliai.
DAVID Malan: lapukas.
Bet kokios formos informacija kad pasakoja savo kambarioku
neina į pieno šaldytuvą.
Aš ruošiuosi eiti atsargas ant savo.
Taigi jūs kažkaip reikia užrakinti šių duomenų.
Taigi, mes galime padaryti this-- galime rūšies sugadinti istoriją ir paversti CS istorija
kuriuo galvoti apie tai, kaip kaip kintamasis, kuris saugoti tam tikrą vertę.
Ir dabar, pieno vertė yra nulis,
kuris nenori jūsų kambarioku, patikrinti tą kintamąjį,
ir tada būtų galima priimti sprendimą jis pats remiantis to kintamojo valstybės
jei esate iš proceso keičiant to kintamojo būklę.
>> Taigi vienas iš SQL linijų, kad mes suteikti jums PSet 7 specifikacija
tai vienas čia.
Ir mes neturime išleisti didžiulis daug laiko apie tai kalbėti.
Bet it turns out, jei jūs bandote nusipirkti rankų į CS50 finansų
kad jūs jau turite kai, jus akcijos
norite, kad būtų galima padaryti tam tikrą numerį dalykų akimirksniu kartu.
Jūs norite, kad būtų suteikta galimybė veiksmingai, aukšto lygio,
patikrinti, ar visi sau teisę, jei aš noriu pirkti daugiau akcijų nemokamai,
Penny Stock mes kalbėti apie į spec,
Noriu pirmo patikrinimas kiek akcijų turiu.
Ir tarkime, kad tai penki.
Ir tarkime, kad aš noriu pirkti 10 daugiau, aš galiausiai
norite turėti 15 "akcijų.
Taigi turiu paklausti dviejų klausimų.
Kas kintamojo būsena?
Kas iš eilės valstybė?
Kiek akcijos man šiuo metu?
Tada jūs norite eiti į priekį ir jį atnaujinti.
Štai analogas pienas, kad jums patikrinti eilutę,
ir tada jūs norite ją atnaujinti nes jei norite pirkti 10 akcijas,
Jūs nenorite pakeisti eilutė iki 10, jūs
norite pakeisti jį į 5 plius 10 ar, žinoma, 15.
>> Ši kodo eilutę užtikrina, kad tos dvi konceptualios idėjos
atsitikti taip, ar ne visai.
Niekas, įskaitant kai kurių kitų vartotojų kas prisijungęs prie to paties interneto svetainėje,
kažkaip gali pertraukti iš eilės tikrinamas
ir iš eilės atnaujinimą, pasirinkti ir, jei bus atnaujinti.
Ir sintaksė nėra super akivaizdus, bet tai viena eilutė, kol jis yra,
užtikrina, kad šios dvi operacijos Tikrinti kintamąjį arba patikrinti eilutę
ir atnaujinti eilutė atsitikti atominių.
>> O čia mes einame vėl.
Teksto žinutė mano telefone.
Taigi galime padaryti tai šiek tiek daugiau betono.
Tarkime, kad jūs ne Įgyvendinant šaldytuvas,
ir jūs neįgyvendina PSet 7 bet tikrasis bankas,
arba ATM, Bankomatai Mašina, kurios dėka tu kažkaip
nori, kad būtų galima įgalinti Vartotojų pervesti pinigus
iš vienos sąskaitos į kitą.
Gerai, palauk.
Aš ruošiuosi nutildyti dabar, ačiū.
Taigi, mes norime judėti pinigus iš vienos sąskaitos numerį
į kitą sąskaitą skaičius, konkrečiai 100 JAV dolerių.
Taigi tai yra rūšies savavališkas pavyzdys, pagal kurį jums, Bankomatas,
galbūt norėsite atlikti du SQL užklausų, atimti iš vienos sąskaitos,
ir įdėti į kitą sąskaitą.
Bet jūs norite įsitikinti, kad šie dvi linijos ir atsitiktų, ar ne visai.
Nenorite kažką vis nutrūksta.
Jūs neturite kai protingas blogas vaikinas kažkaip stovėjo Bank of America
du bankomatai priekio iš jo ir kažkaip
rūšiuoti rašyti komandas tuo pačiu metu,
tikiuosi bando atimti $ 200 vietoj 100 dolerių, ir tik turintys 100 $ į sąskaitą.
Trumpai tariant, jūs norite tai elgtis taip, kaip tikitės.
>> Ir kaip tai darote tai SQL duomenų bazė yra
Jūs apvyniokite kas vadinamas sandoris.
Drąsiai SQL, galite skambinti CS50 s užklausa funkcija su citata citatos pradžia
sandoris.
Tada galite paleisti bet kokį skaičių Vėlesnių SQL užklausų,
bet nė vienas iš jų imtis Poveikis bazėje
kol skambinate užklausos citata citatos įsipareigoti, jei vėl naudojant PHP.
Ir tokiu būdu, jūs galite užtikrinti, kad net jei turite 1000 vartotojai visi
pradeda savo bazę tuo pačiu metu, SQL
žada, kad tai dvi užklausos bus
įgyvendino vieną teisę po kito.
Taigi jums nereikės baigti su viršija pienas arba neteisingas dydis, galiausiai,
pinigų.
>> Taigi atminkite, ne tiek PSet 7
bet galutiniam projektų jei jūs iš tikrųjų
bando perkelti duomenis apie visoje lenteles, kaip galima čia.
Bet galbūt dar paprastesnė ir Akivaizdu suprasti, pavyzdys
tai vienas čia.
Ir kažkas elektroniniu paštu mums apie tai tik kitą dieną
kai pamačiau kažką panašaus internete.
>> Taigi mano žiniomis, pin sistemos nėra pažeidžiami šios atakos.
Ir aš neįsivaizduoju, jei ji netgi naudoja SQL duomenų bazės po kapotu.
Tačiau galime jį naudoti Diskutuojant.
Štai ekranas, Harvardo žmonės linkę
matyti, kai prisijungsite su savo Harvardo ID numerį ir PIN kodą.
Ir tarkime, kad kaištis sistema buvo įgyvendinti PHP ir MySQL
duomenų bazė, kodas, kad kažkas prieš galėjo raštu metai
gali atrodyti taip.
Pirma, paskelbti kintamasis vadinamas vardą.
Ir tiesiog gauti, kad nuo POST superglobal.
Tada gauti kitą kintamąjį, vadinamas slaptažodį ir pakartoti tą patį.
Ir tada tiesiog atlikti tai ilgas užklausos čia
pasirinkite žvaigždė iš vartotojų tam tikrais Nick lygus toks ir toks
ir slaptažodis yra lygus toks ir toks.
>> Atkreipkite dėmesį, kad garbanotas petnešos aš čia naudojama
tiesiog reiškia PHP, eiti į priekį ir pakaitalas
iš šių dviejų vertė kintamieji teisus ten.
Jie nėra būtini, tačiau jie yra linkę vengti subtilių sintaksės klaidų.
Taigi tai atrodo visiškai teisingas, iš pirmo žvilgsnio.
Ir ji yra.
Galite įdiegti pin sistema šiuo būdu.
>> Bet tarkime, kad super protingas ir kenksminga studentas
įėjimas tai kaip jo ar jos PIN.
Taigi aš pašalinta kulka požymiai čia juoktis iki,
ir aš iš tikrųjų atskleidė ką jis ar ji gali būti rašyti.
Ir tai šiek tiek keista.
Bet kas šokinėja į tave bent potencialiai jaudina apie naudotojo įvesties,
net jei jūs neturite idėjos, kas SQL injekcijos išpuolių reiškia.
Kodėl tai atrodo šiek tiek įtartinas?
Kas tai?
[Nesigirdi]
DAVID Malan: ar yra mažai įtartinas.
Tiesą sakant, tai iš SQL raktažodis.
Kad nėra Bode gerai.
Faktas, kad yra visi šie kabutes
there-- Iš tiesų, vienas iš paprasčiausių būdų išeiti Kai duomenų bazes
yra įvesdami kaip O'Reilly pavadinimas kad yra suinteresuotas jį kabutes
nes jei žmogus, kuris parašė kodas užkulisiuose
neatsižvelgiama į tai, kad ten gali būti vienviečiai kabučių vartotojo
įėjimo, ir jis ar ji naudoja Viengubomis kabutėmis į savo kodą,
blogi dalykai gali atsitikti.
>> Tiesą sakant, dar blogiau, išnagrinėti šį.
Jei tai dar kartą buvo kodas kad kažkas Harvardo metų
prieš rašė kaiščiu sistema, pastebėti tai, kas
apie gauti keitimą už vardą ir slaptažodį
jei vartotojas įveda į kartą skroob kaip jų Vartotojas
ir tada vienas, du, trys, keturi, penki, citata ar citata citatos vieną lygiųjų
Cituoju vieną.
Ir pastebėsite, kas svarbiausia čia yra vartotojas dar neturi
pradėjo savo slaptažodį arba jų pin su citata.
Ir jie nesibaigė jį su citata nes jis
darant prielaidą, kad, jei programuotojas nebuvo tokia aštri,
jie ketina turėti tie Viengubomis kabutėmis į savo kodą.
>> Taigi čia kodas.
Ir pakeitimas, kad dabar gali nutikti yra tai.
Ir aš pabrėžė tai, ką vartotojas turi įvesti.
Taigi, prieš, po.
Ir pastebėsite, kas šiek tiek neramina dabar apie teisę pusmetį SQL kodą?
Tai šiek tiek sudėtingesnis, reikia pripažinti, nei užklausas mes matėme.
Bet tai niekaip negali geras dalykas, jei esate
sakydamas pasirinkite žvaigždę, kuri yra pasirinkite viskas iš vartotojo stalo
kur vartotojo vardas lygi skroob ir slaptažodis lygus vienas, du, trys, keturi,
penkių ar vienas lygi vienetui.
Kas logiška išvada Pastarojo punkto matyt?
Tai tiesiog visada tiesa.
>> Ir todėl, kad mes tarsi atspėjo arba raštuotas bandymų ir klaidų
kad Programuotojas rašė šį kodą nepadarė
numatyti žmogaus ar blogas žmogus rašyti apostrofais taip,
galime sintaksiškai užbaigti SQL užklausa
su kažkuo absurdiškas bet kažkas, kad
yra sintaksiškai neteisingas kad visada vertina, kad tiesa.
Taigi, jei šis kodas yra naudojamas atsakyti Klausimas true arba false turėtų
šis vartotojas bus praleidžiamas, Atsakymas visada atrodo neatsižvelgdamas
kad būtų tiesa, nes tai visada bus pasirinkti kažką iš duomenų bazės
nes vienas iš žinoma visada lygi vienetui.
>> Taigi, kas yra išeitis?
Na PSet 7, mes iš tikrųjų išvengti visų kartu.
Mes jums užklausos funkcija, ir mes rekomenduojame naudoti klaustukų
kaip vietos rezervavimo ženklai, panašūs dvasia į printf s% s,
bet tai, kas svarbiausia apie klaustukų čia yra, jei jūs iš tikrųjų skaityti per
functions.php, kur mūsų užklausa funkcija yra įdiegta,
tie prekių ženklai, pabėgo, kuriuo nieko potencialiai pavojingas
kaip kabutes įjungta į pabėgo kabutes.
>> Taigi tai, kas iš tikrųjų vyksta, jei jums
naudoti CS50 užklausą funkcija arba bet koks skaičius kad trečiosios šalies nemokamai bibliotekų
daryti tą patį.
Nesvarbu, šiuo atveju, žalia, jei vartotojas turi įvesti vieną citata
nes užklausą funkcija, kurią rašei
pridėsime slešų prieš tokie pavojingi citata.
Taigi tai yra ne, į Faktas, bus teisėtas.
Tai kaip rašyti kvailai ieško slaptažodis tai, žinoma, neketinu
būti skroob faktinių slaptažodį.
>> Taigi už CS50 Takeaway yra vienas, absoliučiai visada naudoti kažką
kaip CS50 užklausą funkcija arba pagrindinės bibliotekos,
kuris atsitinka būti vadinamas SKVN.
Bet niekada, niekada, niekada padaryti kodą, kaip tai
be pabėgti arba šveitimo kaip sakoma jūsų įėjimai.
Ir jūs tam tikru momentu tikriausiai Natknąć keletas tinklapio kaip šis.
Tiesą sakant, atrodo, kad būti atvejis kaip oro uostuose ir viešbučiuose, esančiuose tokiose vietose
kur jie turi nemokamą belaidį internetą prieigos, kad jums reikia prisijungti, kad,
Šios svetainės yra visada siaubingai įgyvendinta.
Ir taip smagu rūšiuoti namuose naudotis, ne piktavališkais tikslais ar daugiau
iš kelyje įdomus mankštos, yra tiesiog įrašykite
apostrofo kabutes, į dėl tam tikrų svetainės forma
ir pamatyti, kas atsitiks.
Ir jei serveris avarijos arba duoda Jūs kai rūšies klaidos pranešimą,
jis gali labai gerai būti, kad kas nors nesitikima tai.
Ir tada jūs turėtumėte įspėti tinkamai institucijos ir tęsti toliau.
>> Taigi, dabar jūs vaikinai turėtų tikiuosi suprasti šiek tiek daugiau Geek humoro čia.
>> [Juokas]
DAVID Malan: Jūs žinote, jūs esate Geek.
Dėl šalia keli metų, jums bus prisiminti
kas mažai Bobby Stalai yra nes šio animacinio čia.
Taigi keep that in mind, kaip mes kontekstas jungiklis vienas paskutinis kartas
Šiandien JavaScript.
Mes praleido gana mažai laikas nuo PHP sintaksė
nes tai iš tikrųjų super panašus į C.
Ir pakankamai gražiai, JavaScript per super panašus į C sintaksę
taip pat pamatysime iš tiesiog akimirka ir kaip mes
pamatyti šią savaitę ypač.
Ką jūs galite padaryti su šia kalba, nors yra dar galingesnis,
ypač su API.
>> Bet pirmiausia greitai turas.
Taigi vienas, JavaScript, yra ne pagrindinė funkcija, kuri yra gražus.
Kaip su PHP, galite tiesiog parašyti kodą.
Sąlygos atrodyti taip.
Ir Bulio išraiškas galia atrodys taip ar taip.
Jungikliai egzistuoti, ir jie gali atrodyti taip.
Keturių kilpų atrodyti taip.
Nors kilpos atrodyti taip.
Ar whiles atrodyti taip.
Ir tada masyvai atrodyti tai, labai panašus į PHP.
Bet pastebėsite, kad "JavaScript" jums paskelbti kintamąjį nėra su doleriu
pasirašyti ne su duomenų tipų, o tiesiog sakydamas var Kintamųjų prieš jį.
Jis taip pat yra laisvai įvedėte tuo, kad ji turi rūšis,
bet jūs neturite aiškiai deklaruoti juos.
Ir tada virvutė, už pavyzdžiui, gali atrodyti
kaip tai, kad eilutė vadinamas s šiuo atveju.
Ir tada objektas.
Ir tai mes pamatysime daugiau prieš ilgas.
Ir objektas yra galbūt vienas iš Dažniausiai pastebėti duomenų struktūras
į JavaScript pagrįstas programa, nes ji leidžia
jums asocijuojasi savavališkas Pagrindinės reikšmės poros tiesiog
kaip PHP Association masyvai ir kaip savo maišos lentelė
arba pabandyti kaip mes įgyvendinti keletą savaičių atgal.
Taigi galime realiai pamatyti, ką mes galime padaryti su JavaScript.
Ir ypač tai skalbimo funkcijų sąrašas
kad naršyklių kad leidžia mums Pajungti JavaScript
į šiuo būdu interneto svetainėje.
JavaScript yra dažnai naudojamas kaip kliento pusėje skriptų kalba.
Tai nerenkami.
Jis taip pat yra aiškinama.
Tačiau skirtingai PHP, kuri veikia jau serveryje, žiniatinklio serverio,
arba giliai viduje Klientai, JavaScript
skiriasi tuo, kad: paprastai eina į naršyklę.
>> Taigi bet koks JavaScript kodas pradėdami rašyti už PSet 8 arba savo galutiniam projektui,
arba realiame pasaulyje paprastai vyksta būti išsaugomi serveryje, visiškai
į dot HTML arba tašku JS failą JavaScript.
Bet naršyklė vyksta atsisiųsti, kad "JavaScript"
kodas jūsų paties instancijos Chrome, arba IE, arba Firefox, ar dar ką nors.
Ir kodas iš tikrųjų ketiname gauti vykdoma viduje savo naršyklėje.
Tik, kad tai daugiau nekilnojamojo, pažiūrėkime tai konkrečia forma.
>> Mes nežinome, kas tai kodas daro be tikrai permatyti kiaurai.
Bet leiskite man eiti į Facebook.com be prisijungimo.
Leiskite man eiti į Tikrinti elementą ir eiti, tarkim, Tinklo ir perkraukite puslapį.
Ir mes see-- leiskite pereiti iš naujo įkelkite Puslapis gauti visus atsakymus į naujus prašymus.
Ir pats pirmas failas matau yra CSS, CSS.
Štai pirmas JavaScript failą, ir aš turiu
ne idėja, ką šis daro, bet čia yra keletas JavaScript kodo
kad diskai "Facebook".
Tai net ne tikrai, kad atskleidžiant, norėdami padidinti.
Jis vis dar toks pat absurdiškas.
>> Bet pamatysite net žemyn žemiau, ten net daugiau iš šių "JavaScript" failus.
Oho.
Štai ping.
Vykime šiek tiek žemyn toliau, toliau, toliau.
Yra vienas.
>> Taigi, nors "Facebook", už scenos, parašyta iš dalies PHP
ir "Facebook" savo versiją dalį, ten didžiulis JavaScript.
Iš tiesų, bet koks kalbasi jūs dėl "Facebook",
nors iš Inline laiko juostoje atnaujinimus , kad taip atsitiktų realiu laiku, kad visa tai
varo JavaScript.
Taip?
>> AUDITORIJA: Nesu tikras jei tai yra "Facebook",
bet aš maniau, kad "Facebook" sukūrė savo in-house kodas kalba?
DAVID Malan: Jie padarė.
Štai kodėl aš sakau iš dispersijos PHP vadinamas Hip Hop, kad jie iš tikrųjų
papildomos funkcijos tokios, kad į kai Pažymėti įgyvendinama pirmą Facebook,
jis buvo parašytas PHP.
Ir kad tarsi išliko iš priekinės kalba rūšiuoti
kad jie naudoja daug jų kodavimo, tačiau ji
nebuvo kalbos tai svarstyklės itin gerai milijardus
Žmonių.
Ir taip jie pridūrė savo patobulinimai užkulisiuose.
Ir jie naudoja bet koks skaičius Kitų kalbų
dėl įvairių gabalų jų infrastruktūra.
Taip taip, tai dispersinė ką mes dabar žinome kaip PHP.
>> Taigi galime pažvelgti esant pavyzdžių pora
kaip mes galime naudoti "JavaScript" čia.
Šiandienos šaltinio kodą, turime krūva failų, kurių pirmasis,
tegul vadinama DOM nulis.
Taigi DOM nulis atrodo taip.
Leiskite man eiti į šį katalogą ir atverti domzero.html,
iš kurių viršuje yra doc tipas deklaracija, sakydamas čia ateina HTML 5.
Ir dabar čia yra HTML tegus.
Štai galva tag.
Ir štai kas naujo šiandien.
>> Dabar turime scenarijaus žymė viduje puslapio galvos.
Ir tai, matyt, daro labai mažai, tačiau pranešimas
kad aš apibrėžta Scenarijus, JavaScript.
Ir kaip žemę, nes tai Yra paplitusi klaidinga nuomonė,
JavaScript turi visiškai nieko daryti su Java, kalba
kad kai kurie iš jūsų gali išmoko APCs.
Tai buvo daugiau rinkodaros dalykas nei nieko,
jojimo Java metų Protekcija prieš.
Bet JavaScript, neturi nieko bendro su Java, tiesiog panašiai, ir annoyingly,
klaidinančiai vadinamas.
>> Taigi čia yra kaip deklaruojate funkciją JavaScript, pažodžiui pasakyti funkciją,
tada iš funkcijos pavadinimas, tada bet argumentai gali užtrukti,
Kaip ir PHP.
Pasirodo JavaScript, vieną iš labiausiai erzina funkcijos, kurios egzistuoja yra perspėjimas.
Tai šiek tiek langas, kuris iššoks ir įspėti jus
tam tikros informacijos.
Tai paprastai frowned.
Bet mes jį naudoti kaip savo Pirmasis pratimas čia.
>> Pranešimas kelis požymius JavaScript.
Viengubomis kabutėmis ir kabutes ne iš tikrųjų svarbu nebėra.
Viengubomis kabutėmis ir dvigubas citatos gali būti sukeistos,
o C, turite naudoti kabutes styginiams
ir jūs turite dvi viengulės kabučių simbolių.
Be JavaScript pasaulyje daug žmonių, dauguma žmonių
Viengubomis kabutėmis aplink stygos tik todėl, kad stilistinė dalykas.
Bet kas plius operatorius čia kurių mes nematėme anksčiau?
>> AUDITORIJA: Sąryšis.
DAVID Malan: Sąryšis.
Taigi C net neturi tai.
PHP turi taškinę operatorių, kuris tai daro.
JavaScript turi pliuso operatorių, kuris klaidinančiai yra kaip Java.
Dabar, kas vyksta čia?
>> Taigi čia, kur pagrindinė supratimas to paveikslėlyje
mes išmetė porą d atgal ateina į žaidimą.
Prisiminkite, kai mes turėjome paprasta versija HTML page--
jis tik pasakė, hello world.
Ir tada mes atkreipė medį į dešinę, kuri
turėjo stačiakampių ir linijų krūva prijungiant juos kaip šeimos medį.
Štai vadinamasis DOM arba Document Object Model.
Ir paaiškėja, kad jūs galite prisijungti stačiakampių tą medį su sintakse
kaip šiuos.
Jūs tiesiog pasakyti dokumentą, kuris yra ypatingą pasaulinį kintamąjį į "JavaScript"
programa, kuri turi funkciją susijęs su juo, kad jūs galite pasiekti
panašus į struct, bet jūs tiesiog pasakyti tašką, o po to ši funkcija vardą,
gauti elementą pagal ID.
>> Elementas Noriu gauti yra matyt citata citatos vardą.
Ir tada aš noriu gauti jo vertę.
Dabar mes vis prieš save.
Nesu tikras, net tai, kas visa tai yra apie.
Leiskite pirmyn į HTML į puslapis, kuris yra super paprasta.
>> Atkreipkite dėmesį, kad aš apibrėžta sudaro žemyn čia.
Atkreipkite dėmesį, aš jį davė savo unikalų ID, nors mes ne naudoti
šis atributas anksčiau.
Bet tai HTML egzistuoja.
Galite identifikuoti kai riekė HTML su kaip šis identifikatorius.
>> Pranešimas dabar this-- pasirodo HTML palaiko, per tą skalbimo sąrašą
prieš akimirką, visa krūva renginių tvarkytojai.
Ir šis renginys prižiūrėtojas sako ant pateikti.
Dėl vartotojo pateikimo šio forma, skambinkite šį kodą.
Ir kodas, kas vyksta vadinti ar įvykdyta
yra būtent tai, Graikų funkcija po return FALSE.
Visa kita turėtų būti gana susipažinę.
>> Štai tipo teksto įvestį, kurio ID, šiuo atveju, tai bus vardas.
Mes neturime faktinė atributas name tai LAIKĄ_ ir mygtuką "Siųsti".
Tuomet gauta puslapis atrodo taip.
Ir todėl elgesys, pamatysite, atrodo taip.
Puslapis vietinėms šeimininkai sako, hello David, beveik estetiška
būdas pasveikinti vartotoją.
Bet kas iš tikrųjų vyksta?
>> Na, pagalvokite, ką tai.
Tai tekstinis laukas.
Ir pagal HTML čia, aš jį davė savo
unikalus identifikatorius vadinamas citata citatos vardas.
Tuo tarpu, aš sakė, kai vartotojas pateikia šią formą
pataikyti Įveskite arba spustelėkite Pridėti mygtuką, skambinkite funkcija vadinama palydėk
ir tada grįžti Neteisingų.
Apžvelkime tuos atvirkščiai.
Pranešimą, kai aš spauskite Pateikti, URL šio puslapio nesikeičia.
Naršyklės piktograma nepradėjo suktis.
Aš ne eiti bet kur, ir tai pažodžiui, nes sakiau return FALSE.
Return FALSE trumpojo jungimo arba sustabdo Numatytasis elgesys forma.
Kad tada palieka mus su tai vienas paskutinis klausimas.
Ką Greet daryti?
Na, Pasitikite matyt ragina funkcija vadinama
Įspėjimo, eina į vieną ilgas argumentas, kad tai
iš concatenating kartu rezultatas krūva poeilių, hello kablelis erdvė,
tada viskas, ką šis grįžta.
Taigi dokumentas yra kaip pasaulinė kintamasis tai tos medžio lygyje,
sušaukti specialų funkciją, kitaip dabar žinomas kaip metodą.
Funkcija, kuri yra viduje kintamasis
vadinamas metodas, o ne funkcija.
>> Taigi gauti elementą pagal ID.
Ką elementas padaryti jums nori gauti savo ID?
Cituoti citatos vardą ir tada specialiai vertiname.
Taigi, kitaip tariant, kad tiesiog kodas nustato teksto lauką, kurio ID yra vardas
ir tada gauna savo vertę.
Taigi, jei aš būčiau tai pakeisti ir pasakyti Davin Dovydo vietoje,
ir spauskite Pateikti, dabar mes turite "Davin sveikinimą.
>> Gerai, kad viskas gerai, ir gerai.
Tačiau galime pamatyti, jei mes galime padaryti tai tiek švaresnis, nes tik
rašyti kodą, kaip tai yra paprastai bus frowned.
Tai atrodys baisiau.
Bet kas pirmas skirtumas, kad jūs dėmesį čia
Šioje versijoje neskaitant pavadinimas keičiasi į DOM vieną?
Ką struktūriškai atrodo kitaip apie tai prieš kitą?
Taip?
AUDITORIJA: Ar ant formos top scenarijų dabar?
DAVID Malan: Taip, forma viršuje Kurį smalsu priežasties scenarijų.
Štai pirmas dalykas kad šuoliai į mane, per daug.
Ir laimei bent ši dalis yra identiška.
Taigi vienintelis dalykas, kad atrodo būti kitoks tai.
>> Taigi štai ką tvarkingas apie JavaScript 2.
Ir tai daro jį sunkiai suprasti iš pirmo žvilgsnio,
ypač galutinių projektų, jei jūs ieškote mėginio kodą internete,
bet ji suvesta į kai Pagrindinės sintaksės savybės.
Čia yra tai, kad vėl pasaulinį kintamąjį dokumentas.
Čia vėl yra tas metodas, arba funkcija kad sako gauti pagal ID elemento.
Šį kartą noriu gauti ID vadinamas demo.
Kur tai yra?
Štai, matyt, teisė čia pati forma.
>> Ir dabar pastebėti, kad, matyt, jei aš grįžti tą mazgą nuo medžio, kad
reiškia formą pati, o ne tekstinis laukas,
Pasirodo, kad forma, kad mazgas arba stačiakampis iš medžio,
turi ką mes vadiname turtą, labai, labai, labai panašus
dvasia į C struct Tai tiesiog Duomenų narys viduje stačiakampio.
>> Taigi aš turiu formą čia, ir aš prijungti,
ar aš paskiriant, į savo Pateikti prižiūrėtojas ar veikiau Pateikti turtą
šią funkciją.
Ir tai yra, iki šiol, craziest dalykas šiol sintaksiškai.
Pasirodo JavaScript ir PHP ir atvirai tuo klausimu į C,
nors mes neturime daryti, jūs galite pridėti bevardis, anoniminis arba AKA liambda
funkcijos, kurios neturi pavadinimo bet gali būti vadinamas vis.
>> Taigi, ką aš darau čia aš suteikiant Šioje vietoje Pateikti turtą, kuris
yra viduje šio mano DOM medžio mazgas, funkcija, funkcija žymeklis, jei bus.
Ši funkcija neturi pavadinimas, bet tai nereiškia,
klausimas, nes matysime akimirkos, kaip ją vadina.
Kai ši funkcija vadinama, šis kodas paleidžiama vykdyti, tada
false grąžinama kaip ir anksčiau.
>> Bet pastebėsite, ką aš padariau.
Šiuo istorija, turiu formą.
Jis gavo unikalų identifikacijos pavadinimu demo.
Žemyn čia, turiu scenarijaus žymė kad vykdo šį kodą.
Jis prisijungia prie to mazgo jai medžio On Pateikti
nuosavybė ši funkcija čia.
Ir tik iš prigimties, kaip naršyklės darbą, kai aš dabar paspausk Submit arba paspauskite Enter,
kad funkcija ketina gauti vadinamas.
Tai nereikia nes kas vardą Heck rūpinasi, kaip ji vadinama.
Tik laiko jis kada nors gauti vadinama, kai aš pateikti formą.
Nėra jokios man reikia, žmogaus kūrėjas,
kad iš tikrųjų ją vadina niekur kitur.
>> Dabar lygiai taip pat erzina, nes jei tai buvo ne tai lenkimo pakankamai,
mes netgi galite padaryti tai žiūrėti daugiau paslaptingas naudojant
super populiarus biblioteka vadinama JQuery.
Iš tiesų jQuery ir JavaScript dažnai sietų.
Ir tai, ką mes darysime, trečiadienį yra pradžia Naudojant šią kalbą ir šias bibliotekas
statyti vis asinchroninis ir dinaminiai prašymus
kaip žemėlapyje gauti Programas, prašymai
kad atnaujinti realiu tinklalapį laikas, panašiai kaip "Facebook" ar "Gchat
daryti, o ne apsiribosime Paspaudus Pateikti kurią vakaronėse ar tiesiog paštu
vieni.
Taigi, aš pamatysiu jus, trečiadienį.
>> [Muzikos grojimo]