[Musiikki soi] DAVID J. MALAN: Okei. Tervetuloa takaisin. Tämä on CS50. Tämä on viikon lopussa 8. Ja kuten tiedätte, meillä on melko virka-ajan muutamissa ja ruokasalia, lukien Annenberg. Ja jotkut joukkue ystävällisesti otti muutamia kuvia viime aikoina. Ja kunniaksi Halloween, ajattelimme jaa, joka pikemminkin kiinni meitä yllätys täällä Annenberg Hall juuri muut yö. Luokkatoveri Jacob poseerasi kuvasta, mutta oli enemmän huvittava oli Facebook, Seuranneessa keskustelu, joka tapahtui jälkeenpäin. Hänen ensimmäinen viesti vastauksena hänen kuva oli tämä. Muutamaa minuuttia myöhemmin hän päätti yksi jopa itsensä kanssa tämän. Se meni sitten mennä tähän, ja sitten, vielä havainnollisesti on, kun hänen äitinsä chimed. Ja sitten lopulta, näyttää tämä oli vain ihana juoni pelata joka on meneillään. Joten, jos haluat nähdä Jacob ja muut, joukossa Cynthia Meng, kuka kulisseihin CS50 vyöhykkeen henkilöstön, pää tähän URL-osoitteeseen ja pelata täällä. Joten pitemmittä puheitta, tänään jatkaa tätä katsomaan web ohjelmointi, ja varsinainen luominen ohjelmia jotka eivät suorita komento linja, vaan ajaa sisällä selaimen. Oletettavasti nyt, tai hyvin pian, olet menossa olla keskellä täytäntöönpanosta oma web-palvelin, joka eroaa Web-ohjelmointi. Web-palvelin pset6 on kyse kirjallisesti ohjelmisto, joka osaa ottaa HTTP pyyntöjä selain, tai jopa sinulta, ihminen, jossa ohjelma nimeltä Telnet, ja sitten vastata näihin pyyntöihin joko by sylkee HTML-tiedoston, tai JPEG tai GIF, tai jopa PHP-tiedosto. Mutta web-palvelin, se ei ole pitäisi vain avata PHP-tiedosto, jotain päättyy PHP, ja sitten sylkemään sisältöä. Se on tarkoitus tehdä mitä se tiedosto ensin? Niin sanotusti. Ei kääntää sen, me sanoi maanantaina, mutta rather-- siis tulkita sitä. PHP on tulkittava kieli, ja niin yksi tärkeimmistä ominaisuuksista Web palvelin, vaikkakin täytäntöön meille, on tämä kyky web-palvelimen huomata, oh. Tämä tiedosto päättyy PHP. Sallikaa minun ei vain lähettää sen Käyttäjä kuin se on staattista sisältöä, vaan haluaisin lukea sitä rivi rivi, vasemmalta oikealle, ja tulkita sitä. Ja tehdä, että sinun kaverit olennaisesti ruuhi jotta ohjelman laite, ja paljon tietokonejärjestelmät, soitti juuri PHP. Se on nimi, PHP kieli oma tulkki. Niin, että pala me toteuttaa teitä, ja mitä on jäljellä sinulle, lopulta, on numero kappaletta, joista toteuttaa tuki staattista sisältöä. Mutta nyt, ja Harjoitus seitsemän, olet menossa alkaa siirtyminen itse kirjallisesti PHP että saa tulkita Puhuessaan loppupäätä tietokanta, joka tallentaa tietoa. Joten paremmin ymmärtää ensin pari näistä Superglobaalit ja kuinka paljon valtaa sinulla päästä kättelyssä ilmaiseksi jossa kieli kuten PHP. Asiat sinun ei tarvitse toteuttaa itse. Niin, näimme maanantaina $ _GET, joka on superglobal, joka on vain PHP puhuvat globaalin muuttuja voit käyttää missä tahansa. Ja mitä sisällä dollaria _GET? Mikä on sisällä tämän superglobal että näemme? Varmasti tilastollisesti at vähintään yksi henkilö tietää. Mitä sisällä dollaria _GET? Joo? Yleisö: Se muuttujat laitat kyselymerkkijonossa. DAVID J. MALAN: Perfect. Se Muuttujuen laittaa kyselymerkkijonossa. Joten, meidän vanhempi esimerkki reimplementing Google, kun meillä oli URL, ja sitten kysymysmerkki, joka rajataan alussa HTTP parametrit, sitten meillä oli q yhtäläiset jotain, kuten Q on yhtä kissaa, mikä olisi automaattisesti mennä sisälle Kyseisen $ _GET Super globaali sinulle, koska PHP, on keskeinen Q, ja arvo niiden kissojen. Toisin sanoen, $ _GET ja kaikki nämä asiat ovat assosiatiivisia taulukoita, hash taulukoita tapaisena, että myymälä avaimia ja arvoja. Nyt takaisin pset5, hash pöytä olet ehkä täytäntöön, tai kokeile saatat on toteutettu, todella oli tehokkaasti assosiatiivinen array, datarakenne jolloin voit liittää avaimet arvoja. Mutta pset5, arvot olivat mitättömiä. Arvo oli lähinnä tosi tai epätosi. Onko sana sanakirjassa? Joten, kun hajauttamat sana kuin omena onko Apple on sanakirjassa, sekkisi toiminto oletettavasti palasi tosi tai epätosi. Niin, että tehokkaasti arvo saamme takaisin. Mutta näimme maanantaina Lyhyesti, voit varmasti liittävät mielenkiintoisempaa arvoja kuin vain tosi tai epätosi avaimet, kuten Apple. Voisit itse palata mielivaltainen merkkijono, ja todellakin, sitähän $ _GET ja nämä muut muuttujat voit tehdä. Joten $ _POST on samanlainen henki, mutta jos lähetät lomakkeen postitse, eri HTTP-menetelmä, joka on käyttää asioita, kuten luottokortit, ja henkilökohtaisia ​​tietoja, ja jopa binary tietoja, kuten kuvia, nämä asiat päätyvät sisällä $ _POST. Ja oikeastaan ​​tiedostoja kuten JPEG ja vaikka mitä, siellä on jopa toinen, joka ei ole täällä kutsutaan $ _FILES samoin. Niin, palvelin emme aio vatvoa liikaa paljon, mutta se antaa sinulle pääsyn lajitella alemman tason tietoja palvelin itse, että käytät. Cookie ja istunto, vaikka, me tehokkaasti nähdä nyt. Viimeinen on mitä käytämme toteuttaa käsite ostoskorissa. Erittäin yksinkertainen, mutta muistaa että meillä oli tämä esimerkki tästä, laskemalla, kuinka monta kertaa olet oli käynyt tällä sivulla ennen. Mutta tänään, sen sijaan katsokaa vaikutus tämän, nyt avata Chromen tarkastaja, jonka voit yleensä tehdä oikealla klikkaamalla tai Control klikkaamalla tahansa web-sivun, ja valitse sitten tarkastaa elementti. Tai voit mennä valikoissa että me kuvata pset6 spec. Ja aion Verkko-välilehteä täällä, ja lähdetään katsomaan hetkeksi HTTP-liikenne, joka on menee edestakaisin. Sallikaa minun ensin mennä eteenpäin ja selkeä Chromen välimuistin. Joten jotkut teistä ehkä tuttu tällä tekniikalla jo, ja aiomme käyttää sitä virheenkorjausta varten täällä. Nyt atk tutkijat aikovat aloittaa Näin virheenkorjausta varten, jolloin me tyhjentää välimuistin, tyypillisesti niin, että me voi päästä eroon asioista evästeitä. Niin olet todennäköisesti yleensä tuttuja mitä evästeet ovat, tai ainakin että ne ovat olemassa, mutta mitä ymmärrystä niistä, koska vain käyttäjä tietokoneet, mikä on eväste? Joo. Yleisö: Se on vähän of-- hyvin, ei bitti aikavälillä tietojenkäsittelytiede. Se on sellainen tieto, että sivusto lähettää sinulle, jotta pystyä tallentamaan tilastoja sinua. DAVID J. MALAN: OK, hyvä. Joten se on sellainen tieto, että palvelin, tuo tietokoneellesi, ja lähdetään yleistää edes enemmän, se on avain value-- hyvin, että on tulossa tarkempi. Se on pala tietoa, osa tiedoista, että palvelin pystyy laittaa tietokoneeseen ja hyvin usein, palvelin ei Tässä niin kuin muistaa, kuka olet. Joten esimerkiksi kertoimet ovat olet luultavasti kirjautunut sivustot kuten Facebook, tai Gmail tai muut ennen, ja kirjaudut sisään käyttäjätunnuksen ja salasanan, ja sitten sen jälkeen, että jokin määrä minuutteja tai tunteja tai jopa päiviä, palvelin muistaa, että olet itse asiassa kirjautunut sisään. Nyt miten tämä todella tapahtuu? Koska et varmasti ole retyping käyttäjätunnus ja salasana joka kerta voit navigoida eri sivu Facebookissa. Joten se kääntyy pois evästeet ovat vastaus. Cookie voit ajatella niin, tavallaan kuin, digitaalinen käsi leima, että saatat saada aikaa huvi puisto tai klubi, joka olennaisesti osoittaa, että olet ollut täällä ennen, ja olet jo osoittanut tunnuksesi sitteri, sillä Esimerkiksi ja että klubi tai puisto pitäisi nyt oletetaan, että on todennettu jo. Olet jo todettu se. Niin, että mielessä, Katsotaanpa avata vasta täällä. Anna minun mennä eteenpäin, juuri tein, ja poistaa kaikki evästeet. Ja nyt, mitä aion tehdä, on Pidä Shift, vain hyvä toimenpide, ja väkisin lataa sivu. Vaihto vain varmista, että mitään ei välimuistissa. Ja tässä on pyyntö että meni edestakaisin. Joten täällä meillä pyynnöstä, ja anna minua zoomata tänne, ja paljon tätä on tavallaan mielenkiinnoton tiedot Nyt selain on automaattisesti lähetetty, mutta katsotaan sitten Näytä Lähde nähdä raaka otsikot. Ja jos olet sukeltanut pset6 jo, tulet varmasti tunnistaa asioita näin, ja ehkä jotkut Näiden muiden linjojen täällä, mutta mitä enemmän mielenkiintoista tänään jos en selaa, ei pyyntöön mutta ns vastaus, tämä linja luultavasti näyttää tutulta. Se on hyvä asia kun näet 200 OK. Ilmeisesti tämä on päivämäärän ja ajan palvelimella ja siellä on nippu tavaraa. Voi, tämä on mielenkiintoinen. Osoittautuu, kun käytät PHP, ainakin tällä palvelimella, palvelin sylkee mitä PHP: n versiota käytät. Joka oikeastaan ​​turvallisuussyistä tarkoituksiin, ei ole hyvä asia. Mutta me palaamme että joskus toiste ehkä. Mutta nyt tämä on mehukas line tänään, ja näimme lyhyesti joitakin näistä, Mielestäni Facebookin kun pisti noin Inspector tuolloin, sarja eväste on mitä on istutus että pieni pala tietoa tietokoneellesi. Tämä on HTTP-otsikon se tehokkaasti kertoo selaimen, Chrome, IE, mitä tahansa, hei selain myymälä käyttäjän kiintolevy, tai käyttäjän RAM, avain kutsutaan PHPSESSID, joka on lyhennetty merkintätapa istunnon tunnus, ja antaa sille arvoa 0vlk8t, piste, piste, piste. Todella pitkä pseudo satunnainen aakkosnumeerinen merkkijono. Se on vain todella iso määrä, mutta se on koodattu kirjaimia ja numeroita niin että koko se voi olla jopa suuremmat kuin pelkät numerot. Ja sitten, muuten, Path = /, että tarkoittaa vain sitä, että tämä eväste pitäisi olla liittyvä kokonaisuudessaan verkkosivuilla, ei vain tietyn sivun koko juttu. Joten tämä on, että virtuaalinen käsi leima. Se on ikään kuin palvelimen, Facebook, tai meidän tapauksessamme laite, on kirjaimellisesti kirjoitettu 0vlk8t ja niin edelleen, kättäsi. Huomaa mitä palvelimen, tee se ei ole säilytykseen käyttäjätunnukseni, varmasti ei tallentamiseen salasanani. Sen sijaan, se näyttää olevan tallentamiseen pseudo random tietoa niin että kukaan ei voi arvata mitä käteni leima on. Palvelimen puolella, Samaan aikaan palvelin tulee muistaa, luultavasti tietokantaan tai jotain, että käyttäjä, joka tulevaisuudessa esittelee käsi leima 0vlk8t, piste, piste, piste, olisi otettava mukaan tähän Erityisesti ostoskorin, niin sanotusti. Toisin sanoen, jos minä nyt mennä tänne ja päivittää tämän sivun, miten palvelin tietää että kävin kerran? Tai jos en tee sitä uudestaan, miten palvelin tiedän, että olen käynyt siellä kaksi kertaa? No jos menen alas tämän Tuorein kysely, joka on nyt kolmas, että olen lähettänyt yhteensä, huomaa minun pyynnön nyt. Vielä on tämä pyytää täällä, sama kuin ennen, siellä on vielä koko joukko tavaraa, että olemme huomiotta kuin ennen, mutta aivan viime otsikon, tämä aikaa, koska olen ollut täällä ennenkin, on esittely tämä virtuaalinen käsi leima. Jolloin tämä linja täällä, ei ole asetettu eväste mutta cookie paksusuolen PHPSESSI = 0vlk8t, se on vain minun selaimen automaattisen esittelyn käsi leimansa siten, että Nyt palvelin, heti kun se huomaa, ooh, tämä on käyttäjän 0vlk8t piste, piste, piste, Voin nyt muista kuka hän on ja assosioitua uudelleen kyseisen käyttäjän tahansa tietoa Haluan, ja kaikki että tiedot voidaan tallentaa sinua, ohjelmoija, vuonna $ _SESSION. Joten on selvää, jos en avaa todella nopeasti vuonna gedit että todellisen tiedoston, counter.php, minun paikallinen isäntä julkisesta hakemistosta kuten ennen, huomaa, että todellakin, Olen lopulta tallentaminen $ _SESSION Lainaus lainaus "laskuri" arvo edellisen laskuri, joka Saan nämä rivit tänne että me Katsoin viime kerralla plus yksi. Joten alla huppu, siinä kaikki evästeet ovat. Se on vain eräänlainen digitaalinen käsi leima menee edestakaisin, ja suoraan sanottuna jos avaat Chromen Tarkastaja millä tahansa sivustolla käyt tänään, Super suuri todennäköisyys, te tulette näkemään ehkä yksi, ehkä puoli tusinaa evästeet on muistaa sinua. Ja vielä pahempaa, jos ne verkkosivuilla olet vierailulla kaikki ovat mainokset, jotka on varmasti melko yleistä nykyään, ja jos nuo mainokset ovat tulossa joidenkin Keski-puolueen, joku kuten Google tai AdWords, koska ne soittaa yksi niiden tuotteita tai muita sellaisia ​​myyjiä, jotka myydä mainoksia, mikä on mielenkiintoista, ja rehellisesti mikä on hieman huolestuttavaa, miten HTTP toimii, on, että jos sinulla on mainos upotettu vuonna Facebook.com ja Google.com, ja Harvard.edu tahansa määrä sivustoja, joten se on niin että siellä keskellä mies, joka palvelee up-mainoksia kaikkien kolmen näistä sivustoista, käy ilmi, että evästeet ovat per domain. Joten jos sinulla on mainos tulevan saman yrityksen eri verkkosivustoja, että yritys voi tehokkaasti seurata kuka olet kaikissa näistä sivustoista. Harvardin ehkä tiedä olet vierailulla Facebook. Facebook ehkä tiedä ja olet vierailulla Harvard. Mutta mitä mainos palvelu he käyttävät, jos verkkotunnus on läsnä sekä Harvard.edu web sivut ja Facebook.com verkkosivuja, Tämän keskellä mies varmasti tietää kuka olet koska nämä evästeet jaetaan poikki, tai pikemminkin, että niin sanottu välikäsi. Niin me palaamme tähän vuonna turvallisuusvaikutuksia sen, mutta siellä on paljon tietoa tallennetaan sinusta milloin tahansa käy eniten tahansa verkkosivu Internet ja se todella vähentää tätä hyvin yksinkertaista mekanismia. Mitä tapahtuu sitten, jos olet erittäin vainoharhainen ja päätät mennä Chrome tai IE tai mitä tahansa, ja sammuta evästeet? Mitä tapahtuu? Joo? Olet really-- olet tehnyt tämän oikein? OK. Ei, mennä eteenpäin. Yleisö: Joitain verkkosivustoja ei ole toiminto ilman sitä, kuten Facebook. DAVID J. MALAN: Yeah! Joten tietyt sivustot vain lakata toimimasta. Ja useimmat sivustot näinä päivinä että pohjimmiltaan luottaa evästeet, varsinkin jos heillä on kirjaudut in, he vain aio rikkoa. Koska pitävät vaihtoehto, jos sivusto ei ole tapa muistaa, kuka olet, ja siksi selaimessasi ei ole eli jokaisen HTTP pyynnöstä tämän käden leima, tehokkaasti sivusto kuten Facebook on menossa täytyy pyytää sinua kirjaudu sisään joka hiton kerta voit vaihtaa sivua, tai klikkaa linkkiä, joka ei varmastikaan ole erityisen hyvä käyttäjä kokemus. Niin että sielläkin on keskuudessa kompromisseista. Joten pitemmittä puheitta, sallikaa selvänä, että web-ohjelmointi, kielillä, kuten PHP, voit muistaa tietoa, kuten että ongelma asetettu seitsemän, kun toteuttaa omia E * Trade kaltainen sivusto, jolla ostaa ja myydä varastoja, muistat tarkalleen mitä käyttäjä on ostanut ja myynyt ja jotka hän on Poiketen tämän istunnon. Mutta olemme menossa tarvitse harrastaja tavalla kuin sähköposti Aloita tietojen pitäminen ympäri. Oikea? Maanantaina, puhuimme Frosh pikaviestejä ja miten versiossa yksi kyseisen sivuston, vuotta sitten, annoimme email Proctor kuka vastaa sisäiset urheilu Ohjelman nimi ja sukupuoli, ja ovatko he kapteeni, ja asuntolan joku on Rekisteröitymällä sisäiset urheilua. Joten se ei ole huono, mutta hän sitten oli peikko kautta sähköpostitse, laskentataulukko- tai jotain että pitää kaiken järjestyksessä. Niin varmasti me ohjelmoijat voi tehdä tämän, että Proctor. Ja niin kirjoita SQL, Structured Query Language, joka on menossa katsomaan melko erilaisia ​​sekä C ja PHP, ja voit sukeltaa paljon käsissä PHP ja ongelma asettaa seitsemän, mutta myös SQL, tai SQL, tämä on kieli, joka käytät puhua tietokantaan. Mutta mitä tietokanta? No voit ajatella tietokanta, ainakin toistaiseksi, niin vain on, kuten Excel-tiedoston, tai Jos olet Mac-käyttäjä numeroita tiedoston, tai jos olet Google Apps käyttäjän Google-taulukko, se tehokkaasti tietokantaa, tai oikeastaan erityisesti relaatiotietokanta. Relaatiotietokantaa vain jotain, joka on rivejä ja sarakkeita, ja voit tallentaa mitä tahansa tietoa näissä rivejä tai sarakkeita. Mutta mikä on mukavaa noin SQL, ja todellisista tietokantoja, ei vain taulukoita tai Google taulukkolaskenta, on, että voit käyttää kieltä todella suorittaa kyselyitä lisätä tietoja, poistaa tietoja, etsiä tietoa, vaikka tärkeintä, ja te ei tarvitse käyttää sitä melko manuaalisesti Kuten ehkä tyypillisesti Google taulukkolaskenta näin. Niin SQL, siellä nippu perusoikeuksien lausuntoja tai kappaletta toiminnallisuuden rakennettu. On paljon enemmän kuin nämä, mutta voit mennä valtava etäisyys vain tietää, että tällä kielellä kutsutaan SQL on vähintään neljä lausuntoja voit hyödyntää. Poista, poistaa tietoja, Aseta, lisätä rivejä, Päivitys, muuttamiseksi rivit, ja valitsemalla, saada takaisin riveihin ja se on todellakin mitä SQL tekee. Se toimii täysin rivit niin että kun asetat tai poistaa, tai päivitys, tai valita, mitä olet saada takaisin ns tulosjoukkoon, kuin joukko rivejä. Joukko rivejä taulukosta. Joten takaisin seuraavana päivänä, ja vielä tänäkin päivänä, voit olla vuorovaikutuksessa tietokannan avulla komentoriviltä, mutta se ei ole erityisen hauska käyttää musta ja valkoinen tyyli ikkuna ja todella suorittaa komentoja ja penkoa tietokantaan. Graafinen käyttöliittymä, tai GUI, on paljon parempi, luultavasti, ja niin työkalu suosittelemme ja esiasennettu teille laitteen kutsutaan phpMyAdmin. Se on yhteensä sattumaa, että nimi tämä asia on PHP siinä, se tarkoittaa vain sitä, että ihmiset Kuka on kirjoittanut tämän ohjelman itse kirjoitti sen PHP. Mutta se on viime kädessä siitä, että annetaan tietokantapalvelin, kuten MySQL-palvelimen että saatat olla, kun tehdä, että CS50 laite. Joten ei tässä yhteydessä tarkemmin kuin meidän välitä tänään, mutta mikä tärkeintä on, että vasemmalla puolella on lista tietokannoista että sinulla on tietokoneellasi, teidän CS50 laite, tai tulla lopullinen projekteja joista saatat on kolmannen osapuolen, yrityksen verkkosivuilla tai web-palvelin, joka saatat maksaa avaruuteen. Niin vasemmalla on tietokannat, joista yksi on pset7 jonka lainasin ensi viikon PSET, ja sitten päälle siellä huomaa siellä nippu välilehtiä, joista yksi on tietokannat, SQL, tila, käyttäjille, vientiä ja niin edelleen. Niin voit mennä pitkä tavalla vain ymmärtämättä että useimmat käyttöliittymä on ylhäällä vasemmalla sarake ja yläosassa asti siellä. Joten mitä voimme todella tehdä tämän? No, katsotaanpa alkaa luoda vähän tietoa seuraavasti. Oletetaan, että seuraava on kyse, sillä tulee olemaan vain muutaman päivän, haluat toteuttaa sivusto, nimeltään CS50 Finance, ja tällä sivustolla voit ostaa lainata lainaus ja myydä varastoja. Ja se tulee selvittää hinta näiden kantojen lopulta niin näet, puhumalla Yahoo Finance. Joka, ihanan, on ilmainen palvelu jolloin voit kulkea pörssikursseja kuten GOOG Google, ja se tulee antaa sinulle takaisin Googlen nykyinen varastossa hinta viimeisten Muutaman minuutin ainakin. Joten voit käyttää, että viime kädessä teeskennellä, että käyttäjä ostaa ja myydä todellinen varastot käyttäen virtuaalista rahaa, mutta aivan ensimmäinen asia Käyttäjän tulee nähdä on tämä Sisäänkirjautumisnäytössä joka pyytää heitä heidän käyttäjätunnuksen ja salasanan. Ja niin, yksi ensimmäisistä haasteita sinulle pset7 tulee olemaan toteuttamaan loppupäätä tietokantaan, taulukkolaskenta, jos haluatte, että menee tallentaa käyttäjänimet ja salasanat ja lopulta, mitä varastoja he omistavat, ja kuinka monta, ja kuinka paljon rahaa heillä on, niin joukko muita asioita muita taulukoita tai taulukoita. Joten katsomaan, miten tämä saattaa vaikuttaa ensi silmäyksellä. Aion mennä takaisin laite ja olen menossa tähän URL täällä phpMyAdmin localhost / phpMyAdmin ja huomaat, että se vie minut käyttöliittymä juuri niin kuin näimme kuvakaappauksen, ja täällä minä on uusi tietokanta kutsuttu luento tänään ja anna minun mennä eteenpäin Ensimmäinen ja klikkaa pset7. Olen ilmeisesti on pari vaihtoehtoa, yksi uusi, luoda uuden taulukon, ja linkki käyttäjille, jotka on taulukko olen jo luonut. Joten mitä pöytään? Joten jos käytit Excel ennen, ja jos olet Käytetyt numerot tai Google Taulukkolaskenta, avaat ikkunan ja saat läjän rivejä ja sarakkeita, mutta sitten sinun on yleensä työlista alareunassa, tai erillisillä välilehdillä. Voit ajatella kunkin työtiedosto taulukko niin, että tietokanta, lopulta, on yhdistelmä yhden tai useamman taulukoita, yksi tai usean taulukon, vuonna maailma normaali taulukkolaskenta. Joten anna minun mennä eteenpäin ja klikkaa tästä työlista että minä premade, nimeltään käyttäjiä, alias Tietokannan taulukkoon. Ja jos minä selaa täällä, haluaisin loitontaa vähän, tämä on mitä phpMyAdmin kertoo meille on sisällä tämän taulukon juuri nyt. Se on vähän sekava aluksi silmäyksellä, koska UI ei ole kaunein asia maailmassa, mutta Kiinnostavaa on, tämä osa täällä. Tunnus, käyttäjätunnus ja hash. Etukäteen, ja voit olla käden tämä ongelma asettaa seitsemän, annamme sinulle tiedoston, joka sisältää erittäin pieni tietokanta pöytä, lainattu itse hakkeri painos Ongelman asettaa kaksi, jonka sisällä on kuusi riviä. Yksi Belinda kaikki alas yksi Zamyla, ja huomaa vasemmalle kyseisten käyttäjätunnukset ovat yksilöllisiä tunnuksia kuin yksi, kaksi, kolme, neljä, viisi, kuusi, kokonaislukuja, ja sitten oikealle ovat hash. Ja jos, kertoimet ovat, et tehnyt hakkeri painos ongelma asettaa kaksi, mutta hash on aivan salattu salasana muutamalla varovaisuudella. Ja niin, mitä näet täällä salatut versiot kaikista kuudesta meidän salasanoja ongelma asettaa kaksi n hakkeri painos. Nyt vasemmalle on vain joitakin GUI juttuja, muokkaamalla tämän rivin, kopioimalla tämä rivi, poistamalla tämä rivi. Mutta mikä on mielenkiintoista Nyt on seuraava. Voin itse aloittaa kokeileminen tähän taulukkoon. Joten jos menen ja klikkaa SQL välilehti, saan tämän ison tekstikenttään. Ja tämä ei ole, miten aiomme tehdä se, kun itse kirjoittaa koodia. Oltava selkeitä, phpMyAdmin on vain työkalu, joka on aio antaa meille penkoa tietokanta ja anna meille kokeilla kyselyitä. Joten Oletetaan esimerkiksi, Olen toteuttaa juuri tätä. Valitse, joka on yksi niistä Avainsanat aiemmin mainitsin, tähti, joka edustaa kaikkia sarakkeet taulukkoon. Siitä, mitä pöytään? No, käyttäjät. Ja ilmoitus on tämä outo yleissopimuksen SQL jossa voit itse käyttää takaisin punkit, tyypillisesti, ei puolilainausmerkkejä eikä lainausmerkkeihin kun puhutte taulukoita nimiä, joten takaisin lainaus on asia sivun vasemmassa näppäimistön eniten todennäköinen. Joten anna minun mennä eteenpäin nyt ja jätä se yksin ja selaa alaspäin ja valitse Siirry, ja olemme todella menossa nähdä sama asia. Olemme juuri toteutettu SQL-kysely sanomalla Valitse kaikki tähti taulukosta nimeltään käyttäjiä, ja mitä saat takaisin on tämä. Loppujen lopuksi me pystyä tehdä sama asia koodin, mutta nyt halusin ei ollut nähdä se minun selaimessa. No tehdään jotain hieman erilainen. Anna minun mennä takaisin SQL-välilehti, ja haluan vain sanoa, että mitä? Zamyla on menettänyt kaikki hänen rahaa, ja siksi se on aika meidän poistaa hänen käyttäjäksi. Hän ei enää kirjautua sisään. Joten aion sanoa poistaa from-- hyvin, ylläpitää arvo johdonmukaisuus, poistaa käyttäjiltä missä. Ja niin, meillä voi olla näitä predikaatit, tai näiden karsinnat, lopussa minun lausuman missä ja miten voisin poistaa Zamyla? Mukaan hänen nimensä Zamyla, joten sarake, joista yksi sarake oli nimeltään, niin missä nimi = "Zamyla". Ja tässä käytän kaksinkertaista lainausmerkit tai heittomerkkejä, käytät vain takaisin punkkeja kun puhumme nimiä, esimerkiksi, taulukoita tai kenttiä. Ja anna minun klikkaa Siirry tästä. Ja nyt, web-sivu on on hieman hermostunut. Vai haluatko todella Suorita Poista käyttäjiltä jos nimi on sama Zamyla? Kyllä. Joten nyt, jos menemme takaisin minun pöytäni napsauttamalla käyttäjät, huomaa, että Hm. I goofed. Ja itse asiassa, olen sellainen napsautetaan pois niin nopeasti et edes katso punainen virheilmoitus, ehkä. Mitä tein väärin? Yleisö: Et tarvitse hyötymään hänen nimensä. DAVID J. MALAN: Joo aktivoidut hänen nimensä, mutta hänen username-- itse asiassa teki pari virheitä, eikö? Yksi, hänen käyttäjätunnus on zamyla, pieniä Z, ja sarakkeen nimi on käyttäjätunnus, ei nimeä, niin tehdään tämä uudelleen. Anna minun mennä eteenpäin ja poistaa käyttäjiä, jos käyttäjätunnus on sama lainaus lainaus "Zamyla". Kaikki hyvin? Joten tämä näyttää hieman paremmin, anna minun mennä selaa alaspäin ja valitse Siirry. Se on vielä menossa huutaa minulle olla varma. En valitse Kyllä, ja nyt näemme, rehellisesti tämä tapahtui, todella nopea, alle Toinen varmasti, tämä on juuri kysely sai teloitettiin. Vahvista, haluan valitse käyttäjät ja todellakin nyt Zamyla on mennyt. Nyt tehdä päinvastoin. Oletetaan, että Gabe haluaa ilmoittautua verkkosivuilla. Mikä on SQL-kyselyn, mikä on komento Voisin kirjoittaa lisätä Gabe? No se on melko yksinkertainen. Työnnä käyttäjät, ja nyt se saa hieman arvoituksellinen. Minun täytyy määritellä, palvelimelle, Millä aloilla haluan antaa. En todellakaan välitä, mitä Gabe tunnus numero on, niin aion ohittaa tämän. Olen sen sijaan aio sanoa käyttäjätunnus, hash, ja sitten arvot Haluan laittaa siellä tulee olemaan Gabe. Ja sitten hänen hash, en tiedä. Joten nyt aion jätä se niin iso tehdä. Tulemme takaisin että ongelma asetettu spec, miten voit itse tehdä sen. Niin huomaa, jälleen, syntaksin. Lisättävän taulukon nimi, sitten suluissa lista kentistä, sarakkeet, jotka haluat lisätä arvot, ja sitten vain täsmälleen sama tilaus jäljellä oikealle arvojen haluat lisätä, ja se on vain kääre, koska teksti on hieman pitkä. Joten nyt haluan valitse Siirry. Yksi rivi lisätty. Ja nyt jos menen takaisin käyttäjille, mikä on mielenkiintoista on se, että ei ole vain Gabe nyt tietokanta, mikä on ilmeisesti hänen ID? No se on seitsemän. Miksi se on seitsemän, kun en lisätä sen? Joten tämäkin on yksi ominaisuudet saat tietokannan. Paljon rakennettu toiminnallisuus. On käynyt ilmi, että kun luonut tämän taulukon, Olen valmiiksi se automaattisesti määrittää ID siten että se kasvattaa. Joten jos olet joskus pisti ympäri, ja katsoin mitä Facebook ID numero on, näinä päivinä se ei ole oikeastaan asia tehdä, mutta Facebook kuten API, Application Programming Interface, jolloin saat takaisin läjän tietoa itse, ystävistäsi, ja yhteyksiä. Ja mitä käytetään olla ystävällinen viileä, takaisin seuraavana päivänä, oli etsiä mitä Facebook ID numero oli. Mark Zuckerberg, Esimerkiksi, on kolme koska hän oli kirjoittanut sivuston. Ja tarina jatkuu, hän loi kaksi testi tilejä, käyttäjät yksi ja kaksi, jonka hän sitten poistettu. Ja niin, Zuck, koska on hänen käyttäjätunnus Facebook, on ID-numero kolme, ja meillä kaikilla on numeroita paljon suurempi kuin kolme näinä päivinä. Itse asiassa jossain vaiheessa Facebook muutti pois peräisin jopa käyttämällä int, joka on 32-bittinen arvo, ja käyttäen seuraava askel ylöspäin, olennaisesti pitkään pitkään niin että he voisivat majoittaa jopa enemmän käyttäjiä rekisteröitymättä. Niin hauska pieni historiallinen tosiasia. Niin, että vain Syntaksi, joiden kanssa voisimme toteuttaa pari kyselyitä, mutta voimme todella tehdä joukko enemmän asioita SQL. Ja näet, lopulta, ongelmaan asettaa seitsemän että sinun täytyy tehdä useita suunnittelun päätöksiä, joukossa tulee olemaan mitä tietotyyppejä käyttää. Joten aivan kuten C, on olemassa tietoa nimikkeet tietokantaan, kuten MySQL, ja tietotyypit sinun täytyy valita alkaen sisällyttää kyseiset alat täällä. Char, Varchar, Int, iso int, desimaalin ja päivämäärä aika, ja monet muut. Joten itse tehdä tämän. Teeskennelläänpä että emme käsi sinulle tämän käyttäjän taulukko ja anna minun mennä eteenpäin ja luoda, sillä itseni, luentoihin-tietokanta todella haluan mennä eteenpäin ja poistaa taulukko Minulla on täällä jo jotta voimme itse luoda tätä. Oho. Aion pudottaa tämän pöytä, ja nyt olen menossa uudelleen luento tietokanta tänne, Aion luoda taulukon nimeltään käyttäjiä ja katsotaanpa vain tehdä kolme saraketta aluksi ja valitse Siirry. Nyt suurin osa, uudelleen, tämä on vain käyttämällä tätä graafinen työkalu nimeltään phpMyAdmin, ja mitä olemme tekemässä nyt luo pöytä. Joten tämä on kuin menisi Tiedosto, Uusi, ja luoda uusia Excel-tiedosto. Joten se pyytää minua muutaman kysymyksiä, vasemmalta oikealle, Mikä nimi on ensimmäisessä sarakkeessa, ja sitten nimi toisen sarakkeen, ja kolmannelle nimen. Joten uudelleen tätä. Tunnus, ja sitten käyttäjätunnus oli yksi, ja sitten hash oli toinen. Joten mitä pitäisi datatyypin olla nyt alan kuin tunnus? Tässä on koko lista tietotyyppejä käytössäsi tietokantaan, ja nyt haluan vain mennä int. 32-bittinen arvo, en ajatella realistisesti olen menossa on yli 4 miljardia käyttäjien tilini, minun palvelu, joten aion pitää liikkua seuraavaan kysymykseen. En aio määritellä pituus tai arvoja, se ei ole sovellettavissa täällä int, sinänsä. Ja nyt voin määrittää, Ilmeisesti oletuksena arvo, jota en aio määritellä. Lajittelu, en tiedä mitä se on. Määrite. Nyt me itse tehdä on suunnittelun päätöstä. Joten siellä on muutamia kenttiä täällä, ei kaikki jotka ovat sovellettavissa, mutta unsigned juuri sitä mitä? Että int on? Vain ei-negatiivinen. Niin sen täytyy olla 0 ylös. Ei, en aio tarkistaa, koska Haluan jokaisen käyttäjän on tunnus, se ei voi olla tyhjä. Ja sitten saamme lisää mielenkiintoinen suunnittelun päätöksiä, kuten tämä. Palaamme tähän hetken kuluttua, mutta mitä toinen piirre tietokanta on se, että voit kertoa tietokantapalvelimen mennä eteenpäin ja optimoida itseäsi, RAM ja kiintolevytilaa, niin, että valitsee, ja lisää, ja poistaa, ja päivitykset ovat todella nopeita. Vastakohtana pset5. Jos halusi etsiä jotain teidän tiiviste, joka ajattelette tietokanta, jotka piti tehdä kaikki työtä tehden tiiviste nopeasti. Se on kuin, tietenkin, voit. Oikea? Sinun piti laittaa koko ajan hieno tuning asioita, saada hajautusfunktio oikea, mietitään, miten monet kauhat olla. Mutta mikä on mukavaa, jälleen, noin tietokanta on juuri ruuhi kaikki tämä muille ihmisille jotka ovat ajatelleet tätä kautta sinulle, ja mitä Aion sanoa tässä alla indeksi on, että minun tunnus kenttä tulee olemaan ensisijainen tapa tunnistaa käyttäjät tietokannassa. En aio ajatella ja Zamyla kuin Zamyla, Aion ajatella häntä numero 6. Miksi se on kenties parempi intuitiivisesti ajatella ja malli Kukin yksittäinen rivien avulla määrä sen sijaan jotain kuten merkkijono, kuten Zamyla tai Gabe tai pidempi jono vielä? Joo? Yleisö: tunnus on ainutlaatuinen? DAVID J. MALAN: Sano uudestaan? Yleisö: tunnus on ainutlaatuinen? DAVID J. MALAN: tunnus on ainutlaatuinen, mutta suppose-- tapauksen yleensä käyttäjätunnukset, kai Sanoin myös, että voi olla vain yksi Zamyla maailmassa, ja vain yksi Gabe. Voisin määrätä ainutlaatuisuus rajoite jouset, liian, jos halusin. Joten ei huono ajatus. Yleisö: varmempi. DAVID J. MALAN: Turvallisempi, miksi? Yleisö: Et voi sanoa, mikä on joka, kuten käyttäjän. DAVID J. MALAN: OK, te ei voi kertoa mikä käyttäjä on joka niin siellä yksityisyyttä näkökulma siihen, varsinkin jos tunnukset ehkä esiintyvät URL. Niin varma, että voisi sellaista työtä, liian. Muut ajatuksia? Joo? Yleisö: On helpompi toimintojen suorittamiseen int. DAVID J. MALAN: Se on todellinen kicker. Se on vain tehokkaampaa, tai helpottaa tietokoneen, toimintojen suorittamiseen kokonaisluku. Oikea? Int on taattu on 32-bittinen, kun taas Zamyla on muutama merkkiä pitkä, Gabriel on muutama merkkiä pitkä, Davenport on todella pitkä, joten se on ei ole erityisen tehokasta käyttää jouset vertailla arvoja ja katsoa pelloille, ja päivittää kenttiä, jos saat pois vain yksi kokonaisluku. Vain 32 bittiä. Joten käyttäjätunnuksia, myös tällä tavalla, ei tarvitse olla ainutlaatuinen, vaikka ne luultavasti pitäisi olla, ja jopa tällä tavalla liian Käyttäjä voi sallia muuttaa omaa käyttäjätunnusta. Joten nyt kannattaa jättää ensisijainen keino tunnistaa käyttäjä. Tämä kertoo tietokanta mennä eteenpäin ja optimoida itse jotta ilme ups ID ovat huippunopea. AI, hirvittävän nimetty, vain tarkoittaa Auto Kasvu, ja tämä on tarkistus laatikko pitää vielä tarkistaa täsmentää, että ID kentän päivitetään automaattisesti minulle, ja sitten aion selaa täällä ja suoraan sanottuna en ole oikeastaan ​​kiinnostunut vuonna enää näillä aloilla. Varmasti ei tänään. Joten aion palata tänne, ensimmäiseen pilariin, jossa Minun täytyy määritellä käyttäjänimi ja hash, ja katsotaanpa ainakin keskittyä toinen nyt. Int ei luultavasti ole oikea puhelua, niin mikä on järkevämpää kenties? Yleisö: Teksti. DAVID J. MALAN: Sano uudestaan? Yleisö: Teksti. DAVID J. MALAN: teksti? OK, kuulin tekstiä. Mitä muuta? Meillä sellainen on joukko valintoja jotka ovat sanallisesti luonteeltaan. Niin milloin ja miksi, tehdä käytät joitakin näistä? No char, toisin kuin mitä voisi ajatella, ei yksittäinen merkki. Se on tietty määrä merkkejä. Joten jos me tiedämme, että kaikki käyttäjätunnukset on kuin kahdeksan merkkiä, käytettynä olevan yleistä ikääntyneiden tietokonejärjestelmät, voisin sanoa char ja sitten voisin sanoa 8 täällä. Silloin kolmas sarake tulee sovelletaan luotaessa pöytä. Mutta se on aika ärsyttävää koska jotkut ihmiset saattavat haluavat olla pidempi käyttäjätunnus kuin kahdeksan merkkiä, jotkut ihmiset saattavat haluta on lyhyempi käyttäjätunnus, joten miksi sitoudun että tietty määrä? Miksi ei ole muuttuja määrä merkkiä ja vain sanoa, että maksimipituus nimi on, en tiedä, kuin 64 merkkiä. En voi ajatella mitään ystäviä, jotka ovat nimiä pidempi kuin 64 merkkiä, ja vaikka se on liian lyhyt voisit varmasti kolahtaa sitä mielivaltaisesti. Joten varchar on muuttuja määrä merkkiä. Teksti ei ole huono vaisto, ja suoraan, että tavallaan mitä se sanoo, mutta tekstikenttään voi olla kuin 65000 tavua ainakin. Se on luultavasti ylilyönti kenttä, ja itse asiassa, yup, 65535. Se on luultavasti ylilyönti nimi, joten me kiinni, tyypillisesti, kanssa varchars tekstisisällölle kenttä ja hash, liian. Hash, se kääntyy pois, voisimme tehdä varchar samoin tai jotain, mutta emme keskittyä tänään salakirjoituksen siellä ja numerot että voisimme todella haluavat käyttää sen pituus. Mutta haluan selaa oikealle. Sinulla voi olla vain yksi ensisijainen indeksi taulukon, mutta minä haluan käyttää jotakin näistä, nyt, jotta käyttäjätunnuksen, sanoisit? Mitä käyttäjätunnus perustua epämääräinen käsitys näistä neljästä vaihtoehdosta? Vain niiden nimet? Yleisö: Unique. DAVID J. MALAN: niin ainutlaatuinen, eikö? Joten näyttää siltä, ​​että ei vain voi kerrot tietokannan etukäteen, tämä on ensisijainen tapa tunnistaa kentät. Voit myös sanoa, tämä on tulee olemaan ainutlaatuinen kenttään. Se ei tule olemaan asia Luotan, mutta haluaisin tietokannasta pohjimmiltaan on, että jos ehto, joten että jos joskus yrittänyt rekisteröityä kaksi käyttäjää, joilla on sama nimi, tietokanta täysillä ei aio antaa minulle. Saatan olla joitakin koodi PHP, joka estää niin paljon, mutta tietokanta, liian, voi varmistaa että ei ikinä tapahdu. Nyt, syrjään, varsinkin kun ajattelee opinnäytetöitä, pitää mielessä se indeksiin ja täysi Tekstin ovat melko hyödyllisiä. Jos sinulla on suurempi tietokanta, ei kymmeniä, mutta satoja tai tuhansia tai jopa miljoonia kenttiä, voit myös kertoa tietokannan etukäteen tämä on kenttä aion etsivän tontille. Ehkä sen käyttäjätunnuksen, ehkä se on bio, jos olet joten Facebookin kaltainen sivusto, joka on kohdissa, että käyttäjän sallittu säästää, ja jos haluat kerro tietokanta etukäteen Aion olla etsimistä tällä alalla paljon, mutta se ei ole välttämättä ainutlaatuinen, voit määrittää luoda minulle indeksi. Tai, voit myös sanoa anna minun tehdä tavallaan mielivaltainen hakuja kuten Command tai Control F, kuten sinäkin pitää tekstinkäsittely-, niin voisit katsoa mielivaltainen jouset tai merkkijonoa tällä alalla. Toisin sanoen, olemme pääsemässä siihen pisteeseen, että lukukausi jossa sinun ei tarvitse huolehtia miten toteuttaa asioita tehokkaasti. Sinun tarvitsee vain tietää, mitä suunnittelu päätöksiä tehdä niin, että olet käyttää oikeita työkaluja kauppa jotta hyödyntää ominaisuuksia että muut ihmiset ovat rakentaneet sinulle. Niin kertaus, ensisijaisesti olisi vain on yksi, sinulla voi olla vain yksi, ja se on asia, olet sitoutumalla käyttävät tunnistamiseen kentät yksilöllisesti. Unique on vain hengeltään samanlainen, mutta saatat vain satunnaisesti käyttää sitä, mutta haluat tietokannan määrätä sitä. Indeksi tarkoittaa vain preemptively Asioiden nopeuttamiseksi tulevaisuudessa jotta voin etsiä asioita tällä alalla. Ja sitten koko teksti on yleensä kohdat, tai esseitä tai suuria elimet tekstin missä Kannattaa myös olla villejä kortteja kuin vastaava tähti. Oikea. Joten se oli eräänlainen paljon kerralla. Katsotaan jos emme voi tislata pari näitä ominaisuuksia ja sitten rakentaa jotain melko yksinkertainen, mutta tehokas. Joten joukossa muiden suunnittelun päätöksiä olet lopulta menossa on mukana linjat varastointi moottoreita. Ja haluan vain tehdä mainita tätä ennakoiden opinnäytetyöt, ja ennakointi edunjättäjän say-- ole tehdään tämä. Rakennetaan tämä pieni ohjelma ensin. Aion mennä minun terminaali ikkuna, ja täällä ei ole vain counter.php, josta olemme nyt menossa päästä eroon, koska ei enää germane, mutta meillä on koko joukko hakemistojen ja tämän tulee olemaan hyvin samanlainen henki mitä näet on ongelma asettaa seitsemän. Joten meillä on kolme hakemistoja kuuluvat julkiset ja malleja, jotka on juuri siitä, mihin jäimme päälle Maanantaina meidän koko MVC paradigma. Ja kertaus, julkisesti ei mene minkä tahansa tiedoston, jonka haluan käyttäjät itse v voitava käydä selaimen kautta URL. Template. Mitä me laittaa malleja? Millaisia ​​juttuja? Ei ollut paljon, mutta pari tiedostoja ainakin maanantaina. Joo. Yleisö: Ylä- ja alatunniste? DAVID J. MALAN: Ylä- ja alatunniste. Joten meillä on jotain samanlaista tänäänkin. Meillä muutama enemmän tiedostoja mutta Footer Näen, Header näen, ja sitten joukko muita tiedostoja. Joten tämä on vastaava V MVC mieltä, joka taas on hieman enemmän selkeä ongelma asettaa seitsemän, mutta tämä on vain kansio olen asettaa paljon minun estetiikka. Paljon minun HTML, paljon minun muotoja. Samaan aikaan, kuuluu, on toinen hakemisto, joka on nämä kolme tiedostoa ja sallikaa vilkaista näitä. Aion mennä eteenpäin ja avata config.php. Kuten on käynyt ilmi, paljon kuten aiemmin aikavälillä, pirteänä mukana CS50 piste h pset7. Nykypäivän esimerkki, olet menossa tehdä vastaavan kyseisen kanssa edellyttää lausuman että tehokkaasti sisältää nämä eri radoilla. Joten on selvää, tämä on tiedosto nimeltä config.php. Ja huomaa, mitä se tekee. Se on ilmeisesti tekemässä jotain arvoituksellinen, kääntämällä virheilmoitukset jotta voit nähdä ne selaimessa. Se on sitten ilmeisesti vaaditaan kaksi muuta tiedostoa joten tämä on kuin #include C, ja sitten tämä yksi näimme, ja olemme vedonnut, tämä syttyy että ostoskorin suoritin. Tämä tarkoittaa eväste lähetetään edestakaisin. Miksi tämä mielenkiintoinen? No, jos palaamme tähän hakemisto ja avata esimerkiksi constance.php. Huomaa, että PHP ei tue vakioita, se ei ole aivan kuten define C. Sen sijaan, te kirjaimellisesti sanovat määritelty, ja huomautus että olen etukäteen tallennettu neljä vakiot tähän tiedostoon. Yksi nykypäivän-tietokantaan salasanani, minun käyttäjätunnuksen, ja palvelimen nimi. Joten nämä ovat todella olemaan melko samanlainen ongelma asettaa seitsemän. Ja lopuksi, ja tässä minä olen menossa muutamia kivoja toimintoja alkaen henkilöstö, functions.php on joukko koodin olemme kirjoitettu, ja minulle joitakin tämän mistä ongelma asettaa seitsemän Tänään joka tekee joukko asioita ja haluan vain katsoa yksi heistä erityisesti. Tämä toiminto täällä, kysely, tulee olemaan PHP funktio kutsumme voidakseen toteuttaa SQL. Hetki sitten olimme käyttäen phpMyAdmin, mutta se on vain varten eräänlainen oppimisen kannalta ja diagnosointia varten ja unohtamatta tietokannan sarja. Kun itse käyttää tietokanta, te, ihmisen, ilmeisesti aio voidaan vetää ylös web sivu aina kun joku rekisteröityy. Aiot kirjoittaa koodia, joka insertit ja poistaa käyttäjien kysyntään, ja aiomme tehdä tämän Poiketen hakutoiminto. Jos minä nyt vierittää alaspäin, siellä olemaan muutama enemmän ominaisuuksia. Uudelleenohjaus on menossa funktio kirjoitimme Sinulle, jonka avulla voit Lähetä käyttäjältä toiselle URL, ja tehdä on toiminto, aivan kuten näimme maanantaina, että todella tekee mallin, mutta enemmän näitä muodossa pset7 oma kulkea. Nyt mennään eteenpäin ja tehdä tätä. Anna minun mennä minun luentoja pöytä ja nähdä, että siellä on tällä hetkellä mitään täällä ihan vielä, ja haluaisin myös mennä minun julkisesta hakemistosta, jossa siellä on vain yksi tiedosto, index.php. Tämä tiedosto näyttää olevan erittäin helppoa Tällä hetkellä se näyttää juuri tältä. Hyvin paljon siitä, miten me jäi maanantaina. Olen vaativat tämän tiedoston, config.php, joka on sisältää hakemiston, joka on piste piste, vanhempani, ja sitten se vain tekee tätä tiedostoa. Joten mikä on tämän tiedoston? Katsotaanpa avata minun malleja form.php, ja näemme tämän. Super yksinkertainen, ilmeisesti tämä lomake on menossa esittämään $ _GET tai $ _POST. Nopea järki tarkistaa. Kirjaimellisesti visuaalisesti etsi tiedosto. Menetelmä on sama kuin postitse. Joten se ei aio käyttää URL, kuten Google tekee, se tulee tavallaan piilota tiedot takana kohtauksia ja se on aio alistua tiedosto nimeltä register.php, ja se tiedosto emme ole vielä kirjoitettu mutta mitä tämä on menossa näyttää tämä. Jos menen erilliselle sivulle Tämä on mitä localhost / index.php näyttää. Ja vielä, palvelimen vain olettaen index.php. Enter. Niin, että jos me olemme klo, ja mitä haluan tehdä on pystyä kirjoittamaan asioita kuten David, ja sitten puhelinnumeroni, jotka sanovat 617-555-1212 nyt rekisteröidy ja nyt register.php ei löytynyt. Joten minun täytyy toteuttaa tämä. Joten nopeasti piiskaa jotain tällaista ylös. Anna minun mennä minun julkisesta hakemistosta ja tehdä gedit of register.php, ja nyt aion mennä eteenpäin ja Aloita PHP tilassa, kuten teimme maanantaina ja lähellä PHP: n tag, ja Tehdään pari asiaa. Joten yksi, tiedän, mistä kirjoitettuaan, että muoto, että haluan tarkistaa seuraavat. Jos se on tyhjä, riippumatta käyttäjän kirjoitit nimen kenttään, niin Aion sanoa jotain kuten anteeksi puuttuu nimi. Anteeksi, sillä välin, on ei rakennettu PHP asia, se toiminto kirjoitimme vuonna functions.php varten pset7 niin, että voit käyttää sitä. Muuta, jos muut kenttä on tyhjä, numero, niin olen aio pyytää anteeksi käyttäjä ja sanoa puuttuvan numeron. Tallenna tiedosto. Mennäänpä takaisin minun selain, palata foorumi yritä uudelleen. Rekisteröidy. OK. Mitään ei tapahtunut, mikä on hyvä. En saanut virheilmoituksen. Mutta jos sen sijaan, katsotaanpa päivittää tämän sivu, eikä tarjota mitään. Hitto. Tehdä. Rekisteröidy. Mitä tein väärin? Jos tämä on tyhjä, $ _POST nimi. Sano uudestaan? Tietysti. Unohdin tärkein osa, joka on vaatia ("../ includes / config."). Minun täytyy saada anteeksi toiminto, joka Siksi mitään ei tapahdu. Toiminto ei ole olemassakaan. Joten kokeile tätä uudelleen. Katsotaanpa lataa sivu uudelleen, klikkaa Register. OK. Siinä se on. Joten, lähtö olemme näkeminen tässä tulos kutsuvan anteeksi toiminto, super yksinkertainen, ja se vain tulostaa riippumatta Annan argumenttina. Okei, joten katsotaanpa yhteistyötä. Katsotaanpa antaa nimeni kuten David rekisteröidy, puuttuva määrä OK Let säätää, että myös. 617-555-1212. Rekisteröidy. OK. Niin kaikki on hyvin nyt, juuri mitään mielenkiintoista on tapahtumassa. Joten nyt tehkäämme jotain enemmän mielenkiintoinen tapahtua näin. Anna minun mennä phpMyAdmin, ja katsotaanpa itse luoda taulukko nimeltään käyttäjiä, Aion antaa sille kolme pylväät, ja minä nopeasti Luo tunnus ja sitten nimi ja numero, ja ID-kentän olen lähdössä kuin int. Nimi kenttä aion lähtemään VARCHAR ja me sanomme 64, jokseenkin mielivaltaisesti. Määrä aion tehdä, tiedätkö mitä? Menemme Tue meitä numeroita täällä, joten aion tehdä jotain kuten nieriää ja sitten 10 merkkiä max suuntanumero ja sitten seitsemän numeroa. Ja sitten tänne, aion Määritä automaattinen lisäys tällä alalla, tekevät perusavain, ja Aion mennä eteenpäin eikä tarkistaa kaikkien näiden muiden laatikoita. Joten kun nyt vihdoin valitse Tallenna, ja menen takaisin minun käyttäjille pöytä, tämä on mitä se näyttää, jos en nyt napsauttamalla Uusi välilehti rakenne. Joten tämä, on selvää, on vain phpMyAdmin tapa sanoa tietokannan taulukon on tunnus, nimi ja numero kanssa erityisesti kokoonpanoissa ja me jättää loput kentät siellä nyt. Joten nyt mitä haluan tehdä? Joten jos menen nyt minun lähdekoodia, jos kaikki on hyvin Haluan suorittaa seuraavan kyselyn. Insert into, ja voin vain sanoa käyttäjät En tiukasti Tarvitsemme ne takaisin punkit, jos se on ei vaarallinen sana kuin käyttäjiä. Aion sanoa nimi, numero, ja sitten täällä olen aio kova koodi numeroinen arvoista vielä. Aion laittaa kaksi kysymysmerkkejä. Ja tämä on yleissopimus monilla kielillä jolloin jos haluat olla paikanpitäjä merkkijono aiot käyttää kysymykseen markkaa, syistä jaamme palata jutella turvallisuutta, ja tässä Aion niinä kaksi kenttää lähettää nimi, ja sitten lähettää numero, ja nyt tallentaa tiedoston. Ja nyt aion mene alas tässä super yksinkertaisesti sanoa rendersuccess.php, joka tulee olemaan toiseen malliin. Aion luoda todella nopeasti. Geditsuccess.php ja olen juuri menossa sanoa H1 menestystä kyseisen tiedoston. Selvä. Joten nyt, mennään takaisin selain, jossa kävin ennen. Mennään eteenpäin ja vahvistaa kirjoitin David, olen kirjoittanut puhelinnumeron, rekisteröidy. Hitto. Mitä tein väärin? Joten näen virheen täällä, on virhe SQL syntaksin. Saanen palata takaisin gedit, anna minun mennä takaisin register.php, ja mitä jätän että Oli tärkeää viimeksi? Tarvitsen tätä. Haluat tietää, että muut kuin ottaa aikaisemmin huomannut, mutta en tarvitse tätä. Joten nyt mennään takaisin, ja tämä oli hyödyllistä nähdä selaimessa ja siksi on config.php me sylkemään virheitä. Mennään eteenpäin ja lataa, Jatka, menestys. Joten nyt anna minun mennä yli minun tietokanta täällä ja napsauta Käyttäjät, ja selata, ja huomaan nyt on David minun tietokantaan täällä. Nyt teknisesti tällä sivustolla on ei vielä julkiseen internetiin, joten en voi olla muuta ihmisten käyttöön täällä, mutta jos minä nyt halusin, ja Esimerkiksi lähettää itse tekstiviestin. Mennään tukalassa täällä ja onko tämä todella toimii. Aion mennä eteenpäin ja poistaa tämän rivin ja me hämärtävät ulos videon myöhemmin joten meillä ei ole Koko Internet kutoma minua, ja me nyt mennä jopa selain ja menemme yli luennoimaan ja me kirjoittaa eri numero täällä, rekisteröidy, menestys. Joten nyt, oma numero on oletettavasti tietokantaan, ja nyt hauska osa. Katsotaanpa itse käyttää PHP tehdä jotain ohjelmallisesti, joko komennolla line tai jostain muualta, ja nyt olen vain menossa pitämään asiat yksinkertaisina ja aion mennä minun hakemisto täällä ja toimi seuraavasti. Gedit käsikirjoitus sanotaanko, me kutsuvat sitä tekstiä, #! / käyttäjä / bin / ENV PHP, kuten näimme viime kerralla. PHP. Nyt aion vaativat sisältää config.php, vaikka tämä aiheuttaa lievää virhe. Ja nyt aion mennä eteenpäin ja sanoa rivit, kysely, valitse tähti käyttäjiltä, ja nyt aion tehdä tekniikka viime aikaa kutakin rivejä rivi. Ja aion tehdä jotain yksinkertaista. Printf sanokaamme nimi on tämä, ja numero on tässä, kenoviiva n. Ja nyt olen menossa ohi rivillä lainata lainaus nimi, ja rivin lainaus lainaus numero, ja nyt mennään eteenpäin ja minun pääteikkunassa chmod tämä + x tehdä Tämä kirjoitus kutsutaan tekstissä suoritettavan. Ja nyt katsotaanpa juosta tekstiä. OK, niin edistystä. Joten olen nyt kirjoittanut komentorivikirjoitus, kielellä nimeltään PHP, että koska se edellyttää linja, on pääsy kaikille niille kokoonpano vakiot, että olen määritellyt. Tietokannan nimi ja niin edelleen. Itse asiassa vain olla selkeä että tämä ei ole sattumaa, anna minun mennä eteenpäin ja rekisteröidä, todella nopeasti, joku muu kuin Rob ja antaa hänelle 555-1212 numero. Ja nyt, jos en suorita skripti uudelleen, huomaa teho mitä teemme tietokantaan. Nyt olen heti nähnyt, mitä muut kaksi riviä ovat minun tietokantaan. Joten nyt yritetään tehdä jotain jopa harrastaja sisällä, ja tämä on osa meidän olet ei testattu etukäteen, niin viime kerralla tein tämän asiat menivät pahasti pieleen, meillä on video tästä. Oikeastaan ​​joo, hauska syrjään. Joten viimeisen kerran, vuonna luento kuin kaksi vuotta sitten, päätimme, päätin, olla kaikki tämä olisi hyvä idea luoda dynaamisesti sähköposteja luokka, käyttämällä koko tietokannan CS50 opiskelijoita, jotka olivat antaneet meille numerot ja niiden matkapuhelin harjoittajat, jotka sinua Muistanette alkaen pset0, miten järkeillä, se kääntyy pois Minulla oli pieni bugi minun ohjelma ja teki pari virheitä vuonna 2012, luulen. Jolloin yksi minulla oli silmukka, joka teki juuri tällainen asia, iteroidessaan yli tietokantaan, saada nimi tietokannasta, nimi tietokannasta, ja sitten kukin iterointia että silmukka olen lähettänyt sähköpostia. Mutta sen sijaan lähettää yhden sähköpostin, I lähetti yhden sähköpostin ensimmäistä iterointia, ja kaksi sähköpostia toisen iteroinnin, lähetetään kolme sähköposteja toisen iteroinnin, joka kuten ehkä muistatte keskustelu asymptoottinen merkintätapa tämä iso O huono, kuten n potenssiin kuinka monta viestiä olen lähettänyt, mutta se ei ollut edes sähköposteja se oli tekstiviestejä. Ja kuten tiedätte, läsnäolo ei ole Super High loppupuolella lukukauden ja niin ajattelin, että se olisi söpö at aika sanoa, "Miksi et ole luokassa?" Tekstiviestissä I lähetetään koko luokalle, ja se oli hauskaa pitämään 50% luokka, mutta muut 50%, joista osa sekaisin, olen lähettänyt uskomattoman pahoillaan makea muistiinpanoja henkilökunnalle anteeksi ottaa jäi luento juuri Tämän kerran, eikö? Niin että olisi pahasti pieleen. Joten siinä hengessä, yritetään tätä uudelleen, mutta vain minun numero. Ennakolta functions.php, Olen kirjoittanut tätä toimintoa täällä. Sitä kutsutaan tekstiä, ja se vie kolme väitettä. Numero, operaattorin ja viesti. Käytän kytkin selvitys, joka Ihanan PHP ottaa jouset, ei vain kokonaislukuja, enkä toteuttaa kaikki tukea tälle vielä, Olen juuri tehnyt AT & T ja Verizon. Koska se kääntyy pois että nämä lentoliikenteen harjoittajat heillä on sähköposti SMS yhdyskäytäviä, jolloin voit itse Lähetä sähköpostia osoitteeseen kuten puhelinnumeroon vtext.com ja jos käyttäjä ei ole estänyt viestit, se tulee läpi on tekstiviesti. Nyt tehdä tämän, aion pitää lisätä yksi kenttä todella nopeasti minun tietokantaan. Aion mennä minun rakenne, ja olen aio mennä eteenpäin ja lisätä kentän lopussa taulukossa. Katsotaanpa napsauta Siirry, ja olen aio kutsua tätä harjoittaja ja nyt aion jätä tämä baari teksti, mutta emme voi olla hienompi tulevaisuudessa. Aion nopeasti mennä minun pöytä, ja olen menossa päästä eroon Rob, koska se on väärennös numero, Aion mennä muokkaa täällä ja olen aio muuttaa operaattorin manuaalisesti olla Verizon, jonka se on, ja nyt tänne. Tehdään nopeasti järki tarkistaa. Katsotaanpa avaamaan tekstin kirjoitus, joka näyttää tältä, kantaja on% s. Me teemme paljon enemmän virhe tarkkailun kuin tein vuonna 2012, kantaja. Ja nyt, aion mennä eteenpäin ja uusinnassa script. OK. Carrier on Verizon, mikä tarkoittaa Nyt toivottavasti voin tehdä juuri tätä. Oikein tänä vuonna, Toivottavasti tässä sitä mennään. Joten sisällä tätä silmukka, olen menossa ei ole vain tämän printf, Olen myös menossa soittaa tekstiä ja käyttö tämän funktion hakeminen oli se vie numero, harjoittaja, ja viesti. Katsotaanpa, numero tulee olla rivi lainaus lainaus "numero" rivi lainaus lainaus "kantaja" ja viimeinen oli viesti. Älä tyriä tänä vuonna, puolipiste. OK. Peukkuja. Katsotaanpa, jos tämä toimii. Okei, niin. Nyt mennään. Katsotaanpa avata puhelimen, pidä peukkuja, perkele. Määrittelemätön muuttuja may-- oh Odota, odota, odota, todella nopeasti. Todella nopeasti, todella nopeasti. Tämä on täysin sen arvoista. Saanen tarttua, anna minun napata, uh-oh. Kiitos, tekstit ovat alkoi joku muu. Anna minun mennä eteenpäin ja avata todellinen nopea, dropbox.php / posti täällä. Valmiustilassa. Täysin sen arvoista. Lataukset. OK, lähde src8m. OK. Tarvitsen yhden rivin täältä. Voi siellä se on, se on Frosh Pikaviestejä, se on rekisterissä kolme. Voi Hei, Margo, paljon kiitoksia. OK, ja kaipasin tätä linjaa täällä. Haluan siis nopeasti napata koodirivin, joka sisältää sähköpostin tai kirjastossa että olen todella haluavat käyttää, Aion nopeasti mene takaisin toimintoja, Aion mennä alkuun tämän tiedostoon ja vaatia tätä tiedostoa samoin, ja nyt aion todella ylittää minun sormet kun menen takaisin komennolla komentojonoa, joka on sisällä Nykypäivän paikallinen isäntä hakemistoon. Suorita tekstiä. Enter. Mail. Valmiustilassa. Valmiustilassa. Mail. Oh, OK. Nyt mennään. Mail saa uusia PHP Mailer. Teinkö oikein? Hitto. To-- Oh, odota, odota, odota. Valmiustila. Lupaan, tämä on tulee olemaan niin sen arvoista. Osoite. Siksi en tee esimerkkejä juuri ennen luokan. Yäk. Seuraavat tuensaajista ei. Kokeillaan vielä viimeinen asia. SMTP asettaa, lisätä osoitteen, osoite on todellakin se. Kokeillaan tämä viimeinen osa osoite. Aw, olen todella surullinen juuri nyt. Kiitos. Mutta olen todella kiitollinen kaikille tekstien olet lähettämistä. Sinulla tämä David. Olet puhaltamista. Jätetään se sinne ja me korjaamme maanantaina. Nähdään sitten. Daven FARNHAM: Ja nyt Deep Ajatukset Daven Farnham. Jos binary puu kaatuu metsässä ja kukaan ei noin C it-- [naureskelee].