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