[Predvajanje glasbe] DAVID J. Malan: Dobro. Dobrodošel nazaj. To je CS50. To je konec 8 tedna. In kot veste, imamo precej redni delovni čas v nekaj V jedilnici, vključno Annenberg. In nekateri ekipe prijazno vzel nekaj fotografij v zadnjem času. In v čast Halloween, smo menili, da bi imamo enega, ki nas ne ulovi presenečenje tukaj v dvorani Annenberg samo drugi večer. Vaš sošolec Jacob pozirala Ta fotografija je bila, ampak bolj zabavno je bil na Facebooku, je sledila pogovor, ki se je zgodilo pozneje. 

Njegov prvi post v odgovor njegovi fotografiji je bilo to. Nekaj ​​minut kasneje se je odločil, enega do sebe s tem. V nadaljevanju je nato iti v to, in nato, še bolj amusingly je, ko je njegova mama chimed. In potem na koncu, zdi se, da je to le čudovito zvijačo za igrati, da se dogaja. 

Torej, če bi želeli da vidim, Jakoba in drugi, med njimi Cynthia Meng, kdo je zakulisju CS50 cone osebja, glavo na tem URL-ju in s tem vlogo. Torej, brez odlašanja, danes smo nadaljuje ta pogled na spletnem programiranju, in dejansko oblikovanje programov ki ne vodijo na vaši ukazni vrstici, ampak teče znotraj brskalnika. 

Verjetno zdaj, ali pa zelo kmalu, boš da je sredi izvajanja svoj spletni strežnik, ki je drugačen od spletnega programiranja. Spletni strežnik v pset6 je vse okoli pisanje programske opreme, ki ve, kako se bo Zahteve HTTP iz brskalnika, ali celo od tebe, človek, s programom, imenovanim Telnet, in Nato se odzove na te zahteve, bodisi ga izpljunil datoteko HTML, ali jpeg ali gif ali celo .php datoteke. 

Ampak s spletnega strežnika, to ni naj bi samo odpreti datoteko PHP, nekaj, kar se konča z Php in nato izpljunite vsebino. To naj bi storili kaj te datoteke prvi? Tako rekoč. Ne zbere, smo rekli v ponedeljek, vendar rather-- Torej, interpretirati. 

PHP je razlaga jezik, in tako ena od ključnih funkcij v vašo spletno server, čeprav pri nas izvaja, je to sposobnost za vaš spletni strežnik opazili, oh. To je datoteka, ki se konča z Php. Dovolite mi, ne samo ga pošljite na Uporabnik je všeč to statično vsebino, ampak povej mi to linijo prebrati linija, od leve proti desni, in jo razlagajo. 

In storiti, da vas Fantje bodo bistveno punt s programom na aparatu, in na veliko računalniških sistemov, Pravkar se imenuje PHP. To je ime za PHP Jezik lastno tolmač. Tako, da smo kos izvajati za vi, in kaj je ostalo za vas, v končni fazi, je število kosov, med katerimi je izvajanje podpore za statično vsebino. 

Toda zdaj, in s problem nastaviti sedem, ste bo za začetek prehoda na dejansko pisanje PHP kodo da se interpretira v pogovoru z zadnjega konca Baza podatkov, ki shranjuje podatke. Torej Dovolite bolje razumeti najprej Nekaj ​​teh superglobals in samo koliko moči vas ven iz škatle brezplačno z jezika, kot je PHP. Stvari, ki jih nimajo izvajati sami. 

Torej, smo videli v ponedeljek $ _GET, ki je superglobal, ki je šele PHP govorijo globalno spremenljivka lahko dostopate kjerkoli. In kaj je notri od $ _GET? Kaj je notri tega superglobal da vidimo? Zagotovo statistično na vsaj ena oseba ve. Kaj je notri od $ _GET? Ja? 

OBČINSTVO: To so spremenljivke daš v poizvedbi. 

DAVID J. Malan: Popolna. To je za vas spremenljivke dal v poizvedbi. Torej, v naši starejši primer reimplementing Googlu, ko smo imeli URL, nato pa vprašaj, ki razmejuje začetek HTTP parametre, nato pa smo imeli q enako kaj podobnega, kot je q enak mačke, kaj bi avtomatično noter od tega $ _GET super globalna vas, ker PHP, je ključ Q, in vrednosti njenega mačk. 

Z drugimi besedami, $ _GET in vse te stvari so asociativne nize, hash tabele vrst, da trgovina ključi in vrednote. Zdaj pa nazaj v pset5, hash miza ste morda izvajajo, ali vam lahko poskusite izvajajo, res je dejansko asociativna matrika, struktura podatkov s katerim lahko povežemo Tipke z vrednostmi. 

Toda v pset5, so bile vrednosti nepomembno. Vrednost je bila v bistvu resnična ali neresnična. Je beseda v slovarju? Torej, ko zgoščene besedo, kot jabolko da vidim, če je jabolko v slovarju, ček funkcijo predvidoma vrnil true ali false. Tako, da je učinkovito vrednost smo dobili nazaj. 

Vendar smo videli v ponedeljek na kratko, lahko zagotovo povezujejo bolj zanimivo Vrednosti kot samo true ali false s tipkami, kot so jabolka. Lahko bi se dejansko vrnili poljuben niz, in res, to je tisto, $ _GET in ti druge spremenljivke kaj počnete. 

Torej $ _POST Podobno je tudi v duhu, če pa predloži obrazec po pošti, drugačen način HTTP, ki je ki se uporablja za stvari, kot so kreditne kartice, in osebne podatke, in celo Binarni podatki, kot so fotografije, te stvari končajo znotraj $ _POST. In dejansko datotek kot JPEG in drugih malenkosti, tam je še en, ki ni tu imenujemo $ _FILES kot dobro. 

Torej, strežnik ne bomo živijo na preveč veliko, vendar pa vam daje dostop razvrstiti nižjih ravni podrobnosti o strežnik sam, da ga uporabljate. Cookie in zasedanje, čeprav, bomo dejansko videli zdaj. Slednje je tisto, kar bomo uporabili za izvajanje Pojem košarici. Super enostavna, vendar odpoklic da smo imeli ta primer tukaj, štetje, koliko jih krat je obiskal to stran prej. 

Ampak danes, ne samo pogled na Učinek tega, kaj je odprla Inšpektor Chrome, ki lahko običajno storiti z desnim klikom ali nadzor klikom kjerkoli na spletni strani, in nato preglejte element. Ali lahko greš skozi menije da bomo opisali v spec pset6 je. In bom jeziček Network tu, in kaj je gledal za trenutek HTTP promet, ki je gredo naprej in nazaj. 

Naj najprej iti naprej in cache clear Chrome. Torej, nekateri od vas morda pozna s to tehniko že, in bomo, da ga uporabljate za namene debugging tukaj. Zdaj smo kot računalnik Znanstveniki se bodo začeli ta način za razhroščevanje namene, pri čemer bomo počistiti predpomnilnik, Značilno je, da bomo lahko znebite stvari, imenovane piškotki. Torej, ste verjetno splošno znano s tem, kaj so piškotki, ali vsaj da obstajajo, ampak kaj je Vaše razumevanje njih, le kot uporabnika računalniki, kaj je piškotek? Ja. 

