[Powered by Google Translate] [8. týden, pokračování]
[David J. Malan] [Harvard University]
[To je CS50.] [CS50.TV]
>> To je CS50, takže to je konec týdne 8 zde.
Samozřejmě jsme měli trochu hurikánu na počátku tohoto týdne,
takže teď to je opravdu jen ty a já v tomto přednáškovém sále,
ale dnes budeme pokračovat v rozhovoru o PHP
a asi programování pro web obecně, a také představit myšlenku
databází, zvláště jeden nazvaný MySQL, která je velmi populární v těchto dnech,
z velké části proto, že jeho škálovatelnosti, stejně jako proto, že jeho bytí zdarma a open source.
>> Ale nejdřív, pohled na to, kde jsme skončili minule.
Připomeňme si, že jsme se dívali na několika příkladech Frosh Chatu,
a to byl ohavný formulář, který jsem přišel s asi 15 + let
aby měl studenty na akademické půdě rejstříku pro sport prváka intramurálních
aniž byste museli trek už přes dvůr k Wigglesworth
posuňte fyzické kus papíru pod nějaké Proctor dveřím.
Místo toho jsme se přestěhovali všechno on-line, ale k tomu, že jsme potřebovali využít
několika technologií, tak jeden, jsme potřebovali HTML, Hypertext Markup Language,
což je opět to značkovací jazyk, s nímž si uděláte webové stránky strukturálně.
>> Pomocí trochu CSS v těchto dnech, kaskádové styly,
kdy používáme stylizations webové stránky pomocí mírně odlišnou syntaxi,
vzhledem k tomu, HTML bylo o struktuře jejich.
Musíme také zavést webový programovací jazyk.
V tomto případě budeme používat PHP, a PHP bude, aby nám
pro dynamické výstupní obsah stejně jako tomu programové věci, jako je
odesílání e-mailů, jako tomu bylo v případě poznámku jsme nechali minulý týden.
>> Připomeňme si, že kód pro tento byl na 2 části.
Jeden jsme měli froshims3.php,
a toto bylo velmi značky s HTML formuláři uvnitř ní,
trošku CSS tady v stylu atributy
takže by forma sám se soustředil na stránce, ale kromě toho
jsme měli nějaké reprezentativní formuláře vstupy, textové pole, zaškrtávací políčko,
nějaké rádio tlačítka, zvolte menu, a tlačítko Odeslat.
A prostřednictvím tohoto formuláře, jsme podali na souboru, který byl zřejmě volal register3.php,
která sama o sobě vypadala trochu něco takového.
Nyní, většina kódu v register3.php, odvolání, bylo o e-mailu.
Je přece trochu validace na formuláři, který byl předložen, aby se ujistil
že pole bylo skutečně za předpokladu, že byly očekávány.
Pak jsme zavolali některé PHP funkce pomocí mírně novou syntaxi,
i když to půjčil si od C.
>> Tato šipka operátor nám umožňuje využít něco, co nazývá objektově orientované programování.
Nepůjdeme do toho v každém detailu zde, ale vím teď
je to způsob, jak mít funkce spojené s objekty,
které jsou speciální typ struktury, jak jsme viděli v C.
Ale teď, jen se na víře, že je to správná syntaxe pro použití
Při použití knihovny se líbí tato knihovna PHPMailer.
A pak na konci tohoto souboru jsme dynamicky generované e-mail
které poslali na můj jharvard@cs50.net účet
z mého jharvard@cs50.net účtu,
a jsme informovali uživatele způsobem, že bylo zapsáno pro tento sport.
To je přesně to, co Frosh IM stránku, kde bylo před lety
když jsem implementoval, poskytnuté v jiném jazyce,
ale to vám ukáže snad moc, že ​​máte
teď, že se můžete vyjádřit nejen programově
na nízké úrovni v jazyce jako C, ale na mnohem vyšší úrovni
s těmito velmi reálných aplikacích, jako je e-mail, aby skutečně řešit
některé skutečné světové problémy.
>> Nyní, samozřejmě, i když tento skript použít pro generování některých
e-maily dynamicky z jharvard@cs50.net, což je opravdu účet
že mám přístup k to být docela opatrní k odeslání
e-mail pouze z účtů, které jsou ve skutečnosti vlastní,
lest věci vám v trochu teplé vody v životě.
Díky, že řekl, pojďme se teď přechod na řešení jiný problém úplně,
že opěrných států.
A teď, co to vlastně znamená?
HTTP, tato hypertext transfer protocol,
je vlastně bez státní příslušnosti protokol, a co to znamená, že
když vytáhnout něco jako Google.com a poté stiskněte klávesu Enter
obvykle Váš prohlížeč má nějaký předení ikony, které pak
vyústí v určité webové stránky jsou staženy,
a pak že se malá ikona zastaví spinning, a že skutečně naznačuje,
že HTTP dokončil nějaké připojení k serveru a je to.
HTTP je bez státní příslušnosti v tom smyslu, že neudržuje
trvalé připojení k serveru stejným způsobem Skype dělá
nebo Gchat dělá proto, že s HTTP
Předpokladem je, že poté, co jste přinesl webovou stránku, která je to.
>> Nyní, ve skutečnosti v těchto dnech na weby jako Facebook a Google Maps
a Twitter a jako by to mnohem více dynamiky, kdy
i poté, ikona přestane točit, můžete ve skutečnosti získat další aktualizace
ze serveru, více tweety, více o stavu aktualizace na Facebooku a podobně.
Ale i to je použití techniky, které budeme mluvit o za týden nebo dva
známý jako Ajax pomocí jazyka s názvem JavaScript,
ale na konci dne, HTTP je stále nestavové.
A přesto, pokud chcete, aby nějak vzpomenout, co o uživateli
i poté, co jsem odpojen od serveru
PHP se Vám poskytnou prostředky, jak toho dosáhnout
protože, jak jsme viděli minule, PHP má řadu superglobálních,
a superglobal je opět speciální globální proměnné
, který je předán pro Vás webový server a samotným PHP.
>> Nemusíte dělat nic, aby hodnoty v něm,
a mezi superglobálních jsme viděli doposud, jsou get a post,
které je místo, kde jsou pole formuláře umístit automaticky za vás,
stejně jako pár dalších, které jsme ještě neviděli.
Uvnitř $ _SERVER jsou některé speciální proměnné vztahující se k serveru samotném.
Co je to IP adresa, jaký protokol, HTTP nebo HTTPS jste používali,
Co žádost metodu jste a podobně, takže je tu něco zajímavého,
šťavnaté podrobnosti o serveru, a ve skutečnosti, že uživatel se tam také.
Tam je $ _cookie, což je místo, kde se tyto věci tzv. cookies jsou uloženy.
Nebudeme trávit čas na cookies sebe dnes,
ale vím, že teď cookie je jen malý kousek informací
že webový server může zasadit ve webovém prohlížeči
a následně jeho RAM nebo svého počítače pevný disk
za účelem uložení informací o uživateli, například, jejich uživatelského jména
tak, aby nemuseli psát to pokaždé, když se přihlaste nebo nějaký
jedinečné číslo nebo identifikátor pro tohoto uživatele
takže nemusíte obtěžovat jim stejné druhy otázek o
preference v budoucnosti, ale většina z úroků
Právě teď je $ _SESSION.
>> Tento superglobal, které, stejně jako ostatní, je předán k vám automaticky PHP
když píšete PHP-založené webové stránky
můžete uložit vše, co chcete, řetězce, celá čísla,
plovoucí body, hodnoty, pole, objekty,
Opravdu cokoliv, co chcete, a to vám umožní uložit takovým způsobem,
, že i v případě, že uživatel navštíví tě tu a tam
vrátí minutu od teď, nebo 5 minut od teď, protože
berou svůj čas před kliknutím na nějaký jiný odkaz
PHP zajistí, že cokoliv, co dát do té relace superglobal
O minutu nebo 5 minut před bude ještě když uživatel vrátí.
A pod kapotou je to superglobal prováděny pomocí
tyto věci tzv. cookies, ale teď, je to jen abstrakce
kdy je to něco jako programové ekvivalentu nákupního košíku.
Ať už jste, programátor, dal v tom, že
superglobal asociativní pole tam bude nějaké číslo z minuty později
dokud ji neodstraníte nebo dokud uživatel ukončí svůj prohlížeč dohromady.
>> Pojďme se podívat na příklad toho, jak se ta věc skutečně použita.
V counter.php mezi dnešními kusy kódu
máme následující řádek.
Na začátku tohoto souboru máme spoustu modrých připomínky, které jsou nezajímavých pro tuto chvíli.
Ale v řádku 13 máme nový řádek,
session_start, a že vlastně dělá přesně to, co říká.
Začíná zasedání.
To vám umožní používat tuto velkou superglobal $ _SESSION, a je to tak jednoduché.
Teď, když budeme pokračovat se podívat na řádku 16, zkusme zjistit, co tato internetová stránka bude dělat.
If (isset ($ _SESSION ["counter"]) pak jděte do toho
a obchod v boji proměnné, malá čítač,
$ _SESSION ["Counter"].
To se zdá být deklarování lokální proměnnou pojmenovanou counter
uvnitř které je uvedení kopii, co je uvnitř superglobal
volal zasedání v umístění "pultu".
Else, zdá se, že tento malý lokální proměnná čítač inicializován na 0.
>> Ale pak o pár řádků později v 26 oznámení, že zasedání je kopie čítače,
jeho klíč, má novou hodnotu přiřazenou, který je jeho aktuální hodnota plus 1.
Stručně řečeno, tento soubor se zdá být aktualizace
čítač, který je uložen uvnitř zasedání superglobal
podle zvyšování to o 1, ale nejprve udrží kopii předchozí hodnoty
uložením do lokální proměnné s názvem $ counter,
a pak sem se podívejme, co zůstává.
Ukázalo se, že je to skoro jen HTML.
V dolní části této stránky vidíme v souladu 37, které jsem navštívil tyto stránky
číslo čítače časů, takže je tu pár zajímavých funkcí zde.
Jeden, to je jasně variabilní, ale to nestačí jen dát
$ Counter v těle vašeho HTML, protože samozřejmě
pokud je to jen tam mezi vaše PHP HTML se bude předpokládat, že je to právě HTML.
Ty doslova Chcete $ counter které mají být vytištěny na obrazovce.
>> Ale místo toho tím, že upustí do režimu PHP
s tímto kusem syntaxe můžeme dynamicky vložit hodnotu zde
velmi podobné v duchu toho, co jsme minule s
vkládání hodnot do řetězců.
Ve skutečnosti, to je jen zkrácený zápis pro ostatní něco takového doslova,
print ($ counter), nebo i něco jako printf (% s, pult),
nebo dokonce, jak jste možná viděli on-line nebo v učebnicích,
je tu funkce v PHP nazývá echo
který dělá totéž, a všechny z nich jsou jen delší vinuté způsoby
říct <? =.
V tomto jednom případě nemusíte dát
slovo PHP za otazníkem.
To je zkratka pro zápis, znovu to, co jsme právě viděli před chvílí
který je opakující nějakou hodnotu.
>> Podívejme se, co konečný výsledek to vlastně je.
Nech mě jít i do našeho counter.php souboru,
a budeme vidět, že David právě udělal chybu tím, že hraje s kódem tam.
Pojďme opravu bez ohledu na to posral,
a chyba se zdá být tam, pryč, on-line 37.
Podle horní části této stránky jsem navštívila tuto stránku 0 krát.
Dobře, pojďme do toho hned, a na horní části prohlížeče klikněte na
znovu na ikonu, a já klepněte na tlačítko znovu,
a teď jsem navštívil stránky 1 čas, 2, 3, 4, 5, 6, 7, 8.
A skutečně, podíváme-li se na zdroje této stránky aktuální zdrojový kód se mění,
a všimněte si úplnou absenci jakéhokoliv PHP, a to proto, že
PHP kód je hodnocen nebo interpretovaný na straně serveru,
a tak to znamená, že výstup z PHP skriptu je to, co nakonec poslal do prohlížeče,
která je v tomto případě některých surovin a HTML a některé prostého textu.
Co se to tady děje?
>> No, s poměrně málo řádků kódu jsem schopen ukládat
trvale v průběhu několika sekund, nebo pokud jsme čekali dost dlouho,
minut, a to i hodiny, nějaké hodnoty tak, že je HTTP
Zdá se stavovou jako když jsme zachovány
toto spojení k serveru, a to jen vzpomněl, co jsem řekl, to naposledy,
ale ve skutečnosti je tu celá parta složitosti děje pod kapotou
zahrnující soubory cookie, které je umožňující PHP, aby mi tuto iluzi
tohoto nákupního košíku, jako funkce.
Pro tuto chvíli, triviální příklad, kde jsme jen pouhé ukládání celé číslo,
ale, že funkce vrátí se k mít velkou hodnotu
když začneme mluvit o složitějších projektů,
mezi nimi problém nastavit 7.
To je vaše úplně poslední problém nastavit CS50.
Já vím, že je to tak smutné, ale to, co najdete, je, že budeme uzavírat
tato část semestru vlastně přechod
z kontextu C jistě souvislosti PHP
ale při použití některé z úplně stejných základech
jsme mluvili o nějakou dobu.
>> Cíl s PSet 7 je zavést CS50 Finance,
které je vaše vlastní verze Yahoo Finance nebo Google financí
nebo dokonce Etrade.com přičemž si mají schopnost
vyhledat ceny akcií pro dané symboly, ale i víc než to
máte možnost "koupit" a "prodat" akcie
které jsou obchodovány na různých burzách, protože jako úvodní stránku
zde naznačuje, což je opravdu, do jaké míry jsme začali
Problém sada pro vás, máte přihlašovací formulář, který se ptá na uživatelské jméno a heslo.
Má tlačítko Odeslat, ale potom, jak budeme nakonec vidět,
není nic opravdu děje pod kapotou ještě, protože to
zůstává pro vás realizovat schopnost registrovat nové uživatele,
schopnost nakupovat akcie, prodat akcie,
skutečně vyhledat aktuální ceny akcií.
>> A skutečně, to bude jako skutečný svět, jak je to možné, protože jsme
patří kus kódu, který umožní vám jednu funkci
na dotaz Yahoo Finance, která nádherně dává k dispozici zdarma údajů
pro vyhledání cen akcií na základě burzovní symbol nebo burzovní symbol,
a dostanete zpět aktuální cenu akcií dne.
Údaje, které jste vlastně vidět v tomto konkrétním PSet bude
asi tak reálném světě, jak to může dostat tak, že jste vlastně propojení
se skutečným světem zásob z reálného světa cenách,
a uvidíme, kolik peněz můžete udělat snad
v průběhu příštích několika dnech hraní s vlastní problém sadě.
>> Ale pojďme nejprve nastavit scénu, jak navrhnout něco, co je jistě složitější
než counter.php, že je to složitější, než kterýkoli z Frosh příkladů Chatu tak daleko,
a zkusme představit několik paradigmat zde, které umožňují nám
jak pro PSet 7 a možná pro konečného projektu, pokud nemáte něco na základě web
aby váš kód dobře organizovaná, udržet si zdravý rozum,
a učinit krok směrem spolupracovat, ať už v závěrečné projektu CS50 tyto
nebo mimo, pokud budete pokračovat naprogramovat něco v budoucnu.
Tam je to obecný návrh paradigma
v informatice a ve vývoji softwaru obecně
známý jako MVC, model view řadiče,
a to je hloupé zkratka, která popisuje velmi pěkný nápad,
který je oddělení různých aspektů programu,
konkrétně vedení samostatné logiku nebo obchodní logiku webové stránky
takže vše, co zahrnuje věci jako
volání funkcí a dotazování databází a podobně
se stane ne mezi vaší HTML
ale spíše v samostatných souborech, a opravdu, tam je to jeden soubor
obvykle, že jste volal správce
To je opravdu mozkem operace, a uvidíme příklad
z toho za chvíli.
>> Tam je model, který je programování kódu
že se mluví na seznam databází, které mluví pro Yahoo Finance a podobně,
a pak je tu V v MVC, pohledy,
všechny věci, které se vztahuje k estetice, soubory, které skutečně obsahují
Vaše HTML, možná vaše CSS a podobně.
Myšlenka, jak tento obrázek naznačuje, je to, že ovladač
je soubor, jak brzy uvidíte, a jak budete především vidět v PSet 7,
že svět mluví prostřednictvím svých webových prohlížečů.
To je soubor, který se na na veřejném internetu,
ale regulátor mluví potenciálně modelu,
který je jeden nebo více dalších souborů, které obsahují kód vztahující se k údajům,
kód vztahující se k databázím a podobně, a pak to mluví
regulátor jeden nebo více jiných souborů známé jako zobrazení,
které jsou estetika webové stránky, vzory druhů,
, které by mohly mít některé údaje jako vstup, ale na konci dne
pouze logika uvnitř cílem by mělo být ztvárnění těchto údajů,
iterace smyčky a vlastně plivat některé
HTML-based ztvárnění jejich, nebo dokonce něco jako PDF.
>> Co je hezké o MVC je, že můžete mít různé názory
na základě typu zařízení, v závislosti na typu použitého souborového formátu, který skutečně
Chci ukázat uživateli.
Pojďme se podívat na několik postupně složitější a dobře navržený příkladů
tím, že začíná nejprve s verzí 0 zde.
Nech mě jít napřed a otevřít v našem adresáři MVC dnes
soubor s názvem index.php v adresáři 0.
Všimněte to je super jednoduchá a velmi nezaujatý web
to je druh verze 0 z domovské stránky pro CS50,
a všimněte si, jak máme odkaz na přednášky, máme odkaz na osnovy,
a když jsem na odkaz na přednášky oznámení, že URL
až nahoru se změní na lectures.php.
Jestliže tedy já následovat odkaz týden 1 upozornění, že adresa URL se změní na week1.php.
Zdá se, že poměrně jednoduchý hierarchickou strukturu zde.
>> Pojďme se rychle podívat pod kapotu, jak je to stanoveno,
a opravdu, když jsem se na index.php je to docela jednoduché.
Ve skutečnosti, i když jsem volal tento soubor PHP tam žádný skutečný programový kód.
Je tu poznámka, že jsem tady psal v PHP jen tak, že uživatel nemá skončit vidět to.
Samozřejmě, stejně jako předtím, vše, co je mezi tagy PHP
dostane vykládat, i když je to komentář, a interpretovat komentář
znamená jen to vyhodil na konci dne a ve skutečnosti
poslat do prohlížeče, takže všechno tady je jen estetika.
Pokud jsem otevřít podobně lectures.php i toto je jen těžko kódovaný soubor.
Stává se to nazvat něco. Php,
ale je to opravdu jen. html, a week1.php, week2.php
podobně jsou jen značkovací, takže je tu spoustu nedostatků tohoto návrhu.
Jeden, že je to obrovské množství copy / paste.
I když jediná věc, která mění mezi těmito soubory je neuspořádané seznam,
Li tagy, jsem nicméně mít doc typ, HTML, hlava,
Název, úzkým tělo, úzkým HTML a více
v každém souboru, což znamená, že pokud bych někdy chtěl restrukturalizaci
tato webová stránka nebo restylize to musím jít a změnit
všechny tyto soubory ručně nebo s některými masivní najít a nahradit.
>> Pojďme se krok směrem k chytřejší, už myslí designu ve verzi 1 zde
přičemž dle četl mi, že jsme součástí, takže můžete hrát spolu s
Tyto klidnější doma upozornění, že tu máme
souhrn souborů ve verzi 1 tohoto webu,
a zdá se, že jsem si vzal to na sebe, aby vytknout
některé společné kód, header.php a footer.php.
No, pojďme se podívat na to, co je uvnitř první z nich.
Header.php vypadá povědomě,
ale v případě, kdy to dostat odříznout?
Hned po lince 19, tak to je vše, co bylo běžné
od spisů index.php, lectures.php,
week1 a week2.php z předchozího příkladu.
To, co jsem udělal, bylo, kopírování a střih vše, co bylo společné pro všechny tyto soubory,
vložte jej do samostatného hlavičkového souboru, a podobně v footer.php
jsem použít stejný princip, podle něhož pouze zajímavé linky
v footer.php jsou tito dva, úzkým tělem a úzkým HTML.
>> Ale co to znamená, že se v nové verzi
ze dne index.php oznámení, kolik jednodušší to může dostat.
Je pravda, že trochu více mystický hledáte, trochu méně intuitivní
sledovat shora dolů, ale můj Bože, je celý tento nadbytečnosti pryč.
Požadujeme pomocí PHP funkce doslova volala vyžadují až nahoru,
který je velmi připomínající, vzpomenout, ze C je # include mechanismus.
Požadujeme header.php v horní části.
Požadujeme footer.php na dně, a jediná věc, která se liší
nebo zvláštní o tomto souboru je obsah, který je předurčen být jedinečný pro něj.
Pokud bych pak jít do, řekněme, lectures.php, platí stejný princip.
Opět platí, že některé komentáře až nahoru, ale pak jsem vyžadují záhlaví, zápatí vyžadují,
a mezi je to jen obsah, který se skutečně změnil.
A pokud jsme se podívali do týdne 1 a 2. týden bychom vidět
, že stejný princip byl uplatněn tam.
No, nejsme úplně hotový tam.
>> Pojďme se podívat na verzi 2, která má podobnou strukturu,
nevšimnout teď jsem představil něco jiného.
V řádku 10 jsem představil helpers.php,
který zřejmě obsahuje pomocné funkce.
Pomocná funkce je obecně relativně krátký funkce
že píšete, aby vám pomohl v různých místech,
a podíváme se, co je uvnitř helpers.php.
V tomto případě, to vypadá, že má 2 funkce.
Vzpomeňte si druhý den s naší krychle například
můžete definovat své vlastní funkce v PHP, a to, co jsem udělal teď je, že jsem
definované funkce tzv. činí zápatí a činí záhlaví,
První z nich se parametr nazývá dat,
jehož hodnota je prázdné pole, jak navrhuje tam,
a můžeme skutečně psát to ještě stručně v nejnovější verzi PHP
tím, otevřené hranatou závorku, uzavřená hranatou závorku.
To znamená, že prázdné pole o velikosti 0, ale přesto celou škálu.
>> Tento extrakt funkce je trochu zvláštní v tom, že
co to dělá, je to bere jako svůj argument asociativní pole
že má 0 nebo více klíčových párů hodnoty, a pokud máte klíč foo
a hodnota baru extraktu funkce
vytváří situaci, v níž se jako linky 11,
máte lokální proměnnou pojmenovanou $ foo, jehož hodnota je bar.
A pokud byste měli více klíčů a hodnot v datovém poli,
Podobně by měly být extrahovány do místní rozsahu
nebo jmenný prostor tak, aby footer.php a
Stejný nápad sem tak, že header.php
mají přístup k těmto proměnným.
Ve skutečnosti, dovolte mi otevřít znovu header.php
a upozornit na co teď to vypadá, že v této verzi.
>> Spíše než tvrdé kódování CS50 jako titul pro každou jednotlivou stránku
Všimněte si dynamiku, která je možné nyní.
V souladu 5 jsem ozvěnou titulu proměnnou,
ale nejdřív jsem kolem, že titul proměnnou funkci nazvanou htmlspecialchars.
Hloupý název pro funkci, pokud je to, ale je to opravdu dělá to, co říká.
To zajišťuje, že všechny speciální znaky
v řetězci, který byl přijat v roce řádně unikl HTML.
To je vlastně způsob, jak se vyhnout něco nazývá cross site scripting útoku
kdy někdo může zlomyslně nebo omylem
aplikovat vlastní HTML do svých webových stránek
vložením do některé z forem, například,
něco, co nebylo docela očekával, zejména JavaScript kód,
jak budeme mluvit v týdnu či dva času.
>> To nyní header.php, je to pohled
v tom smyslu, že umožňuje zobrazit esteticky obsah nějakého souboru dat.
Ale konkrétně, je to šablona.
To je jakýsi plánu teď o tom, co chceme záhlaví každé stránky vypadat,
ale tam je nějaký dynamismus v tom, že chceme, aby titul byl dynamicky vkládá
vychází na titulní proměnné
, která byla extrahována, když jsme říkali, znovu,
render záhlaví funkce.
Teď, když jsme se podívali na omítky zápatí, že to vlastně není moc využití tohoto práva nyní
protože v footer.php není dynamika vůbec.
Tam by mohlo být, ale v tuto chvíli je to těžké kódované seznam 2 tagů,
ale stejný nápad platí, tak, že ve skutečnosti naznačuje, proč
jsme ztrácet čas s vykreslení záhlaví a zápatí vykreslení funkce?
Nech mě jít místo nyní do verze 3,
a ve verzi 3 v pomáhajících jsem se rozhodla zjednodušit ještě víc.
>> Dovolte mi, abych ještě jednu činí funkci.
Dovolte mi, abych si to vzít ještě jeden argument, tentokrát nazvaný šablona,
která má být název šablony,
a pak jsem se zřetězit opovážlivě. php na této proměnné hodnoty,
a pak, pokud existuje foo.php, bar.php nebo header.php a footer.php,
pak budu pokračovat a extrahovat data proměnných
a pak vyžadovat, aby cestu.
Jinými slovy, používat teď, když jsem otevřít index.php
Všimněte si, že nemám volat vykreslení záhlaví už.
Jen jsem zavolat činí, ale předám v citované hodnoty hlavičky
aby bylo jasné, která šablona jsem vlastně chci načíst.
>> Pak sem všimnete, co dělám.
Já jsem kolem v dynamicky klíčem titulu,
hodnota CS50, a to také, jak jsme viděli,
by mohly být stručnější v nejnovější verzi PHP
, kde bych mohl nahradit pole funkci hranatých závorkách,
který navrhuji, je ještě čitelné a určitě
trochu jednodušší psát.
A samozřejmě, s renderu zápatí volání na dně,
nemáme obtěžovat projde v druhém argumentu vůbec, žádné asociativní pole,
protože tam nic dynamické uvnitř této zápatí.
Je to jen několik zavřít tagy pro HTML.
Dobré, bereme kroky k rychlé vyčištění věci tady,
ale dovolte mi, abych otevřela 2 konečné příklady.
Tenhle, číslo 4, všimněte si, že jsem udělal vědomé rozhodnutí se
ke zlepšení na předchozím příkladu by konečně používat nějaký hierarchii mých souborů.
>> Všimněte si, že v tomto shrnutí, v tomto si mě, jsem představil
obsahuje adresář a šablony adresář
jejichž obsah se bude na věci, které chci, aby zahrnovala
a šablony, které chci k tomu, aby, resp.
To je opravdu mě je anální a snaží se udržet věci pořádek,
uchovávat související soubory dohromady, ale konečný výsledek
je to, že nyní máme něco chudší nastavení, ale musíme mít na paměti nyní
v, například, index.php
když požadujeme soubor helpers.php
musíme nyní vyžadují jej přes includes / helpers.php
spíše než jen říkám, helpers.php, protože teď je to vlastně v podadresáře.
Nyní, stejně jako stranou, uvidíte v těchto příkladů a některé další
funkce, jako třeba, vyžadují jednou.
Tam je vlastně funkce sám volal patří, a všichni mají mírně odlišné chování.
Tady bych požadovat, jednou, aby se Super jasné, že chci jen ty
pomocníci zahrnuty v mém projektu jednou.
Ale když jsem opatrný a pokud jsem vlastně přemýšlel v mé logice správně
to by mělo stačit i jen říci, vyžadovat až nahoru
tak dlouho jako já, sám nechtěně požadovat, aby stejný soubor jinam.
Ve skutečnosti, to je mírně účinnější způsob, jak dělat věci, potom pomocí
vyžadují jednou, tak jsem si zastřihnout ji jen vyžadují.
>> Pojďme ještě o krok dále.
Tento poslední příklad nyní, verze 5, má ještě čistší hierarchie složek.
Všimněte si, co jsem tady udělal za mě číst v této konečné verzi
Je teď mám HTML adresář, který jsem měl celou dobu,
ale uvnitř je nyní pouze index.php, lectures.php,
week1.php a week2.php.
Obsahuje adresář nyní žije vedle v HTML adresáře,
tak na stejné úrovni jako u sourozenců, abych tak řekl.
Tak dělá šablony složky.
Klíčem stánek s jídlem je zde jsem představil trochu větší strukturu,
ale klíčovým prvkem nyní je, že pouze soubory
že musí být web přístupný, veřejně adresovatelná
pomocí URL na veřejném internetu, jsou v mém HTML adresáři.
>> Mezitím, další soubory, helpers.php, footer.php,
header.php, které jsou pravděpodobně možná citlivější,
Možná pomocníci skutečně má nějaké uživatelská jména a hesla nebo některé duševní
majetek můj, funguje opravdu nechci, aby se svět vidět, i když náhodně.
Je dobrým zvykem, aby z veřejného adresáře HTML
všechny soubory, které nepotřebují sebe být veřejné.
Stačí udělat v tomto případě, kdy při pohledu na, například,
adresáři HTML je index.php soubor,
Povšimněte si, že prostě musí být něco opatrnější při vyžadující
nebo vyžadovat jednou tento soubor.
Musím nejprve udělat .. jít do nadřazeného adresáře,
pak se / includes / helpers.php
se ponořit zpátky do dostat soubor, který mi záleží.
>> Jakékoliv dotazy pak na MVC
nebo tento poměrně jednoduchý inkarnace této smlouvy?
A dovolte mi bylo jasné, že jsme se zaměřili trochu na
V tu, názory a factoringu z těchto šablon.
Jsme opravdu odlišit M z C jen zatím.
Ve skutečnosti, ve skutečnosti není žádný M tu, a dokonce i náš C,
Regulátor, není opravdu dělá tak moc, ale budete mít mnohem více
obeznámeni s oběma těmito 2 dopisy z MVC,
nebo spíš, získáte mnohem více seznámit s C
v MVC pro problémové set 7, takže je tu víc, že ​​na obzoru.
Otázky?
Je tu vlastně nikdo tady.
>> Dobře, pojďme se teď přejdeme k druhé a závěrečné téma pro dnešek.
To je zavedení databáze.
Až do tohoto bodu jsme měli několik způsobů ukládání dat.
Použili jsme proměnných.
Zpět v našem souboru C, I / O diskuze jsme začali používat textové soubory
a používání souborů jako fprintf, a pak jsme dokonce začal
mluví o csv trochu, hodnoty oddělené čárkami,
takže všichni tito nám umožnilo mít data uložena
jeden non-trvale nebo dlouhodobě.
Ale ani CSVŠ jsou opravdu příznivé pro vyhledávání
a vkládání a mazání.
Je to opravdu jen hloupý textový soubor oddělený čárkami
řádek po řádku podle řádcích, takže pokud chcete
podívejte, že soubor nejlepší, co můžete udělat, je opravdu lineární hledání.
Musíte začít v horní části souboru, přečtěte si celou věc v,
a hledat nějakou hodnotu úroků.
Pokud chcete vložit do něj budete muset dělat totéž,
iterace nad ním a vkládání v určitém místě,
a ve skutečnosti, budete muset dělat všechny hledání logiky sami.
>> Můžete to udělat chytré porovnávání vzorků na souboru CSV, pokud sami psát kód.
Můžete to udělat filtraci souboru CSV
pokud sami psát kód.
Nebylo by hezké, kdyby někdo dal ve všech úsilí
skutečně provést vyhledávání snadné a vložení snadné
a vymazání a aktualizace a tak dále?
To je přesně to, co je databáze.
SQL, strukturovaný dotazovací jazyk, je ještě jiný jazyk
že jsme se zavádějí dnes, ale i toto je poměrně dobře,
a to, co jsme opravdu udělat, je prostě vytrhnout z ní některé nejnápadnější
charakteristiky tak, aby pro PSet 7, a pokud si něco na základě web,
Váš závěrečný projekt, máte možnost vyjádřit se
pokud jde o datové dotazů.
Máte možnost ukládat trochu nebo hodně dat
v mnohem strukturovanější způsobem, který bude na konci dne
aby váš život jednodušší, protože s SQL se můžete vyjádřit
mnohem přesněji, mnohem více metodicky tak, aby se
dostat zpět nějaké podmnožiny dat z většího korpusu dat.
>> Můžete si myslet databáze, v tomto případě, databáze SQL, líbí Excel
nebo čísla, pokud je to tabulky,
nebo možná více tabulek, a tabulkových, samozřejmě,
má řádků a sloupců, a to proto, že
SQL databáze jsou relační, relační ve smyslu
že ukládání dat, pokud jde o těchto tabulkách,
řádků a sloupců.
Jsou výkonnější, než něco jako tabulky,
a tabulky je určen pro použití u člověka.
Databáze je určen pro použití programátorem
psaní kódu proti němu, takže ztělesnění databáze
se bude buď příkazového řádku.
>> Jeden z nejpopulárnějších relačních databází tam je opět, MySQL,
který je nádherně zdarma, velmi vysoce výkonné, a to je to, co
Facebook používá velmi brzy a do jisté míry ještě dnes
uložit spoustu svých dat, a uvidíme za chvíli
že pomocí relativně jednoduchých příkazů
můžeme vybrat data, vložit data, aktualizovat data,
mazání dat a podobně, ale naštěstí je tu více uživatelsky přívětivé rozhraní
než jen psaní na černé a bílé řádku zde.
Budeme používat pro PSet 7 a dále bezplatný nástroj s názvem phpMyAdmin.
Název je náhodný.
Nástroj se stane být provedena v PHP,
ale to je v podstatě irelevantní.
Co je užitečné o phpMyAdmin je, že je web-based utility.
Jsme předem nainstalován do zařízení pro vás,
a spolu s ním si můžete vytvořit tabulky v databázi,
můžete vkládat data, vymazat data, a obecně vidí
Vaše data v poměrně uživatelsky přátelském prostředí.
Vaši uživatelé nebudou používat phpMyAdmin.
>> To je opravdu jen správní nebo developer je nástroj
s nimiž se vidět a hrabat kolem vašich dat a zjistit, jak strukturovat,
stejně jako ty sám mohl použít Excel nebo čísla,
ale to bude skvělý způsob, vizualizace, co se děje pod kapotou
takže se můžete soustředit na zajímavý problém řešení, a ne tolik
o tajemných příkazů.
Pojďme se podívat na příklad dat, které by mohly být uloženy přehledně
v relační databázi.
Zde je jeden takový příklad.
Nyní, bohužel, phpMyAdmin nesprávně na straně házení způsobem příliš mnoho slov
a grafika na vás, ale pokud jste zdokonalovat v jen na
Sloupec ID, uživatelské jméno sloupce, a hash sloupec,
V podstatě se jedná tabulky, ale to se stává, že je fragment
z tabulky uvnitř přístroje
pomocí souboru, který jsme pro vás v problému sadě 7.
>> Zejména, jsme vám soubor, který představuje
uživatelova stůl, takže tabulka obsahující uživatelům 3 sloupcích,
z nichž jedna je jedinečný identifikátor začínat u 1 a je zvýšen poté.
Druhý sloupec je uživatelské jméno, a ti z vás, kdo to udělal Hacker,
Hacker vydání pro PSet 2, může rozpoznat některé z těchto uživatelských jmen alespoň.
Na pravé straně jsou hesla, ale nejsou doslovné hesla.
Jsou hash této smlouvy, tak to dopadá
že ukládání hesel v databázi je opravdu špatný nápad.
Všichni jste asi četl na nějakém místě nějaké webové stránky
nebo nějaké společnosti databáze budou kompromitována, a pak se budete muset
změnit své heslo, musíte se dostat náhrady na věci
protože některé špatné chlap vlastně vloupal do účtu jako výsledek.
>> Ukládání hesel ve formátu prostého textu, nešifrovaná v databázi
je zcela hloupý, a přesto je to velmi zábavné
pak číst o některých velmi známých společností
někdy v tisku jsou ohroženy, jejichž databáze,
a tato část není sranda, ale skutečnost, že databáze obsahují nešifrované
hesla je směšné, protože doslova s ​​jedním řádkem kódu
můžete chránit proti konkrétní hrozbě, a to je to, co jsme udělali tady.
I pro naše falešné malou CS50 financí verze
jsme šifrování hesla jen pro jistotu, a to, že
všech těchto hesel začít s $ 1 $ je jen konvence.
To jen znamená, že jsou šifrována, nebo opravdu zatříděna,
který je jako jednosměrné šifrování funkce
kdy není možné zvrátit jeho účinky s něčím, co nazývají MD5.
>> Skutečnost, že 50 je po to znamená, že sůl hodnota
z 50 byl použit pro zatřiďování všech těchto hesel kromě jednoho.
Mine, samozřejmě, jak můžete vidět tam, HA,
bylo pomocí různých solí, takže ti z vás, kteří dostali něco zakopl up
možná v Hacker 2, možná, že byly výsledkem našeho užilo
jiný hash, než ostatní, protože moje heslo je vlastně stejný
jako nějaký jiný uživatel up there.
Ve skutečnosti, pokud jste čekali všechny ty týdny zjistit
co ty hesla byla zde byly hesla, která jste byla napadena
rozlousknout v Hacker vydání problémového souboru 2, tak ne příliš složité.
Ve skutečnosti, Malan je byl stejný jako jharvard,
ale pokud se vrátíme, vypadali jinak.
>> Zaměřte se na jharvard v rudé, protože oni byli solené jinak.
Algoritmus byl rozrušen v tak, že
hash hodnota, šifrované hodnota vypadá trochu jinak
protože vstupy jsou mírně odlišné, ale heslo pod pokličku
byl ještě nakonec crimson.
Nyní, kdo se zajímá o to?
No, my poskytujeme vám vzorku uživatelů, názvy vzorku uživatelů
a hash jejich hesel, takže máte skutečně nějaké
Zákazníci na CS50 financí, když jste poprvé odlepit se od země s kódem.
Budete muset provést více tabulek uvnitř MySQL, uvnitř databáze.
Budete muset vytvořit další tabulky, efektivně, ale rozhodli jsme se vám tenhle
jak začít, a uvidíte, že problém set specifikace
vás provede procesem importu této tabulky
a také vysvětlí, co některé charakteristiky jsou,
a budete také vidět, že jsme vám s kódem
zvládnout hašování nebo šifrování těchto hesel,
takže se nemusíte obávat příliš o tom, co MD5 nebo podobně, je vlastně vše kolem.
>> Takže, SQL, strukturovaný dotazovací jazyk.
To je, prostě, jazyk se chystáme začít používat v PSet 7
a možná za požadovat data z nějaké databáze.
Údaje jsou opět uloženy přehledně v těchto relačních tabulek, sloupců, řádků a,
ale používáte nějakou relativně jednoduchou syntaxi, jako smazat,
vložit, aktualizovat a vyberte můžeme dělat přesně to.
Můžeme odstranit z databáze, vložit,
aktualizaci dat, stejně jako výběr, který je, načtení dat z databáze.
Jak jsme jít asi dělá?
Nech mě jít napřed do přístroje.
Dovolte mi, abych vytáhnout http://localhost,
které je opět místní pístroji.
To je jeho výchozí přezdívka.
A nech mě jít do / phpmyadmin.
To se stává, že je zvláštní, že URL spotřebič je předem nakonfigurován pro pochopení
že okamžitě vyzve mě k zadání uživatelského jména a hesla.
>> Jako obvykle, budu psát jharvard a karmínové,
ale uvědomit, že je to účet správce v počítači.
Je to jen náhoda, že tam je také jharvard registrován CS50 financí.
Jharvard, purpurový, enter mi dává uživatelské rozhraní, které jsme viděli
pohled na okamžik před, a je to trochu ohromující na první,
ale buďte ujištěni, že jste nikdy muset kliknout většinu odkazů v tomto nástroji.
Budete skončit s použitím malou podmnožinu, která jsou super užitečné,
První z nich je databáze nahoru.
Když jdu do databází, všimněte si, že jsem vyzváni k vytvoření databáze.
To je jako vytvoření nového souboru aplikace Excel, efektivně.
Chystám se jít dopředu a zavolat tuto přednášku, a já jsem prostě jít ignorovat pole tam, řazení.
To má co do činění s reprezentací dat v něm,
a budu klepněte na tlačítko vytvořit, a nyní všimnete Pustil jsem vytvořit
na levé straně, kde se říká, že žádné databáze
Měl bych brzy vidět přednáškové databáze.
>> Kdybych nyní klikněte na levé straně, přednáška databáze,
všimnete mé karty změnit trochu.
Mám struktura, SQL, export, import a některé další věci.
Struktura je skoro prázdný.
Žádné tabulky nalezen v databázi, jak to říká zde,
takže pojďme vytvořit tabulku, a pojďme dál a vytvořit tabulku
jako studenti, a kolik sloupců chceme?
Pojďme si to jednoduché, a pojďme záznam pro každého studenta
ID číslo, jméno a e-mailovou adresu.
>> Necháme to jednoduché, jako to, že tak 3 sloupce, jděte.
Formulář, který najdete zde, je nyní trochu chaotický a ohromující,
ale budeme muset jít přes něj řádek po řádku, tak opravdu rychle, dejme
první sloupec v této databázi název ID pro jedinečný identifikátor.
Bude celé číslo. Já si skutečně ignorovat délku a hodnoty.
Int bude 32 bitů bez ohledu na to, co napíšete tam, takže necháme prázdné.
Výchozí hodnota, mohl jsem dělat to null, jak je definováno.
Já odejdu sám. Pojďme se starat o výchozí hodnoty.
Pojďme přejděte sem s těmi správnými, atributů.
To je zajímavé.
Pojďme dál a poněkud libovolně říci, že čísla musí být unsigned.
Nepromarněme žádné negativní čísla.
>> Pojďme 0 až 4 miliardy, dávat nebo brát,
a pak si to nedotkne žádné z těchto polí zatím tam,
ale pak mi dovolte zadejte v názvu tady dole,
a pak další byl e-mail, tak úlovek je e-mail
a jméno, samozřejmě není celá čísla, takže se pojďme změnit tyto na jiném poli.
Ukazuje se, varchar, variabilní délka char,
je jako řetězec v databázi SQL
ale proměnná délka, a máte skutečně říct to předem
maximální délka řetězce, takže budu poněkud libovolně
podle typu kongresové 255 znaků.
Mohl bych úplně říct 32. Mohl bych říct, 1000.
Můžete druh je nutné, aby sami rozhodnout na základě Vašich demografii, co je
The Longest jméno studenta a jít s tímto číslem nebo trochu větší,
ale to, co je hezké o varchar je, že to nebude ztrácet
255 bytů na každého studenta jménem.
Pokud je to DAVID, že to nebude používat pro celou 255 bajtů,
ale to je horní mez, takže půjdu s 255 jen konvencí,
ale my jsme mohli diskutovat, že je to nějaký nižší hodnotu, a pro e-mailovou adresu
Jen musí být v souladu 255, ale opět, mohli bychom mít stejný diskusi.
Ale já budu dělat jednu věc tady na pravé straně.
>> Co je to mocný o databázi, je, že to může udělat hodně zvedání těžkých břemen
nebo komplexní práce pro vás.
Zejména jsem opravdu jedno, co mé studentské ID čísla jsou.
Je to jen chtěl být jedinečný identifikátor v databázi
takže mám 32-bit stručné vyjádření, že student
tak, že jsem nějaký způsob, jak jednoznačně identifikovat jejich
aby snad 2 Davids, například, v třídě.
Ve skutečnosti, budu zaškrtněte toto políčko, AI, auto přírůstek,
tak, aby databáze, MySQL, vyřeší
Co každý nově vložený studenta ID bude.
Nemám ani se starat o to v mém kódu,
a já také chystá vybrat něco podle indexu nabídce.
Index spadnout tady je primární, unikátní,
index a plný text.
Můžete hádat, co možná pár z těchto věcí jsou,
ale to dopadá v relačních databázích
jste programátor nebo správce databáze dostat preventivně
dát pokyny k databázi, do jaké oblasti
v tabulce jsou trochu zvláštní.
>> Například, v tomto případě jsem chtěl říct, že ID
bude primární index, jinak známá jako primární klíč.
Co to znamená podle definice je, že ID napříště
bude jednoznačně identifikovat studenty v této tabulce.
Žádný student bude mít stejné ID, protože jsem uložení tohoto omezení nebo tento index.
Navíc, co to bude dělat, pro mě je to neřekne
MySQL že ID je zvláštní.
Starám se především o ID, tak jděte do toho a udělat vaše fantazie datové struktury kouzlo,
vybudovat nějaký strom.
Typicky je to něco, co nazývá B-strom, který jsme neměli dívat na týdny,
ale je to další takovou datovou strukturu podobnou v duchu na binární stromy
a snaží se, aby se podíval, ale to řekne
do databáze toto pole je tak důležité, že jsem asi
Chci být schopen vyhledávat na to, jděte do toho a vybudovat nějakou chuť
struktura dat v paměti k urychlení vyhledávání tak, aby v ideálním případě
jsou konstantní čas nebo alespoň co nejblíže k že jak je to možné
tak, že není přešla do lineární vyhledávání, které se nebude
Nejvíce vysoce výkonných přístup.
Naopak, může e-mailová adresa byla primární klíč.
>> V teorii, každý je e-mailová adresa je jedinečná, pokud sdílíte nějaký účet,
ale to obecně není dobré použít něco jako řetězec
jako primární klíč, protože pokud je jejím smyslem života je jednoznačně identifikovat
řádků v tabulce není důvod používat 255 bajtů maximálně
jednoznačně identifikovat někoho, jestli se můžete dostat pryč s pouze 4 bajty
nebo 32-bit int.
Obecně platí, že by měl být primární klíč krátké a stručné
a ideálně něco jako integer nebo velkou int, který se stane být 64 bitů.
Ale e-mailová adresa by měla být jedinečná, a jeden z rysů databáze příliš
je vynutit jedinečnost pro mě.
Volbou jedinečné tady vedle e-mailu, i když e-mail se
posunete mimo obrazovku, říkám do databáze
mi nevěříte.
Nenech mě vložit do databáze
stejná e-mailová adresa dvakrát, i když jsem idiot a nejsem
velmi dobrý s mými IFS a jinde IFS a skutečné PHP kódu
a já omylem nechal uživatel zaregistrovat existující e-mailovou adresu
Databáze je ještě další úroveň obrany za správnost
zajistila, aby duplicitní e-mailová adresa nebude skončit v tabulce.
>> Nyní, naopak, v názvu pravděpodobně nebudete chtít, aby se toto jedinečné
protože pak by mohlo být nikdy 2 Davids nebo 2 Mike Smiths, například,
v databázi, tak, že jeden prostě budeme nechat na pokoji.
Chystám se jít dopředu a klepněte na tlačítko Uložit v pravé dolní části,
a všechno vypadá dobře, ale všimněte si tady
To je část, která prozatím nebudeme trávit příliš mnoho času na
protože syntaxe je trochu složitější, a nemáme k vytvoření tabulek
tak často, ale SQL sám je jazyk,
Syntaxe pro které je tady, že jsem zdůraznil.
Co phpMyAdmin opravdu je to vytváří webové GUI pro vás
se kterým můžete ušetřit čas a není nutné ručně zadávat z
poměrně dlouhé SQL dotazu takhle.
>> Jinými slovy, pokud byste chtěli vytvořit ručně tuto tabulku,
buď v té černé a bílé řádku, nebo dokonce v phpMyAdmin
pomocí tohoto jiného kartu, tato karta SQL, kde můžete zadat ve všech SQL dotazů
Chcete, upřímně řečeno, to by mi trvalo minutu
skutečně vzpomenout na celou syntaxi, a dokonce i pak bych asi mít
učinil některé překlepy, takže tento nástroj je užitečný pro věci, jako že, a to je také poučný.
Můžete začít odvozovat to, co je syntaxe
jen tím, že na pěknou barvu kódování, které phpMyAdmin je přidání
pro naše vizuální pohodlí.
Ale teď jdeme na to místo.
Nechte mě jít na kartě Vložení na vrcholu, a nech mě jít dopředu a vložte například
ID řekněme, vlastně mi to jedno.
Bude to auto přírůstek. Chystám se nechat databáze se s tím vypořádat.
Ale já se David, a můj e-mail by měl být malan@harvard.edu.
>> Pojďme dál sem a dát do Mikem Smithem za jinou.
Dám sám sobě příjmení stejně,
a budeme se ho být smith@example.com,
a pak, kde mám jít dál?
No, vypadá to, že go je tlačítko kliknout, a voila.
Všimněte si, v nejvyšších 2 vložených řádků.
To je skutečná SQL dotazu.
To je phpMyAdmin nástroj popraven pro mě,
ale konečný výsledek, upozornění, když jsem teď jděte na kartu procházení,
je vidět 2 řádky v této tabulce, velmi připomínající esteticky
v tabulce jsme viděli dříve pro naše uživatele z PSet 7,
z nichž jeden je David Malan, z nichž jeden je nyní Mike Smith.
Ale jen aby bylo jasno, nemám potřebu používat phpMyAdmin,
a opravdu, budete brzy psát kód pro PSet 7
, který automatizuje proces přidávání řádků, mazání řádků, aktualizace řádků a podobně,
tak ať mi místo toho jít do SQL kartu sem
a zadejte SELECT * FROM studentů, kde
email = "malan@harvard.edu."
>> Jinými slovy, asi máte nyní
některé HTML formulář, a uživatel zadá svou e-mailovou adresu, kromě jiných oblastech,
a cílem je nyní v PHP na zadní konec kódu
skutečně vyhledat, že uživatel je další podrobnosti.
Jaké je vaše celé jméno? Jaká je vaše ID číslo?
Dalo by se napsat SQL dotaz, jako je tento, select * from studentů
kde e = "malan@harvard.edu."
A když jsem potom klepněte na příkaz jít, si, že jsem měl, a skutečně jsem se, vrať se zpátky jen jeden řádek.
Mike je vynechán z tohoto výsledku, jako sběr řádků
je obecně nazýván, protože nemá stejnou e-mailovou adresu jako já.
>> Nyní, opět, zde PSet 7 budete používat phpMyAdmin jako správní nástroj
a pedagogický nástroj naučit svou cestu
po celém světě SQL, ale na konci dne
budete se psaní těchto dotazů uvnitř aktuálního kódu PHP,
a tak zůstaňte naladěni na návodu Zamyla je zejména
kde budete mít prohlídku distribuční kód pro tohoto problému sadu
kde jsme, stejně vám nejen estetika pro přihlašovací stránku
a pěkné sexy logo, které říká, že CS50 Finance, ale také jsme vám dal
banda funkcí, které učiní váš život o něco jednodušší.
Jsme se také píše část PSet pro vás,
login část toho zejména, aby vám pocit reprezentativního designu
skutečně používá řadič, například, index.php,
login.php a podobně, a pak budete vidět Pset také šablony adresář
který má všechny vaše názory, všechny estetiky.
A tak celkový pracovní postup v PSet 7 bude, že
uživatelé navštíví řadič přes adresu URL v prohlížeči.
To regulátor obsahuje PHP kód, který jste napsali, a uvnitř PHP kódu
může být několik řádků z SQL vnořené do dvojitých uvozovkách
a přešel na funkci jsme psali názvem dotaz
, která vám pomůže mluvit do databáze bez použití něco jako
Nástroj pro správu, jako phpMyAdmin.
>> Budete mít možnost psát SQL příkazy v PHP kódu
a získat zpět PHP pole výsledkové sady,
z řádků, které skutečně odpovídají tento dotaz.
A podobně si budete moci udělat vložky nebo odstraní
nebo aktualizace nebo podobné, syntaxe, pro které je velmi podobná,
a uvidíte, z některých internetových odkazů, z distribučního kódu
a od PSet balení se přesně tak, jak jít o tom, že.
Uvědomte si, nakonec jsme opravdu jen poškrábání povrchu SQL
a MySQL, ale moc toho opravdu je, že vás osvobodí
zaměřit se na problémy, které chcete řešit se případy užití chcete implementovat
aniž by se museli tak moc, alespoň na začátku,
o tom, kde a jak ukládat a vyhledávat databáze,
a to je doslova, kde Facebook sám dostal jeho začátek
používat MySQL a pak pomocí více MySQL servery a pak další MySQL servery
před dlouho, až se pak musel opravdu začít usilovně přemýšlel o tom, jak
ukládání dat, jak uložit věci ještě efektivněji,
takže i když budeme brát za samozřejmost, že indexy a jedinečné omezení
a tak dále prostě fungovat tam velmi zajímavý rozhovor
že to může všechno nakonec vést k, takže si uvědomit, že my jsme jen k poškrábání povrchu
z toho, co by se případně mohly pro vás nebo vaše projekty staly docela dost velkých dat.
>> Díky, že řekl, pojďme nekončí, a my uvidíme příští týden.
[CS50.TV]