[Powered by Google Translate] [8. týždeň, pokračovanie]
[David J. Malan] [Harvard University]
[To je CS50.] [CS50.TV]
>> To je CS50, takže to je koniec týždňa 8 tu.
Samozrejme sme mali trochu hurikánu na začiatku tohto týždňa,
takže teraz to je naozaj len ty a ja v tomto prednáškovej sále,
ale dnes budeme pokračovať v rozhovore o PHP
a asi programovanie pre web všeobecne, a tiež predstaviť myšlienku
databáz, obzvlášť jeden nazvaný MySQL, ktorá je veľmi populárny v týchto dňoch,
z veľkej časti preto, že jeho škálovateľnosti, rovnako ako preto, že jeho bytia zadarmo a open source.
>> Ale najprv, pohľad na to, kde sme skončili minule.
Pripomeňme si, že sme sa pozerali na niekoľkých príkladoch Frosh Chatu,
a to bol ohavný formulár, ktorý som prišiel s asi 15 + rokov
aby mal študentov na akademickej pôde registra pre šport prvák intramurálních
bez toho aby ste museli trek už cez dvor k Wigglesworth
posuňte fyzickej kus papiera pod nejaké Proctor dverám.
Namiesto toho sme sa presťahovali všetko on-line, ale k tomu, že sme potrebovali využiť
niekoľkých technológií, tak jeden, sme potrebovali HTML, Hypertext Markup Language,
čo je opäť to značkovací jazyk, s ktorým si urobíte webové stránky štrukturálne.
>> Pomocou trochu CSS v týchto dňoch, kaskádové štýly,
kedy používame stylizations webové stránky pomocou mierne odlišnú syntax,
vzhľadom k tomu, HTML bolo o štruktúre ich.
Musíme tiež zaviesť webový programovací jazyk.
V tomto prípade budeme používať PHP, a PHP bude, aby nám
pre dynamické výstupné obsah rovnako ako tomu programové veci, ako je
odosielanie e-mailov, ako tomu bolo v prípade poznámku sme nechali minulý týždeň.
>> Pripomeňme si, že kód pre tento bol na 2 časti.
Jeden sme mali froshims3.php,
a toto bolo veľmi značky s HTML formulármi vnútri nej,
trošku CSS tu v štýle atribúty
takže by forma sám sa sústredil na stránke, ale okrem toho
sme mali nejaké reprezentatívny formulára vstupy, textové pole, začiarkavacie políčko,
nejaké rádio tlačidla, zvoľte menu, a tlačidlo Odoslať.
A prostredníctvom tohto formulára, sme podali na súbore, ktorý bol zrejme volal register3.php,
ktorá sama o sebe vyzerala trochu niečo takého.
Teraz, väčšina kódu v register3.php, odvolanie, bolo o e-mailu.
Je predsa trochu validácie na formulári, ktorý bol predložený, aby sa ubezpečil
že pole bolo skutočne za predpokladu, že boli očakávané.
Potom sme zavolali niektoré PHP funkcie pomocou mierne novú syntax,
aj keď to požičal si od C.
>> Táto šípka operátor nám umožňuje využiť niečo, čo nazýva objektovo orientované programovanie.
Nepôjdeme do toho v každom detaile tu, ale viem teraz
je to spôsob, ako mať funkcie spojené s objektmi,
ktoré sú špeciálny typ štruktúry, ako sme videli v C.
Ale teraz, len sa na viere, že je to správna syntax pre použitie
Pri použití knižnice sa páči táto knižnica PHPMailer.
A potom na konci tohto súboru sme dynamicky generované e-mail
ktoré poslali na môj jharvard@cs50.net účet
z môjho jharvard@cs50.net účtu,
a sme informovali užívateľov spôsobom, že bolo zapísané pre tento šport.
To je presne to, čo Frosh IM stránku, kde bolo pred rokmi
keď som implementoval, poskytnuté v inom jazyku,
ale to vám ukáže snáď moc, že ​​máte
teraz, že sa môžete vyjadriť nielen programovo
na nízkej úrovni v jazyku ako C, ale na oveľa vyššej úrovni
s týmito veľmi reálnych aplikáciách, ako je e-mail, aby skutočne riešiť
niektoré skutočné svetové problémy.
>> Teraz, samozrejme, aj keď tento skript použiť pre generovanie niektorých
e-maily dynamicky z jharvard@cs50.net, čo je naozaj účet
že mám prístup k to byť docela opatrní na odoslanie
e-mail iba z účtov, ktoré sú v skutočnosti vlastné,
lesť veci vám v trochu teplej vody v živote.
Vďaka, že povedal, poďme sa teraz prechod na riešenie iný problém úplne,
že oporných štátov.
A teraz, čo to vlastne znamená?
HTTP, táto hypertext transfer protocol,
je vlastne bez štátnej príslušnosti protokol, a čo to znamená, že
keď vytiahnuť niečo ako Google.com a potom stlačte kláves Enter
obvykle Váš prehliadač má nejaký pradenia ikony, ktoré potom
vyústi v určitej webovej stránky sú stiahnuté,
a potom že sa malá ikona zastaví spinning, a že skutočne naznačuje,
že HTTP dokončil nejaké pripojenie k serveru a je to.
HTTP je bez štátnej príslušnosti v tom zmysle, že neudržiava
trvalé pripojenie k serveru rovnakým spôsobom Skype robí
alebo Gchat robí preto, že s HTTP
Predpokladom je, že potom, čo ste priniesol webovú stránku, ktorá je to.
>> Teraz, v skutočnosti v týchto dňoch na weby ako Facebook a Google Maps
a Twitter a ako by to oveľa viac dynamiky, kedy
aj potom, ikona prestane točiť, môžete v skutočnosti získať ďalšie aktualizácie
zo servera, viac tweety, viac o stave aktualizácie na Facebooku a podobne.
Ale aj to je použitie techniky, ktoré budeme hovoriť o za týždeň alebo dva
známy ako Ajax pomocou jazyka s názvom JavaScript,
ale na konci dňa, HTTP je stále nestavové.
A napriek tomu, ak chcete, aby nejako spomenúť, čo o užívateľovi
aj potom, čo som odpojený od servera
PHP sa Vám poskytnú prostriedky, ako to dosiahnuť
pretože, ako sme videli minule, PHP má rad superglobála,
a superglobal je opäť špeciálny globálne premenné
, Ktorý je odovzdaný pre Vás webový server a samotným PHP.
>> Nemusíte robiť nič, aby hodnoty v ňom,
a medzi superglobála sme videli doteraz, sú get a post,
ktoré je miesto, kde sú polia formulára umiestniť automaticky za vás,
rovnako ako pár ďalších, ktoré sme ešte nevideli.
Vnútri $ _SERVER sú niektoré špeciálne premenné vzťahujúce sa k serveru samotnom.
Čo je to IP adresa, aký protokol, HTTP alebo HTTPS ste používali,
Čo žiadosť metódu ste a podobne, takže je tu niečo zaujímavé,
šťavnaté podrobnosti o serveri, a v skutočnosti, že používateľ sa tam tiež.
Tam je $ _cookie, čo je miesto, kde sa tieto veci tzv cookies sú uložené.
Nebudeme tráviť čas na cookies seba dnes,
ale viem, že teraz cookie je len malý kúsok informácií
že webový server môže zasadiť vo webovom prehliadači
a následne jeho RAM alebo svojho počítača pevný disk
za účelom uloženia informácií o používateľovi, napríklad, ich užívateľského mena
tak, aby nemuseli písať to zakaždým, keď sa prihláste alebo nejaký
jedinečné číslo alebo identifikátor pre tohto užívateľa
takže nemusíte obťažovať im rovnaké druhy otázok o
preferencie v budúcnosti, ale väčšina z úrokov
Práve teraz je $ _SESSION.
>> Tento superglobal, ktoré, rovnako ako ostatné, je odovzdaný k vám automaticky PHP
keď píšete PHP-založené webové stránky
môžete uložiť všetko, čo chcete, reťazce, celé čísla,
plávajúce body, hodnoty, polia, objekty,
Naozaj čokoľvek, čo chcete, a to vám umožní uložiť takým spôsobom,
, Že aj v prípade, že užívateľ navštívi ťa tu a tam
vráti minútu od teraz, alebo 5 minút od teraz, pretože
berú svoj čas pred kliknutím na nejaký iný odkaz
PHP zabezpečí, že čokoľvek, čo dať do tej relácie superglobal
O minútu alebo 5 minút pred bude ešte keď užívateľ vráti.
A pod kapotou je to superglobal vykonávané pomocou
tieto veci tzv cookies, ale teraz, je to len abstrakcia
kedy je to niečo ako programové ekvivalentu nákupného košíka.
Či už ste, programátor, dal v tom, že
superglobal asociatívne pole tam bude nejaké číslo z minúty neskôr
kým ju neodstránite, alebo kým užívateľ ukončí svoj prehliadač dohromady.
>> Poďme sa pozrieť na príklad toho, ako sa tá vec skutočne použitá.
V counter.php medzi dnešnými kusy kódu
máme nasledujúci riadok.
Na začiatku tohto súboru máme veľa modrých pripomienky, ktoré sú nezaujímavých pre túto chvíľu.
Ale v riadku 13 máme nový riadok,
session_start, a že vlastne robí presne to, čo hovorí.
Začína zasadnutí.
To vám umožní používať túto veľkú superglobal $ _SESSION, a je to tak jednoduché.
Teraz, keď budeme pokračovať sa pozrieť na riadku 16, skúsme zistiť, čo táto internetová stránka bude robiť.
If (isset ($ _SESSION ["counter"]) potom choďte do toho
a obchod v boji premenné, malá čítač,
$ _SESSION ["Counter"].
To sa zdá byť deklarovaní lokálnu premennú pomenovanú counter
vnútri ktorej je uvedenie kópiu, čo je vo vnútri superglobal
volal zasadnutí v umiestnení "pultu".
Else, zdá sa, že tento malý lokálny premenná čítač inicializovaný na 0.
>> Ale potom o pár riadkov neskôr v 26 oznámenia, že zasadnutie je kópia čítače,
jeho kľúč, má novú hodnotu priradenú, ktorý je jeho aktuálna hodnota plus 1.
Stručne povedané, tento súbor sa zdá byť aktualizácia
čítač, ktorý je uložený vo vnútri zasadnutí superglobal
podľa zvyšovanie to o 1, ale najprv udrží kópiu predchádzajúcej hodnoty
uložením do lokálnej premennej s názvom $ counter,
a potom sem sa pozrime, čo zostáva.
Ukázalo sa, že je to skoro len HTML.
V dolnej časti tejto stránky vidíme v súlade 37, ktoré som navštívil tieto stránky
číslo čítača časov, takže je tu pár zaujímavých funkcií tu.
Jeden, to je jasne variabilný, ale to nestačí len dať
$ Counter v tele vášho HTML, pretože samozrejme
ak je to len tam medzi vaše PHP HTML sa bude predpokladať, že je to práve HTML.
Tie doslova Chcete $ counter ktoré majú byť vytlačené na obrazovke.
>> Ale namiesto toho tým, že upustí do režimu PHP
s týmto kusom syntaxe môžeme dynamicky vložiť hodnotu tu
veľmi podobné v duchu toho, čo sme minule s
vkladanie hodnôt do reťazcov.
V skutočnosti, to je len skrátený zápis pre ostatných niečo také doslova,
print ($ counter), alebo aj niečo ako printf (% s, pult),
alebo dokonca, ako ste možno videli on-line alebo v učebniciach,
je tu funkcia v PHP nazýva echo
ktorý robí to isté, a všetky z nich sú len dlhšie vinuté spôsoby
povedať <? =.
V tomto jednom prípade nemusíte dať
Slovo PHP za otáznikom.
To je skratka pre zápis, znovu to, čo sme práve videli pred chvíľou
ktorý je opakujúci nejakú hodnotu.
>> Pozrime sa, čo konečný výsledok to vlastne je.
Nechaj ma ísť aj do nášho counter.php súboru,
a budeme vidieť, že David práve urobil chybu tým, že hrá s kódom tam.
Poďme opravu bez ohľadu na to posral,
a chyba sa zdá byť tam, preč, on-line 37.
Podľa hornej časti tejto stránky som navštívila túto stránku 0 krát.
Dobre, poďme do toho hneď, a na hornej časti prehliadača kliknite na
znovu na ikonu, a ja kliknite na tlačidlo znova,
a teraz som navštívil stránky 1 čas, 2, 3, 4, 5, 6, 7, 8.
A skutočne, ak sa pozrieme na zdroje tejto stránky aktuálne zdrojový kód sa mení,
a všimnite si úplnú absenciu akéhokoľvek PHP, a to preto, že
PHP kód je hodnotený alebo interpretovaný na strane servera,
a tak to znamená, že výstup z PHP skriptu je to, čo nakoniec poslal do prehliadača,
ktorá je v tomto prípade niektorých surovín a HTML a niektoré obyčajného textu.
Čo sa to tu deje?
>> No, s pomerne málo riadkov kódu som schopný ukladať
trvalo v priebehu niekoľkých sekúnd, alebo ak sme čakali dosť dlho,
minút, a to aj hodiny, nejaké hodnoty tak, že je HTTP
Zdá sa stavovú ako keď sme zachované
toto spojenie k serveru, a to len spomenul, čo som povedal, to naposledy,
ale v skutočnosti je tu celá partia zložitosti deje pod kapotou
zahŕňajúce súbory cookie, ktoré je umožňujúci PHP, aby mi túto ilúziu
tohto nákupného košíka, ako funkcia.
Pre túto chvíľu, triviálne príklad, kde sme len obyčajné ukladanie celé číslo,
ale, že funkcia vráti sa k mať veľkú hodnotu
keď začneme hovoriť o zložitejších projektov,
medzi nimi problém nastaviť 7.
To je vaša úplne posledný problém nastaviť CS50.
Ja viem, že je to tak smutné, ale to, čo nájdete, je, že budeme uzatvárať
táto časť semestra vlastne prechod
z kontextu C určite súvislosti PHP
ale pri použití niektorej z úplne rovnakých základoch
sme hovorili o nejakú dobu.
>> Cieľ s PSet 7 je zaviesť CS50 Financie,
ktoré je vaše vlastné verzie Yahoo Finance alebo Google financií
alebo dokonca Etrade.com pričom si majú schopnosť
vyhľadať ceny akcií pre dané symboly, ale aj viac než to
máte možnosť "kúpiť" a "predať" akcie
ktoré sú obchodované na rôznych burzách, pretože ako úvodnú stránku
tu naznačuje, čo je naozaj, do akej miery sme začali
Problém sada pre vás, máte prihlasovací formulár, ktorý sa pýta na užívateľské meno a heslo.
Má tlačidlo Odoslať, ale potom, ako budeme nakoniec vidieť,
nie je nič naozaj deje pod kapotou ešte, pretože to
zostáva pre vás realizovať schopnosť registrovať nových užívateľov,
schopnosť nakupovať akcie, predať akcie,
skutočne vyhľadať aktuálne ceny akcií.
>> A skutočne, to bude ako skutočný svet, ako je to možné, pretože sme
patrí kus kódu, ktorý umožní vám jednu funkciu
na dotaz Yahoo Finance, ktorá nádherne dáva k dispozícii zdarma údajov
pre vyhľadanie cien akcií na základe burzový symbol alebo burzové symbol,
a dostanete späť aktuálnu cenu akcií dňa.
Údaje, ktoré ste vlastne vidieť v tomto konkrétnom PSet bude
asi tak reálnom svete, ako to môže dostať tak, že ste vlastne prepojenie
so skutočným svetom zásob z reálneho sveta cenách,
a uvidíme, koľko peňazí môžete urobiť snáď
v priebehu najbližších niekoľkých dňoch hrania s vlastnou problém sade.
>> Ale poďme najprv nastaviť scénu, ako navrhnúť niečo, čo je určite zložitejšie
ako counter.php, že je to zložitejšie, než ktorýkoľvek z Frosh príkladov Chatu tak ďaleko,
a skúsme predstaviť niekoľko paradigiem tu, ktoré umožňujú nám
ako pre PSet 7 a možno pre konečného projektu, ak nemáte niečo na základe web
aby váš kód dobre organizovaná, udržať si zdravý rozum,
a urobiť krok smerom spolupracovať, či už v záverečnej projektu CS50 tieto
alebo mimo, ak budete pokračovať naprogramovať niečo v budúcnosti.
Tam je to všeobecný návrh paradigma
v informatike a vo vývoji softvéru všeobecne
známy ako MVC, model view radiče,
a to je hlúpe skratka, ktorá popisuje veľmi pekný nápad,
ktorý je oddelenie rôznych aspektov programu,
konkrétne vedenie samostatné logiku alebo obchodné logiku webové stránky
takže všetko, čo zahŕňa veci ako
volanie funkcií a dotazovanie databáz a podobne
sa stane nie medzi vašou HTML
ale skôr v samostatných súboroch, a naozaj, tam je to jeden súbor
zvyčajne, že ste volal správca
To je naozaj mozgom operácie, a uvidíme príklad
z toho za chvíľu.
>> Tam je model, ktorý je programovanie kódu
že robí hovoriť na zoznam databáz, ktoré hovoria pre Yahoo Finance a podobne,
a potom je tu V v MVC, pohľady,
všetky veci, ktoré sa vzťahuje k estetike, súbory, ktoré skutočne obsahujú
Vaša HTML, možno vaše CSS a podobne.
Myšlienka, ako tento obrázok naznačuje, je to, že sa regulátor
je súbor, ako skoro uvidíte, a ako budete predovšetkým vidieť v PSet 7,
že svet hovorí prostredníctvom svojich webových prehliadačov.
To je súbor, ktorý sa na na verejnom internete,
ale regulátor hovorí potenciálne modelu,
ktorý je jeden alebo viac ďalších súborov, ktoré obsahujú kód vzťahujúce sa k údajom,
kód vzťahujúce sa k databázam a podobne, a potom to hovorí
regulátor jeden alebo viac iných súborov známe ako zobrazenie,
ktoré sú estetika webové stránky, vzory druhov,
, Ktoré by mohli mať niektoré údaje ako vstup, ale na konci dňa
iba logika vnútri cieľom by malo byť stvárnenie týchto údajov,
iterácia slučky a vlastne pľuvať niektoré
HTML-based stvárnenie ich, alebo dokonca niečo ako PDF.
>> Čo je pekné o MVC je, že môžete mať rôzne názory
v závislosti od typu zariadenia, na základe typu formát súboru, ktorý ste skutočne
Chcem ukázať užívateľovi.
Poďme sa pozrieť na niekoľko postupne zložitejšie a dobre navrhnutý príkladov
tým, že začína najprv s verziou 0 tu.
Nechaj ma ísť napred a otvoriť v našom adresári MVC dnes
súbor s názvom index.php v adresári 0.
Všimnite to je super jednoduchá a veľmi nezaujatý web
to je druh verzia 0 z domovskej stránky pre CS50,
a všimnite si, ako máme odkaz na prednášky, máme odkaz na osnovy,
a keď som na odkaz na prednášky oznámenia, že URL
až hore sa chystá zmeniť lectures.php.
Keby som Potom nasledujte odkaz na týždeň 1 upozornenie, že adresa URL sa zmení na week1.php.
Zdá sa, že pomerne jednoduchý hierarchickú štruktúru tu.
>> Poďme sa rýchlo pozrieť pod kapotu, ako je to stanovené,
a naozaj, keď som sa na index.php je to celkom jednoduché.
V skutočnosti, aj keď som volal tento súbor PHP tam žiadny skutočný programový kód.
Je tu poznámka, že som tu písal v PHP len tak, že používateľ nemá skončiť vidieť to.
Samozrejme, rovnako ako predtým, všetko, čo je medzi tagy PHP
dostane vykladať, aj keď je to komentár, a interpretovať komentár
znamená len aby zahodil to na konci dňa a v skutočnosti
poslať do prehliadača, takže všetko tu je len estetika.
Ak som otvoriť podobne lectures.php aj toto je len ťažko kódovaný súbor.
Stáva sa to nazvať niečo. Php,
ale je to naozaj len. html, a week1.php, week2.php
podobne sú len značkovacie, takže je tu veľa nedostatkov tohto návrhu.
Jeden, že je to obrovské množstvo copy / paste.
Aj keď jediná vec, ktorá mení medzi týmito súbormi je neusporiadané zoznam,
Ak tagy, som však mať doc typ, HTML, hlava,
Názov, úzkym telo, úzkym HTML a viac
v každom súbore, čo znamená, že ak by som niekedy chcel reštrukturalizáciu
táto webová stránka alebo restylize to musím ísť a zmeniť
všetky tieto súbory ručne alebo s niektorými masívne nájsť a nahradiť.
>> Poďme sa krok smerom k múdrejší, už myslí dizajnu vo verzii 1 tu
pričom podľa čítal mi, že sme súčasťou, takže môžete hrať spolu s
Tieto pokojnejšie doma upozornenie, že tu máme
súhrn súborov vo verzii 1 tohto webu,
a zdá sa, že som si vzal to na seba, aby vytknúť
niektoré spoločné kód, header.php a footer.php.
No, poďme sa pozrieť na to, čo je vo vnútri prvý z nich.
Header.php vyzerá povedome,
ale v prípade, keď to dostať odrezať?
Hneď po linke 19, tak to je všetko, čo bolo bežné
od spisov index.php, lectures.php,
week1 a week2.php z predchádzajúceho príkladu.
To, čo som urobil, bolo, kopírovanie a strih všetko, čo bolo spoločné pre všetky tieto súbory,
vložte ho do samostatného hlavičkového súboru, a podobne v footer.php
som použiť rovnaký princíp, podľa ktorého len zaujímavé linky
v footer.php sú títo dvaja, úzkym telom a úzkym HTML.
>> Ale čo to znamená, že sa v novej verzii
zo dňa index.php oznámenia, koľko jednoduchšie to môže dostať.
Je pravda, že trochu viac mystický hľadáte, trochu menej intuitívne
sledovať zhora nadol, ale môj Bože, je celý tento nadbytočnosti preč.
Požadujeme pomocou PHP funkcie doslova volala vyžadujú až hore,
ktorý je veľmi pripomínajúci, spomenúť, ze C je # include mechanizmus.
Požadujeme header.php v hornej časti.
Požadujeme footer.php na dne, a jediná vec, ktorá sa líši
alebo osobitné o tomto súbore je obsah, ktorý je predurčený byť jedinečný pre neho.
Ak by som potom ísť do, povedzme, lectures.php, platí rovnaký princíp.
Opäť platí, že niektoré komentáre až hore, ale potom som si vyžadujú hlavičku, pätu vyžadujú,
a medzi je to len obsah, ktorý sa skutočne zmenil.
A ak sme sa pozreli do týždňa 1 a 2. týždeň by sme vidieť
, Že rovnaký princíp bol uplatnený tam.
No, nie sme úplne hotový tam.
>> Poďme sa pozrieť na verziu 2, ktorá má podobnú štruktúru,
nevšimnúť teraz som predstavil niečo iné.
V riadku 10 som predstavil helpers.php,
ktorý zrejme obsahuje pomocné funkcie.
Pomocná funkcia je všeobecne relatívne krátky funkcie
že píšete, aby vám pomohol v rôznych miestach,
a pozrieme sa, čo je vo vnútri helpers.php.
V tomto prípade, to vyzerá, že má 2 funkcie.
Spomeňte si na druhý deň s našou kocky napríklad
môžete definovať svoje vlastné funkcie v PHP, a to, čo som urobil teraz je, že som
definované funkcie tzv robí päty a robí hlavičku,
Prvý z nich sa parameter nazýva dát,
ktorého hodnota je prázdne pole, ako navrhuje tam,
a môžeme skutočne písať to ešte stručne v najnovšej verzii PHP
tým, otvorené hranatú zátvorku, uzavretá hranatú zátvorku.
To znamená, že prázdne pole o veľkosti 0, ale napriek tomu celú škálu.
>> Tento extrakt funkcia je trochu zvláštne v tom, že
čo to robí, je to berie ako svoj argument asociatívne pole
že má 0 alebo viac kľúčových párov hodnoty, a ak máte kľúč foo
a hodnota baru extraktu funkcie
vytvára situáciu, v ktorej sa ako linky 11,
máte lokálnu premennú pomenovanú $ foo, ktorého hodnota je bar.
A ak by ste mali viac kľúčov a hodnôt v dátovom poli,
Podobne by mali byť extrahované do miestnej rozsahu
alebo menný priestor tak, aby footer.php a
Rovnaký nápad sem tak, že header.php
majú prístup k týmto premenným.
V skutočnosti, dovoľte mi otvoriť znova header.php
a upozorniť na čo teraz to vyzerá, že v tejto verzii.
>> Skôr než tvrdé kódovanie CS50 ako titul pre každú jednotlivú stránku
Všimnite si dynamiku, ktorá je možné teraz.
V súlade 5 som ozvenou titulu premennú,
ale najprv som okolo, že titul premennú funkciu nazvanú htmlspecialchars.
Hlúpy názov pre funkciu, ak je to, ale je to naozaj robí to, čo hovorí.
To zaisťuje, že všetky špeciálne znaky
v reťazci, ktorý bol prijatý v roku riadne unikol HTML.
To je vlastne spôsob, ako sa vyhnúť niečo nazýva cross site scripting útoku
kedy niekto môže zlomyseľne alebo omylom
aplikovať vlastné HTML do svojich webových stránok
vložením do niektorej z foriem, napríklad,
niečo, čo nebolo celkom očakával, najmä JavaScript kód,
ako budeme hovoriť v týždni či dva času.
>> To teraz header.php, je to pohľad
v tom zmysle, že umožňuje zobraziť esteticky obsah nejakého súboru dát.
Ale konkrétne, je to šablóna.
To je akýsi plánu teraz o tom, čo chceme záhlaví každej stránky vyzerať,
ale tam je nejaký dynamizmus v tom, že chceme, aby titul bol dynamicky vkladá
vychádza na titulnej premenné
, Ktorá bola extrahovaná, keď sme hovorili, znovu,
render hlavičku funkcie.
Teraz, keď sme sa pozreli na omietky pätu, že to vlastne nie je moc využitie tohto práva teraz
pretože v footer.php nie je dynamika vôbec.
Tam by mohlo byť, ale v tejto chvíli je to ťažké kódované zoznam 2 tagov,
ale rovnaký nápad platí, tak, že v skutočnosti naznačuje, prečo
sme strácať čas s vykreslenie hlavičky a päty vykreslenie funkcie?
Nechaj ma ísť miesto teraz do verzie 3,
a vo verzii 3 v pomáhajúcich som sa rozhodla zjednodušiť ešte viac.
>> Dovoľte mi, aby som ešte jednu činí funkciu.
Dovoľte mi, aby som si to vziať ešte jeden argument, tentoraz nazvaný šablóna,
ktorá má byť názov šablóny,
a potom som sa zreťaziť opovážlivý. php na tejto premennej hodnoty,
a potom, ak existuje foo.php, bar.php alebo header.php a footer.php,
potom budem pokračovať a extrahovať dáta premenných
a potom vyžadovať, aby cestu.
Inými slovami, používať teraz, keď som otvoriť index.php
Všimnite si, že nemám volať vykreslenie hlavičku už.
Len som zavolať robí, ale odovzdám v citovanej hodnoty hlavičky
aby bolo jasné, ktorá šablóna som vlastne chcem načítať.
>> Potom sem všimnete, čo robím.
Ja som okolo v dynamicky kľúčom titulu,
hodnota CS50, a to tiež, ako sme videli,
by mohli byť stručnejšie v najnovšej verzii PHP
, Kde by som mohol nahradiť pole funkciu hranatých zátvorkách,
ktorý navrhujem, je ešte čitateľné a určite
trochu jednoduchšie písať.
A samozrejme, s render pätu volania na dne,
nemáme obťažovať prejde v druhom argumente vôbec, žiadne asociatívne pole,
pretože tam nič dynamické vnútri tejto päty.
Je to len niekoľko zavrieť tagy pre HTML.
Dobré, berieme kroky k rýchle vyčistenie veci tu,
ale dovoľte mi, aby som otvorila 2 konečné príklady.
Tento, číslo 4, všimnite si, že som urobil vedomé rozhodnutie sa
k zlepšeniu na predchádzajúcom príklade by konečne používať nejaký hierarchii mojich súborov.
>> Všimnite si, že v tomto zhrnutí, v tomto si ma, som predstavil
obsahuje adresár a šablóny adresár
ktorých obsah sa bude na veci, ktoré chcem, aby zahŕňala
a šablóny, ktoré chcem k tomu, aby, resp.
To je naozaj mňa je análny a snaží sa udržať veci poriadok,
uchovávať súvisiace súbory dohromady, ale konečný výsledok
je to, že teraz máme niečo chudobnejšie nastavenia, ale musíme mať na pamäti teraz
v, napríklad, index.php
keď požadujeme súbor helpers.php
musíme teraz vyžadujú ho cez includes / helpers.php
skôr než len hovorím, helpers.php, pretože teraz je to vlastne v podadresára.
Teraz, rovnako ako stranou, uvidíte v týchto príkladov a niektoré ďalšie
funkcie, ako napríklad, vyžadujú raz.
Tam je vlastne funkcia sám volal patrí, a všetci majú mierne odlišné správanie.
Tu by som požiadať, raz, aby sa Super jasné, že chcem len tie
pomocníci zahrnuté v mojom projekte raz.
Ale keď som opatrný a ak som vlastne premýšľal v mojej logike správne
to by malo stačiť aj len povedať, vyžadovať až hore
tak dlho ako ja, sám nechtiac požadovať, aby rovnaký súbor inam.
V skutočnosti, to je mierne účinnejší spôsob, ako robiť veci, potom pomocou
vyžadujú raz, tak som si zastrihnúť ju len vyžadujú.
>> Poďme ešte o krok ďalej.
Tento posledný príklad teraz, verzia 5, má ešte čistejšie hierarchie zložiek.
Všimnite si, čo som tu urobil za mňa čítať v tejto konečnej verzii
Je teraz mám HTML adresár, ktorý som mal celú dobu,
ale vnútri je teraz len index.php, lectures.php,
week1.php a week2.php.
Obsahuje adresár teraz žije vedľa v HTML adresára,
tak na rovnakej úrovni ako u súrodencov, aby som tak povedal.
Tak robí šablóny zložky.
Kľúč stánok s jedlom je tu som predstavil trochu väčšiu štruktúru,
ale kľúčovým prvkom teraz je, že iba súbory
že musí byť web prístupný, verejne adresovateľná
pomocou URL na verejnom internete, sú v mojom HTML adresári.
>> Medzitým, ďalšie súbory, helpers.php, footer.php,
header.php, ktoré sú pravdepodobne možno citlivejšie,
Možno pomocníci skutočne má nejaké používateľské mená a heslá alebo niektoré duševné
majetok môj, funguje naozaj nechcem, aby sa svet vidieť, aj keď náhodne.
Je dobrým zvykom, aby z verejného adresára HTML
všetky súbory, ktoré nepotrebujú seba byť verejné.
Stačí urobiť v tomto prípade, keď pri pohľade na, napríklad,
adresári HTML je index.php súbor,
Všimnite si, že jednoducho musí byť niečo opatrnejší pri vyžadujúce
alebo vyžadovať raz tento súbor.
Musím najprv urobiť .. ísť do nadradeného adresára,
potom sa / includes / helpers.php
sa ponoriť späť do dostať súbor, ktorý mi záleží.
>> Akékoľvek otázky potom na MVC
alebo tento pomerne jednoduchý inkarnácia tejto zmluvy?
A dovoľte mi bolo jasné, že sme sa zamerali trochu na
V tú, názory a faktoringu z týchto šablón.
Sme naozaj odlíšiť M z C len zatiaľ.
V skutočnosti, v skutočnosti nie je žiadny M tu, a dokonca aj náš C,
Regulátor, nie je naozaj robí tak moc, ale budete mať oveľa viac
oboznámení s oboma týmito 2 listy z MVC,
alebo skôr, získate oveľa viac zoznámiť s C
v MVC pre problémové set 7, takže je tu viac, že ​​na obzore.
Otázky?
Je tu vlastne nikto tu.
>> Dobre, poďme sa teraz prejdeme k druhej a záverečnej tému pre dnešok.
To je zavedenie databázy.
Až do tohto bodu sme mali niekoľko spôsobov ukladania dát.
Použili sme premenných.
Späť v našom súbore C, I / O diskusie sme začali používať textové súbory
a používanie súborov ako fprintf, a potom sme dokonca začal
hovorí o csv trochu, hodnoty oddelené čiarkami,
takže všetci títo nám umožnilo mať dáta uložené
jeden non-trvale alebo dlhodobo.
Ale ani CSVŠ sú naozaj priaznivé pre vyhľadávanie
a vkladanie a mazanie.
Je to naozaj len hlúpy textový súbor oddelený čiarkami
riadok po riadku podľa riadkoch, takže ak chcete
pozrite, že súbor najlepšie, čo môžete urobiť, je naozaj lineárna hľadanie.
Musíte začať v hornej časti súboru, prečítajte si celú vec v,
a hľadať nejakú hodnotu úrokov.
Ak chcete vložiť do neho budete musieť robiť to isté,
iterácia nad ním a vkladanie v určitom mieste,
a v skutočnosti, budete musieť robiť všetky hľadanie logiky sami.
>> Môžete to urobiť múdre porovnávanie vzoriek na súbore CSV, ak sami písať kód.
Môžete to urobiť filtráciu súboru CSV
ak sami písať kód.
Nebolo by pekné, keby niekto dal vo všetkých úsilie
skutočne vykonať vyhľadávanie jednoduché a vloženie ľahké
a vymazanie a aktualizácie a tak ďalej?
To je presne to, čo je databáza.
SQL, štruktúrovaný dotazovací jazyk, je ešte iný jazyk
že sme sa zavádzajú dnes, ale aj toto je pomerne dobre,
a to, čo sme naozaj urobiť, je jednoducho vytrhnúť z nej niektoré najnápadnejšie
charakteristiky tak, aby pre PSet 7, a ak si niečo na základe web,
Váš záverečný projekt, máte možnosť vyjadriť sa
pokiaľ ide o dátové otázok.
Máte možnosť ukladať trochu alebo veľa dát
v oveľa štruktúrovanejší spôsobom, ktorý bude na konci dňa
aby váš život jednoduchší, pretože s SQL sa môžete vyjadriť
oveľa presnejšie, oveľa viac metodicky tak, aby sa
dostať späť nejaké podmnožiny dát z väčšieho korpusu dát.
>> Môžete si myslieť databázy, v tomto prípade, databázy SQL, páči Excel
alebo čísla, ak je to tabuľky,
alebo možno viac tabuliek, a tabuľkových, samozrejme,
má riadkov a stĺpcov, a to preto, že
SQL databázy sú relačné, relačná v zmysle
že ukladanie dát, pokiaľ ide o týchto tabuľkách,
riadkov a stĺpcov.
Sú výkonnejšie, než niečo ako tabuľky,
a tabuľky je určený pre použitie u človeka.
Databáza je určený pre použitie programátorom
písanie kódu proti nemu, takže stelesnenie databázy
sa bude buď príkazového riadku.
>> Jeden z najpopulárnejších relačných databáz tam je opäť, MySQL,
ktorý je nádherne zadarmo, veľmi vysoko výkonné, a to je to, čo
Facebook používa veľmi skoro a do istej miery ešte dnes
uložiť množstvo svojich dát, a uvidíme za chvíľu
že pomocou relatívne jednoduchých príkazov
môžeme vybrať dáta, vložiť dáta, aktualizovať dáta,
mazanie dát a podobne, ale našťastie je tu viac užívateľsky prívetivé rozhranie
ako len písanie na čiernej a bielej riadku tu.
Budeme používať pre PSet 7 a ďalej bezplatný nástroj s názvom phpMyAdmin.
Názov je náhodný.
Nástroj sa stane byť vykonaná v PHP,
ale to je v podstate irelevantné.
Čo je užitočné o phpMyAdmin je, že je web-based utility.
Sme vopred nainštalovaný do zariadenia pre vás,
a spolu s ním si môžete vytvoriť tabuľky v databáze,
môžete vkladať dáta, vymazať dáta, a všeobecne vidí
Vaše dáta v relatívne užívateľsky priateľskom prostredí.
Vaši užívatelia nebudú používať phpMyAdmin.
>> To je naozaj len správne alebo developer je nástroj
s ktorými sa vidieť a hrabať okolo vašich dát a zistiť, ako štruktúrovať,
rovnako ako ty sám mohol použiť Excel alebo čísla,
ale to bude skvelý spôsob, vizualizácie, čo sa deje pod kapotou
takže sa môžete sústrediť na zaujímavý problém riešenie, a nie toľko
o tajomných príkazov.
Poďme sa pozrieť na príklad dát, ktoré by mohli byť uložené prehľadne
v relačnej databáze.
Tu je jeden taký príklad.
Teraz, bohužiaľ, phpMyAdmin nesprávne na strane hádzanie spôsobom príliš veľa slov
a grafika na vás, ale ak ste zdokonaľovať v len na
Stĺpec ID, užívateľské meno stĺpca, a hash stĺpec,
V podstate sa jedná tabuľky, ale to sa stáva, že je fragment
z tabuľky vnútri prístroja
pomocou súboru, ktorý sme pre vás v problému sade 7.
>> Najmä, sme vám súbor, ktorý predstavuje
užívateľovho stôl, takže tabuľka obsahujúca užívateľom 3 stĺpcoch,
z ktorých jedna je jedinečný identifikátor začínať u 1 a je zvýšený potom.
Druhý stĺpec je užívateľské meno, a tí z vás, kto to urobil Hacker,
Hacker vydania pre PSet 2, môže rozpoznať niektoré z týchto užívateľských mien aspoň.
Na pravej strane sú heslá, ale nie sú doslovné hesla.
Sú hash tejto zmluvy, tak to dopadá
že ukladanie hesiel v databáze je naozaj zlý nápad.
Všetci ste asi čítal na nejakom mieste nejaké webové stránky
alebo nejakej spoločnosti databázy budú kompromitované, a potom sa budete musieť
zmeniť svoje heslo, musíte sa dostať náhrady na veci
pretože niektoré zlé chlap vlastne vlámal do účtu ako výsledok.
>> Ukladanie hesiel vo formáte obyčajného textu, nešifrované v databáze
je úplne hlúpy, a napriek tomu je to veľmi zábavné
potom čítať o niektorých veľmi známych spoločností
niekedy v tlači sú ohrozené, ktorých databázy,
a táto časť nie je sranda, ale skutočnosť, že databáza obsahujú nešifrované
hesla je smiešne, pretože doslova s ​​jedným riadkom kódu
môžete chrániť proti konkrétnej hrozbe, a to je to, čo sme urobili tu.
Aj pre naše falošné malú CS50 financií verzia
sme šifrovanie hesla len pre istotu, a to, že
všetkých týchto hesiel začať s $ 1 $ je len konvencie.
To len znamená, že sú šifrované, alebo naozaj klasifikácii,
ktorý je ako jednosmerné šifrovanie funkcie
keď nemožno zvrátiť jeho účinky s niečím, čo nazývajú MD5.
>> Skutočnosť, že 50 je po to znamená, že soľ value
z 50 bol použitý pre zatrieďovanie všetkých týchto hesiel okrem jedného.
Mine, samozrejme, ako môžete vidieť tam, HA,
bolo pomocou rôznych solí, takže tí z vás, ktorí dostali niečo zakopol up
možno v Hacker 2, možno, že boli výsledkom nášho mať použitý
iný hash, než ostatní, pretože moje heslo je vlastne rovnaký
ako nejaký iný užívateľ up there.
V skutočnosti, ak ste čakali všetky tie týždne zistiť
čo ty hesla bola tu boli heslá, ktoré ste bola napadnutá
rozlúsknuť v Hacker vydání problémového súboru 2, tak nie príliš zložité.
V skutočnosti, Malan je bol rovnaký ako jharvard,
ale ak sa vrátime, vyzerali inak.
>> Focus o jharvard v červenej, pretože oni boli solené inak.
Algoritmus bol rozrušený takým spôsobom, že na
Hodnota hash, šifrované value vyzerá trochu inak
pretože vstupy sú mierne odlišné, ale heslo pod pokrievku
bol ešte nakoniec crimson.
Teraz, kto sa zaujíma o to?
No, my poskytujeme vám vzorky užívateľov, mená vzorky užívateľov
a hash ich hesiel, takže máte skutočne nejaké
Zákazníci na CS50 financií, keď ste prvýkrát odlepiť sa od zeme s kódom.
Budete musieť vykonať viac tabuliek vnútri MySQL, vnútri databázy.
Budete musieť vytvoriť ďalšie tabuľky, efektívne, ale rozhodli sme sa vám tento
ako začať, a uvidíte, že problém set špecifikácia
vás prevedie procesom importu tejto tabuľky
a tiež vysvetlí, čo niektoré vlastnosti sú,
a budete tiež vidieť, že sme vám s kódom
zvládnuť hašovanie alebo šifrovanie týchto hesiel,
takže sa nemusíte obávať príliš o tom, čo MD5 alebo podobne, je vlastne všetko okolo.
>> Takže, SQL, štruktúrovaný dotazovací jazyk.
To je, jednoducho, jazyk sa chystáme začať používať v PSet 7
a možno za požadovať dáta z nejakej databázy.
Údaje sú opäť uložené prehľadne v týchto relačných tabuliek, stĺpcov, riadkov a,
ale používate nejakú relatívne jednoduchú syntax, ako zmazať,
vložiť, aktualizovať a vyberte môžeme robiť presne to.
Môžeme odstrániť z databázy, vložiť,
aktualizáciu dát, rovnako ako výber, ktorý je, načítanie dát z databázy.
Ako sme ísť asi robí?
Nechaj ma ísť napred do prístroja.
Dovoľte mi, aby som vytiahnuť http://localhost,
ktoré je opäť miestne prístroju.
To je jeho východisková prezývka.
A nechaj ma ísť do / phpmyadmin.
To sa stáva, že je zvláštne, že URL spotrebič je vopred nakonfigurovaný pre pochopenie
že okamžite vyzve ma na zadanie užívateľského mena a hesla.
>> Ako obvykle, budem písať jharvard a Crimson,
ale uvedomiť, že je to účet správcu v počítači.
Je to len náhoda, že tam je tiež jharvard registrovaný CS50 financií.
Jharvard, purpurový, enter mi dáva užívateľské rozhranie, ktoré sme videli
pohľad na okamih pred, a je to trochu ohromujúci na prvý,
ale buďte si istý, že ste nikdy musieť kliknúť väčšinu odkazov v tomto nástroji.
Budete skončiť s použitím malú podmnožinu, ktorá sú super užitočné,
Prvá z nich je databáza hore.
Keď idem do databáz, všimnite si, že som vyzvaní na vytvorenie databázy.
To je ako vytvorenie nového súboru programu Excel, efektívne.
Chystám sa ísť dopredu a zavolať túto prednášku, a ja som jednoducho ísť ignorovať pole tam, radenie.
To má čo do činenia s reprezentáciou dát v ňom,
a budem kliknite na tlačidlo vytvoriť, a teraz všimnete Pustil som vytvoriť
na ľavej strane, kde sa hovorí, že žiadne databázy
Mal by som čoskoro vidieť prednáškové databázy.
>> Keby som teraz kliknite na ľavej strane, prednáška databázy,
všimnete mojej karty zmeniť trochu.
Mám štruktúra, SQL, export, import a niektoré ďalšie veci.
Štruktúra je skoro prázdny.
Žiadne tabuľky nájdený v databáze, ako to hovorí tu,
takže poďme vytvoriť tabuľku, a poďme ďalej a vytvoriť tabuľku
ako študenti, a koľko stĺpcov chceme?
Poďme si to jednoduché, a poďme záznam pre každého študenta
ID číslo, meno a e-mailovú adresu.
>> Necháme to jednoduché, ako to, že tak 3 stĺpce, choďte.
Formulár, ktorý vidíte, je teraz trochu chaotický a ohromujúci,
ale budeme musieť ísť cez neho riadok po riadku, tak naozaj rýchlo, dajme
prvý stĺpec v tejto databáze názov ID pre unikátny identifikátor.
Bude celé číslo. Ja si skutočne ignorovať dĺžku a hodnoty.
Int bude 32 bitov bez ohľadu na to, čo napíšete tam, takže necháme prázdne.
Predvolená hodnota, mohol som robiť to null, ako je definované.
Ja odídem sám. Poďme sa starať o predvolené hodnoty.
Poďme prejdite sem s tými správnymi, atribútov.
To je zaujímavé.
Poďme ďalej a trochu ľubovoľne povedať, že čísla musí byť unsigned.
Nepremárnite žiadne negatívne čísla.
>> Poďme 0 až 4 miliardy, dávať alebo brať,
a potom si to nedotkne žiadnej z týchto polí zatiaľ tam,
ale potom mi dovoľte zadajte v názve tu dole,
a potom ďalší bol e-mail, tak úlovok je e-mail
a meno, samozrejme nie je celé čísla, takže sa poďme zmeniť tieto na inom poli.
Ukazuje sa, varchar, variabilný dĺžka char,
je ako reťazec v databáze SQL
ale premenná dĺžka, a máte skutočne povedať v predstihu na
maximálna dĺžka reťazca, takže budem trochu ľubovoľne
podľa typu kongresové 255 znakov.
Mohol by som úplne povedať 32. Mohol by som povedať, 1000.
Môžete druh je nutné, aby sami rozhodnúť na základe Vašich demografiu, čo je
The Longest meno študenta a ísť s týmto číslom alebo trochu väčšie,
ale to, čo je pekné o varchar je, že to nebude strácať
255 bytov na každého študenta menom.
Ak je to DAVID, že to nebude používať pre celú 255 bajtov,
ale to je horná hranica, takže pôjdem s 255 len konvencií,
ale my sme mohli diskutovať, že je to nejaký nižšiu hodnotu, a pre e-mailovú adresu
Len musí byť v súlade 255, ale opäť, mohli by sme mať rovnaký diskusiu.
Ale ja budem robiť jednu vec tu na pravej strane.
>> Čo je to mocný o databáze, je, že to môže urobiť veľa zdvíhanie ťažkých bremien
alebo komplexné práce pre vás.
Najmä som naozaj jedno, čo moje študentské ID čísla sú.
Je to len chcel byť jedinečný identifikátor v databáze
takže mám 32-bit stručné vyjadrenie, že študent
tak, že som nejaký spôsob, ako jednoznačne identifikovať ich
aby snáď 2 Davids, napríklad, v triede.
V skutočnosti, budem zaškrtnite toto políčko, AI, auto prírastok,
tak, aby databáza, MySQL, vyrieši
Čo každý novo vložený študenta ID bude.
Nemám ani sa starať o to v mojom kóde,
a ja tiež chystá vybrať niečo podľa indexu ponuke.
Index spadnúť tu je primárny, unikátny,
index a plný text.
Môžete hádať, čo možno pár z týchto vecí sú,
ale to dopadá v relačných databázach
ste programátor alebo správca databázy dostať preventívne
dať pokyny k databáze, do akej oblasti
v tabuľke sú trochu zvláštne.
>> Napríklad, v tomto prípade som chcel povedať, že ID
bude primárny index, inak známa ako primárny kľúč.
Čo to znamená podľa definície je, že ID nabudúce
bude jednoznačne identifikovať študentov v tejto tabuľke.
Žiadny študent bude mať rovnaké ID, pretože som uloženie tohto obmedzenia alebo tento index.
Navyše, čo to bude robiť, pre mňa je to nepovie
MySQL že ID je zvláštne.
Starám sa predovšetkým o ID, tak choďte do toho a urobiť vaše fantázie dátové štruktúry kúzlo,
vybudovať nejaký strom.
Typicky je to niečo, čo nazýva B-strom, ktorý sme nemali pozerať na týždne,
ale je to ďalší takú dátovú štruktúru podobnú v duchu na binárne stromy
a snaží sa, aby sa pozrel, ale to povie
do databázy toto pole je tak dôležité, že som asi
Chcem byť schopný vyhľadávať na to, choďte do toho a vybudovať nejakú chuť
štruktúra dát v pamäti na urýchlenie vyhľadávania tak, aby v ideálnom prípade
sú konštantné čas alebo aspoň čo najbližšie k že ako je to možné
tak, že nie je prešla do lineárne vyhľadávanie, ktoré sa nebude
Najviac vysoko výkonných prístup.
Naopak, môže e-mailová adresa bola primárny kľúč.
>> V teórii, každý je e-mailová adresa je jedinečná, pokiaľ zdieľate nejaký účet,
ale to všeobecne nie je dobré použiť niečo ako reťazec
ako primárny kľúč, pretože ak je jej zmyslom života je jednoznačne identifikovať
riadkov v tabuľke nie je dôvod používať 255 bajtov maximálne
jednoznačne identifikovať niekoho, či sa môžete dostať preč s iba 4 bajty
alebo 32-bit int.
Všeobecne platí, že by mal byť primárny kľúč krátke a stručné
a ideálne niečo ako integer alebo veľkú int, ktorý sa stane byť 64 bitov.
Ale e-mailová adresa by mala byť jedinečná, a jeden z rysov databázy príliš
je vynútiť jedinečnosť pre mňa.
Voľbou jedinečné tu vedľa e-mailu, aj keď e-mail sa
posuniete mimo obrazovku, hovorím do databázy
mi neveríte.
Nenechaj ma vložiť do databázy
rovnaká e-mailová adresa dvakrát, aj keď som idiot a nie som
veľmi dobrý s mojimi IFS a inde IFS a skutočné PHP kódu
a ja omylom nechal užívateľ zaregistrovať existujúcu e-mailovú adresu
Databáza je ešte ďalšia úroveň obrany za správnosť
zabezpečila, aby duplicitné e-mailová adresa nebude skončiť v tabuľke.
>> Teraz, naopak, v názve pravdepodobne nebudete chcieť, aby sa toto jedinečné
pretože potom by mohlo byť nikdy 2 Davids alebo 2 Mike Smiths, napríklad,
v databáze, tak, že jeden jednoducho budeme nechať na pokoji.
Chystám sa ísť dopredu a kliknite na tlačidlo Uložiť v pravej dolnej časti,
a všetko vyzerá dobre, ale všimnite si tu
To je časť, ktorá zatiaľ nebudeme tráviť príliš veľa času na
pretože syntax je trochu zložitejšie, a nemáme k vytvoreniu tabuliek
tak často, ale SQL sám je jazyk,
Syntax pre ktoré je tu, že som zdôraznil.
Čo phpMyAdmin naozaj je to vytvára webové GUI pre vás
s ktorým môžete ušetriť čas a nie je nutné ručne zadávať z
pomerne dlhé SQL dotazu takhle.
>> Inými slovami, ak by ste chceli vytvoriť ručne túto tabuľku,
buď v tej čiernej a bielej riadku, alebo dokonca v phpMyAdmin
pomocou tohto iného kartu, táto karta SQL, kde môžete zadať vo všetkých SQL dotazov
Chcete, úprimne povedané, to by mi trvalo minútu
skutočne spomenúť na celú syntax, a dokonca aj potom by som asi mať
urobil niektoré preklepy, takže tento nástroj je užitočný pre veci, ako že, a to je tiež poučný.
Môžete začať odvodzovať to, čo je syntax
len tým, že na peknú farbu kódovanie, ktoré phpMyAdmin je pridanie
pre naše vizuálne pohodlie.
Ale teraz ideme na to miesto.
Nechajte ma ísť na karte Vložiť na vrchole, a nechaj ma ísť dopredu a vložte napríklad
ID povedzme, vlastne mi to jedno.
Bude to auto prírastok. Chystám sa nechať databázy sa s tým vysporiadať.
Ale ja sa Dávid, a môj e-mail by mal byť malan@harvard.edu.
>> Poďme ďalej sem a dať do Mikom Smithom za inú.
Dám sám sebe priezvisko rovnako,
a budeme sa ho byť smith@example.com,
a potom, kde mám ísť ďalej?
No, vyzerá to, že go je tlačidlo kliknúť, a voila.
Všimnite si, v najvyšších 2 vložených riadkov.
To je skutočná SQL dotazu.
To je phpMyAdmin nástroj popravený pre mňa,
ale konečný výsledok, upozornenie, keď som teraz choďte na kartu prechádzanie,
je vidieť 2 riadky v tejto tabuľke, veľmi pripomínajúce esteticky
v tabuľke sme videli skôr pre našich užívateľov z PSet 7,
z ktorých jeden je David Malan, z ktorých jeden je teraz Mike Smith.
Ale len aby bolo jasno, nemám potrebu používať phpMyAdmin,
a naozaj, budete čoskoro písať kód pre PSet 7
, Ktorý automatizuje proces pridávania riadkov, mazanie riadkov, aktualizácia riadkov a podobne,
tak nech mi namiesto toho ísť do SQL kartu sem
a zadajte SELECT * FROM študentov, kde
email = "malan@harvard.edu."
>> Inými slovami, asi máte teraz
niektoré HTML formulár, a užívateľ zadá svoju e-mailovú adresu, okrem iných oblastiach,
a cieľom je teraz v PHP na zadnej koniec kódu
skutočne vyhľadať, že používateľ je ďalšie podrobnosti.
Aké je vaše celé meno? Aká je vaša ID číslo?
Dalo by sa napísať SQL dotaz, ako je tento, select * from študentov
kde e = "malan@harvard.edu."
A keď som potom kliknite na príkaz ísť, si, že som mal, a skutočne som sa, vráť sa späť len jeden riadok.
Mike je vynechaný z tohto výsledku, ako zber riadkov
je všeobecne nazývaný, pretože nemá rovnakú e-mailovú adresu ako ja.
>> Teraz, opäť, tu PSet 7 budete používať phpMyAdmin ako administratívny nástroj
a pedagogický nástroj naučiť svoju cestu
po celom svete SQL, ale na konci dňa
budete sa písanie týchto otázok vo vnútri aktuálneho kódu PHP,
a tak zostaňte naladení na návodu Zamyla je najmä
kde budete mať prehliadku distribučné kód pre tohto problému sadu
kde sme, rovnako vám nielen estetika pre prihlasovaciu stránku
a pekné sexy logo, ktoré hovorí, že CS50 Financie, ale tiež sme vám dal
banda funkcií, ktoré urobia váš život o niečo jednoduchší.
Sme sa tiež píše časť PSet pre vás,
prihlásiť časť toho najmä, aby vám pocit reprezentatívneho dizajnu
skutočne používa radič, napríklad, index.php,
login.php a podobne, a potom uvidíte Pset tiež šablóny adresár
ktorý má všetky vaše názory, všetky estetiky.
A tak celkový pracovný postup v PSet 7 bude, že
používatelia navštívia radič cez adresu URL v prehliadači.
To regulátor obsahuje PHP kód, ktorý ste napísali, a vnútri PHP kódu
môže byť niekoľko riadkov z SQL vnorené do dvojitých úvodzovkách
a prešiel na funkciu sme písali názvom dotaz
, Ktorá vám pomôže hovoriť do databázy bez použitia niečo ako
Nástroj pre správu, ako phpMyAdmin.
>> Budete mať možnosť písať SQL príkazy v PHP kódu
a získať späť PHP pole výsledkovej sady,
z riadkov, ktoré skutočne zodpovedajú tento dotaz.
A podobne si budete môcť urobiť vložky alebo odstráni
alebo aktualizácie alebo podobné, syntaxe, pre ktoré je veľmi podobná,
a uvidíte, z niektorých internetových odkazov, z distribučného kódu
a od PSet balenia sa presne tak, ako ísť o tom, že.
Uvedomte si, nakoniec sme naozaj len poškriabaniu povrchu SQL
a MySQL, ale veľa toho naozaj je, že vás oslobodí
zamerať sa na problémy, ktoré chcete riešiť, že prípady použitia chcete implementovať
bez toho aby sa museli tak moc, aspoň na začiatku,
o tom, kde a ako ukladať a vyhľadávať databázy,
a to je doslova, kde Facebook sám dostal jeho začiatok
používať MySQL a potom pomocou viacerých MySQL servery a potom ďalšie MySQL servery
pred dlho, až sa potom musel naozaj začať usilovne premýšľal o tom, ako
ukladanie dát, ako uložiť veci ešte efektívnejšie,
takže aj keď budeme brať za samozrejmosť, že indexy a jedinečné obmedzenia
a tak ďalej jednoducho fungovať tam veľmi zaujímavý rozhovor
že to môže všetko nakoniec viesť k, takže si uvedomiť, že my sme len k poškriabaniu povrchu
z toho, čo by sa prípadne mohli pre vás alebo vaše projekty stali docela dosť veľkých dát.
>> Vďaka, že povedal, poďme nekončí, a my uvidíme budúci týždeň.
[CS50.TV]