OBČINSTVO: To je malo of-- dobro, ne bit v dobo računalništva. To je podatek, da Spletna stran pošilja k vam, da bi da bi lahko zapisali statistični podatki o vas. DAVID J. Malan: OK, dobro. Torej, to je podatek, da strežnik, postavlja na vaš računalnik, in kaj je to posplošiti tudi še več, to je ključ value-- dobro, ki je vse bolj natančna. To je kos informacija, podatek, da je strežnik sposoben da dajo na vašem računalniku in zelo pogosto, strežnik ne to tako, da se spomnite, kdo ste. Torej, na primer, kvota so si verjetno prijavljeni v mestih, kot so Facebook, ali Gmail, ali druge prej, in se prijavite z vašim uporabniško ime in geslo, in nato po tem, iz nekega števila minut ali ur ali celo dni, Strežnik spomni, da ste v resnici, prijavljeni. Zdaj, kako je to dejansko dogaja? Ker si zagotovo ne tipkanja vaše uporabniško ime in geslo, vsakič krmarite do drugačna stran na Facebooku. Tako se izkaže, piškotki so odgovor. 

Piškotek si lahko zamislite, kot je, nekako všeč, digitalni roko Žig, ki jih lahko dobite na zabavo park ali klub, ki v bistvu označuje, da ste bili tukaj prej, in ste že pokazala svoj ID za Izbacivač za instance, in da klub ali park mora zdaj prevzeti, da vas bili preverjeni že. Ste jih že opredelila njim. 

Torej, s tem v mislih, dajmo odpreti števec tukaj. Dovolite mi, da gredo naprej, tako sem storil, in počistiti vse moje piškotke. In zdaj, kaj bom storiti, je držite Shift, samo za dober ukrep, in prisilno osvežite stran. Shift le poskrbite, da nič ne dobi v predpomnilniku. In tukaj je prošnja da je šel naprej in nazaj. Torej, tukaj imamo zahtevo, in pustite, me povečavo tukaj, in veliko od tega je neke vrste nezanimive podrobnosti za zdaj, da ima brskalnik samodejno poslano, vendar pa kliknite Pogled Vir za prikaz surove glave. 

In če ste se vrgli v pset6 že, boste zagotovo prepoznali stvari kot je ta, in morda nekaj teh drugih črt, ampak kaj je bolj zanimivo za danes če sem se pomaknite navzdol in ne na zahtevo ampak ti odgovor, ta vrstica verjetno izgleda znano. To je dobra stvar ko vidiš OK 200. Očitno je to Datum in čas na strežniku in tam je kup stvari. Oh, to je zanimivo. 

Izkazalo se je, ko boste uporabili PHP, vsaj v tem strežniku, Strežnik izpljune kaj Različica PHP, ki jo uporabljate. Ki, pravzaprav, za varnost namene, ni dobra stvar. Ampak, bomo prišli nazaj na to kdaj drugič morda. Toda zdaj je to sočno linija danes in smo na kratko videla nekatere izmed njih, Mislim, da na Facebooku, ko smo podrezal okoli inšpektorja v tistem času, set Piškotek je tisto, kar je sajenje da košček informacij na vaš računalnik. 

To je glava HTTP da je učinkovito povedal brskalnik Chrome, IE, ne glede, hey brskalnik trgovina na uporabnikov trdi disk, ali v uporabnikovi RAM, Ključ imenovano PHPSESSID, ki je okrajšava za zapis seje ID, in ji dati vrednost 0vlk8t, dot, dot, dot. Res dolgo pseudo random alfanumerični niz. To je samo res velika številka, vendar to je kodiran s črkami in številkami tako da je lahko velikost njo celo večje od samih številk. In potem, mimogrede, Path = /, da pomeni le, da mora biti ta piškotek povezana z celota na spletni strani, Ne samo specifična Stran stvar. Torej, to je, da virtualni roko žig. To je, kot da je strežnik, Facebook, ali v našem primeru aparatov, ima dobesedno pisno 0vlk8t in tako naprej, na roko. Opažati strežnika, ne delaš, je, da je ni shranjevanje svoje uporabniško ime, zagotovo Ne shranjevanje svoje geslo. 

Namesto tega se zdi, da je shranjevanje psevdo naključno informacije tako da nihče ne more uganiti kar moja roka žig. Na strani strežnika, medtem, strežnik se dogaja, da se spomnimo, verjetno v bazi podatkov ali kaj podobnega, da uporabnik, ki v prihodnosti predstavlja ročno žig 0vlk8t, dot, dot, dot, je treba v tem okviru zlasti nakupovalni voziček, tako rekoč. Z drugimi besedami, če bi zdaj šel nazaj in osvežite stran, kako strežnik vedeti da sem obiskal enkrat? 

Ali pa, če mi še enkrat, kako se strežnik vem, da sem ga obiskala dva krat? No, če grem na to Zadnja zahteva, ki je zdaj tretji, ki sem jih poslal skupaj, opazili mojo prošnjo zdaj. Še vedno je to zaprosi tukaj, enako kot prej, še vedno cel kup stvari, ki smo jih prezreti kot prej, vendar zelo zadnji glavo, to čas, ker sem že bil tukaj, je predstavitev ta virtualni žig roko. 

Pri čemer je ta linija tu ni nastavljen piškotek vendar piškotek colon PHPSESSI = 0vlk8t, to je samo moje brskalnika avtomatski predstavitev te strani žiga, tako da Sedaj strežnik, takoj, ko se zave, ooh, to je uporabnik 0vlk8t dot, dot, dot, Zdaj lahko spomnite, kdo je on ali ona reassociate in s tem uporabnika karkoli Informacije hočem, in vsi te informacije se lahko shranijo z vami, programer, v $ _SESSION. 

Torej, da bo jasno, če sem odprla resnično hitro v gedit, da dejanska datoteka, counter.php, v moji lokalni gostiteljici javni imenik kot prej, opazili, da, res, Jaz sem na koncu shranite v $ _SESSION Quote citata "števec" vrednost prejšnjega števca, ki Sem dobil iz teh vrstic tukaj, da smo Pogledal zadnji čas plus ena. Torej, pod pokrovom, to je vse piškotki. To je samo neke vrste digitalnih ročni žig gredo naprej in nazaj, in odkrito, če odprete Chrome je Inšpektor na kateri koli spletni strani obiščete danes, z super velika verjetnost, boste videli morda enega, morda pol ducata piškotki se spomnil s tabo. 

In še huje, če je tisti, Spletna stran, ki jo obiščete vsi oglasi, ki je prav gotovo precej pogosta danes in če se ti oglasi, ki prihajajo iz neke osrednje stranke, nekdo kot so Google ali AdWords, kot so pokličite eno od svojih izdelkov ali drugih takih prodajalci, ki prodajajo oglase, kar je zanimivo, in odkrito, kaj je malo zaskrbljujoče, kako HTTP deluje, je, da če imate oglas vgrajeni v Facebook.com in Google.com, in Harvard.edu poljubno število spletnih strani, tako da je na primer da obstaja srednji človek, ki služi up oglasi za vse tri od teh spletnih strani, se izkaže, da piškotki na domeno. 

Torej, če imate oglas, ki prihajajo iz Ista družba na različnih spletnih straneh, da podjetje lahko učinkovito spremljali kdo ste po vseh teh spletnih strani. Harvard morda ne vedo, ste na obisku Facebook. Facebook morda ne poznajo in ste na obisku Harvard. Ampak karkoli ad servis oni uporabljajo, če je to domena prisotna tako v Harvard.edu spletu strani in Facebook.com spletne strani, ta srednji človek, zagotovo ve, kdo ste ker se ti piškotki deljena čez, ali ne bi, da ti posrednik. 

Torej se bomo vrnili na to varnostne posledice le-teh, vendar pa je veliko informacij ki jih hranimo o vas kadarkoli obiščite najbolj katerokoli spletno stran na internet in res zmanjšuje s tem zelo preprostim mehanizmom. Kaj se zgodi, nato pa, če ste super paranoičen in ste se odločili, da gredo v Chrome ali IE ali karkoli in izklopite piškotke? Kaj se zgodi? Ja? You really-- ste storili to pravico? OK. Ne, pojdi naprej. 

