>> [Prehrávanie hudby]
DAVID J. Malan: Dobre.
Vitajte späť.
To je CS50.
To je koniec týždňa 8.
A ako viete, máme dosť pravidelné úradné hodiny v niekoľkých
z jedálne, vrátane Annenberg.
A niektorí z tímu láskavo urobili pár fotiek v poslednej dobe.
A na počesť Halloween, mysleli sme, že by sme
zdieľať ten, ktorý nás skôr vystihuje prekvapenie tu v sále len Annenbergovej
v noci.
Váš spolužiak Jacob pózovala pre Táto fotografia, ale zábavnejšie
bola na Facebooku, nasledujúce rozhovor, čo sa stalo potom.
>> Jeho prvý príspevok v odpovedi jeho fotografia bola táto.
O niekoľko minút neskôr, keď sa rozhodol jeden až seba s tým.
To išlo a potom ísť na to, a potom, ešte zábavne
je, keď jeho mama prízvukoval.
A potom konečne, zdá sa, to bol len
skvelý trik pre hrať, čo sa deje.
>> Takže ak by ste chceli vidieť Jacoba a ďalšie,
medzi nimi Cynthia Meng, ktorý je zákulisia CS50 zóny zamestnancov,
zamieriť na túto adresu URL a tejto hre tu.
Takže bez ďalších okolkov, dnes pokračovať v tomto Pozrite sa na webové programovanie,
a skutočné tvorba programov že nebeží na príkazovom riadku,
ale namiesto toho použiť vnútri prehliadači.
>> Pravdepodobne teraz, alebo veľmi krátko, budete
byť uprostred vykonávania vlastný webový server, ktorý
sa líši od webové programovanie.
WWW server v pset6 je všetko okolo písanie softvér, ktorý vie, ako sa
Požiadavky HTTP z webového prehliadača, alebo dokonca z vás, človek,
s programom s názvom Telnet, a potom reagovať na tieto žiadosti buď
by vypľul HTML súbor, alebo jpeg alebo gif, alebo dokonca .php súbor.
>> Ale s webovým serverom, nie je to predpokladá, že stačí otvoriť súbor PHP,
niečo, čo končí v .php, a potom vypľuť obsah.
To má robiť čo do tohto súboru prvý?
Aby som tak povedal.
Nie skompilovať, sme si povedali v pondelok, ale rather-- Takže interpretovať.
>> PHP je interpretovaný jazyk, a tak jedným z kľúčových funkcií vo Vašom webovom
Server, aj keď vykonávaná nami, je táto schopnosť pre váš webový server
všímať, oh.
Jedná sa o súbor končiace .php.
Dovoľte mi, aby som nielen poslať na Užívateľ, ako by to statický obsah,
ale dovoľte mi, aby som ho čítal riadok po linka, zľava doprava, a interpretovať ho.
>> A k tomu, že vás chlapci budú v podstate
pramicu na programe v zariadení, a na mnohých počítačových systémov,
Práve volal PHP.
To je názov PHP Jazyk vlastný interpret.
Tak, že kus realizujeme pre vy, a to, čo zostalo pre vás,
nakoniec je číslo kusov, medzi ktorými
je vykonávanie podpory pre statický obsah.
>> Ale teraz, a problém nastaviť sedem, ste
začnú sa prechodu na vlastne písať PHP kód
ktorý sa interpretovať v rozhovore s back-end
databázy, ktorá ukladá informácie.
Tak nech je lepšie najprv pochopiť, pár týchto superglobals
a ako moc moc vás dostať von z krabice zadarmo
s jazykom, ako je PHP.
Veci, ktoré nemajú realizovať sami.
>> Takže sme videli v pondelok $ _GET, čo je superglobal,
ktorý je práve PHP hovoriť za globálne Premenná môžete pristupovať kdekoľvek.
A to, čo je vo vnútri $ _GET?
Čo je vo vnútri tohto superglobal, čo vidíme?
Iste štatisticky na Najmenej jedna osoba vie.
Čo je vo vnútri $ _GET?
Jo?
>> Divákov: Je to premenné si dať v reťazci dotazu.
>> DAVID J. Malan: Perfect.
Je to na vás premenné dal v reťazci dotazu.
Takže, v našom príklade staršie reimplementing Google, keď sme mali
URL, a potom otáznik, ktorý vymedzuje počiatok HTTP
parametre, potom sme mali q rovné niečo, ako q sa rovná mačky,
čo by automaticky dovnútra z toho $ _GET Super globálne pre vás,
pretože PHP, je kľúčovým Q, a hodnoty ich mačiek.
>> Inými slovami, $ _GET a všetci tieto veci sú asociatívne polia,
hashovacie tabuľky druhu, že ukladať kľúče a hodnoty.
Teraz, v roku pset5, hash Tabuľka ste mohli realizovať,
alebo pokusu môže zaviedli, naozaj
bol účinne asociatívne pole, dátová štruktúra
ktorým môžete priradiť kľúče s hodnotami.
>> Ale v pset5, hodnoty boli triviálne.
Hodnota bola v podstate pravdivý alebo nepravdivý.
Je slovo v slovníku?
Takže, keď hash slovo, ako jablká aby zistil, či jablko je v slovníku,
šek funkcie pravdepodobne vrátil true alebo false.
Takže, to je účinne hodnota sa dostávame späť.
>> Ale my sme videli v pondelok Stručne povedané, môžete samozrejme
spojiť zaujímavejšie hodnoty než len true alebo false
s kľúčmi, ako jablko.
Dalo by sa dokonca vrátiť ľubovoľný reťazec, a naozaj,
to je to, čo $ _GET a tieto ostatné premenné vám to.
>> Takže $ _POST je podobný v duchu, ale ak odošlete formulár poštou,
iný spôsob HTTP, ktorá je používa pre veci, ako je kreditné karty,
a osobné údaje, a to aj binárne informácie, ako sú fotografie,
tie veci, skončí vnútri $ _POST.
A vlastne súbory ako JPEG a ktovie čo ešte,
je tu aj iný, že to nie je sem volal $ _files rovnako.
>> Takže servera nebudeme zaoberať príliš moc, ale to vám dáva prístup
triediť nižších detailoch úrovni o samotný server, ktorý používate.
Cookie a zasadnutie, aj keď, budeme skutočne vidieť teraz.
Posledný je to, čo použiť k implementácii pojem nákupného košíka.
Super jednoduchý, ale odvolanie že tento príklad tu mali,
počítať, koľkokrát ste už túto stránku pred navštívili.
>> Ale dnes, skôr než len sa pozrite na účinok tohto, poďme otvoriť
Chrome Inspector, ktoré môžete zvyčajne
vykonať kliknutím pravým tlačidlom myši alebo kontroly kliknutím na ľubovoľné miesto na webovej stránke,
a potom vyberte príkaz Preskúmať prvok.
Alebo môžete ísť cez menu ktoré popíšeme v pset6 sa spec.
A ja idem na kartu Sieť tu, a poďme sa pozerať na chvíľu
HTTP prevádzku, ktorý je tam a späť.
>> Dovoľte mi, aby som najprv pokračovať a cache Zmazanie Chrome.
Takže niektorí z vás môžu byť oboznámení s touto technikou už,
a budeme ju používať tady účely ladenia.
Teraz sa ako počítač vedci začnú
Pritom pre ladenie účely, pričom
budeme vymazať vyrovnávaciu pamäť, typicky, aby sme
Môžete sa zbaviť vecí, označované ako cookie.
Takže ste asi všeobecne oboznámení s tým, čo sú sušienky, alebo aspoň
že existujú, ale to, čo je vaše pochopenie z nich,
len ako užívateľ počítača, čo je to súbor cookie?
Jo.
>> Divákov: Je to trochu of-- dobre, nie bit v období informatiky.
Je to údaj, že Webové stránky pošle na vás, aby
aby bolo možné zaznamenávať štatistiky na vás.
DAVID J. Malan: OK, dobre.
Takže je to údaj, že servera, dá do počítača,
a poďme zovšeobecniť, aj viac, je to kľúč value-- dobre,
že je stále presnejšie.
Jedná sa o kus Informácie, údaj,
že server je schopný aby na vašom počítači
a veľmi často, server robí to tak, ako si uvedomiť, kto ste.
Tak napríklad, kurzy sú potom ste pravdepodobne
prihlásený do lokalít, ako je Facebook, alebo Gmail, alebo iní pred,
a prihláste sa pomocou svojho užívateľské meno a heslo,
a potom po ktorej sa z nejakého počtu minút alebo hodín alebo dokonca dní,
Server si zapamätá, že ste v skutočnosti prihlásený.
A teraz, ako sa to vlastne deje?
Vzhľadom k tomu, že ste rozhodne nie je prepisovanie Vaše užívateľské meno a heslo zakaždým, keď
prejdete na inú stránku na Facebooku.
Tak to dopadá Cookies sú odpoveďou.
>> Cookie si môžete myslieť, as, Niečo ako, digitálny ruku
pečiatka, ktoré môžete získať za pobavenie parku, alebo klub, ktorý v podstate
indikuje ste tu skôr, a vy ste už
zobrazené Vaše ID na vyhadzovača, pre inštancie, a to klub alebo park
by teraz predpokladať, že vás boli overené už.
Už ste boli identifikované tým.
>> Takže s tým na mysli, poďme otvoriť čítača tu.
Nechaj ma ísť napred, len som to urobil, a zrušte začiarknutie všetkých mojich cookies.
A teraz, čo budem robiť, je podržte kláves Shift, len pre istotu,
a násilne obnovte stránku.
Shift len ​​sa uistite, že sa nič cache.
A tu je žiadosť že išiel tam a späť.
Takže tu máme požiadavku, a nechať me priblížiť tu, a veľa z toho
je trochu nezaujímavé údaje pre Teraz, že prehliadač má automaticky
poslal, ale poďme na položku Zobraziť Zdroj vidieť surové hlavičky.
>> A ak ste skočil do pset6 už, budete určite poznať, čo
takto, a možno niektoré týchto ďalších riadkoch,
ale čo je ešte zaujímavejšie pre dnešný deň keď som sa posunúť dole, nie na žiadosť
ale tzv odpoveď tento riadok pravdepodobne vyzerá povedome.
To je dobrá vec, keď vidíte 200 OK.
Zrejme to je dátum a čas na serveri
a je tu veľa vecí.
Ach, to je zaujímavé.
>> Ukázalo sa, že pri každom použití PHP, aspoň v tomto serveri,
Server vypľuje to, čo Verzia PHP používate.
Čo vlastne k bezpečnosti účely, nie je dobrá vec.
Ale budeme sa vracať k tomu inokedy možná.
Ale teraz je to šťavnaté linka dnes, a stručne videli niektoré z nich,
Myslím si, že sa s Facebook účtom, keď tropil okolo inšpektora v tej dobe,
súbor cookie je to, čo je výsadba že malý kúsok informácií
na vašom počítači.
>> Toto je hlavička HTTP to je účinne
rozprávanie prehliadača Chrome, IE, čokoľvek,
hey prehliadač obchod na užívateľa pevný disk, alebo do pamäte RAM užívateľa,
kľúč s názvom PHPSESSID, čo je skrátený zápis pre ID relácie,
a dať mu hodnotu 0vlk8t, bodka, bodka, bodka.
Naozaj dlho pseudo náhodný alfanumerický reťazec.
Je to len naozaj veľké číslo, ale to je kódovaný s písmenami a číslami
tak, aby veľkosť to môže byť dokonca väčší ako samotné čísla.
A potom, len tak mimochodom, Path = /, že jednoducho znamená, že táto cookie mala byť
spojené s celistvosť webových stránok,
nielen konkrétne strana celá vec.
Tak toto je to, že virtuálne ruku pečiatka.
Je to, ako by sa na serveri, Facebook, alebo v našom prípade spotrebičov,
má doslova písomného 0vlk8t a tak ďalej, na svoje ruky.
Všimnite si, čo sa na serveri, nie robiť je, že to nie je
ukladanie moje užívateľské meno, určite nie je ukladanie svoje heslo.
>> Namiesto toho sa zdá byť ukladanie pseudo náhodný informácií
tak, že nikto nemôže odhadnúť, čo moja ruka pečiatka.
Na strane servera, Medzitým server
bude mať na pamäti, pravdepodobne v databáze alebo tak niečo,
že užívateľ, ktorý v budúcnosti predstavuje ručná pečiatka 0vlk8t, bodka,
dot, dot, by mal byť spojený s týmto najmä nákupný košík, aby som tak povedal.
Inými slovami, keď som teraz ísť sem a obnovte túto stránku
ako sa server vedieť že som navštívil raz?
>> Alebo ak by som to znova, ako sa na server viem, že som ho navštívil dvakrát?
No, ak by som išiel do tejto posledná požiadavka, ktorý
Teraz je tretia, ktorú som poslal celkom, všimnite si, moja žiadosť teraz.
Stále je to požiadať až sem, rovnaký
ako predtým, je tu ešte celá partia z vecí, ktoré sme ignorovali ako predtým,
ale úplne posledný hlavičky, to čas, pretože som tu bol,
je prezentácia tento virtuálny ručná pečiatka.
>> Pričom táto línia tu, nie je nastavená cookie ale cookie hrubého čreva PHPSESSI = 0vlk8t,
to je len môj prehliadač je automatické Prezentácia tejto strane pečiatku tak, aby
Teraz server, akonáhle si uvedomí, ooh, je to používateľ 0vlk8t dot, dot, dot,
Teraz môžem spomenúť, kým je a reassociate s týmto užívateľom čokoľvek
Informácie chcem, a všetci že informácie môžu byť uložené Vami,
programátor, v $ _SESSION.
>> Tak, aby bolo jasno, keď som otvoriť naozaj rýchlo v gedit, že skutočný súbor, counter.php,
v mojej miestnej hostiteľskej verejnom zozname rovnako ako predtým, všimnite si, že skutočne
Ja som nakoniec ukladanie $ _SESSION Citácie koniec citátu "pult"
hodnota počítadla, ktoré predchádzajúce Mám z týchto riadkov tu, že my
Pozrel sa na poslednú dobu plus jeden.
Tak pod kapotou, to všetky cookies.
Je to presne ten typ digitálne ručné pečiatka tam a späť,
a úprimne povedané, ak otvoríte Chrome je Inšpektor na akýchkoľvek webových stránkach,
navštíviť dnes, Super vysoká pravdepodobnosť,
budete vidieť možno jeden, možno pol tucta sušienky
spomína vás.
>> A ešte horšie, ak tí, Webové stránky ste na návšteve
všetci majú reklamy, ktoré je určite celkom bežné dnes,
a ak tieto reklamy sa blíži z nejakého centrálneho strany, niekoho
ako je Google alebo AdWords, ako sa zavolajte na jedno z ich produktov
alebo iných takých predajcov, že predaj reklamy, čo je zaujímavé,
a úprimne povedané, to, čo je trochu znepokojujúce, o tom, ako funguje HTTP,
je, že ak máte ad vložený v Facebook.com a Google.com,
a Harvard.edu, ľubovoľný počet webových stránok, takže je to taký
že existuje stredná človek, ktorý si odpykáva up reklamy na všetkých troch týchto webových stránok,
Ukazuje sa, že Cookies sú na doméne.
>> Takže ak máte reklama pochádzajúce z Rovnaká spoločnosť na rôznych internetových stránkach,
že spoločnosť môže účinne sledovať, kto ste na všetkých týchto webových stránok.
Harvard možno neviete ste na návšteve Facebook.
Facebook nemusí vedieť a ste na návšteve Harvard.
Ale nech už ad servis Ak používajú, že je doména
prítomný v oboch Harvard.edu webu stránky a Facebook.com webové stránky,
tento stred muž iste vie, kto ste pretože tieto súbory cookie zdieľané
celé, alebo skôr, že tzv prostredníka.
>> Takže sa vrátime k tomu v bezpečnostné dôsledky z nich,
ale je tu veľa informácií sú uložené informácie o vás, kedykoľvek budete
navštíviť najväčšie ľubovoľnú webovú stránku na internet a je to naozaj
redukuje na tento veľmi jednoduchý mechanizmus.
Čo sa stane, potom, ak ste super paranoidné
a vy sa rozhodnete ísť do Chrome alebo IE alebo čo a vypnúť súbory cookie?
Čo sa stane?
Jo?
Môžete really-- si urobil toto právo?
OK.
Nie, choďte do toho.
>> Divákov: Niektoré webové stránky nemajú funkcie bez nej, ako je Facebook.
DAVID J. Malan: Yeah!
Takže niektoré webové stránky sa jednoducho prestane fungovať.
A vo väčšine webových stránkach v týchto dňoch ktoré zásadným spôsobom spoliehajú na cukrovinky,
najmä ak majú sa prihlásiť v, oni len tak zlomiť.
Vzhľadom k tomu, vziať do úvahy alternatíva, v prípade, že webové stránky
nemá žiadny spôsob, ako si pamätať, kto ste, a preto je webový prehliadač nie je
predstavuje s každým HTTP Požiadavka tejto strane pečiatka,
efektívne webové stránky ako je Facebook sa deje
mať s výzvou na prihlásiť každý sakramentsky čas
zmeníte stránok, alebo kliknite na odkaz, ktorý je určite nijako zvlášť dobrý užívateľ
zážitok.
>> Tak to tam taky je Medzi kompromisy.
Takže bez ďalších okolkov, poďme sa za samozrejmé, že sa programovanie pre web,
v jazykoch ako PHP, môžete si uvedomiť, informácie, ako že v probléme nastavení
sedem rokov, keď sa rozhodnete svoj vlastný E * Trade-ako webové stránky, s ktorými kúpiť
a predávať akcie, budete pamätať presne, čo užívateľ kúpil a predal
a ktorý on alebo ona je prostredníctvom tohto zasadnutia.
Ale budeme potrebovať milovník spôsob, ako e-mail
na začiatok uchovávanie informácií okolo.
Je to tak?
>> V pondelok sme sa rozprávali o frosh IM a ako vo verzii jedného z týchto webových stránok,
Pred rokmi, všetko, čo sme urobili, bolo e-mailom Proctor, ktorý je
na starosti intramurální športov programu, meno a pohlavia,
a či alebo nie oni sú kapitán, a koľaji niekoho, kto je
registráciu intramurálním športu.
Takže to nie je zlé, ale on alebo ona potom musel troll cez ich e-mailu,
vytvoriť tabuľku, alebo niečo také to, aby všetko zorganizovať.
Tak určite my, programátorov to môže urobiť pre tento Proctor.
A tak vstúpi v SQL, Structured Query Language,
ktorý bude vyzerať pekne líšia ako C a PHP,
a budete potápať oveľa viac rúk PHP a problém nastaviť sedem, ale tiež SQL
alebo SQL, je to jazyk, ktorý Používate hovoriť do databázy.
>> Ale čo je to databáza?
Dobre si myslíte, že databázy, aspoň pre túto chvíľu,
ako len byť ako súbor programu Excel, alebo Ak ste užívateľmi čísla súborov Mac,
alebo ak ste Google Apps užívateľ tabuľky Google,
je to efektívne databázy, alebo naozaj konkrétne relačnej databázy.
Relačnej databázy je len niečo, čo má riadkov a stĺpcov,
a môžete ukladať akékoľvek Informácie uvedené v týchto riadkoch alebo stĺpcoch.
>> Ale to, čo je pekné o SQL a o aktuálnych databázach, a to nielen
tabuľky alebo Google tabuľky, je, že môžete použiť jazyk
skutočne vykonávať dotazy vložiť dáta pre odstránenie dát,
hľadať dát, a to aj čo je najdôležitejšie, a tí
Nemusíte používať pomerne ručne Ako ste si možno bežne Google
tabuľkový takhle.
>> Tak v SQL, je to banda základné príkazy alebo kusy
funkčnosti postavená v roku.
Je tu mnoho viac než tí, ale môžete ísť na veľkú vzdialenosť
len tým, že vedel, že tento jazyk nazýva
SQL má aspoň štyri vyhlásenie, že môžete využiť.
>> Odstrániť pre odstránenie dát, Vložte, pre pridávanie riadkov,
Aktualizácie pre zmenu riadky, a výber,
pre získanie späť riadkov a že je to naozaj to, čo robí SQL.
Pôsobí iba na riadkoch tak že pri vložení alebo odstránení,
alebo aktualizácie, alebo vybrať, čo ste dostať sa späť ako tzv sady výsledkov,
ako pole riadkov.
Banda riadkov z tabuľky.
>> Takže späť v deň, a dokonca k tomuto dňu,
môžete komunikovať s databázy pomocou príkazového riadku,
ale nie je to nijako zvlášť zábavné to čierne a biele okno štýl
a vlastne spustiť príkazy a hrabať okolo databázu.
Grafické užívateľské rozhranie, alebo GUI, je oveľa výhodnejšie, pravdepodobne,
a tak sa nástroj odporúčame a predinštalované na vás na spotrebiče
sa nazýva phpMyAdmin.
Je to celkom náhoda, že Názov tejto veci má PHP v tom,
znamená to, že ľudia, kto napísal tento program sa
napísal v PHP.
>> Ale je to nakoniec o správe databázový server, ako server MySQL
že by ste mohli mať, ako áno, v CS50 spotrebiča.
Takže tam je viac podrobností tu ako musíme sa starať o dnes,
ale to, čo je kľúčové je, že na ľavej strane strane je zoznam databáz
že máte na svojom počítači, na vašom CS50 spotrebiče
alebo prísť záverečné projekty, ktoré by ste mohli mať na tretie strany, spoločnosť je
webové stránky alebo webový server, ktorý môžete platiť za priestor.
Takže na ľavej strane je databáz, z ktorých jedna
je pset7, ktorý som si požičal od vedľa týždne pset, a potom na vrchole
tam si všimnúť, že je banda kariet, z ktorých jeden
je databáza, SQL, stav, užívatelia, export a tak ďalej.
Takže môžete ísť dlhú spôsob, len tým, že si uvedomil,
že väčšina z užívateľského rozhrania je v ľavom hornom stĺpci
a cez vrchol až tam.
Takže to, čo môžeme skutočne urobiť s tymto?
Dobre, poďme začať vytvárať bit informácie takto.
>> Predpokladajme, že nasledujúce situácie, ako bude za pár dní,
Ak chcete implementovať webové stránky s názvom CS50 Financie,
a tieto stránky vám umožní kúpiť citovať koniec citátu a predávať akcie.
A to bude prísť na to, cena týchto akcií,
nakoniec, ako uvidíte, tým, že hovorí do Yahoo Finance.
Ktoré nádherne, má bezplatnú službu ktorým môžete prejsť v burzovej
ako GOOG pre Google, a to bude vám späť aktuálne zásoby spoločnosti Google
cena v minulosti niekoľko minút najmenej.
>> Takže budete používať, že nakoniec, predstierať, že pre užívateľov
nakupovať a predávať skutočné zásoby pomocou virtuálnych peňazí,
ale prvá vec, používateľ to bude vidieť
to je prihlasovacia obrazovka, ktorá je žiada pre ich užívateľského mena a hesla.
A tak, ako jeden z prvých výzvy pre vás pset7
bude realizovať zadná časť databázy, tabuľky ak chcete,
že to bude ukladať používateľské mená a heslá
a nakoniec to, čo zásoby, ktoré vlastní, a koľko, a koľko peňazí majú,
tak veľa ďalších vecí iné tabuľky alebo tabuľky.
>> Takže poďme sa pozrieť na to, ako to by sa mohlo na prvý pohľad zdať.
Chystám sa vrátiť do zariadení a ja som
ísť na túto adresu URL tu phpMyAdmin localhost / phpMyAdmin
a uvidíte, že to vezme ma do rozhrania
presne tak, ako sme videli na screen shot, a tu som
majú ďalšie databázy volal prednáška pre dnešok
a nechaj ma ísť napred Prvý a kliknite na pset7.
>> Zdá sa mi, že majú niekoľko možností, jeden pre nové, pre vytvorenie novej tabuľky,
a odkaz na užívateľa, ktorý je tabuľka už som vytvoril.
Takže to, čo je tabuľka?
Takže ak ste použili Excel skôr, a ak ste
použité čísla alebo Google Tabuľkové procesory, môžete otvoriť okno
a dostanete veľa riadkov a stĺpcov,
ale potom obvykle majú listy po dne, alebo samostatných záložkách.
Môžete myslieť na seba list ako tabuľku
aby databáza, v konečnom dôsledku, je kombinácia jednej alebo viacerých tabuliek, jedna
alebo viac listov, v svet normálny tabuľky.
Tak nechaj ma ísť dopredu a kliknite na tento liste
že som premade, tzv užívatelia, tiež známy ako
Databázové tabuľky.
A keby som prejdite sem, dovoľte mi, aby som oddialiť trochu,
To je to, čo hovorí phpMyAdmin nás je vo vnútri tejto tabuľky práve teraz.
Je to trochu mätúce na prvý pohľad pohľad, pretože UI nie je
najkrajšia vec na svete, ale to, čo je zaujímavé, je táto časť tu.
ID, užívateľské meno a hash.
>> Vopred, a budete rúk To problém nastaviť sedem,
my vám súbor, ktorý obsahuje super malé databázové tabuľky, požičal si vlastne
od hackera vydania o problém nastaviť dva,
vnútri ktorej je šesť riadkov.
Jeden pre Belinda všetky spôsob, ako sa k jednému pre Zamyla,
a všimnite si na ľavej strane tých, používateľské mená sú jedinečné ID ako jeden,
dva, tri, štyri, päť, šesť, celé čísla, a potom sa na pravej strane sú hodnoty hash.
>> A ak sú šance, že si to neurobil Problém hacker vydanie nastaviť dva,
ale hash je rovnako ako zašifrovaný Heslo s niekoľkými výhradami.
A tak to, čo vidíte tu šifrovaná verzia všetkých šesť
z našich hesiel z problému nastaviť dva je hacker vydanie.
Teraz na ľavej strane je len pár GUI veci, editáciu tohto riadku, kopírovanie tento riadok,
odstránenie tohto riadku.
>> Ale čo je zaujímavé, Teraz je nasledujúci.
Môžem skutočne začať experimentovanie s touto tabuľkou.
Takže keď idem a kliknite na tlačidlo SQL karta, som si túto veľkú textové pole.
A to nie je, ako budeme to, keď vlastne písania kódu.
Aby bolo jasno, phpMyAdmin je len nástroj, ktorý je
bude nám hrabať okolo databáze a dajte nám experimentovať s otázky.
>> Tak napríklad, že Aj spustiť práve tento.
Select, ktorý je jedným z tých, kľúčové slová som už spomenul, hviezda,
ktorá sa podieľa stĺpca v tabuľke.
Z toho, čo stôl?
No, užívatelia.
A upozornenie, že je to divný konvencie v SQL
kde ste skutočne používať späť kliešte, typicky,
Nie je jednoduché úvodzovky a nie dvojité úvodzovky keď hovoríte o tabuľky mien,
takže späť citácie je vec na Horná ľavá ruka na klávesnici najviac
pravdepodobné.
>> Tak nechaj ma ísť napred teraz a nechaj to samo o sebe
a prejdite nadol a kliknite na tlačidlo Prejsť, a my sme vlastne bude vidieť to isté.
Len sme realizovali dotaze SQL hovorí vybrať všetko hviezdu
z tabuľky s názvom užívateľa, a to, čo dostanete späť, je to.
Nakoniec budeme môcť urobiť to isté v kóde,
ale teraz všetko, čo som chcel to bolo vidieť, že vo svojom prehliadači.
Tak poďme niečo urobiť trochu inak.
Nechaj ma ísť späť na kartu SQL, a povedzme, že to, čo?
Zamyla stratil všetko o nej peniaze, a preto je
čas pre nás, aby ju zmazať ako užívateľ.
Ona už nie je prihlásenie.
>> Takže som chcel povedať zmazať from-- dobre, udržiavať kapitalizáciu
konzistencie, vymazať od užívateľov, kde.
A tak môžeme mať tieto predikáty, alebo tieto
kvalifikácia, na konci svojho vyhlásenia kde a ako by som mohol zmazať Zamyla?
Jej meno Zamyla, tak stĺpec, jeden zo stĺpcov
bol menovaný, tak kde name = "Zamyla".
A tu som použiť double citácie alebo jednoduché úvodzovky,
použiť iba zadné kliešte, kedy hovorí o menách, napríklad,
tabuliek a polí.
A dovoľte mi, aby som na tlačidlo nájdete tu.
A teraz, webová stránka je byť trochu nervózny.
>> Alebo naozaj chcete vykonať zmazať od užívateľov, kde názov zodpovedá životnosti Zamyla?
Áno.
Takže teraz, keď sa vrátime k môjmu stolu kliknutím na možnosť užívateľa si všimnite, že Hm.
Podelal ja.
A v skutočnosti, som tak trochu klikli preč tak rýchlo,
ste ani vidieť červené chybové hlásenie, možno.
Čo som urobil zle?
Divákov: Nemusel si využiť jej meno.
DAVID J. Malan: Jo, ja zarábal jej meno,
ale jej username-- Vlastne som urobil pár chýb, nie?
Jeden z nich, jej meno je zamyla, malé písmená Z,
a názov stĺpca je užívateľské meno, nemenoval, tak sa poďme to urobiť znova.
Nechaj ma ísť napred a odstrániť zo užívateľom, ak
Užívateľské meno rovná citovať unquote "Zamyla".
V poriadku?
Takže to vyzerá o niečo lepšie, nech ma ísť prejdite nadol a kliknite na tlačidlo Prejsť.
Je to stále bude kričať na mňa pre istotu.
Aj kliknite na tlačidlo Áno, a teraz vidíme, Úprimne povedané sa to stalo, naozaj
rýchla, menej ako jeden Druhý iste, to
je presne dotaz, ktorý dostal popravený.
Ak chcete potvrdiť, dovoľte mi, aby som na tlačidlo užívateľa a naozaj teraz Zamyla je preč.
Teraz sa poďme urobiť pravý opak.
Predpokladajme, že Gabe chce zaregistrovať na internetových stránkach.
Čo je to SQL dotaz, čo je Príkaz by som mohol písať pridať Gabe?
No je to celkom jednoduché.
Vložiť do užívateľov, a teraz to je trochu tajomný.
Musím spresniť, na server, čo poľa chcem priradiť.
Nemám naozaj jedno, čo Gabe ID číslo, takže budem preskočiť, že.
Ja namiesto toho chcel povedať užívateľské meno, hash, a potom
hodnoty Chcem vložiť tam bude Gabe.
A potom jeho hash, neviem.
Takže teraz idem nechať to ako veľký robiť.
Vrátime sa k že v nastavení problém
spec, ako vlastne urobiť.
>> Takže si všimnúť, opäť, syntax.
Vložiť do názvu tabuľky, potom zátvorkách zoznam polí,
stĺpce, ktoré chcete pridať hodnoty, a potom len
rovnaký presné usporiadanie zľava priamo z hodnôt, ktoré chcete pridať,
a to len preto, že balenie text je trochu dlhšia.
Takže teraz mi dovoľte kliknite na tlačidlo Prejsť.
Jeden riadok vloží.
A teraz keď som sa vrátiť do používatelia, čo je zaujímavé
je to, že nie je iba Gabe teraz v databázy, čo je zrejme jeho ID?
>> No to je sedem.
Prečo je to sedem rokov, keď som sa pridať?
Takže aj to je jeden z funkcie, ktoré dostanete v databáze.
Mnoho vstavaný funkčnosti.
Ukazuje sa, že pri túto tabuľku vytvorili,
Aj prednastavená, že je to automaticky pridelí ID takým spôsobom
že sa zvýši.
Takže ak ste niekedy strčil okolo, a pozrel sa na to, čo si heslo?
číslo, v týchto dňoch je to naozaj čo robiť, ale Facebook ako API,
Application Programming Interface, kedy môžete získať späť
celá partia údajov o sami, o svojich priateľov,
a vaše pripojenie.
A čo býval druh v pohode, späť v deň,
Bol sa pozrieť na to, čo vaše Facebook ID číslo bolo.
Mark Zuckerberg je, Napríklad, je tri
pretože on bol autorom týchto stránok.
A ako príbeh pokračuje, on vytvoril dve testovacie účty, užívatelia jedna a dve,
ktoré potom zmazané.
A tak, Zuck, ako je jeho meno na Facebooku, je ID číslo tri,
a každý z nás má moc čísel väčší ako tri v týchto dňoch.
V skutočnosti, v určitom okamihu Facebook sa vzdialil
zo aj pomocou int, ktorá je 32-bitová hodnota, k používaniu
Ďalším krokom, v podstate dlhá tak dlho
že by mohli pojať aj viac užívateľov registrácii.
Tak trochu zábavy historický fakt.
>> Tak to je práve Základná syntax, s ktorými
môžeme vykonať niekoľko otázky, ale môžeme skutočne
robiť veľa ďalších vecí s SQL.
A uvidíte, nakoniec, v probléme nastaviť sedem
že budete musieť vykonať Počet rozhodnutí o návrhu,
medzi nimi bude aké typy dát použiť.
Takže rovnako ako v C, sú údaje typy v databáze, ako je MySQL,
a dátové typy si musíte vybrať zo tieto odvetvia tu.
Char, varchar, Int, veľký int, decimal a dátum, čas, a mnoho ďalších.
Takže poďme to skutočne urobiť.
Poďme predstierať, že sme nemali ruka vám tabuľka tohto používateľa
a nechaj ma ísť dopredu a vytvoriť pre sám, na prednáškach database--
vlastne nechaj ma ísť dopredu a odstráňte tabuľka mám tú už
takže môžeme vlastne vytvoriť to.
Jejda.
Chystám sa tento pokles stôl, a teraz som
ísť znovu prednáška databázy sem,
Chystám sa vytvoriť tabuľku tzv užívateľov a poďme
proste tri stĺpce spočiatku a kliknite na tlačidlo Prejsť.
>> Teraz, z väčšej časti, Znova, toto je len
pomocou tohto grafického nástroja s názvom phpMyAdmin, a to, čo robíme teraz
je vytvorenie tabuľky.
Takže to je ako ísť na Súbor, Nový, a vytvorenie nového súboru programu Excel.
Takže to ma pýta, málo otázky, zľava doprava,
to, čo je názov prvého stĺpca, a potom na názov druhého stĺpca,
a názov tretej.
Takže poďme znova to.
ID, a potom meno bolo jedno, a potom hash bol iný.
Takže to, čo by mal dátový typ byť teraz pre pole, ako je ID?
>> Tu je celý zoznam dátových typov pre vás k dispozícii v databáze,
a teraz poďme jednoducho ísť s int.
32-bitová hodnota, vôbec sa mi nepáči myslieť realisticky, že som
bude mať viac ako 4 miliardy Užívatelia v mojom účte, v mojich službách,
takže budem držať v pohybe na ďalšiu otázku.
Nebudem špecifikovať dĺžky alebo hodnoty,
to neplatí pre int tu, sám o sebe.
A teraz sa môžete určiť, Zdá sa, že východiskové
hodnota, ktorá nebudem špecifikovať.
Kolace, ja neviem, čo to je.
Atribút.
Teraz sme vlastne robiť má rozhodnutie o návrhu.
Takže tam je niekoľko polí tu, že nie všetky ktoré sú použiteľné, ale bez znamienka
jednoducho znamená čo?
Že int musí byť?
Len non-negatívne.
Tak to musí byť 0 na hore.
Nie, nebudem kontrolovať, pretože Chcem každý užívateľ mať ID,
nemôže byť null.
A potom sa dostávame k trochu viac Zaujímavý dizajn rozhodnutie, ako je tento.
Vrátime sa k tomu vo chvíli, ale čo ďalšie funkcie databázy
je, že môžete povedať, databázový server pokračovať
a optimalizovať seba, svoju RAM a miesta na pevnom disku,
tak, že vyberie a vložky, a odstráni a aktualizácie sú naozaj rýchlo.
Porovnajme to s pset5.
>> Ak by ste chceli hľadať niečo v hash tabuľke, ktorá
si myslíte, že ako databáza, ktorí mali urobiť všetko,
pracovať, aby vaše hash tabuľky rýchlo.
Je to ako, samozrejme, vy.
Je to tak?
Vy ste mali dať do všetkých časových pokuty tuning veci, ako sa funkcia hash
právo, prísť na to, ako veľa lopaty mať.
>> Ale to, čo je pekné, zase, o databázy
stačí pramicu všetky to iným ľuďom
kto si myslel, že to až pre vás a to, čo
Chystám sa povedať, na základe index je, že moja ID pole
bude primárny spôsob identifikácia užívateľa v tejto databáze.
Nebudem myslieť z Zamyla ako Zamyla,
Budem myslieť na ju ako číslo 6.
>> Prečo je to snáď lepšie intuitívne myslieť a modelu
každý z vašich jednotlivých riadkov pomocou číslo, miesto niečoho
ako reťazec, ako je Zamyla alebo Gabe alebo dlhší reťazec ešte?
Jo?
>> Divákov: ID je jedinečný?
DAVID J. Malan: znova, povedz?
Divákov: ID je jedinečný?
DAVID J. Malan: ID je jedinečný, ale suppose--
napríklad v prípade všeobecne sa užívateľským menom, predpokladám, že
Tiež som povedal, že môže byť len jeden Zamyla vo svete, a iba jeden Gabe.
Mohol by som uložiť jedinečnosť obmedzenia na reťazci, aj keby som chcel.
Takže nie je zlá myšlienka.
>> Divákov: Viac bezpečia.
>> DAVID J. Malan: Bezpečnejšie, prečo?
Divákov: Nemôžete povedať, ktorý je, ktorý, ako je v užívateľ.
DAVID J. Malan: OK, Nemožno povedať, ktorý užívateľ
je ktorý, takže je tu o ochrane osobných údajov aspekt k tomu,
najmä v prípade, že ID možná objaviť sa v URL.
Tak istý, že by mohol druh práce, taky.
Iné myšlienky?
Jo?
>> Divákov: Je to jednoduchšie vykonávať operácie na int.
DAVID J. Malan: To je skutočný kicker.
Je to len efektívnejšie, a jednoduchšie pre počítač,
vykonávať operácie na celé číslo.
Je to tak?
Int je zaručené, že byť 32-bit, zatiaľ čo Zamyla
je dlhá niekoľko znakov, Gabriel je dlhá niekoľko ďalších znakov,
Davenport je naozaj dlhý, a tak je nijako zvlášť efektívne používať
reťazca porovnávať hodnoty a hľadať pre pole a aktualizovať polia,
ak sa môžete dostať preč iba s jedným celým číslom.
Len 32 bitov.
Tak používateľské mená, aj týmto spôsobom, nemusí byť jedinečný,
aj keď pravdepodobne mali byť, a to aj týmto spôsobom tiež
užívateľ by si mohli zmeniť svoje užívateľské meno.
>> Takže poďme sa teraz opustiť toto ako primárne prostriedky na identifikáciu používateľa.
To sa hovorí databázy choďte do toho a optimalizovať sami
takže look up na ID je super rýchly.
AI, strašne menoval, len znamená, Auto Prírastok,
a to je kontrola box musíme skontrolovať
určiť, že ID pole byť automaticky aktualizované pre mňa,
a potom idem prejdite doprava tu
a úprimne povedané, ja nie som naozaj záujem V žiadnej ďalšej z týchto oblastí.
Rozhodne nie dnes.
>> Takže ja idem sem, do prvého stĺpca, kde
I potrebné zadať užívateľské meno a hash, a poďme
Aspoň zameraním na druhý pre teraz.
Int pravdepodobne nie je správna výzva, Takže to, čo je snáď väčší zmysel?
>> DIVÁKOV: Text.
DAVID J. Malan: znova, povedz?
DIVÁKOV: Text.
DAVID J. Malan: Text?
OK, som počul text.
Čo ešte?
Máme druh má veľa možností že sú textové povahy.
Takže keď, a prečo robiť môžete použiť niektoré z nich?
No char, v rozpore s tým, čo by mohlo myslíte, že nie je jediný znak.
Je to určitý počet znakov.
Takže ak vieme, že všetky uložené mená musí byť ako osem znakov,
ako bolo obyčajné v staršej počítačové systémy, mohol by som povedať, char
a potom by som mohol povedať, 8 tu.
To je, keď v treťom stĺpci sa stáva použiteľné pri vytváraní tabuľky.
>> Ale to je trochu nepríjemné preto, že niektorí ľudia môžu
Chcete mať dlhšiu užívateľské meno ako osem znakov,
niektorí ľudia môžu chcieť majú kratšie meno,
tak prečo zaväzujem na konkrétne číslo?
Prečo majú premennú počet znakov a len
hovoria, že maximálna dĺžka mena je, ja neviem, ako 64 znakov.
Ja si nemyslím, že žiadnych priateľov, ktorí majú názvy dlhší ako 64 znakov,
a to aj v prípade, že je to príliš krátka by ste mohli rozhodne naraziť ju ľubovoľne.
>> Takže varchar je premenná počet znakov.
Text nie je zlý inštinkt, a úprimne povedané, že tak nejako robí to, čo hovorí,
ale textové pole môže byť ako 65.000 bytov najmenej.
To je asi zbytočná pre polia, a v skutočnosti, Jo, 65535.
To je asi zbytočná pre meno, takže budeme držať, typicky
s varchars pre textové pole a hash, taky.
Hash, sa ukázalo, mohli by sme robiť varchar rovnako, alebo niečo také,
ale nebudeme zameriavať dnes na kryptografie tam a čísla
že by sme mohli v skutočnosti chcieť použiť k jeho dĺžke.
>> Ale dovoľte mi, aby som prejdite doprava.
Môžete mať iba jeden primárny index pre tabuľku,
ale chcem použiť niektorý z nich, Teraz sa užívateľským menom, povedali by ste?
Čo by užívateľské meno byť založená na vágne Pochopenie týchto štyroch variantov?
Len tým, že ich mená?
>> Divákov: Unique.
>> DAVID J. Malan: Tak jedinečné, že jo?
Takže sa ukazuje, že nielen že by mohla poviete databázu, v predstihu,
To je hlavný spôsob identifikácia polí.
Môžete si tiež hovoria, že je Bude to jedinečná poľa.
To nebude vec, ktorú som spoliehať na
ale ja by som databázy do majú v zásade, že ak podmienka, tak
že keby som niekedy skúšali registrovať dvaja užívatelia s rovnakým názvom,
databázy naplno nebude ma nechať.
Mohol by som mať nejaké ďalšie kód v PHP, ktorá bráni toľko,
ale databáza tiež môže zabezpečiť že sa nikdy nestane.
>> Teraz, ako je stranou, a to najmä si myslíte o záverečných prác,
Majte na pamäti, it indexe a full texte sú vlastne celkom užitočné.
Ak máte k dispozícii väčšiu databanku, nie s desiatky, ale stovky či tisíce
či dokonca milióny polí, môžete tiež povedať databázu vopred
To je oblasť, idem k vyhľadávaniu na pozemku.
Možno, že jej meno, Možno, že je to bio, ak ste
robiť Facebook-ako webové stránky, ktoré má odseku, že používateľ je dovolené
zachrániť, a ak chcete povedzte databázu vopred
Budem sa vyhľadávanie na tomto poli veľa, ale to nie je nevyhnutne jedinečný,
môžete zadať vytvoriť mi index.
Alebo môžete povedať tiež dovoliť, aby som to urobil druh ľubovoľných vyhľadávania, ako je Command
alebo sa stlačeným klávesom F, rovnako ako vy by mohol v textovom editore,
takže by ste sa mohli pozrieť ľubovoľné reťazce alebo podreťazca v tejto oblasti.
Inými slovami, sme stále do tej miery, v semestri
kde sa nemusíte obávať ako implementovať veci efektívne.
Musíte len vedieť, čo Rozhodnutie dizajnu, aby sa tak, že ste
pomocou správnych nástrojov pre obchodu s cieľom zvýšiť objem funkcie
že ostatní ľudia si vybudovali pre vás.
Takže rekapitulácia, by primárne len majú jednu, môžete mať len jeden,
a je to vec, ktorú ste sa zaviazať, že použitie na určenie polí jedinečne.
Unikátny je práve svojim duchom podobať, ale môžete len občas použiť,
ale chcete databázy ju uložiť.
Index jednoducho znamená, preventívne urýchliť v budúcnosti
takže môžem hľadať veci v tejto oblasti.
A potom plné znenie je všeobecne pre odseku, alebo eseje, alebo veľké skupiny
texte, kde vás tiež chcieť mať
divoké karty, ako ekvivalent hviezdy.
Presne tak.
>> Tak to bol druh veľa naraz.
Uvidíme, či sa nemôžeme páliť niekoľko z týchto funkcií
a potom postaviť niečo pomerne jednoduchý, ale výkonný.
Takže medzi ostatné Rozhodnutie dizajn vám nablízku
nakoniec bude mať sa spolu línia skladovacích motorov.
A dovoľte mi, aby zmienku o tomto v očakávaní záverečných prác,
a predvídanie poďme say-- no poďme to urobiť.
Budujme tento malý aplikácie ako prvý.
Chystám sa ísť do môjho terminálu okná, a tu nie je
iba counter.php, ktoré sme teraz deje ako sa zbaviť, ako už German,
ale máme veľa adresárov a to
bude veľmi podobné v duchu na to, čo uvidíte v probléme nastaviť sedem.
>> Takže máme tri adresára zahŕňa verejné a šablóny, ktoré
je presne tam, kde sme skončili na Pondelok celej našej MVC paradigmy.
A rekapitulácia, na verejnosti sa chystá ísť akýkoľvek súbor, ktorý chcem užívateľom v skutočnosti
v môcť navštíviť v ich prehliadača pomocou adresy URL.
Šablóna.
Čo sme dať do šablóny?
Aké veci?
Nebolo moc, ale pár Súbory najneskôr v pondelok.
Jo.
>> Divákov: Hlavička a päta?
>> DAVID J. Malan: Hlavička a päta.
Takže máme niečo podobné aj dnes.
Máme ešte niekoľko ďalších súborov, ale Zápätie vidím, hlavičky vidím,
a veľa ďalších súborov.
Tak toto je ekvivalentná zastáva názor, V MVC, ktorá
znovu, bude trochu viac jasné, problém nastaviť sedem,
ale to je len zložka, že som uvedenie veľa mojich estetiky.
Veľa mojich HTML, veľa mojich foriem.
Medzitým, zahŕňa, je ďalší adresár, ktorý má tieto tri súbory
a poďme sa rýchlo pozrieť na to.
>> Chystám sa ísť dopredu a otvoriť config.php.
Ako to dopadá, oveľa rovnako ako predtým v termíne,
ste ostrý súčasťou CS50 bodka h s pset7.
V dnešnom príklade, budete k tomu ekvivalent, ktorý
s vyžadovať vyhlásenie ktoré účinne
zahŕňa tieto niekoľko riadkov.
Takže aby bolo jasno, to je súbor s názvom config.php.
A všimnite si, čo to robí.
Je to zrejme niečo mystické, sústruženie na chybové hlásenia
takže ich môžete vidieť v prehliadači.
Je to teda zrejme vyžaduje dva ďalšie súbory
tak to je ako #include v C, a potom toto sme sa vidieť,
a my sme sa spoliehali na to zapne že nákupný košík ako funkčnosť.
>> To znamená, že cookie byť poslaný späť a vpred.
Tak prečo je to zaujímavé?
No, keď sa vrátime k tomu adresár a otvoriť, napríklad,
constance.php.
Všimnite si, že PHP robí podporné konštanty, nie je to úplne ako #define v C.
Namiesto toho doslova hovoria definované a oznámenia
že som sa ukladajú do vopred štyri konštanty v tomto súbore.
Jeden pre dnešné databázy, pre moje heslo pre moje užívateľské meno,
a názov servera.
Tak to skutočne bude celkom podobný problém nastaviť sedem.
A konečne, a to je miesto, kde som dostane nejaké pekné funkcie
z pracovníkov, functions.php je banda kódu písali sme,
a ja som ukradol niektoré z týchto od problém nastaviť sedem
pre dnešný deň, ktorý robí veľa vecí a poďme stačí sa pozrieť na jeden z nich
najmä.
Táto funkcia tu dotaz, bude
PHP funkcie nazývame za účelom výkonu SQL.
Pred chvíľou sme boli s použitím phpMyAdmin, ale to je len
pre druh výukovým účely a diagnostické účely
a zabúdanie databázový súbor.
Ak sa skutočne používať svoj databázy, vy, človek,
sa zrejme nebude na vytiahnutie web
stránky zakaždým, keď niekto zaregistruje.
Budeš písať kód, ktorý vložky a odstráni užívateľa na vyžiadanie,
a budeme to robiť pomocou funkcie dotazu.
Keby som teraz posunúť nadol, je tu bude ešte niekoľko funkcií.
Presmerovanie sa chystá byť funkcie sme napísali
pre vás, ktoré vám umožnia Poslať užívateľovi na inú adresu URL,
a robí je funkcia, celkom ako sme videli v pondelok, že v skutočnosti robí
šablóna, ale viac o nich forma pset7 vlastné prechádzke.
Pre túto chvíľu, poďme do toho a to.
>> Nechaj ma ísť do mojej prednášky stola a vidieť, že je v súčasnosti nič
len ešte tu, a dovoľte mi, aby som tiež ísť do môjho verejného adresára, kde
je tam len jeden súbor, index.php.
Tento súbor sa zdá byť super jednoduché v súčasnej dobe, to vyzerá takto.
Veľmi podobne, ako sme skončil v pondelok.
Som vyžadujúce tento súbor, config.php, ktorý je v
obsahuje adresár, ktorý je dot dot, moji rodičia,
a potom je to práve robí tento súbor.
Takže to, čo je to súbor?
>> Poďme otvoriť v mojich šablón form.php, a my budeme vidieť.
Super jednoduché, zrejme je táto forma chystá predložiť do _GET $ alebo $ _POST.
Rýchla kontrola zdravý rozum.
Doslova vizuálne vyhľadať súbor.
Metóda sa rovná príspevku.
Takže to nebude používať URL ako Google robí, že to bude tak nejako skryť
Informácie pozadí scény a je to
bude predkladať súbor s názvom register.php,
a to je súbor sme ešte nenapísal
ale to, čo to bude vyzerať ako to je.
>> Ak idem do samostatnej stránky Toto je čo localhost / index.php vyzerá.
A opäť, server je len za predpokladu, že index.php.
Enter.
Tak to je miesto, kde sme na, a to, čo chcem robiť
je schopný zadať veci ako David, a potom
moje telefónne číslo, ktoré sa bude hovoriť 617-555-1212 teraz, zaregistrujte sa
a teraz register.php nebol nájdený.
Tak som potrebné to urobiť.
Takže poďme rýchlo vytasiť niečo také hore.
Nechaj ma ísť do môjho verejnom zozname a to gedit z register.php,
a teraz budem pokračovať a spustenie režimu PHP, ako sme to urobili v pondelok,
a zatvorte PHP tag, a poďme urobiť pár vecí.
>> Takže jeden, ja viem, z keď napísal, že formu,
že chcem skontrolovať nasledujúce.
Ak je prázdna, bez ohľadu na používateľa zadali do poľa Názov, potom
Idem niečo povedať ako ospravedlniť chýba meno.
Ospravedlňujem sa, zatiaľ, je nie je postavený v PHP vec,
je to funkcia sme písali vo functions.php pre pset7
tak, že budete mať k nemu prístup.
Inak v prípade, že iné oblasti je prázdny, číslo, potom som
ísť ospravedlniť užívateľa a hovoria chýbajúce číslo.
Uložte tento súbor.
>> Teraz sa vráťme do svojho prehliadača, späť do fóra skúste to znova.
Registrovať.
OK.
Nič sa nestalo, čo je dobré.
Nedostal som sa chybové hlásenie.
Ale keď namiesto toho, poďme znovu tento strana, a neposkytuje nič.
Sakra.
Urob to.
Registrovať.
Čo som urobil zle?
Ak je prázdny, name $ _POST.
Ešte raz?
>> Oh, samozrejme.
Zabudol som najdôležitejšia časť, ktorá je potrebné ("../ zahŕňa / config.php.").
Potrebujem mať prístup k Ospravedlňujem sa funkcie, ktoré
Preto sa nič nedeje.
Funkcia v skutočnosti neexistuje.
Tak si to skúste znova.
Poďme znova načítať stránku, kliknite na tlačidlo Registrovať.
OK.
Tu to je.
Takže výstup sme Tu je vidieť výsledok
volanie ospravedlniť funkcie, super jednoduchý,
a to len vytlačí čokoľvek Dávam to ako argument.
>> Dobre, tak poďme spolupracovať.
Poďme poskytnúť svoje meno ako David, zaregistrujte sa,
Chýba číslo OK poďme stanovuje, že taky.
617-555-1212.
Registrovať.
OK.
Takže je všetko v poriadku teraz, len nič zaujímavé sa deje.
Takže teraz poďme urobiť niečo viac Zaujímavé stane takto.
Nechaj ma ísť do phpMyAdmin, a poďme vlastne vytvoriť tabuľku s názvom užívatelia
Chystám sa dať tri stĺpy, a budem rýchlo
vytvoriť ID, a potom meno a číslo,
a polia ID som k odchodu ako int.
Názov poľa idem ponechať ako varchar,
a povieme 64, trochu svojvoľne.
Počet Idem aby, vieš čo?
Ideme do tu podpora čísla v USA,
tak idem niečo robiť ako char a potom 10 znakov
max pre predčíslia a potom sedem číslic.
A potom tu, idem špecifikovať auto prírastok tejto oblasti
aby to primárny kľúč, a Chystám sa ísť dopredu a nie
kontrolovať niektoré z týchto ďalších boxov.
>> Takže keď som teraz konečne kliknite na tlačidlo Uložiť, a ja som sa vrátiť k môjmu užívateľov tabuľky,
To je, ako to vyzerá, keď Teraz kliknite na štruktúru Nová karta.
Takže to, aby bolo jasné, je len spôsob, ako phpMyAdmin sa
hovoriť svoje databázové tabuľky má ID, meno a číslo
s týmito konkrétne konfiguráciou a budeme ignorovať zostávajúce pole
tam teraz.
>> Takže teraz, čo mám robiť?
Takže keď som sa ísť do môjho zdrojový kód, ak je všetko v poriadku
Chcem spustiť nasledujúci dotaz.
Vložiť do, a môžem len hovoria užívatelia neviem presne
Potrebujeme tie zadné kliešte, ak je to nie je nebezpečný slovo ako užívateľa.
Budem hovoriť mená, číslo, a potom tu som
nebude pevný kód číslica hodnôt doteraz.
Chystám sa dať dva otázniky.
A to je konvencie v mnohých jazykoch
pričom v prípade, že chcete mať zástupný reťazec
budete používať na otázku značky, z dôvodov, ktoré budem
vrátiť sa na chatu o bezpečnosť, a tu
Chystám sa v tých dve polia písať meno,
a potom po radu, a teraz súbor uložte.
>> A teraz budem ísť dole je super tu
jednoducho povedať rendersuccess.php, ktorý bude ďalší šablóny.
Chystám sa vytvoriť naozaj rýchlo.
Geditsuccess.php a ja som jednoducho ísť povedať H1 úspech v tomto súbore.
Dobrá.
Takže teraz, poďme späť k prehliadač, kde som navštívil predtým.
Poďme ďalej a potvrďte som napísal Davida, som napísal v telefónne číslo,
registrovať.
Sakra.
Čo som urobil zle?
Takže som videl chybu tu, majú chybu vo vašom syntax SQL.
Dovoľte mi, aby som skočiť späť do gedit, nech ma ísť späť do register.php,
a to, čo som zabudnúť, že bolo dôležité, naposledy?
Potrebujem to.
Ak chcete vedieť, že iné ako z s nevšimol, ale potrebujem to.
>> Takže teraz sa vráťme, a to bolo užitočné vidieť v prehliadači
a to je dôvod, prečo v config.php sme vypľuť chyby.
Poďme ďalej a znova, kliknite na tlačidlo Pokračovať, úspech.
Takže teraz ma nechaj ísť ku mne Databáza tu a kliknite na používateľa,
a prechádzať, a všimnite si teraz mať David vo svojej databáze tu.
Teraz technicky tento web je ale nie na verejný internet,
takže nemôžem mať iný ľudia v uvedení tu,
ale keď som teraz chcel, pre inštancie, poslať sám textovú správu.
Poďme von na údu tu a uvidíme, či to skutočne funguje.
Chystám sa ísť dopredu a odstrániť tento riadok
a budeme rozmazaniu to vo videu neskôr
takže nemáme Celý internet mi SMS,
a teraz budeme pokračovať až do prehliadač a pôjdeme cez prednášať
a my budeme písať v rôznych Číslo ktoré tu nastavíte, zaregistrujte sa, úspech.
>> Takže teraz, moje číslo je pravdepodobne v databázy, a teraz to najzábavnejšie.
Poďme skutočne používať PHP robiť niečo programovo,
buď z príkazu linka alebo niekde inde,
a teraz som len ísť, aby to jednoduché
a ja idem do môjho adresár tu a vykonajte nasledujúce kroky.
Gedit script povedzme, my budeme hovoriť text, #! / user / bin / env PHP,
ako sme videli minule.
PHP.
>> Teraz budem robiť, vyžadovať zahŕňa config.php,
aj keď by to mohlo vyvolať mierne chyby.
A teraz budem pokračovať a povedať, riadky, dotaz, vyberte hviezda od užívateľov,
a teraz tu budem robiť techniku od minule pre každý riadok ako riadok.
A ja urobím niečo jednoduché.
Printf povedzme, že meno je to, a číslo je to, spätné lomítko n.
A teraz idem prejsť v rade citovať koniec citátu meno,
a číslo riadku citácie koniec citátu, a teraz poďme do toho
a okno má terminál chmod + x to, aby sa
tento skript s názvom texte spustiteľný súbor.
A teraz poďme bežať text.
>> OK, tak pokrok.
Takže som teraz napísal príkazový riadok skriptu,
v jazyku PHP s názvom, ktorý, z dôvodu, že vyžadujú rad,
má prístup ku všetkým tým konfigurácia konštanty, ktoré som uvedené.
Názov databázy a tak ďalej.
V skutočnosti, len aby bolo jasno že to nie je náhoda,
nechaj ma ísť napred a registráciu veľmi rýchlo, niekto ako Rob
a mu dá číslo 555-1212.
>> A teraz, keď som spustiť skript znova, všimnite si moc
z toho, čo robíme s databázou.
Teraz som hneď videl, čo Ďalšie dva riadky sú v mojej databáze.
Takže teraz poďme skúsiť niečo urobiť aj milovník vnútri,
a to je tá časť, máme netestované vopred,
tak naposledy, čo som to urobil to išlo hrozne nakrivo,
Máme video, ktoré v tomto zmysle.
>> Vlastne jo, sranda bokom.
Takže v poslednej dobe, prednáška rovnako ako pred dvoma rokmi,
Rozhodli sme sa, som sa rozhodol, aby sa to všetko by bolo skvelý nápad
dynamicky generovať e-maily triedy, cez celý databázy CS50
študenti, ktorí nám dali ich čísla a ich mobil dopravcovia, ktorí vás
možno pamätáte z pset0, ako rozum, to dopadá
Mal som malú chybu v mojom programe a urobil pár chýb v roku 2012, myslím.
>> Kedy, čo som mal na slučke, ktorá sa robil presne tieto veci,
iterácie cez databázu, dostať meno z databázy,
meno z databázy, a potom sa na seba opakovanie tohto cyklu som poslal e-mail.
Ale namiesto toho, ¾e odoslanie jednej e-mailu, I poslal jedného e-mailu prvej iterácii,
a dva e-maily druhej iterácii, poslal tri e-maily druhej iterácii, čo
ako si možno pamätáte z našich diskusia o asymptotickej notácie
tento veľký O zlých, ako n na druhú je, koľko správ som poslal,
ale to nebolo ani e-maily to textové správy.
>> A ako viete, účasť nie je Super High ku koncu semestra
a tak som si myslel, že by bolo roztomilé na čas povedať: "Prečo nie si trieda?"
V texte správy I odoslaná na celú triedu,
a to bolo smiešne, rád 50% triedy, ale druhý 50%, z ktorých niektorí
vydesený, poslal som neuveriteľne ospravedlňujúcim sladké poznámky
aby zamestnanci ospravedlňovať za čo vynechal prednášku práve
to raz, že jo?
>> Tak, že by strašne nakrivo.
Takže v tomto duchu, skúsme to znova, ale len s mojím číslom.
V predstihu, v functions.php, Napísal som túto funkciu tu.
Je to len text, a to trvá tri argumenty.
Číslo, nosič a správa.
>> Ja používam príkaz switch, ktorý nádherne PHP vziať reťazca, a to nielen
celé čísla, a ja som sa realizovať všetku podporu pre to ešte,
Práve som urobil AT & T a Verizon.
Vzhľadom k tomu, že dopadá že s týmito nosičmi
majú e-mail na SMS brán, kedy môžete naozaj
pošlite e-mail na adresu ako telefónne číslo v vtext.com
a v prípade, že užívateľ nie je blokovaný správy, bude to prejsť
je textová správa.
>> A teraz, ako to urobiť, budem musieť pridať jedno pole naozaj rýchlo, aby moje databázy.
Chystám sa ísť do moja konštrukcia, a ja som
bude pokračovať a pridať polia na konci tabuľky.
Poďme na tlačidlo Prejsť, a ja som bude volať tento dopravca
a teraz idem ponechať ako text pruhu,
ale môžeme byť milovník v budúcnosti.
Chystám sa ísť rýchlo na mojom stole, a ja som
bude, ako sa zbaviť Rob, pretože to je falošný číslo,
Chystám sa ísť do Upraviť tu a ja som zmení svoj nosič ručne
byť Verizon, ktorý ho je, a teraz tu.
>> Poďme urobiť rýchlu kontrolu zdravý rozum.
Poďme otvoriť náš textový skript, ktorý vyzerá to, nosič je% s.
Robíme oveľa väčšiu chybu kontrolu, než som urobil v roku 2012, dopravcu.
A teraz, ja idem dopredu a znova spustite skript.
OK.
Carrier je Verizon, čo znamená, Teraz dúfam, že môžem robiť len to.
Správne v tomto roku, dúfajme, že je to tu.
>> Takže vnútri tejto slučky for, som bude mať nielen tento printf,
Som tiež chystá zavolať text a použitie tejto funkcie odvolaní
Bol to trvá niekoľko, nosič a správa.
Takže poďme sa pozrieť, číslo bude byť riadok citovať koniec citátu "číslo"
riadok citácie koniec citátu "dopravca" a posledná z nich bola správa.
Nenechajte mhouřit tento rok, bodkočiarka.
>> OK.
Palca.
Uvidíme, či to funguje.
Dobre, tak.
Ideme na to.
Poďme odomknúť telefón, cez prsty, sakra.
Nedefinovaný premenná may-- oh počkaj, počkaj, počkaj, naozaj rýchlo.
Veľmi rýchlo, naozaj rýchlo.
To je absolútne stojí za to.
Nechaj ma chytiť, dajte mi chytiť, uh-oh.
Ďakujem vám, že texty majú začal od niekoho iného.
Nechaj ma ísť napred a otvoriť real rýchlo, dropbox.php / mail tu.
Standby.
Absolútne stojí za to.
Súbory na stiahnutie.
OK, zdroj src8m.
OK.
>> Potrebujete ďalší jeden riadok tu.
Oh, že to je, že je to v frosh IM, to je v registri na tri.
Oh ahoj, Margo, moc ďakujem.
OK, a ja som tu chýba tento riadok.
Takže dovoľte mi, aby som sa rýchlo chytiť tento riadok kódu,
ktorý zahŕňa poštu alebo knižnicu že som vlastne chcete použiť,
Idem rýchlo späť do funkcie,
Chystám sa ísť na vrchole tohto súboru a požadovať, aby tento súbor rovnako,
a teraz idem naozaj na moju prsty, keď som sa vrátiť do príkazu
riadok skriptu, ktorý je vo vnútri dnešné miestneho hostiteľa adresára.
Spustiť textu.
Enter.
Mail.
Standby.
Mail.
Oh, OK.
Ideme na to.
>> Mail dostane nový PHP mailer.
Urobil som toto právo?
Sakra.
To-- oh, počkať, počkať, počkať.
Stand by.
Sľubujem, že to je Bude to stojí za to.
Adresa.
To je dôvod, prečo nerobím príklady priamo pred triedou.
Fuj.
Nasledujúci príjemcovi zlyhalo.
Skúsme jednu poslednú vec.
SMTP nastaviť od, pridajte adresu, adresa je skutočne, že.
Skúsme túto poslednú časť na adresu.
Aw, som naozaj smutné práve teraz.
Děkuju.
Ale ja naozaj oceňujem všetky texty ste odosielanie.
Máte tento Davida.
Ste fúka to.
Poďme ho tam nechať a budeme opraviť v pondelok.
Uvidíme sa potom.
>> Daven FARNHAM: A teraz Hlboké Myšlienky od Daven Farnham.
Ak binárny strom spadne v lese a nikto nie je okolo C to-- [so smiechom].