[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? 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. Yra vienas. 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]