OBČINSTVO: Nekatere spletne strani nimajo Funkcija brez nje, kot so Facebook. DAVID J. Malan: Ja! Torej, nekatere spletne strani bo samo preneha delovati. In v večini spletnih strani v teh dneh ki bistveno zanašajo na piškotkih, še posebej, če ste se prijavite v, oni so le, da bo prekinil. Ker menijo, alternativa, če je spletna stran nima možnosti spominjanja, kdo ste, in zato vaš spletni brskalnik ni predstavlja z vsakim HTTP Zahteva te strani žiga, učinkovito spletno stran kot so Facebook dogaja da so za vas pozove, da prijavite vsak darn čas zamenjate strani, ali pa kliknite na povezavo, ki zagotovo ni posebej dobra uporabnik izkušnja. 

Torej, da tudi tam, je Med kompromisih. Torej, brez odlašanja, vzemimo samoumevno, da s spletnim programiranjem, v jezikih, kot so PHP, se lahko spomnite informacije, kot da je v problem nastaviti sedem, ko izvajajo svoje E * Trade podobno spletno stran, s katero kupiti in prodaja zalog, boste spomnim točno kaj je uporabnik kupi in proda in kdo je on ali ona s pomočjo te seje. Vendar pa bomo morali Ljubitelj način kot e-pošto za začetek hranjenja podatkov okrog. Kajne? 

V ponedeljek, smo se pogovarjali o Frosh UI in kako v različici ena te spletne strani, pred leti, vse, kar smo naredili je bilo pošlji Proctor, ki je zadolžen za Notranji šport Program, ime in spol, in ali oni kapitan, in domu nekoga, ki je registracije za occasional športa. Tako da to ni slabo, ampak on ali ona potem moral troll preko elektronske pošte, narediti preglednico ali nekaj podobnega da, da je vse organizirano. Torej, zagotovo bomo kot programerje to lahko storite za to Proctor. In tako se začne v SQL, Structured Query Language, ki bo lepa razlikuje tako C in PHP, in boste potopite v veliko več roke PHP in problem določiti sedem, ampak tudi SQL, ali SQL, to je jezik, ki uporabljate za pogovor z bazo podatkov. 

Toda kaj je baza podatkov? Pa misliš, baza podatkov, vsaj za zdaj, kot biti le kot datoteko Excel, ali Če ste uporabnik Mac a številke datotek, ali če ste Google Apps Uporabnik Google preglednico, to je dejansko bazo podatkov, ali res posebej relacijske baze podatkov. Relacijske baze podatkov, je le nekaj, kar ima stolpce in vrstice, in lahko shranite vse vrste Informacije v teh vrstic ali stolpcev. 

Toda kaj je lepo o SQL in o dejanskih podatkovnih baz, ne samo preglednic ali Google preglednic je, da lahko uporabite jezik dejansko izvedbo poizvedbe vstaviti podatke, odstraniti podatke, za iskanje podatkov, tudi kar je najpomembneje, in vam ne bi bilo treba uporabiti precej ročno Kot ste lahko običajno Google preglednice, kot je ta. 

Torej v SQL, tam je kup temeljne izjave ali kosov funkcionalnosti zgrajena leta. Tam je veliko več kot to, vendar pa lahko greš ogromno razdaljo samo po vedoč, da ta jezik se imenuje SQL ima najmanj štiri Izjavi lahko vzvoda. 

Brisanje, za odstranjevanje podatkov, Vstavi, za dodajanje vrstic, Posodobitev, za spreminjanje Vrstice in Izbiranje, za pridobivanje nazaj vrstic in da je to res tisto, kar SQL počne. Deluje povsem na vrsticah tako da, ko vstavite ali odstranite, ali posodobitev, ali pa izberite kaj ste dobili nazaj kot ti nizu, kot niz vrstic. Kup vrstic iz tabele. 

Torej, nazaj v dan, in tudi na ta dan, lahko interakcijo z Baza podatkov v ukazni vrstici, vendar pa to ni posebej zabavna za uporabo to črno-belo okno stil in dejansko izvajanje ukazov in suniti okrog vaše baze podatkov. Grafični uporabniški vmesnik ali GUI, je veliko bolj zaželeno, verjetno, in tako orodje priporočamo in prednameščen za vas na aparatu se imenuje phpMyAdmin. To je skupno naključje, da Ime te stvari ima PHP v njej, to samo pomeni, da so ljudje ki se je pisal ta program ga je napisal v PHP. 

Vendar je na koncu o upravljanju podatkovni strežnik, kot strežnik MySQL da ste morda, kot ti storiti, v CS50 aparata. Torej je več kot detail tukaj moramo skrbeti za danes, toda kaj je ključnega pomena je, da je na levi strani hand side je seznam podatkovnih zbirk da imate na vašem računalniku, na CS50 aparata, ali pa da se končne projekte, ki jih morda imajo na tretjo osebo, podjetje je spletno stran ali spletni strežnik, ki vas bo morda plačal za prostor. Torej na levi je podatkovne baze, od katerih je eden je pset7 ki sem si sposodil iz Naslednja tednov pset, in nato na vrhu tam opazili, da je kup zavihki, od katerih se podatkovne baze, SQL, status, Uporabniki, izvoz in tako naprej. Tako da lahko greš dolgo način samo z vnovčitvijo da večina uporabniškega vmesnika je v zgornjem levem stolpcu in na vrhu, prav tam. Torej, kaj lahko dejansko s tem? No, začnimo ustvarjanje malo informacij, kot sledi. 

Recimo, da tole ni tako, saj bo v nekaj dneh, želite izvajati Spletna stran, ki se imenuje CS50 Finance, in ta spletna stran vam omogoča, da kupujejo citiram konec citata in prodaja zalog. In to se dogaja, da ugotovimo, cena teh zalog, v končni fazi, kot boste videli, s pogovori z Yahoo Finance. Ki je čudovito, ima brezplačno storitev s katerim lahko prenese na zalogi Ticker kot GOOG za Google in bo daš nazaj Googlov trenutni vozni park cena v preteklosti Nekaj ​​minut vsaj. 

Tako da boste uporabili, da v končni fazi, da se pretvarjamo za uporabnika za nakup in prodajo dejansko zaloge uporabo navideznega denarja, vendar zelo prva stvar Uporabnik se dogaja, da vidite je to login screen, ki jih poziva, za njihovo ime in geslo. In zato, ena prva izzivi za vas v pset7 se bo za izvajanje zadnji konec baze podatkov, preglednice, če hočete, da se dogaja, da shranite uporabniki imena in gesla in nenazadnje, kaj zaloge v njihovi lasti, in koliko in koliko gotovine imajo, tako kup drugih stvari v druge tabele ali preglednice. 

Tako pa si oglejte, kako je to se morda zdi na prvi pogled. Grem, da se vrnete aparat in sem šli na ta URL tukaj phpMyAdmin localhost / phpmyadmin in boste videli, da je me popelje do vmesnika točno tako, kot smo videli na screen shot, in tukaj sem imajo dodatno bazo podatkov pozval predavanje za danes in mi gremo naprej Prvi in ​​kliknite na pset7. 

Zdi se mi, da imajo nekaj možnosti, ena za novo, za ustvarjanje nove tabele, in povezava na uporabnike, ki je tabela sem že ustvaril. Torej, kaj je miza? Torej, če ste uporabili Excel prej, in če ste Rabljeni številke ali Google Preglednic, odpreš okno in dobiš cel kup vrstic in stolpcev, potem pa ponavadi liste na dnu ali na ločenih zavihkih. Si lahko zamislite vsak delovni list kot tabelo tako, da je baza podatkov, v končni fazi, je kombinacija ene ali več tabel, ena ali več delovnih listov, v svet normalno preglednici. Torej, naj grem naprej in kliknite na ta delovni list da sem že narejenega, imenovanih uporabnikov, alias Tabela zbirke podatkov. In če sem se pomaknite dol, Naj pomanjšati bit, To je tisto, kar je povedal, phpMyAdmin nam je znotraj te tabele zdaj. To je malo zmedeno na prvi pogled, ker UI ni najlepša stvar na svetu, vendar tisto, kar je zanimivo, je to del tukaj. ID, uporabniško ime in hašiš. 

