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