[Musiikki soi] DAVID MALAN: Tämä on CS 50, ja tämä on alku viikolla yhdeksän. Ja mitä ajattelimme tehdä tänään ei ole sulkea vain luku viime viikon materiaali, jossa keskityimme palvelimella puoli Web-ohjelmointi PHP ja SQL, Joissakin tietokanta kamaa. Me puhumme hieman turvallisuus tänään ja sitten siirtyminen asiakkaan puolella ohjelma kieli tunnetaan JavaScript. Mutta ensin, jotkut lunastus. Muistatte ehkä, että Keskiviikkona otan pois kirjoittaa verkkosivuillaan, että otti käyttäjän syöttää by HTML-lomakkeen, joka sitten tallennetaan että käyttäjä syöttää nimiä, puhelin numeroita, ja kännykkä harjoittajien tietokantaan. Ja sitten minulla oli hieman komento komentojonoa kirjoitettu PHP joka oli tarkoitus kerrata yli rivit tietokannassa ja lähettää tekstiviestejä. Huolimatta useista, useista yrityksistä, me ei saada, että työn loppuun mennessä. Joten olen viettänyt koko tämän viikon työskentely siitä, että koodi saada meidät ohi pisteen mihin jäimme, jolloin kaikki Sain loppuun keskiviikkona oli tämä tekstiviestin alkaen Margo kuten olen kamppaillut, jonka jälkeen tekstiviestin toisesta luokkatoveri, Sinulla tämä David. Seuraaja tämä yksi, ihanan rohkaiseva. Huusi menossa, hyvin rohkaisevaa. Minä melkein sain sen vasta then-- ja se muistio päädyimme keskiviikkona. Ja sitten itse ehkä suosikkini, Hetken kuluttua tämä tuli. Hitto live stream. Joten tänään, me korjata nopealla katsokaa mitä olen tehnyt vuodesta. Joten kaikki tämä koodi on käytettävissä verkossa viime viikolla, viikolla kahdeksan, lähdekoodia. Ja näet, että kävin läpi, ja olen itse siivonnut asioita hieman. Esittelin pari muuta ominaisuuksia SQL-tietokannan. Esimerkiksi, sen sijaan, vain tehdä kantavan var nieriää koska mielestäni tein lennossa viime viikolla. Minä sen sijaan määritteli sen mitä kutsutaan ENUM. Ja jotkut teistä ehkä nähnyt tämän koska tutkimme C. Enum on todella ominaisuus C, jossa voit luetella koko joukko vakioita ja liittää ne automaattiset arvot, kuten yksi, kaksi, kolme, neljä ilman kovaa koodinumerot. Joten SQL tukee samaa, jolloin jos sinulla on tietokanta kenttä, jota vain halua ottaa yksi rajallinen arvot, voit kirjaimellisesti määrittää sen kuten olen tehnyt siellä neljä Yhdysvaltojen suosituimpia matkapuhelin harjoittajat. Joten tein sen. Ja tein määrä muutoksia hyvin, joista tärkeimmät oli saada sähköpostia toimi, koska muistaa, että tämä ohjelma vedonnut ja jotka yleensä kutsutaan sähköpostitse SMS-yhdyskäytävä, joka on vain hieno tapa sanoa, että Verizon, ja AT & T, ja muut ihmiset tukevat palvelin, jolloin jos se saa sähköposti, se muuntaa sen SMS ja lähettää tekstiviestin Viestin jonkun puhelimeen. Joten jos tein tämän oikein, tässä on uusi ja parannettu muoto joka on menossa puhua uusia ja parannettuja koodi, joka voit pelata verkossa. Ja toivottavasti se tekee minun puhelin äänimerkin vain hetken. Joten ensimmäinen, aion kirjoittaa nimeni. Toiseksi, en ole menossa tehdä tämä tällä kertaa. Aion tehdä Tarkasta Element. Ja tämä on vain pikku juttu joten en luoda tuntia jälkituotanto toimi kuten tein viime kerralla. Siellä nyt on minun puhelinnumero. Minä valitse Verizon. Ja tässä, nyt otat tämän mikrofonin täällä, ja pyrkiä tämän minun puhelin täällä. Aion klikkaa Register, joka toivottavasti laita ne tietokantaan. Nyt aion mennä komentorivi ohjelma, joka Recall oli nimeltään piste slash tekstiä, ja toivoa parasta. Nyt mennään. [PUHELIN nuksissa] [APPLAUSE] DAVID MALAN: Niin hauskempaa kuin this-- se on hauskaa, tietenkin, jos saan sen. Mutta se on enemmän hauskaa, ajattelin, jos me luotu yksi niistä elokuvan hetkiä jos jotain todella pahaa on tapahtunut maailmassa, ja kuten kaikki NSA ihmisten kännyköiden piippaa tekstiviestien ilmoitat heille tämän tosiasian. Joten ajattelin, että olisi kokeilla luoda sama täällä, jolloin ei käytä tietokantaa, Minä sen sijaan etukäteen kirjoitti ohjelma, joka näyttää tältä. Tämä on index.php-- ja laitoin tämän koodin verkossa kuten well-- että ilmeisesti vain tekee form.php, käyttäen MVC tyyli paradigma, että me puhua tarkemmin Harjoitus seitsemän. Tämä muoto on melko yksinkertainen. Se tulee toimittaa tiedosto nimeltä here.php postitse. Ja se ilmeisesti aio kysyä Nimen ja puhelinnumeron, ja sitten kautta ns Valitse valikko, se on aio antaa teille ainakin neljä Yhdysvaltojen suosituimpia matkapuhelin harjoittajat, ja sitten voit tehokkaasti ottaa läsnäolo klikkaamalla tästä. Ja tässä puolestaan ​​on menossa lainata joitakin koodin viimeinen kerta. Ja jos vain lukaista tämän, näet, että siellä on läjän virheentarkistus. Mutta kauneus lopussa on, että emme kirjallisesti tietokantaan tänään. Pidämme asiat yksinkertaisina ja vain lähettämällä toivottavasti tekstiviestin välityksellä toiminto I kirjoitti viime päivinä puhelun Teksti, joka on toiminnot. PHP, joka on jälleen saatavilla verkossa. Joten jos haluat nauttia tässä. Emme aio olla tallentamasta mitään. Siirry osoitteeseen täällä reaaliajassa. Älä lähetä sitä ihan vielä, mutta katsotaan katso jos voimme olla yksi näistä elokuva hetkiä, jolloin kaikkien kännykkään piippaa, toivottavasti vain kerran tänä vuonna toisin kuin vuonna 2011 jos tämä meni pahasti pieleen. Ja kun menet kyseiseen osoitteeseen, sinun pitäisi nähdä Super yksinkertainen muoto että jos sinulla on nimi, matkapuhelin numero, ja matkapuhelin harjoittaja, joka ottelut lista siellä, mene eteenpäin ja täytä lomake. Mutta älä paina lähetä vielä. Lomake tulee näyttämään tältä. Mennä eteenpäin ja kirjoita nimesi, puhelinnumerosi. Oop, joku menee kärjessä. Se on OK. OK, kaikki on täytetty lomake. Tämän pitäisi toimia puhelin, liian, jos haluat. Okei, teidän Paikoillanne, valmiit, mene. Hit Here. Mitä? Ei. Vannon, testasin Tämä useita kertoja tänään. Ymmärsitkö? [Väliin ÄÄNTÄ] DAVID MALAN: OK, käyttäjä virhe ehkä. Se on kaksi. Se toimi kaksi ulos muutama sata, kolme, neljä. OK, se on hyvä. Neljä viidestä varten oikeellisuuden entä. Joten mitä juuri tapahtui? Joten oletettavasti ilman näkemästä näytöt, miksi ehkä se on errored? Se on varmaan, että olimme juuri yrittää tehdä liian monia yhteyksiä Harvardin sähköpostipalvelin kaikki kerran samasta IP-osoitteesta. Olen vain arvailla, koska en ovat ylellisyyttä testaus Tämän koodin joidenkin 300 ihmistä etukäteen mutta nyt ymmärtää, että että ainakin pitäisi ovat saaneet työnsä tehtyä tällä kertaa. Okei, joten miksi tämä kaikki lisää germane mitä on tekeillä? No ensimmäinen, nopea Muutaman ilmoitukset. Joten, jos haluat liittyä Chang, ja Nick, ja toiset lounaalla perjantaina, tehdä RSVP tavanomaiseen URL siellä. Jos olet ajatellut keskittämällä tai tekee toissijainen CS, olitpa toisen vuoden opiskelija, tai fuksi, tai jopa nuorempi tai vanhempi tässä vaiheessa ja voi vielä puristaa kursseja, ymmärtää, että tekniikan koulu kokoaa ilmaiseksi Ben ja Jerryn jäätelöä ja neuvoja keskiviikkona pian sen jälkeen luokan klo 16:00 CS rakennus Maxwell Dworkin. Jos tämä on liian nopea ruudulla, vain mennä jotta cs50.harvard.edu varten linkki Facebook-tapahtuma jossa voit nähdä enemmän yksityiskohtia. Samaan aikaan, ajattelin korjata yhden asian olen goofed keskiviikkona. Osoittautuu, että Markuksen tunnus Facebookissa ollut kolme. Se oli neljä. Osoittautuu, hän oli enemmän testi tilejä kuin muistan. Mutta mitä tämä tuntui tilaisuus tehdä, on vetää URL kuin tämä. Joten näyttää siltä, ​​että Facebook on API, Application Programming Interface, mikä on mekanismi, jonka avulla voit voi pyytää tietoja ohjelmallisesti Facebookissa ja saada takaisin koneeseen luettavaa tietoa, ei verkkosivuja mutta vain raaka tekstiä, jotain kutsutaan JavaScript Object merkintätapa. Ja itse asiassa, jos käyn tätä URL, ja lähennä, oletuksena, tämä on Markuksen julkisesti saatavilla olevaa tietoa. Ja mielenkiintoinen yksityiskohta tässä vain, että hänen ID on todellakin numero neljä, jonka minä tajusi heti kun tein tämän. Voit tehdä tämän itse, jos tiedät Facebook-käyttäjätunnus, jos sinulla on sellainen. Kirjoita se ylös sieltä. Ja mikään tästä on yksityinen. Teen vain tämän vielä vuonna incognito-tilassa. Joten en ole edes kirjautunut sisään. Ja te näette, että minä ilmeisesti oli käyttäjä numero 6454 Facebook, joka ei ole Harmi näinä päivinä. Joten joka tapauksessa, näet myös Lisätietoa siellä. Ja hyödyllinen näkökulma ja se on, että te voisi kirjoittaa oman ohjelmiston, joka jotenkin integroi tiedot, kuten tämän omaan sovellukseen. Voit valtuuttaa käyttäjiä kirjaudu verkkosivuilla, eivät käytä omia mukautettuja käyttäjätunnus ja salasanan mutta ehkä heidän Facebook-kirjautuminen ja saada tietoa jopa heidän ystäviä, jos ne hyväksyvät tällaisia ​​tai vastaavia. Niin huomaa, että CS50, liian, on joitakin omia API, yksi kurssi luettelon tietoihin jotkut halauksia valikot ruokailu salia, kaikki rakennukset ja paikat kampuksella meillä API samoin että voit kyselyn samalla ja saada takaisin sanallista tietoa, että voit integroida osaksi PHP tai JavaScript, tai jopa, vaikkakin harvemmin, C perustuu opinnäytetyön. Itse eteenpäin lopullinen Hanke on muutamia virstanpylväitä. Sait sähköpostia meiltä toinen päivä. Ymmärtää, että ehdotus johtuu tulevana maanantaina. Se ei ole välttämättä sitovia, mutta älä tarvitsee saada opetusta kaverit hyväksyntä ennen Sen jälkeen muutoksista. Ja sitten Haasteina ovat useita muita virstanpylväitä. Joten kiusata sinuakin, joitakin mahdollisuuksia, meillä on nippu Näiden sävyn lamput. Ja jotkut teistä kaverit nyt on joitakin Näiden teidän asuntolan huoneessa samoin. Ja heilläkin API. Joten palauttavat binary sipulit viikkoa sitten, että Dan Bradley ja Ansel Duff meitä varten. He käyttivät ohjelmointirajapinta tämä lamppu, joka tällä hetkellä on kytketty sähköä ja sitten langattomasti kytketään pikku juttu nimeltään Bridge tänne, kuin pieni reitittimen oma tämän laitteen kanssa. Mutta se osoittautuu jos tiedän, miten lähettää HTTP-viestejä, kuten me kaikki nyt tehdä, Voin lähettää viestin tämäntapaisella tämä lamppu kytkeä päälle tai pois päältä tai tehdä mitään määrää muut toiminnot sitä. Huomaa, että se ei päästä, se ei lähetä. On toinen nimeltään laittaa. On itse asiassa muutamia muita tällaisia ​​verbejä. Mutta huomaa siellä on tie sinne, slash API, slash uusi kehittäjä, slash valo, slash yksi, slash valtio. Se on ilmeisesti vain polku, että yritys, Philips, päätti täytyy lyödä kanssa HTTP-pyynnön Jos haluat muuttaa valtion sipulin HTTP 1.1. Sitten huomaa tyhjä rivi. Ja sitten lopuksi mitä näyttää Tällainen joukko jonkinlainen, tämä taas tulee kutsua JavaScript Object esitystä tai Jason. Ja mitä näet on, että on kolme keskeistä arvoa paria. Yksi avain on kehottanut. Ja sen arvo ilmeisesti tulee olemaan totta. Kirkkaus on 128, joka on jonkinlainen int. Ja sitten siirtymisen aika on nolla, joka on ilmeisesti kuinka kauan se tulee ottaa kääntää tämä asia on. Joten nyt tämä lamppu on pois päältä. Mutta jos en tee juuri this-- anna minun mennä hieman lunttilappua että Dan perustettiin vuonna advance-- ja aion mennä eteenpäin ja kopioi seuraava komento. Curl, kuten jotkut teistä ehkä päätellä siitä CS50 Keskustele on hyödyllisyys kuin Telnet kuten että voit simuloida HTTP-pyyntöjä, nimenomaan tuo. Voin lähettää nämä tiedot, erityisesti mitä vain näki hetki sitten erikseen Tämän URL-osoitteen tänne. Ja sitten Curl tulee käsitellä kaikki tarvittavat otsikot ja jäsentämiseen siellä on. Joten kaikki minun täytyy tehdä, on kopioida tämän huomioon terminaali-ikkuna ja paina sitten Enter. Ja lamppu syttyy. Ja tämä kaikki on menossa läpi Oma tietokone langattomasti jotenkin alas sillan, joka Sitten puhuu tämän hehkulamppu. Voin tehdä jotain muuta. Voin tehdä tämä asia mennä punainen esimerkiksi. Voin esimerkiksi tehdä tämä juttu mennä vihreä. Voin tehdä sen mennä sininen. Ja huomaa kussakin näistä tapauksissa kaikki, että olen muuttumassa on niin sanottu värisävy arvo todella antaa sille väriä. Haluan siis liitä tämä yksi samoin. Nyt se on sininen. Ja voit tehdä vielä hienompaa asiat where-- mennään vihreäksi. Ja voisin tehdä tätä on Tietenkin omalla koodilla. Mutta vaikka API itse tukee funky toiminta kuten tämä, joka nyt viitsi meille seuraavan 30 sekuntia. Niin, että yksi maku mitä voisi tehdä API, tämä liittyy lamput. Huomaa, että CS50 on pari paria Google Glass Jos haluat haluan puuttua jotain pitkin nämä rivit, Arduino Unos, joka ovat pikku tietokoneita, olennaisesti, on pieni piirilevy että voit liittää johdot ja muut asiat antamaan ja ohjaus reaalimaailman ympäristö. Ja sitten on olemassa pari uusia leluja, jotka meillä on. Tämä yksi kirjaimellisesti juuri saapunut toinen päivä postitse, Myo käsivarteen. Ja ajattelin, että se on tapa sinut innostumaan hankkeista että saatat käyttää tämä laitteisto olisi olla pelata tätä lyhyen pätkän että he käyttävät kiusata ihmisiä että me nyt elävät tulevaisuudessa. [Musiikki soi] DAVID MALAN: Eli vain muutaman viikon, voit Sekin voi olla, että viileä CS50 oikeudenmukainen. Toiseen laitteeseen, että me on nippu, että olemme mielellään lainata ulos hankkeisiin kutsutaan liikeohjaimelle. Tämä on pieni USB-laite liität tietokoneeseen, joka avulla voit vuorovaikutuksessa kannettava tietokone, Mac tai PC, ikään kuin sinulla oli kuin Xbox Kinect ja todella tehdä fyysisiä liikkeitä paljon kuten näemme tässä visio tulevaisuudesta. [Musiikki soi] DAVID MALAN: Eli vaikka olet Ei aavistustakaan, miten tuollaista voitaisiin mahdollisesti keksitty tai työn on laitteiston tasolla, ei väliä. Senkin jälkeen vain muutaman kuukauden CS50, ja ymmärrystä ohjelmointi yleisemmin, ja web-ohjelmointi lisää äskettäin, ja sitten myös API, ja HTTP, sinulla on pääsy kautta ohjelmistojen API jos eivät halua lainata yksi näistä laitteet oikeastaan ​​puhua siitä ja ei tarvitse murehtia taustalla täytäntöönpano yksityiskohtia, joka on täysin sopusoinnussa tämän käsitteen kerrospukeutuminen abstraktio, että olemme nähtävissä koko lukukauden. Joten myös viikonlopun aikana, näki pari uutista. Mennä ensin, mene seminaareihin jos haluaisivat oppia jotain lisää tahansa monista aiheista. Katso URL siellä. Ja tämä lähetettiin minua Chang, jotka tiedätte, kuka tulostus armeijamme norsuja. Ja se oli otsikko seuraavasti. Olen kauhuissani minun uusi TV. Miksi olen peloissani tehdä tästä asia ja haluat olla liikaa. Joten olemme nyt viittaavat lukukauden, liian, jos vaikka sinulla pienintäkään ymmärrystä miten web toimii, ja HTTP, ja turvallisuus, asioita, kuten tämä pitäisi alkaa kiinnitettyä. Mutta myös, sinun ymmärtää ovatko nämä asiat ovat tai eivät ole Varsinainen uhkia. Joten otin muutamia otteita Tämän artikkelin täältä. Ja tarina on seuraava. Olen nyt omistaja Uusi Smart TV, joka lupaa tarjota streaming multimediasisällön, pelejä, app, sosiaalinen media ja internet selailu, oh ja TV liikaa. Ainoa ongelma on, että olen nyt pelkää käyttää sitä, sanoo kirjailija. Sinun olisi myös, jos luet 46 sivun tietosuojakäytäntöversion TV. Tietomäärä tästä asia kerää on huikea. Se lokit missä, milloin, miten ja kuinka kauan käytät TV. Se asettaa evästeet, kuten olemme keskustelleet, ja majakat suunniteltu havaita, kun olet katsottu tiettyä sisältöä tai Erityisesti sähköpostiviestin Jos haluat tarkistaa sähköpostin televisiossa. Se tallentaa apps sinulle käyttää verkkosivustoja, ja miten olet vuorovaikutuksessa sisällön, tekee kaiken tuon kautta Smart TV. Se myös, creepier yet-- se on minun addition-- on sisäänrakennettu kamera kasvojen tunnustamista. Tarkoituksena on tarjota liikeohjaus TV ja voit kirjautua sisään henkilökohtaisen tilin kasvosi. On ylösalaisin, kuvat ovat tallennetut TV sijasta siirretyille jotta yrityksen palvelin. Haittapuolena, internet liitäntä tekee koko TV alttiita hakkerit, jotka ovat osoittaneet kykynsä ottaa kokonaan koneen hallinnan. Pulmallisempia, ikään kuin tämä ei niin fiksu, on mikrofoni. TV ylpeilee ääni tunnustaminen ominaisuus jonka avulla katsojat pääsevät ohjaamaan näytön äänikomennoilla. Mutta palvelu tulee melko pahaenteinen varoitus. Huomaa, että jos puhuttua sanaa sisältävät henkilökohtaisia ​​tai muita arkaluonteisia tieto, että tiedot on joukossa keräämän tiedon ja lähetetään kolmannelle osapuolelle. Ymmärsitkö? Älä sano henkilökohtaisia ​​tai arkaluontoisia tavaraa television edessä. Joten tämä on todella todellinen. Ja on vaikea olla näkemättä, jos Siirry Best Buy tai vastaava televisiot näinä päivinä. He kaikki ovat älykkäitä jollain tavalla. Ja he saavat älykkäämpiä ja creepier. Ja he yksinkertaisesti kerätä tietoja tavoilla, jotka olemme puhuneet ja sitten lataamalla se HTTP tai jokin muu protokolla jossain palvelimelle. Joten tämä oli hauska artikkeli Tässä online-sivustolla täällä, jossa puhuttiin Erityisesti vika tai virheellinen koodi että voimme todella sitoa viime viikon keskustelua. Joten tämä otsikko oli seuraa, tarina menee täällä, Josh Breckman työskenteli yritys, joka laskeutui sopimus kehittää sisällön hallinta järjestelmä, tai CMS niitä kutsutaan, ja melko suuri hallituksen verkkosivuilla. Suuri osa hankkeen mukana kehittämällä content management system jotta työntekijät olisivat osaa rakentaa ja ylläpitää alati muuttuvassa sisältöä niiden päällä. Asiat menivät melko hyvin muutaman päivän kuluttua menossa suorana. Mutta kuudentena päivänä, asiat menivät huonommin. Kaikki sisältö sivusto oli täysin kadonnut. Ja kaikki sivut johti oletus, kirjoita sisältöä web sivulle. Oho. Josh kutsuttiin tutkimaan ja huomasin että yksi erityisen hankala ulkoinen IP-osoite oli mennyt ja poistanut kaikki sisällön järjestelmään. IP-osoite ei kuulu jossain ulkomailla hakkeri taipunut tuhota hyödyllinen julkista tietoa. Se päätti googlebot.com, Googlen oma web indeksoinnin hämähäkki. Oho. Jälkeen vähän tutkimusta ja muokkaamisella noin löytää noncorrupt varmuuskopio, Josh löysi ongelman. Käyttäjä oli kopioitu ja liittää joitakin sisältöä yhdestä sivulta toiselle, kuten Edit Hyperlinkki muokata sisältöä sivulla. Normaalisti tämä ei olisi kysymys, koska ulkopuolinen käyttäjä täytyy syöttää käyttäjätunnus ja salasana, mutta CMS authentication järjestelmä, Kirjaudu järjestelmä, ei ottanut huomioon hienostunut hakkerointi tekniikoita Google Spider. Oho. Kuten on käynyt ilmi, Google Spider ei käytä evästeet, mikä tarkoittaa, että se voi helposti ohittaa tarkistaa on kirjautunut evästejoukon vääriksi. Se ei kiinnitä huomiota JavaScript, jotka normaalisti kysyy ja ohjaa käyttäjiä jotka eivät ole kirjautuneena sisään. Se ei kuitenkaan seuraa jokaista hyperlinkki jokaisella sivulla se toteaa, myös ne, joilla Poista sivu otsikossa. Oho. Mitä tämä tarkoittaa lisää tekninen mutta melko helppotajuinen? Se vain tarkoittaa, että koko niiden verkkosivuilla, heillä oli URL-osoitteita ei toisin tämä yksi, joka saatat nähdä ongelman asettaa seitsemän. Recall ongelma asettaa seitsemän tai tietää ongelman asettaa seitsemän että olet haastoi, muun muassa, myydä varastojen käyttäjien puolesta. Mutta täytäntöönpanossa kyseistä ominaisuutta Poiketen get kautta hyperlinkkejä käyttäjä käyttöliittymä, luultavasti ei fiksuin idea koska jos sivusto on jotenkin jonne pääsee joko ihmisen kuka klikkaamalla ympärille tai osta bot kuten Googlen tai Spider kuten niitä kutsutaan, joka on juuri indeksointi web yrittää indeksoida raina hakukoneen, he voisivat hyvin helposti osuma kautta saada tällaista URL. Ja se on toiminnallisesti vastaa tässä tapauksessa, myydä kaikki osakkeet Google. Nyt rehellisesti, se on täysin aasimainen että CMS Käytetyt JavaScript ja evästeet toteuttaa sen kirjautumisjärjestelmään ja ei tee sitä palvelimen puolella, koska teette ja tahtoa PSET 7-- siellä login.php file-- aina, aina, aina turvallisuus olisi tehdään palvelimen puolella, ei asiakkaan puolelta, koska tämä artikkeli ehdottaa ja saatat itse nähdä jossain vaiheessa, se on vähäpätöinen käyttäjä, hyvä tai huono, vain sammuttaa JavaScript puhumattakaan evästeitä. Niin, että on päivittäinen WTF. On vielä yksi, joka on juuri sellainen pelottava, niin minä mainitsen sen, jos vain elämän oppitunti. Kun käytät sovelluksen kutsutaan kuten Snapchat tai vastaavaa joka sanoo nämä kuvat vain kestää viisi sekuntia, kymmenen sekuntia, tai vaikka mitä. He hetkellistä Eli ehdottomasti ei pidä paikkaansa. Kuin ei ole mitään keinoa, digitaalisesti, toteuttaa jonkinlaista video, tai kuvan tai tekstimuotoinen jakaa tällaiset että vastaanottaja toisessa päässä voi jotenkin pelastaa tiedot. Kaikkein naiivi tapa, joku voisi niiden puhelimeen. Ja niillä on 10 toinen ikkuna kun katsot joitakin Snap vain ottaa jokin muu puhelin ja kuvata sitä, tietenkin. Joten voit säilyttää jotain digitaalisesti niin. Jotkut teistä tietävät, miten ottaa kuvakaappauksia puhelimen. Itse asiassa, jos et tiedä tätä, ymmärtää, että ainakin Snapchat, ja mielestäni muut sovellukset näinä päivinä, ainakin kertoa, jos vastaanottaja on todella otettu kuvakaappaus kuvasi. Mutta vielä pahempaa, tämä oli snappening, kuten joku keksi sen äskettäin, jossa jotkut 100000 nepparit oli vapautettu mitä kutsutaan torrent-tiedosto eri verkkosivustoja lopulta. Ja nämä sisälsivät läjän Yksityisten viestien ja. On käynyt ilmi, useimmat niistä hyvänlaatuinen, joten mitä voisi odottaa. Mutta koska ihmiset olivat käyttää kolmannen osapuolen verkkosivuilla, kirjautumalla heidän Snapchat käyttäjätunnus ja salasana ja sitten säästää kaikkien niiden nepparit tämän kolmannen osapuolen verkkosivuilla. Ja se oli, että kolmas osapuoli sivuston, joka oli hakkeroitu, joka vain tarkoitti joku tajunnut, miten saada kaikki 100000 plus niistä kuvista omiin kovalevy myöhempää jakamista. Rehellisesti, tässäkin, se on eräänlainen on typerä että Snapchat on toteutettu siten, että kolmas osapuoli voi tavallaan siepata tiedot ja että se ei ole sidottu sinun oma sovellus käynnissä puhelimessa. Mutta tässäkin, ymmärtää, että nämä asioita ei saisi sinut kiinni yllätyksenä, tai ainakin pitäisi olla elämän oppitunti täällä. Jos haluat teknistä Lisätietoja kohdassa, että URL on se on nykypäivän dioja. Okei, kysyttävää Nykypäivän elämän oppitunteja CS? Käännä se pois päältä. Yhtään mitään? Yhtään mitään? Minulla on paljon ihmisiä tarkkailun niiden Snapchat tai jotain nyt. Okei, joten SQL, Structured Query Language. Homma pakettiin. Ja myös, vaikka me vain naarmuuntumista pinta tämän kieli, annamme sinulle tarpeeksi kieli muodossa PSET 7 jotta voit ratkoa melko yleinen toimivuus. Mutta ymmärrän, että pari mitä emme vaadi sinua, mutta he tulevat olemaan tärkeää tulla lopullinen hankkeita ja varmasti tulee tekemään varsinaisen sivustot todellisten käyttäjien kanssa on tällä grafiikalla päätös. On käynyt ilmi, että MySQL-tietokanta, voit on risuryppäät valintoja, kuten tietotyyppejä sarakkeet ja muita asioita, mutta on myös valinta ns varastointi moottori kaikki tiedot, tavallaan tiedostojärjestelmä, jos olet tuttu, kaikkien teidän tiedot. Missä muodossa se lopulta tallennetaan? Ja yleisin, ehkä, on ollut MyISAM ja InnoDB, tekniset termit että me välitämme vain siinä määrin, että yksi on ja yksi ei seuraavan ominaisuuden. Oletetaan, että sinulla on pieni asuntolan jääkaappi. Ja olettaa, että te ja teidän kämppäkaveri, jotka jakavat tämän jääkaappi, ovat todella ihastunut vaikkapa maitoa. Ja tämä on, itse asiassa, miten tarina kerrottiin minulle paluumatkalla päivällä kun otin kurssin nimeltään CS 161 käyttöjärjestelmät, jotka Samoin tutkii tätä aihetta. Joten sinulla tämä jääkaappi. Olet poissa maitoa. Ja tulet kotiin, teidän kämppäkaveri vielä luokan tai mitä tahansa, ja päätät aion mennä ulos ja saada maitoa. Joten suljet jääkaappi, kaaduttua asuntolan huoneessa, mene kadun CVS tai minne, ja saada linjassa ostaa maitoa. Samaan aikaan, kämppis tulee kotiin luokasta, joutuu asuntolan huoneessa, avaa jääkaappi, myös tajuaa ooph, olemme maitoa. Joten hän sulkee jääkaappi ja sitten tapahtuu mennä muiden CVS, joka sattuu olemaan yhden korttelin päässä muista CVS aukiolla, ja pääsee linja siellä saada maitoa. Nyt, tietenkin, muutaman minuutin myöhemmin, saatte molemmat takaisin, ja pahinta mahdollista Tavoitteet on tapahtunut. Molemmat teistä on maitoa. Ja et todellakaan kuten maitoa niin paljon. Niin yksi niistä on vain menossa hapan jossain vaiheessa. Joten nyt sinulla on liikaa maitoa jääkaappiin kaikki johtuu miksi? [Äänetön] DAVID MALAN: Joo, et ole jotenkin kommunikoida toistensa kanssa että olit saada maitoa. Niin yksinkertaisin tapoja ihmisten maailmassa, miten voisit välttää tämän tyhmän skenaario tapahtumasta kuten että olet vain päätyä yhteen. Text heitä, kyllä ​​hyvä. Mutta miten muuten? Post-it toteaa. DAVID MALAN: Post-it. Kaikenlainen viestintä joka kertoo kämppäkaveri älä mene jääkaapissa maitoa. Aion mennä keinometsittämistä itsekseni. Joten jotenkin tarvitset lukita tätä resurssia. Joten voimme tehdä this-- voimme eräänlainen pilata tarina ja muuttuu CS tarina jolloin ajatella tätä aivan kuten muuttuja, joka tallentaa parhaillaan jotain arvoa. Ja juuri nyt, arvo maito on nolla, jota et halua kämppis tarkastaa, että muuttuja ja sitten tehdä päätös itseään tilan perusteella kyseisen muuttujan jos olet parhaillaan tilan muuttamiseksi, että muuttuja. Joten yksi riviä SQL että me antaa sinulle PSET 7 erittely on tämä yksi täällä. Emmekä viettää valtava aika puhua siitä. Mutta näyttää siltä, ​​jos yrität ostaa hyllyssä CS50 rahoitus että sinulla on jo jotkut osakkeet, te haluavat pystyä tekemään useita asioita hetkessä yhdessä. Haluat pystyä tehokkaasti, korkealla tasolla, katso kaikki oikeassa, jos haluan ostaa lisää osakkeita Ilmainen, penniäkään varastossa puhua spec, Haluan ensin tarkistettava kuinka paljon osakkeita minulla on. Ja kai se on viisi. Ja kai haluan ostaa 10 enemmän, minä lopulta halua olla 15 osakkeella. Joten minun täytyy kysyä kaksi kysymystä. Mikä tila muuttuja? Mikä tila peräkkäin? Kuinka monta osaketta voin tällä hetkellä? Sitten haluat mennä eteenpäin ja päivittää sitä. Niin, että analogisesta maitoa, että tarkistat rivin, ja sitten haluat päivittää koska jos haluat ostaa 10 osaketta, et halua muuttaa rivi 10, voit haluat vaihtaa sen 5 plus 10 tai tietysti 15. Koodirivin varmistaa, että nämä kaksi käsitteellisiä ideoita tapahtua yhdessä tai ei ollenkaan. Kukaan, kuten jotkut muut käyttäjän kuka on kirjautunut samalla sivustolla, voi jotenkin keskeyttää tarkastukset rivin ja päivittäminen rivin, valita ja päivittää, jos tahtoa. Ja syntaksi ei ole super ilmeinen, mutta tämä yksi rivi, pitkä on se, varmistaa, että nämä kaksi toimintaa Tarkista muuttuja tai tarkista rivin ja päivittää rivi tapahtua atomisesti. Voi taas mennään. Tekstiviesti puhelimeen. Joten tehkäämme tästä hieman konkreettisempi. Oletetaan, että et ole täytäntöönpanosta jääkaappi, ja et ole täytäntöönpanosta PSET 7 mutta varsinainen pankki, tai ATM, pankkiautomaatti Kone, jolloin sinulle jotenkin haluavat voitava valtuuttaa käyttäjät voivat siirtää rahaa yhdeltä tililtä toiselle. OK, roikkua. Aion mykistää tähän nyt, kiitos. Joten haluamme siirtää rahaa yhdestä tilinumero eri tiliin määrä, erityisesti 100 dollaria. Joten tämä on tavallaan mielivaltainen Esimerkiksi, jolloin te, ATM, kannattaa suorittaa kahden SQL kyselyt, vähennä yhdeltä tililtä, ja lisätä toisen tilin. Mutta haluat varmistaa, että nämä kaksi riviä molemmat tapahtuu tai ei ollenkaan. Et halua jotain saada keskeytynyt. Et jotkut fiksu pahis jotenkin seisoo Bank of America kaksi pankkiautomaatit edessä hänestä ja jotenkin tavallaan kirjoittamalla komentoja samanaikaisesti, toivottavasti yrittää vähentää 200 dollaria sijaan 100 dollaria ja vain ottaa 100 dollaria hyvitetään. Lyhyesti sanottuna, et halua näin käyttäytyvät juuri niin kuin odottaa. Ja miten teet Tämän SQL-tietokanta on kääri se mitä kutsutaan liiketoimi. Kirjaimellisesti SQL, voit soittaa CS50: n hakutoiminto lainaamalla lainaus alku liiketoimi. Sitten voit suorittaa minkä tahansa määrän myöhempien SQL-kyselyjä, mutta mikään niistä ei tule Vaikutus tietokantaan kunnes puhelu Kysely lainaus lainaus sitoutua, jos taas PHP. Ja tällä tavalla voit varmistaa, että vaikka sinulla on 1000 käyttäjää kaikki lyömällä tietokannan samaan aikaan, SQL- lupaavat, että nämä kaksi kyselyt toteutetaan yksi oikea toisensa jälkeen. Niin et päädy yli maitoa tai väärän summan, lopulta, rahaa. Niin pitää tämä mielessä, ei niinkään PSET 7 mutta lopullinen hankkeita Jos olet itse yrittää siirtää dataa noin taulukkojen kuten ehkä täällä. Mutta ehkä vieläkin helpompaa ja ilmeinen ymmärtää esimerkin on tämä yksi täällä. Ja joku on lähettänyt meille Tässä vain toinen päivä kun hän näki jotain vastaavaa verkossa. Joten minun tietääkseni, tappi järjestelmä ei Tämä heikkous. Ja minulla ei ole aavistustakaan, jos se edes käyttötarkoitukset SQL-tietokannan alla huppu. Mutta katsotaanpa käyttää sitä vuoksi keskustelu. Tässä on näyttö, joka Harvard ihmiset yleensä nähdä, kun kirjaudut sisään heidän Harvard tunnistenumeron ja niiden pin. Ja olettaa, että tappi järjestelmä oli toteutettu PHP ja MySQL tietokanta, koodi että joku ehkä kirjoittanut vuotta sitten voisi näyttää tältä. Ensimmäinen, julistaa muuttuja nimeltä käyttäjätunnus. Ja vain saada että vuodesta POST superglobal. Sitten saat toisen muuttujan nimeltään salasanan ja tehdä samoin. Ja sitten vain toteuttaa Tämän pitkän kyselyn täällä, Valitse tähti käyttäjiltä jossa käyttäjätunnus on sama kuin siinä ja siinä ja salasana on sama kuin niin ja niin. Huomaa, että kihara henkselit olen käyttänyt täällä tarkoita vain PHP, mennä eteenpäin ja korvaavaa arvon näiden kahden muuttujat oikeassa. He eivät ole ehdottoman välttämättömiä, mutta he pyrkivät välttämään hienovaraisia ​​syntaksivirheitä. Joten tämä näyttää täysin oikea ensi silmäyksellä. Ja se on. Voisit toteuttaa pin järjestelmä tällä tavalla. Mutta oletetaan, että Super älykäs ja ilkeä opiskelija input tätä hänen pin. Joten olen poistanut luodin merkkejä täällä pilkata ylös, ja olen todella paljasti mitä hän voisi olla kirjoittamista. Ja se on vähän outoa. Mutta mitä hyppää ulos sinua mahdollisesti huolestuttava noin käyttäjän panos, vaikka sinulla ei ole aavistustakaan, mitä SQL-injektio hyökkäys tarkoittaa. Miksi tämä näyttää hieman hämärä? Mikä tuo on? [Äänetön] DAVID MALAN: tai on hieman epäilyttävää. Itse asiassa, se on avainsana SQL. Niin että ei tiedä hyvää. Se, että on olemassa kaikki nämä puolilainausmerkkejä there-- itse asiassa, yksi helpoin tapoja rikkoa joitakin tietokantoja on kirjoittamalla nimi, kuten O'Reilly että on heittomerkki siinä sillä jos ihmisten, jotka kirjoittivat koodi kulissien takana ei oteta huomioon, että siellä voisi olla yksi lainauksia käyttäjän tulo, ja hän käyttää puolilainausmerkkejä niiden koodin, huonoja asioita voi tapahtua. Itse asiassa vielä pahempaa, pitävät tätä. Jos tämä oli taas koodi että joku Harvardin vuotta sitten kirjoitti pin järjestelmä, huomaa, mitä on saamassa substituoituja käyttäjätunnusta ja salasanaa jos käyttäjä on jälleen skroob niiden käyttäjätunnus ja sitten yksi, kaksi, kolme, neljä, viisi, lainaus tai lainaus lainaus yksi on lainata yksi. Ja huomaa, mitä on avain tässä käyttäjä ei ole aloittivat salasana tai niiden pin tarjouksen. Ja he eivät ole päättynyt sitä siteeraamalla koska hän lähtee siitä, että jos ohjelmoija ei ollut niin terävä, he ovat menossa nämä puolilainausmerkkejä niiden koodin. Joten tässä on koodi. Ja korvaaminen että saattaa tapahtua nyt on tämä. Ja olen korostanut, mitä käyttäjä on kirjoitettu. Joten ennen, jälkeen. Ja huomaa, mitä on lievästi huolestuttavaa nyt oikeudesta puolet tämän SQL-koodin? Se on hieman monimutkaisempi, tosin kuin kyselyt olemme nähneet. Mutta näin ei voi olla hyvä asia, jos olet sanomalla Valitse tähti, joka on valitse kaiken käyttäjän taulukko jossa käyttäjätunnus on sama skroob ja salasana on yksi, kaksi, kolme, neljä, viisi tai yksi on yksi. Mikä on looginen seuraus Tämän viimeksi mainitun lausekkeen oletettavasti? Se on vain aina totta. Ja koska olemme tavallaan arvasi tai tajunnut haparoiden että ohjelmoija joka Kirjoitin tämän koodin ei ennakoida ihmisten tai paha ihminen kirjoittamalla heittomerkkeihin samoin, Voimme syntaktisesti täydellinen SQL-kysely jotain järjetöntä vaan jotain, on syntaktisesti virheellinen että aina tosi. Joten jos tätä koodia käytetään vastata kysymys tosi tai epätosi olisi tämä käyttäjä saa kulkea, Vastaus on aina ilmeisesti menossa olla totta, koska se on aina menossa Valitse jotain tietokannasta koska yksi tietenkin aina yhtä kuin yksi. Joten mikä on ratkaisu? No PSET 7, me oikeastaan välttää tämä kaikki yhdessä. Annamme sinulle hakutoiminto, ja me Kannustamme sinua käyttämään kysymysmerkkejä paikkamerkeiksi, samanlainen hengeltään printf n% s, mutta mitä näppäintä noin kysymysmerkkejä täällä on, jos itse lukea läpi functions.php, jossa meidän hakutoiminto on toteutettu, näitä kysymysmerkkejä on karannut, jolloin mitään mahdollisesti vaarallisia kuten heittomerkki käännetään osaksi karannut heittomerkki. Joten tämä on mitä todella tapahtuu, jos käyttää CS50: n hakutoiminto tai useita Kolmansien osapuolten vapaa kirjastot tehdä samoin. Ei ole väliä tässä tapauksessa, vihreä, jos käyttäjä on kirjoittanut yhdessä lainaus koska kysely toiminto, joka kirjoitimme on aio lisätä kenoviivoja ennen tällaista vaarallista lainaus. Joten tämä ei ole, vuonna Itse asiassa tulee olemaan legit. Tämä on kuin kirjoittamalla hullu näköinen salasana, joka on, tietenkin, ei tule olla skroob todellista salasana. Joten takeaway CS50 on yksi, ehdottomasti aina käyttää jotain kuten CS50: n hakutoiminto tai taustalla kirjasto, joka sattuu olemaan nimeltään SAN. Mutta ei koskaan, ei koskaan, koskaan tee koodi näin ilman karkaaminen tai hankaamalla kuten he sanovat teidän tuloa. Ja tulet jossain vaiheessa luultavasti törmännyt verkkosivuilla kuten tämä. Itse asiassa se näyttää olevan kyse kuten lentoasemilla ja hotellit paikoissa jos niillä on ilmainen Wi-Fi yhteys, että sinun täytyy kirjautua sisään, nämä sivustot ovat aina hirvittävän täytäntöön. Ja niin tavallaan hauskaa kotona liikunta, ei haitallisiin tarkoituksiin tai enemmän hauska tiellä liikunta, on kirjoita heittomerkki, heittomerkki, muotoon joitakin verkkosivuilla ja katso mitä tapahtuu. Ja jos palvelin kaatuu tai antaa sinulla jonkinlainen virheilmoitus, se voi hyvinkin olla, että joku ei ennakoinut tätä. Ja sitten sinun pitäisi varoittaa asianmukainen viranomaisten ja jatka enää. Joten nyt te toivottavasti ymmärtää hieman nörtti huumoria täällä. [Naurua] DAVID MALAN: Tiedät pelle. Usean seuraavan vuotta, muistat joka pikku Bobby taulukot on koska tämä sarjakuva täällä. Niin pitää tämä mielessä, kun me konstentinvaihdot viimeisen kerran tänään JavaScript. Olemme viettäneet suhteellisen vähän aikaa syntaksin PHP koska se on todella Super samanlainen C. Ja kauniisti tarpeeksi, JavaScript liian on erittäin samanlainen kuin C: n syntaksin sekä me nähdä vain hetken ja kuten tulemme katso myöhemmin tällä viikolla erityisesti. Mitä voit tehdä tällä kielellä, vaikka on kaikki voimakkaampi, erityisesti API. Mutta ensin lyhyt esittely. Joten, JavaScript, siellä Ei päätehtävä, mikä on mukavaa. Kuten PHP, voit vain kirjoittaa koodia. Olosuhteet näyttävät tältä. Ja Boolen pitää näyttää tältä tai näin. Kytkimet olemassa, ja ne voisi näyttää tältä. Neljä silmukoita näyttää tältä. Vaikka silmukat näyttävät tältä. Tehdä whiles näyttävät tältä. Ja sitten taulukot näyttävät Tämän, hyvin samanlainen kuin PHP. Mutta huomaa, että JavaScript sinua julistaa muuttuja eikä dollari allekirjoittaa, ei tietotyyppiä vaan kirjaimellisesti sanomalla var muuttujan ennen sitä. Sekin on löyhästi kirjoitettu siitä, että se on tyyppiä, mutta et erikseen ilmoita niistä. Ja sitten merkkijono, sillä Esimerkiksi voisi näyttää näin, että jono kutsutaan s tässä tapauksessa. Ja sitten kohde. Ja nämä näemme lisää ennen pitkää. Ja esine on ehkä yksi yleisimmin nähty tietorakenteita vuonna JavaScript perustuva ohjelma, koska se mahdollistaa voit liittää mielivaltaisen avain-arvo pareja juuri kuten PHP: n assosiatiiviset taulukot ja aivan kuin oma tiiviste tai yrittää niin toteutimme muutama viikko sitten. Joten itse nähdä mitä voimme tehdä JavaScript. Ja erityisesti, tämä on pitkä lista ominaisuuksia että selaimilla on, että jotta voimme liittää JavaScript osaksi verkkosivuilla seuraavasti. JavaScript käytetään usein client side scripting kieli. Se ei ole koottu. Sekin tulkitaan. Mutta toisin kuin PHP, joka on ollut käynnissä palvelimelle, web-palvelin, tai syvällä sisällä asiakkaita, JavaScript on erilainen, että se yleensä toimii selaimessa. Joten mitään JavaScript-koodin voit alkaa kirjoittaa varten PSET 8, tai opinnäytetyön, tai todellisessa maailmassa yleensä menossa voidaan tallentaa palvelimelle, ehdottomasti dot HTML tai piste JS JavaScript-tiedoston. Mutta selain on menossa ladata, että JavaScript koodi oman esiintymä Chrome, tai IE tai Firefox, tai mitä tahansa. Ja koodi on todella menossa teloitettiin sisällä oman selaimen. Vain tehdä tätä enemmän todellisia, Katsotaan tämä konkreettisesti. Meillä ei ole aavistustakaan, mitä tämä koodi ei ilman todella luet sen. Mutta anna minun mennä Facebook.com ilman sisäänkirjautumista. Anna minun mennä tarkastamaan Element ja mennä, sanotaanko, Verkko ja lataa sivu uudelleen. Ja me see-- haluaisin siirtää Reload Sivu saada kaikki pyynnöt uutta. Ja ensimmäinen tiedosto näen on CSS, CSS. Tässä on ensimmäinen JavaScript-tiedosto, ja minulla on ei ole aavistustakaan, mitä tämä tekee, mutta täällä on joitakin JavaScript-koodin joka ajaa Facebook. Se ei ole edes kovinkaan paljastaen lähentää. Se on edelleen aivan yhtä järjetön. Mutta näet myös alhaalla, siellä vielä enemmän näitä JavaScript-tiedostot. Oho. Se on ping. Mennään alas hieman edelleen, edelleen, edelleen. Siellä on yksi. Siellä on yksi. Siellä on yksi. Joten vaikka Facebook, takana kohtauksia, on kirjoitettu osittain PHP ja Facebookin oma versio siitä, Siellä on valtava määrä JavaScript. Itse asiassa, mitä tahansa chattailuun teet Facebookissa, Jonkin Inline aikajanan päivitykset että tapahtuu reaaliajassa, kaikki kyseisen ohjaavat JavaScript. Joo? Yleisö: En ole varma jos tämä on Facebook, mutta ajattelin, että Facebook kehitetty oman talon koodikieltä? DAVID MALAN: he tekivät. Joten siksi sanon varianssi PHP nimeltään Hip Hop, että ne todella lisäominaisuudet siten, että kun Mark toteutetaan ensimmäistä kertaa Facebook, se oli kirjoitettu PHP. Ja että sellainen on pysynyt eräänlainen etupään kieli että ne käyttävät paljon niiden koodausta, mutta se ei ole kieltä, joka on skaalautuu erityisen hyvin miljardeja ihmisiä. Ja niin he ovat lisänneet omat parannuksia kulissien takana. Ja he käytä numeroa muiden kielten eri kappaletta infrastruktuuriaan. Joten kyllä, se varianssi mitä nyt tiedämme kuten PHP. Joten katsomaan on pari esimerkkiä miten voisimme käyttää JavaScript tästä. Nykypäivän lähdekoodia, meillä nippu tiedostoja, joista ensimmäinen, Katsotaanpa kutsutaan DOM nolla. Joten DOM nolla näyttää seuraavalta. Anna minun mennä tähän hakemistoon ja avata domzero.html, jonka päällä on doc tyyppi ilmoitus, sano tässä tulee HTML 5. Ja nyt tässä on HTML-tunnisteen. Tässä pää tag. Ja tässä mitä uutta tänään. Meillä on nyt komentosarjatunnus sisällä pään sivulla. Ja tämä ilmeisesti ei hyvin vähän, mutta huomautus että olen määritellyt käsikirjoitus, JavaScript. Ja niin syrjään, koska tämä on yleinen väärinkäsitys, JavaScript ei ole mitään tehdä Java, kieli että jotkut teistä ehkä oppineet APCS. Se oli enemmän markkinointi asia kuin mitään, ratsastus coattails Java vuotta sitten. Mutta JavaScript, mitään tekemistä Java, juuri samalla tavalla, ja ärsyttävän, harhaanjohtavasti nimetty. Joten tässä on, miten voit julistaa toiminto JavaScript, kirjaimellisesti sanoa toiminto, sitten funktion nimi, sitten kaikki argumentit saattaa kestää, aivan kuten PHP. Osoittautuu JavaScript, yksi harmittaa toimintoja, jotka ovat olemassa on Alert. Tämä on pieni ikkuna, joka ponnahtaa ja hälyttää Joidenkin tieto. On yleisesti paheksuttavaa. Mutta käytämme sitä meidän ensimmäinen harjoitus täällä. Huomata muutama piirteitä JavaScript. Puolilainausmerkkejä ja lainausmerkit ei oikeastaan ​​enää väliä. Puolilainausmerkkejä ja kaksinkertainen lainauksia voidaan vaihtaa, kun taas C, sinun on käytettävä lainausmerkkeihin jousille, ja sinulla on kaksi erillistä lainausmerkkejä merkkiä. JavaScript-maailmassa, monet ihmiset, useimmat ihmiset Käytä puolilainausmerkkejä noin jouset vain koska se on tyylillinen asia. Mutta mitä plus operaattori täällä, jota emme ole ennen nähneet? Yleisö: ketjutus. DAVID MALAN: ketjutus. Joten C ei ole edes tätä. PHP on piste operaattori, joka tekee tämän. JavaScript on plus operaattori, joka erehdyttävästi on aivan kuin Java. Nyt mitä täällä on tekeillä? Joten tässä on, jos perus käsitys, että kuva me oksensi pari päivä sitten tulee pelata. Muistan kun meillä oli yksinkertainen versio HTML page-- se vain sanoi, hello world. Ja sitten me kiinnitti puu oikealle, joka oli joukko suorakulmioita ja linjat kytkemällä ne kuten sukupuu. Niin, että niin sanottu DOM tai Document Object Model. Ja käy ilmi, että voit käyttää suorakulmioita, että puu syntaksin kuten seuraavassa. Voit kirjaimellisesti sanoa asiakirja, joka on erityistä yleismuuttujan JavaScript ohjelma, joka on funktio liittyy se, että voit käyttää samanlainen struct, mutta voit yksinkertaisesti sanoa piste ja sitten funktion nimi, saada elementti tunnus. Elementti Haluan saada on ilmeisesti lainata lainaus nimi. Ja sitten haluan saada arvonsa. Nyt saamme asioiden edelle. En ole edes varma, mitä kaikki tämä on noin. Katsotaanpa nopeasti eteenpäin HTML sivu, joka on erittäin yksinkertainen. Huomaa, että olen määritellyt muodostavat tänne. Huomaatko olen antanut sen ainutlaatuinen ID, vaikka olemme ei käytetä tätä ominaisuutta ennen. Mutta tämä on olemassa HTML. Voit yksilöimään joitakin murikka HTML tunnisteella näin. Huomautus nyt this-- osoittautuu HTML tukee, per se pitkä lista hetki sitten, kokonainen nippu tapahtumankäsittelijät. Ja tämä tapahtumakäsittely sanoo esittää. Käyttäjän jättämistä tämän lomakkeen, soita seuraava koodi. Ja koodi, joka on menossa kutsua tai suorittaa on juuri tämä, Kreikan toiminto seuraa return false. Kaikki muu olisi olla melko tuttu. Täällä on tulon tyypin tekstiä, jonka ID, tässä tapauksessa tulee olemaan nimi. Meillä ei ole varsinaista nimeä määrite Tämän time-- ja lähetä -painiketta. Joten mikä sivu näyttää tältä. Ja tuloksena käyttäytymistä, näet, näyttää tältä. Sivu se paikallisten isäntien sanoo, hei David, tuskin esteettisesti miellyttävä tapa tervehtiä käyttäjälle. Mutta mitä todella tapahtuu? No, mieti mitä tämä on. Tämä on tekstikenttään. Ja mukaan HTML täällä, olen antanut sille yksilöllinen tunniste nimeltään lainaus lainaus nimi. Samaan aikaan, olen sanonut, kun käyttäjä lähettää tämän lomakkeen by enteriä tai klikkaamalla Lähetä painike, call toiminto nimeltään Greet ja sitten return false. Tarkastellaan näitä taaksepäin. Huomaa kun valitset Lähetä, Sivun osoite ei muutu. Selaimen ikoni ei alkavat pyöriä. En mene minnekään, ja se on kirjaimellisesti koska sanoin return false. Return false oikosulkuja tai pysähtyessä oletustoimintaa muodossa. Niin että sitten jää meille Tässä vielä yksi kysymys. Mitä Greet tehdä? No, Tervehtiä ilmeisesti kutsuu funktiota kutsutaan Alert, kulkee yhdessä pitkä argumentti, joka on tulos ketjuttamalla yhdessä nippu merkkijonoa, Hei pilkku tilaa, niin mitä tämä palaa. Joten asiakirja on kuin globaali muuttuja, että juuri tuon puun, soittamalla erityinen toiminto, muuten nyt tunnetaan menetelmä. Toiminto, joka on sisällä muuttuja on kutsuttu menetelmä sijasta funktio. Joten elementin ID. Mikä elementti sinä haluavat saada sen tunnus? Lainata lainaus nimi ja sitten erityisesti arvostavat. Eli toisin sanoen, että koodi yksinkertaisesti toteaa tekstikenttään, jonka tunnus on nimi ja sitten saa sen arvon. Joten jos olisin muuttaa tätä ja sano Davin Daavidin sijaan, ja valitse Lähetä, nyt me on tervehdys Davin. Okei, joten kaikki hyvä ja hieno. Mutta katsotaanpa, jos voimme tehdä Tässä hieman puhtaampi, koska vain koodausta kuin tämä on yleensä aiotaan paheksuttavaa. Tämä on menossa katsomaan pelottavampi. Mutta mikä on ensimmäinen erotuksella, että huomaat täällä Tässä versiossa lisäksi nimiseikkaan DOM yksi? Mitä rakenteellisesti näyttää erilaiselta tästä verrattuna muihin? Joo? Yleisö: Onko muodossa päälle kirjoitus nyt? DAVID MALAN: Joo, muoto on päällä käsikirjoituksen jostain utelias syystä. Niin, että ensimmäinen asia, joka hyppää ulos minuakin. Ja onneksi ainakin, tämä osa on sama. Joten ainoa asia, joka vaikuttaa olla erilainen on tämä. Joten tässä mitä siisti noin JavaScriptin 2. Ja se vaikeuttaa ymmärtää ensi silmäyksellä, varsinkin opinnäytetöiden jos etsit mallikoodi verkossa, mutta se kuihtuu joitakin perus syntaktisia piirteitä. Tässäkin on, että globaali muuttuja asiakirja. Tässäkin on se, että menetelmä tai funktio joka sanoo saada elementin ID. Tällä kertaa haluan saada ID nimeltään demo. Missä se on? Se on ilmeisesti oikea täällä, muoto itse. Ja nyt huomaan, että ilmeisesti jos minä saada takaisin, että solmun puu, joka edustaa muodossa itse, ei tekstikenttään, käy ilmi, että lomakkeen, joka solmu tai suorakulmion puusta, on mitä me kutsumme omaisuutta, hyvin, hyvin, hyvin samankaltainen hengeltään struct C. Se on vain data jäsen sisällä tämän suorakulmion. Joten minulla muodossa täällä, ja olen liittämässä, tai olen määrittämällä, sen Submit ohjaajan tai pikemminkin Lähetä omaisuus seuraava toiminto. Ja tämä on ylivoimaisesti hulluin asia toistaiseksi syntaktisesti. On käynyt ilmi, JavaScript ja PHP, ja rehellisesti, että asia C, vaikka emme tee sitä, voit lisätä nimetön, nimetön, tai AKA lambda toimintoja, jotka eivät ole nimeä mutta voidaan kutsua kuitenkin. Joten mitä teen täällä olen osoitetaan Tämän Submit omaisuutta, joka on sisällä tämän solmun minun DOM-puuhun, toiminto, funktio-osoitin jos haluatte. Tämä toiminto ei ole nimi, mutta se ei väliä, koska näemme hetken, miten sitä kutsua. Kun tämä toiminto on nimeltään, Tämän koodin saa suorittaa, sitten false palautetaan aivan kuten ennenkin. Mutta huomaa, mitä olen tehnyt. Tässä vaiheessa tarina, minulla muodossa. Se sai yksilöllinen tunnus nimeltään demo. Tänne, minulla on komentosarjatunnus joka toteuttaa seuraavan koodin. Se kiinnittyy että solmuun puu se Submit kiinteistö tätä toimintoa täällä. Ja aivan luonnostaan, kuinka selaimet toimivat, kun nyt valitse Lähetä tai paina Enter, että toiminto on menossa kutsutaan. Se ei tarvitse nimeä, koska joka Pahus välittää sen nimeä. Ainoa kerta se ikinä päästä nimeltään on kun lähettää lomakkeen. Ei ole mitään tarvetta minulle, ihmisen kehittäjä, todella kutsua sitä missään muualla. Nyt vain teaser, ikään kuin ei mielen taivutus tarpeeksi, voimme jopa tehdä tästä näyttää enemmän arvoituksellinen käyttäen Super suosittu kirjasto nimeltään jQuery. Itse jQuery ja JavaScript ovat usein sekoittanut. Ja mitä me teemme keskiviikkona on alku Käyttämällä tätä kieltä ja nämä kirjastot rakentaa yhä asynkroninen ja dynaamisia sovelluksia kuten kartta tulossa sovellukset, sovellukset että päivittää verkkosivun todellinen aikaa, aivan kuten Facebook tai Gchat tehdä, eikä enää tyytyä Lyömällä esittämään get tai vain postitse yksin. Joten Nähdään keskiviikkona. [Musiikki soi]