Vnaprej, in boste handed to problem nastaviti sedem, smo vam datoteko, ki vsebuje super majhna tabela baze podatkov, sposodil dejansko od izdaje hacker za problem določiti dva, znotraj katerega obstaja šest vrstic. Eden za vse, je Belinda tja do enega za Zamyla, in opazili na levi strani tistih uporabniška imena so edinstveni ID kot eno, dva, tri, štiri, pet, šest, celi števili, in nato na desni so hashes. 

In če so kvote, nisi naredil problem heker izdaja nastavljena dva, ampak hash je tako kot šifrirano geslo z nekaj pridržki. In tako, kar vidite tukaj šifriranega različice vseh šest naših gesel iz problema določi dva je hacker izdaja. Zdaj na levo je le nekaj GUI stvari, urejanje te vrstice, kopiranje to vrstico, črtanjem te vrstice. 

Ampak kaj je zanimivo Zdaj je naslednja. Lahko dejansko začeti eksperimentirati s to tabelo. Torej, če grem in kliknite SQL tab, sem dobil to veliko polje z besedilom. In to ni, kako bomo to storiti, ko dejansko pisanje kode. Da bo jasno, phpMyAdmin je samo orodje, ki je dogaja, da nam suniti okrog baze podatkov in nam eksperimentirate s poizvedbami. 

Tako na primer, domnevam Izvršim točno to. Izbira, ki je ena izmed tistih ključne besede, ki sem jo omenil prej, zvezda, ki predstavlja vse stolpci v tabeli. Od kar miza? No, uporabniki. In obvestilo pa je to čudno konvencija v SQL kjer ste dejansko uporabo nazaj klopi, tipično, ne posamezni citati in ne dvojni narekovaji ko govorite o imenih tabel, tako nazaj citat je stvar na zgoraj levo roko tipkovnice najbolj verjetno. 

Torej mi daj zdaj in pustite, da sam in se pomaknite navzdol in kliknite Pojdi, in smo dejansko videli isto stvar. Pravkar smo izvedli SQL poizvedbo rekoč izbrati vse zvezde iz miza pozval uporabnike, in kaj dobiš nazaj je to. Konec koncev bomo mogli storite to isto stvar v zakoniku, vendar za zdaj vse, kar sem želel pa je bilo videti v mojem brskalniku. No, dajmo narediti nekaj malo drugačna. Naj grem nazaj na zavihku SQL, in naj samo povem, da je kaj? Zamyla je izgubil vse od nje denarja, zato je čas za nas, da jo izbrišete kot uporabnika. Ona ni več prijaviti. 

Tako bom rekel, brišete from-- dobro, vzdrževati kapitalizacijo zaradi doslednosti, brisanje od uporabnikov kje. In tako bomo lahko imeli ti predikati, ali ti kvalifikanti, na koncu moje izjave kje in kako bi lahko jaz izbrisati Zamyla? S svojo blagovno Zamyla, tako stolpec, eden izmed stolpcev je bil imenovan, tako da če name = "Zamyla". In tukaj uporabljam double kotacije ali samske quotes, uporabljate samo nazaj klopi, ko govorim o imenih, na primer, tabel in polj. In mi kliknite Pojdi tukaj. In zdaj, spletna stran pri čemer je malo zategnjen. 

Ali si res želite izvesti brisanje uporabnikov, kjer ime je enako Zamyla? Da. Torej, zdaj, če gremo nazaj na mojo mizo s klikom uporabniki opazili, da Hm. I goofed. In v resnici, sem nekako kliknil stran tako hitro nisi niti videti rdeča sporočilo o napaki, morda. Kaj sem naredil narobe? OBČINSTVO: Niste potrebujete unovčiti njeno ime. DAVID J. Malan: Ja kapitalizirajo svoje ime, vendar ji username-- Pravzaprav sem naredili nekaj napak, kajne? Ena, njena uporabniško ime zamyla, male črke Z, in ime stolpca je ime, ni imenovan, tako da je to še enkrat. Dovolite mi, da gredo naprej in izbrisati iz uporabnikov, medtem ko uporabniško ime je enako quote citata "Zamyla". Vse v redu? Torej, to izgleda malo bolje, kaj grem se pomaknite navzdol in kliknite Pojdi. Še vedno se dogaja, da kričati name, da se prepričate. I kliknite Yes, in zdaj smo videli, odkrito povedano je to zgodilo, res hitro, manj kot ena Drugi vsekakor pa je to je točno to vprašanje, da imam usmrčen. Za potrditev, mi kliknite uporabnike in tudi zdaj Zamyla je izginil. Sedaj pa naredi ravno nasprotno. Denimo, da Gabe želi Registracija za spletno stran. Kaj je SQL poizvedb, kaj je Ukaz lahko sem tip dodati Gabe? No to je precej preprosta. Vstavite v uporabnike, in zdaj postane malo skrivnosten. Moram navesti, na strežnik, Na katerih področjih želim dodeliti. Res ne skrbi, kaj Gabe ID številka, tako da bom preskočiti to. Jaz sem namesto tega reči uporabniško ime, hash, nato pa Vrednosti želim dati tam se bo Gabe. In potem je njegov hash, ne vem. Torej za zdaj, bom pustite, da tako velika, da storiti. Vrnili se bomo na da v določeno težava spec, kako si dejansko naredil. 

Tako obvestilo, še enkrat, sintaksa. Vstavite ime tabele, nato oklepaju seznam polj, stolpce, ki jih želite dodati vrednote, in potem samo Enako natančno naročanje levi Pravica do vrednot, ki jih želite dodati, in to je samo zato, ker zavijanje Besedilo je malo dolgo. Torej, zdaj pa me kliknite Pojdi. Ena vrsta vstavi. In zdaj, če grem nazaj Uporabniki, kaj je zanimivo je, da le ni Gabe sedaj v baze podatkov, kar je očitno njegov ID? 

No, to je sedem. Zakaj je sedem, ko nisem uspel dodati? Torej tudi to je eden izmed Funkcije, ki jih dobite v bazi podatkov. Veliko zgrajena v funkcionalnosti. Izkazalo se je, da ko ustvaril to tabelo, Prednastavljena sem, da je avtomatično določil ID tako, da korakih. Torej, če ste kdaj podrezal okoli, in pogledal, kaj je tvoj Facebook ID Številka je v teh dneh, da to ni res stvar, ampak Facebook kot API, Application Programming Interface, s katerim lahko dobite nazaj cel kup podatkov o sebi, o svojih prijateljih, in vaše povezave. In kaj je bilo nekako kul, nazaj v dan, je pogledati, kaj je tvoj Facebook ID številka je. Mark Zuckerberg je, na primer, je tri saj je bil avtor razstave. In kot zgodba, je ustvaril dve preskusni računi, uporabniki ena in dve, ki je bil nato izbrisan. In tako, Zuck, saj je njegovo ime na Facebooku, je ID številka tri, in vsi imajo veliko število večja kot tri te dni. Dejansko, na neki točki Facebook odselil od celo z uporabo int, ki je 32-bitna vrednost, s pomočjo Naslednji korak, bistvu dolgo dolgo tako da lahko sprejme še več uporabnikom, ki se registrirajo. Tako zabavno malo zgodovinsko dejstvo. 

