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