Tako, da je samo osnovno sintakso, s katero bomo morda izvršiti nekaj poizvedbe, vendar smo lahko dejansko storite z SQL kup več stvari. In videli boste, končno, v problemu nastavljena sedem da moraš narediti število konstrukcijskih odločitev, Med njimi se bo kaj podatkovni tipi za uporabo. Torej, tako kot v C, obstajajo podatki vrste v zbirki podatkov, kot so MySQL, in vrste podatkov morate izbrati od vključevati teh področjih tukaj. Char, varchar, Int, big int, decimalno Datum in čas, in mnogi drugi. Torej, kaj je zdaj to narediti. Oglejmo se pretvarjamo, da nismo roko si ta uporabnikov miza in dovolite mi, da gredo naprej in ustvariti za Sam, na predavanjih database-- dejansko Naj gredo naprej in brisanje miza imam tu že tako da bomo lahko dejansko ustvarijo to. Ops. Grem, da spusti to miza in zdaj sem bo spet šel na predavanje bazo podatkov tukaj, Grem, da ustvarite tabelo imenovanih uporabnikov in dajmo pač tri stolpce na začetku in kliknite Pojdi. 

Zdaj, za večino del, Ponovno je to le uporabljate to grafično orodje, imenovano phpMyAdmin, in kaj počnemo sedaj ustvarja mizo. Torej, to je kot tekoč Datoteka, Novo, in ustvarja novo Excel datoteko. Torej, to je asking me nekaj vprašanja, od leve proti desni, kaj je ime prvega stolpca, in nato ime drugega stolpca, in ime tretjino. Torej, kaj je to ponovno. ID, in nato ime je on, nato pa je bil še en hash. Torej, kaj naj bi podatkovni tip zdaj za področja, kot so ID? 

Tukaj je celoten seznam podatkovnih tipov vam na voljo v podatkovni bazi, in za zdaj pa le pojdi z notr. 32-bitna vrednost, jaz ne mislim realno sem dogaja, da imajo več kot 4 milijarde Uporabniki v mojem računu, v moji službi, tako da bom obdržati premikanje na naslednje vprašanje. Ne grem, da določite Dolžina ali vrednosti, je ne uporablja tu notr per. In zdaj sem lahko določite, očitno, privzeta vrednost, ki je ne bom opredeliti. Primerjanje, ne vem, kaj to je. Atribut. Zdaj smo pravzaprav storili imajo odločbo design. Torej je nekaj polja tukaj, ne vsi za katere se uporabljajo, vendar nepodpisano pomeni le, kaj? Da int mora biti? Samo nenegativno. Torej mora biti 0 na up. Ne, ne grem preveriti, saj Želim vsak uporabnik imeti ID da ne more biti nič. In potem smo dobili nekaj več zanimive odločitve oblikovanja je to všeč. Vrnili se bomo, da to v tem trenutku, kaj pa še ena značilnost baze podatkov je, je, da vam lahko povem podatkovni strežnik gredo naprej in optimizacijo sebe, svojo RAM in vaš prostor na trdem disku, tako, da izbere, in vložki, in izbriše, in posodobitve so zelo hitro. Primerjajte to z pset5. 

Če bi želeli poiskati nekaj V vašem hash tabele, ki misliš, da gre za bazo podatkov, ki je moral storiti vse, delo za izdelavo vaše hash tabela hitro. To je kot, seveda, ti. Kajne? Si moral postaviti v vseh časovnih globe v tuning stvari, dobili funkcijo razpršitve V redu, poskušal ugotoviti, kako veliko vedra imeti. 

Toda kaj je lepo, še enkrat, o podatkovna baza si punt vse To z drugimi ljudmi ki so to mislil skozi vas, in kaj Jaz bom rekel, tukaj pod kazalo je, da je moj ID polje se bo primarni način identifikacijo uporabnikov v tej bazi podatkov. Ne bom misliti od Zamyla kot Zamyla, Bom misliti ji kot število 6. 

Zakaj je tako, morda, bolje Intuitivno misliti in model vsako od vaših posameznih vrstic z uporabo Število namesto nečesa kot niz, kot je Zamyla ali Gabe ali daljši niz še? Ja? 

OBČINSTVO: ID je edinstvena? DAVID J. Malan: Ponovi? OBČINSTVO: ID je edinstvena? DAVID J. Malan: ID je edinstven, vendar suppose-- kot na primer na splošno z uporabniškimi imeni, domnevam Prav tako sem rekel, da je lahko samo eden Zamyla na svetu, in samo en Gabe. Sem lahko naložijo edinstvenost pritiskati na strune, tudi če bi hotel. Torej ni slaba misel. 

OBČINSTVO: Bolj varen. 

DAVID J. Malan: Bolj varen, zakaj? OBČINSTVO: Ne, ne morem povedati, ki je, ki, kot je v uporabnika. DAVID J. Malan: OK, si ne morem povedati, kateri uporabnik je, ki tako obstaja vidik zasebnosti, da bi to, še posebej, če so ID-ji morda pojavljajo v URL-jih. Tako prepričan, da bi tak način dela, preveč. Druge misli? Ja? 

OBČINSTVO: To je lažje izvajanje operacij na notr. DAVID J. Malan: To je pravi kicker. To je samo bolj učinkovita, ali lažje za računalnik, za izvajanje operacij na celo število. Kajne? Int je zagotovljeno, da je 32-bitni, medtem Zamyla je dolga nekaj znakov, Gabriel je dolga nekaj več znakov, Davenport je res dolgo, in zato je ni posebej učinkovita za uporabo strune za primerjavo vrednote in pogled polj in polj posodabljanja če lahko pobegniti s samo eno število. Le 32 bitov. Torej imen, tudi na ta način, ne bi bilo treba biti edinstvena, čeprav bi verjetno biti, in tudi na ta način tudi Uporabnik se lahko dovoli spremenite svoje uporabniško ime. 

Torej, kaj je sedaj zapustil, da je to primarni način identifikacije uporabnika. To govori baze podatkov iti naprej in optimizacijo sami tako, da je videti ups na ID so super hitro. AI, strašno poimenovan, tik pomeni Auto Prirastek, in to je prijava polje moramo preveriti navesti, da na področju, ID za samodejno posodobi za mene, in potem bom pomaknite na desno tukaj in odkrito povedano me ne zanima kateremkoli več od teh področij. Zagotovo ne danes. 

Tako da sem šel nazaj, na prvi steber, kjer Moram navesti ime in hašiš in dovolimo, vsaj s poudarkom na druga pa za zdaj. Int verjetno ni pravi klic, Torej, kaj je bolj smiselno morda? 

OBČINSTVO: Besedilo. DAVID J. Malan: Ponovi? OBČINSTVO: Besedilo. DAVID J. Malan: Besedilo? OK, sem slišal besedilo. Kaj še? Mi nekako imajo kup izbire da so tekstovne narave. Torej, kdaj in zakaj, ali uporabite nekatere od teh? No char, v nasprotju s tem, kar boste morda mislim, ni sam znak. To je določeno število znakov. Torej, če vemo, da vsa uporabniška imena mora biti kot osem znakov, saj je bilo kar pogosto pri starejših računalniški sistemi, lahko rečem char in potem bi lahko rekel, 8 tu. To je, ko postane tretji stolpec ki se uporablja pri ustvarjanju tabele. 

Ampak to je nekako siten ker nekateri ljudje morda želeli imeti daljše ime od osmih znakov, nekateri ljudje morda želeli imajo krajšo uporabniško ime, zakaj se zavezujem na določeno številko? Zakaj ne bi spremenljivko število znakov in samo pravijo, da je največja dolžina imena je, ne vem, tako kot 64 znakov. Ne morem razmišljati o vseh prijateljev, ki imajo imena daljše od 64 znakov, in tudi če je to premalo si lahko Zagotovo Naleteli samovoljno. 

Torej varchar je spremenljivka število znakov. Besedilo ni slab nagon, in odkrito, da nekako ne, kaj piše, ampak besedilno polje lahko kot 65000 bytes vsaj. To je verjetno pretiravanje za polje, in v resnici, Ja, 65.535. To je verjetno pretiravanje za ime, tako da bomo držijo, običajno, z varchars za gramatikalne polje in hašiš, preveč. Hash, se je izkazalo, bi lahko storili varchar kot dobro ali nekaj takega, vendar pa danes ne bo osredotočila na kriptografija tam in številke da bomo lahko dejansko želeli uporabiti za svoje dolžine. 

Vendar naj se pomaknite v desno. Lahko imate samo eno primarna indeks za tabelo, vendar ne želim, da katera od teh, zdaj, da uporabniško ime, bi rekli? Kaj naj username temeljiti na nejasen razumevanje teh štirih možnosti? Samo z njihovimi imeni? 

OBČINSTVO: Unique. 

DAVID J. Malan: Torej edinstvena, kajne? Tako se izkaže, da ne samo lahko poveste bazo podatkov, vnaprej, To je primarna pot identificiranja področij. Prav tako lahko rekli, da je to bo edinstven polje. Da je ne bo stvar, ki sem se zanašajo na, vendar bi rad zbirko podatkov za imajo v bistvu, da če pogoj, da da če sem že kdaj poskusili registrirati dva uporabnika z enakim imenom, Baza podatkov flat out se ne boš pustil. Mogoče bom imela kakšno dodatno kodo v PHP, ki preprečuje toliko, vendar baza podatkov, preveč, lahko zagotovi da se to ne bo zgodilo. 

Zdaj, kot prahi, zlasti menite o končnih projektov, imejte v mislih, da indeks in polna besedilo je pravzaprav zelo koristno. Če imate večjo podatkovno bazo, ne z desetine, vendar z več sto ali tisoč ali celo milijone področjih, lahko povedati tudi bazo podatkov v vnaprej To je področje, bom ki jih je treba iskati na veliko. Mogoče je ime, Mogoče je bio, če ste izdelavo Facebook-podobno spletno stran, ki ima odstavke, ki si je domače shraniti, in če želite, da povej bazo podatkov v vnaprej Bom se iščejo na tem področju veliko, vendar pa to ni nujno enkratna, lahko določite ustvari mi indeks. Ali lahko rečete tudi mi dovolite, da storijo nekako samovoljnih iskanja, kot so vodenje ali Control F, kot si ti Morda v urejevalnik besedil, tako lahko pogledate poljubne nize ali podnizov na tem področju. Z drugimi besedami, smo dobili do točke, v semestru kjer vam ni treba skrbeti za kako učinkovito izvajati stvari. Samo morate vedeti o tem, kaj Odločitve projektiranja za to, da si bo uporabo pravih orodij za trgovino, da bi spodbudil funkcije da so drugi ljudje, ki so zgradili za vas. Torej, da povzamem, če bi le primarni imajo eno, lahko imajo samo eno, in to je stvar, ki ste se zaveže, da bo uporabljajo za ugotavljanje polja enolično. Edinstvena je le pisane v duhu, ampak morda le občasno ga uporabljajo, vendar želite baze podatkov, da ga naložijo. Indeks pomeni le preemptively pospešitev stvari v prihodnosti tako da sem lahko poiščete stvari na tem področju. In potem Celotno besedilo je na splošno za odstavki, ali eseji, ali velika telesa besedila, kjer vas Morda bi želeli imeti wild card kot ekvivalent zvezde. Prav. 

Tako da je bila vrsta veliko naenkrat. Poglejmo, če ne moremo destilirati Nekaj ​​teh funkcij in nato zgraditi nekaj dokaj preprosta, vendar močna. Torej, med drugimi Odločitve oblikovanja, s katerimi boste na koncu bodo morali se skupaj črte za shranjevanje motorje. In povej mi samo, da omenja v pričakovanju končnih projektov, in predvidevanje Oglejmo say-- ne naredimo to. Zgradimo ta mali Prvi zahtevek. Jaz bom šel v mojo terminal okno, in tukaj ni samo counter.php, ki smo zdaj dogaja znebiti se ne bi več germane, vendar imamo cel kup imenikov in to se bo zelo podobna, v duhu s tem, kar boste videli na problem nastaviti sedem. 

Torej imamo tri imenike vključuje javne in predloge, ki je točno tam, kjer smo končali na Ponedeljek z našo celotno MVC paradigme. In da povzamem, v javnosti se dogaja, da gredo vsaka datoteka, ki sem jo uporabniki dejansko proti mogli obiskati v njihov brskalnik prek URL-ja. Predloga. Kaj smo se v predloge? Kakšne stvari? Ni bilo veliko, ampak nekaj Datoteke vsaj v ponedeljek. Ja. 

OBČINSTVO: Glava in noga? 

DAVID J. Malan: Glava in noga. Tako da imamo nekaj podobnega tudi danes. Imava nekaj več datotek, vendar Noga vidim, Glava vidim, nato pa kup drugih datotek. Torej je to enakovredno meni V MVC, ki, spet bo malo bolj jasno, problem določiti sedem, ampak to je samo mapa sem vlaga veliko mojih estetike. Veliko mojih HTML, veliko mojih oblik. Medtem, vključuje pa še ena imenik, ki ima te tri datoteke in vzemimo hiter pogled na to. 

Bom, da gredo naprej in odprli config.php. Kot se je izkazalo, veliko kot prej v obdobju, si oster vključena CS50 dot h z pset7. V današnji primer, boste storiti ekvivalent, ki s zahtevajo izjavo da učinkovito vključuje te več vrstic. Torej, da bo jasno, da je to datoteko z imenom config.php. In opazili, kaj počne. To je očitno nekaj, kar počne skrivnostnih, vklop sporočila o napakah tako da si jih lahko ogledate v brskalniku. To je torej očitno zahteva dve druge datoteke tako da to je kot #include v C, in potem je to ena nismo videli, in smo na katere se sklicuje ta vklopi da košarica podobno funkcionalnost. 

To pomeni Piškotek pošlje naprej in nazaj. Zakaj je to zanimivo? No, če se vrnemo k temu imenik in odpirajo, na primer, constance.php. Obvestilo, da PHP ne podpira konstante, to ni čisto tako #define v C. Namesto tega si dobesedno pravijo opredeljene, in obvestilo ki sem jih shranjujejo v vnaprej štiri konstante v tej datoteki. Ena za današnjo bazo podatkov za moje geslo, za moje ime, in za ime strežnika. Torej so te dejansko bo precej podobna problemu določiti sedem. In nazadnje, in to je, kjer sem dogaja, da bi dobili nekaj lepo funkcionalnost od osebja, functions.php je kup kode, ki smo jih napisal, in jaz ukradel nekaj tega od problem nastaviti sedem za danes, da ne kup stvari in kaj je samo pogled na enega izmed njih zlasti. Ta funkcija tu, poizvedba, se bo funkcija PHP pravimo za izvršitev SQL. Malo prej smo s pomočjo phpMyAdmin, ampak to je samo za neke vrste namene učenja in diagnostične namene in pozablja baze podatkov niz. Ko ste dejansko uporabljate vaš baza podatkov, ti, človek, očitno ne bo ki se vleče gor spletu stran vsakič, ko nekdo registrira. Boš napisal kodo, ki vložki in izbriše uporabnikom na zahtevo, in bomo to storili s pomočjo funkcije poizvedbe. Če bom zdaj se pomaknite navzdol, tam je bo nekaj več funkcij. Preusmeritev se dogaja, da bo funkcijo smo pisali za vas, ki vam omogoča, da pošlje uporabniku, da drug URL, in postal je funkcija, zelo všeč smo videli v ponedeljek, da dejansko postane predlogo, ampak bolj na to, v oblika pset7 lastne sprehod skozi. Za zdaj, gremo naprej in to. 

Naj grem v mojo mizo in predavanja videli, da je trenutno nič tukaj samo še, in mi tudi gredo v mojem javnem imeniku, kjer tam je samo ena datoteka index.php. Zdi se, da je super enostavna Ta datoteka v tem trenutku, to izgleda tako, kot je ta. Zelo všeč, kako smo končal v ponedeljek. Jaz sem, ki zahteva te datoteke, config.php, ki je v Vključuje imenik, ki V dot dot, moji starši, in potem je samo upodabljanje te datoteke. Torej, kaj je ta datoteka? 

Odprimo v mojih predlogah form.php, in bomo videli. Super preprost, očitno ta oblika dogaja, da do _GET $ ali _POST $. Preverjanje hitro sanity. Dobesedno vizualno iskanje datotek. Postopek je enak post. Tako da je ne boste uporabljali URL, kot je Google ne, da se bo nekako skriti Podatki zadaj Prizori in je dogaja, da predloži datoteka z imenom register.php, in to je datoteka Vam še ni napisal ampak kaj to se dogaja izgledal je to. 

Če grem na ločeni strani To je kaj localhost / index.php izgleda. In spet, strežnika samo ob predpostavki index.php. Enter. Torej, to je, če smo na, in kaj želim narediti se lahko napišete stvari kakor David, in nato moja telefonska številka, ki bo rekel, 617-555-1212 za zdaj, register in zdaj register.php ni bilo mogoče najti. Tako da moram izvajati to. Torej, kaj je hitro bič kaj takega gor. Naj grem v mojo javni imenik in ne gedit za register.php, in zdaj bom, da gredo naprej in vklop načina za PHP, tako kot smo to storili v ponedeljek, in blizu PHP tag, in naredimo nekaj stvari. 

Torej ena, vem, od ki je napisal, da je oblika, da želim preveriti naslednje. Če je prazen, kar uporabniku vnesli v polje Ime, nato Bom nekaj reči kot opravičujem manjka ime. Opravičujem se, medtem, je ni zgrajen v PHP stvar, to je funkcija smo pisali v functions.php za pset7 tako da imate dostop do nje. Else if drugo polje je prazna, število, potem sem bo opravičil uporabniku in pravijo manjkajočo številko. Shranite to datoteko. 

Zdaj pa se vrnimo k mojem brskalniku, vrnite na forumu poskusite znova. Registrirati. OK. Nič se ni zgodilo, kar je dobro. Nisem dobil sporočilo o napaki. Ampak, če namesto tega kaj je osvežite to stran, in ne zagotavlja ničesar. Prekleto. Storiti. Registrirati. Kaj sem naredil narobe? Če se prazna, ime $ _POST. Ponovi? 

Oh, seveda. Pozabil sem najpomembnejši del, ki je zahteva ("../ includes / config.php."). Moram imeti dostop do Opravičujemo funkcijo, ki Zato ni nič dogajalo. Funkcija dejansko ne obstaja. Torej poskusimo to še enkrat. Oglejmo osvežite stran, kliknite Registracija. OK. Tukaj je. Torej, izhod smo vidim tukaj je rezultat kliče opravičujemo Funkcija, zelo preprosta, in to samo natisne karkoli Sem ga dal kot argument. 

Vse je v redu, tako da je sodelovanje. Oglejmo zagotoviti moje ime kakor David, register, manjkajoče število OK dajmo zagotavljajo, da je preveč. 617-555-1212. Registrirati. OK. Torej, vse je dobro zdaj, prav nič Zanimivo se dogaja. Tako da zdaj naredimo nekaj več Zanimivo zgodilo takole. Dovolite mi, da gredo v phpMyAdmin in Dovolite pravzaprav ustvarili tabelo imenovano uporabniki, Jaz grem, da ga tri stebri, in bom hitro ustvariti ID, in nato ime, in nato številka, in polje ID sem bo odšel kot notr. Polje Ime bom zapustil kot varchar, in bomo rekli, 64, nekoliko arbitrarno. Število bom da bi, veš kaj? Gremo v podpirati številke nami, tako da bom nekaj storiti kot char in nato 10 znakov max za področno kodo in nato sedem mest. In potem je tukaj, jaz grem na določite auto prirastek tem področju, bo ta primarni ključ, in Bom, da gredo naprej in ne preveri, kateri od teh drugih poljih. 

Torej, ko sem zdaj končno kliknite Shrani, in sem šel nazaj v mojo uporabnikov mizi, To je tisto, kar izgleda, če sem Sedaj kliknite strukturo New Tab. Torej to, da bo jasno, je samo phpMyAdmin je način rekel baze podatkov tabele ima ID, ime in številko s temi posebnimi konfiguracijami in bomo prezreti ostalo področjih tam za zdaj. 

Tako da zdaj kaj hočem narediti? Torej, če grem zdaj v moji izvorno kodo, če je vse v redu Želim izvesti naslednje vprašanje. Vstaviti, in sem lahko samo pravijo uporabniki ne bom strogo Potrebujemo tiste, nazaj klopi, če je to ni nevarno beseda kot uporabnikov. Jaz bom povedal imena, številko, in potem tukaj sem ne bom trdo kodo enic vrednot še. Bom dal dve vprałaje. In to je konvencija v številnih jezikih pri čemer, če želite imeti Ograda za vrvico boš, da vprašanja Oznake razlogov, bomo pridejo nazaj na klepet o varnost, in tu Grem, da prenese na tiste, dve polji objavili imena, in nato objavili številko, in zdaj shranite datoteko. 

In zdaj bom dol, tukaj je super enostavno reči rendersuccess.php, ki se bo drugo predlogo. Grem, da ustvarite zelo hitro. Geditsuccess.php in sem le, da bo reči H1 uspeh v tej datoteki. Vse je v redu. Torej, zdaj, gremo nazaj brskalnik, kjer sem obiskal pred. Pojdimo naprej in potrdite sem napisal pri Davidu, sem napisal v telefonsko številko, registrirajte. Prekleto. Kaj sem naredil narobe? Torej, vidim napako tukaj, vas imajo napake v vašem SQL sintakso. Dovolite mi, da skoči nazaj v gedit, naj grem nazaj na register.php, in kaj sem izpustiti, da je pomembno, zadnji čas? Rabim to. Hočeš vedeti, da razen iz ob prej opazil, ampak rabim to. 

Torej, zdaj gremo nazaj, in to bilo koristno, da vidim v brskalniku in zato v config.php smo izpljunite napake. Pojdimo naprej in osvežite, kliknite Nadaljuj, uspeh. Torej, zdaj pa grem v mojo Podatkovna baza tukaj in kliknite na uporabnike, in brskate med njimi ter obvestilo I zdaj ima David v moji zbirki podatkov tukaj. Zdaj je tehnično ta spletna stran še ni na javnem internetu, tako da ne more imeti drugega ljudje v dajanje tukaj, ampak če bi zdaj želel, za instance, sam pošljete besedilno sporočilo. Pojdimo ven na ud tukaj in videli, če je to dejansko deluje. Bom, da gredo naprej in izbrišite to vrstico in bomo to zamegliti v videu pozneje zato nimamo Celoten internet mi pošiljanje kratkih sporočil, in mi bo zdaj do Brskalnik in bomo šli čez predavanje in bomo vnesite v različnih število tukaj, register, uspeh. 

Torej, zdaj, moja številka je verjetno v baze podatkov, in zdaj zabaven del. Kaj je dejansko uporabljati PHP storiti nekaj načrtno, bodisi iz ukaza linija ali od nekje drugje, in za zdaj sem samo dogaja, da ga bo enostavno in bom šel v moj Imenik tukaj in naredite naslednje. Gedit script recimo, da bomo ga imenujemo besedilo, #! / user / bin / env PHP, kot smo videli zadnjič. PHP. 

Zdaj bom pa zahtevajo vključuje config.php, čeprav bi to lahko povzroči rahlo napako. In zdaj bom, da gredo naprej in reči vrstic, poizvedbe, izberite zvezda od uporabnikov, in tukaj bom naredil tehniko iz zadnjega časa za vsako vrstic kot zapored. In bom naredil nekaj preprostega. Printf recimo ime je to, in številka je to, poševnica nazaj n. In zdaj grem mimo v vrstici citiram konec citata ime in številko vrstice quote citata, in zdaj gremo naprej in moj terminal okno chmod to + x, da bi Ta scenarij se imenuje besedilo izvršljiva. In zdaj pa teče besedilo. 

OK, tako napredujejo. Tako da sem zdaj napisal ukazni vrstici script, v jeziku, ki se imenuje PHP, da, zaradi tega zahteva linijo, ima dostop do vseh tistih konfiguracijo konstante, da sem navedeno. Ime baze in tako naprej. Dejstvo je, samo da bo jasno da to ni krompir, Naj gredo naprej in se prijavite, zelo hitro, nekdo drug kot Rob in mu bo dal številko 555-1212. 

In zdaj, če sem prost skript spet opazil moč kaj počnemo z bazo podatkov. Zdaj sem takoj videl, kaj drugi dve vrstici sta v moji zbirki podatkov. Sedaj poskusimo narediti nekaj celo ljubitelj notranjost, in to je del smo jih ni preskušeno vnaprej, tako da nazadnje, ko sem to naredil šlo hudo narobe, imamo video v ta namen. 

Pravzaprav, ja, smešno stran. Torej zadnjem času, v predavanje tako kot pred dvema letoma, smo se odločili, sem se odločil, da bo Vse to bi bilo super ideja da dinamično ustvari e-pošto v razred, z uporabo celotne baze podatkov CS50 študentov, ki so nam jih dali svoje številke in njihovi mobilni telefon prevozniki, ki vas morda spomnite iz pset0, kako razmišljati, se izkaže, Imel sem manjšo napako v mojem programu in naredil par napak v letu 2012, se mi zdi. 

Pri čemer je ena sem imel za zanke, ki storil natanko takšne stvari, ponavljanjem nad bazo podatkov, dobili ime iz baze podatkov, ime iz baze, in nato na vsaki ponovitev te zanke sem poslal email. Toda namesto pošiljanja eno e-pošto, I pošlje en email prva ponovitev, in dve emails drugo ponovitev, poslana tri emails drugo ponovitev, ki kot si morda spomnite iz naše Razprava o asimptotskega zapisa ta big O slabega, kot n kvadrat je, koliko sporočil sem jih poslal, vendar ni bilo niti emails da je besedilna sporočila. 

In kot veste, je udeležba ni super high proti koncu semestra in tako sem mislil, da bo luštna na čas, da se, "zakaj nisi razred?" V sporočilu SMS I poslano ves razred, in je bilo smešno, da želi 50% razred, vendar drugi 50%, med katerimi je nekatere prestrašila, sem poslal neverjetno opravičeval sladek opombe za osebje opravičil za ki je zamudil predavanje samo enkrat, kajne? 

Tako da bi grozno narobe. Torej, v tem duhu, poskusimo to Ponovno ampak z mojo številko. Vnaprej, functions.php, Sem napisal to funkcijo tukaj. To imenujemo besedilo, in to traja tri argumente. Številka, prevoznik, in sporočilo. 

Jaz sem z uporabo switch stavka, ki čudovito PHP vzeti strune, ne samo cela števila, in nisem izvajala vse podpore za to še ni, Pravkar sem naredil AT & T in Verizon. Ker se je izkazalo, da s temi prevozniki imajo e-pošto SMS prehodi, s katerim lahko dejansko pošljite e-pošto na naslov kot telefonsko številko, na vtext.com in če je uporabnik blokiran sporočila, bo šel skozi je besedilo sporočila. 

Zdaj za to, da bom moral dodati eno polje zelo hitro na mojo zbirko podatkov. Jaz bom šel v moj strukturo, in sem dogaja, da gredo naprej in dodati Polje na koncu tabele. Oglejmo kliknite Go, in sem bo to imenujemo nosilec in zdaj bom pustite to kot bar besedila, vendar smo lahko Ljubitelj v prihodnosti. Grem hitro iti v mojo mizo, in sem dogaja, da se znebite Rob, ker je to ponaredek številka, Jaz bom šel v urejanje tukaj in sem dogaja, da ročno spremenite svoj prevoznika da je Verizon, ki jo je, in zdaj tukaj. 

Naredimo pregled hiter prištevnosti. Odprimo naše besedilno skript, ki izgleda takole, nosilec je% s. Delamo veliko več napak preverjanje, kot sem leta 2012, nosilec. In zdaj, sem šel naprej in ponovno zaženite skript. OK. Prevoznik Verizon, kar pomeni, Zdaj upam, da sem lahko naredil samo to. Pravilno letos, upam, da gremo. 

Torej znotraj tega za zanke, sem dogaja, da imajo ne samo to printf, Jaz sem tudi dogaja, da pokličete besedilo in Uporaba te funkcije odpoklic je bilo potrebno več, nosilec, in sporočilo. Torej, da vidimo, število se bo biti vrstice quote citata "število" vrstica quote citata "prevoznik" in zadnja je bilo sporočilo. Ne zamoči letos, podpičje. 

OK. Pesti. Poglejmo, če to deluje. Vse je v redu, tako da. Gremo. Oglejmo odklepanje telefona Držite pesti, prekleto. Undefined variable may-- oh čakaj, čakaj, čakaj, resnično hitro. Real hitro, zelo hitro. To je popolnoma vredno. Naj me zgrabi, naj zgrabi, uh-oh. Hvala, besedila imajo začel od nekoga drugega. Dovolite mi, da gredo naprej in odprla real hitro, dropbox.php / mail tukaj. Pripravljenosti. Popolnoma vredno. Prenosi. OK, vir src8m. OK. 

Potrebujemo še eno linijo tukaj. Oh to je to, to je v Frosh UI, je v registru ob treh. Oh zdravo, Margo, najlepša hvala. OK, in sem bil odsoten te vrstice tukaj. Zato mi dovolite, hitro zgrabite ta vrstica kode, ki vključuje pošto ali knjižnico da sem dejansko želijo uporabiti, Jaz sem hitro bo pojdi nazaj v funkcijah, Jaz bom šel na vrhu tega datoteko in zahtevajo te datoteke, kot tudi, in zdaj bom res prečkati my prsti, ko sem šel nazaj na ukaz linija scenarij, ki je znotraj Današnji lokalni imenik gostitelja. Teči besedilo. Enter. Mail. Pripravljenosti. Pripravljenosti. Mail. Oh, OK. Gremo. 

Mail dobi nove PHP mailer. Sem naredil to pravico? Prekleto. To-- oh, čakaj, čakaj, čakaj. Stand by. Obljubim, da je to bo tako vredno. Naslov. To je razlog, zakaj jaz ne bi Primeri tik pred razredom. Ugh. Naslednji prejemniki ni uspel. Poskusimo še zadnjo stvar. SMTP nastavite od dodajte naslov Naslov je res, da je. Poskusimo to zadnjo vlogo v naslovu. Oh, jaz sem res žalostno zdaj. Hvala. Ampak res cenim vse besedila, ki ste jih pošiljate. Imaš to Davida. Ste ga piha. Dajmo ga pustite tam in bomo popraviti v ponedeljek. Se vidiva potem. 

DAVEN Farnham: In zdaj Deep Misli, ki jih Daven Farnham. Če binarno drevo pade v gozdu in nihče je okoli C it-- [smehlja].