SAM LEVATICH: Vítejte na Sekce pro tento týden. Nejsem Andi. Andi se roznemohl tento den, a já Byly druh volal v poslední chvíli převzít. Je to chřipková sezóna, takže se ujistěte, že jste zůstávají čisté, mytí rukou, a jíst zdravě, aby Ty taky, nejsou upoutaný na lůžko. Ale bez dalšího ado, pojďme začít. Dnes budeme mluvit o PHP trochu bit-- jak PHP se vztahuje k HTML, jak ji se týká CSS, a některé z rouna věci jsi udělal na poslední úkol. Budeme mluvit Něco málo o SQL a jak můžete pracovat s databázemi, což je docela klíčovou složkou P set 8-- P set 7. P set 7. A pak budeme mluvit trochu bit o tom, jak řadiče zobrazení fungují a proč to je filozofie za některé Moderní webové stránky a odlišná konstrukce. Docela hodně mnoho typů aplikací a aplikace, které by mohlo loď jsou pomocí tohoto modelu, pohled rámec regulátor, že budete používat P set 7, takže budu trochu pohovořit o tom, proč že to stát oblíbený, proč je to důležité a pěkné. A pak budu konečně přejít na některé tipy o řešení P set 7. A pokud budeme mít čas zbude na konci, vlastně můžeme udělat nějaké na tom pracovat společně. Takže, PHP. Ve skutečnosti, možná jste si všimli tohle-- jste opravdu neměl ponořit do to-- ale P sada 6 měl nějaký PHP kód, který se děje. A protože PHP je C-like jazyk, PHP, na rozdíl od HTML a CSS, je programovací jazyk, vzhledem k tomu, HTML a CSS jsou statické. Jsou značkovací jazyky, které se zabývají se stylem a vizuální rozvržení. PHP je real deal. PHP má smyčky, má conditions-- všechny ty věci, které je zábavné o C. To má několik věcí, které jsou trochu trochu lepší než C, který uvidíme, ale myslím, že nejjednodušší způsob, jak mluvit o PHP je jen do toho ponořit. Takže já jdu doprava do IDE v tomto bodě. První věc, kterou jdeme udělat, je skutečně vypadat trochu na některé z PHP kód, který byl v P set 6. Takže způsob, jakým děláme that-- před, tak, že jsme se systémem server pro spotřebiče bylo to, že budeme muset type-- buď použít implementace nebo implementaci personálu z server.c tím, že jde do adresáře a běží server.c buď bez arguments-- takže stačí zavolat jej na místní hostitel, což je to, co jste pravděpodobně dělal většinu time-- a pak ji krmení directory-- s pro použití jako kořeni Pokud internetová stránka by spustit, v podstatě. Tento týden pro P set 7, as velký jako náš kód pro server.c je, že tam jsou lidé, kteří mají již napsal tyto jemné věci znovu na CS50 že mají trochu více funkcí, server program, který je schopen vypořádat se s trochu více ze složitosti, že budeme viz v obou P set 7 a P set 8. A to tak, že začnete se zřizuje Server je pouhým zadáním, "apache50." A předtím, než začnete dělat něco, se chcete ujistit, že Apache 50 není již běží jako je na mém stroji, které jsem udělal to vyzkoušet. A to tak, že volá apache50. Zastavit, a uvidíte, že se to zastavit webový server, pokud se můžete podívat zde v dolní části okna terminálu. A pak už jen začít, my jsme Zavolám, "apache50 začít." A pak půjdeme krmit to adresář. A teď, protože chceme se podívat na některé z P set 6 kód že jsme měli zaveden, jsem vlastně kopírovat trochu P set 6 Kód do vlastního adresáře, které můžete vidět na levé straně tam. Říká se tomu "SECTION8" velkými písmeny protože já jsem jen tak nadšený bude živě přenášeno dnes. Takže když jsme se spustit tento, by měl všichni docela efektivně pracovat. Říká, OK, ale naše stránky jsou nyní k dispozici na adrese IDE, v podstatě, což je to, co jste používali přesně tak, jak to bylo v P set 7-- P set 6. Všechny mé indexy jsou jedním index dnes. Takže můžeme jít k tomu adresa, pokud budete pamatovat, pouhým kliknutím tento malý tlačítko v pravém horním rohu. A budete vyvolat tento kód, který se stalo, když jste šel do hello.php. A to, co kód je navržen tak, udělat, je, když jste zadali v názvu here-- když řeknete Sam protože to je moje name-- a já klikněte na pozdravit, když jsme se vydali na další stránku, tento název měl být zobrazen. Bylo by řekl: "Ahoj, Sam" nebo "Dobrý den," co si jen vzpomenete dát do toho, i když jsme se vydali do zcela nové webové stránky. A to je ten druh věcí, že PHP může udělat pro vás. PHP je schopna předat data mezi dvěma webových stránek. To je úplně jiný stránky. Uvidíte titul je "ahoj" sem. Ve skutečnosti, že mají stejný název, ale já slibují, že jsou jiný webový Stránky, když se podíváme na zdroje. A můžete předat data, která je zapíší do tohoto textového pole, ji předloží k další Stránka, která se právě zavolal, a pak se, že data je schopen tam být ve své současné podobě. Nyní jsme dosud nebyl realizován to sami, což je to, co budeme dělat právě teď sort dostat chuť na to, jak PHP funguje, ale klíčové myšlenkou je, že můžete PHP-- nějak myslet na to jako funkce. Něco, co PHP může nechat vás to je to může trvat parametry že zadáte do HTML stránky pomocí PHP a forem, a že může procházet ty, které jsou parametry na další stránku, která načte nahoru. V tomto případě, my naložení do této stránka s tlačítkem "pozdravit". Ale teď, jsem vlastně vypouští některé z tohoto kodexu v hello.php, který byl spuštěn , která byla skutečně zobrazení "Hello, svět "nebo" ahoj, Sam ", nebo "Dobrý den," co bylo jen vstup. Takže teď, my jsme dělat to, v podstatě. Chystáme se obnovit, že a také přidat nějaké další funkce, udělat trochu víc s tím, viz co PHP je opravdu schopen. Takže nejprve, pojďme mluvit o Tento soubor, hello.php. Takže když jsme se přiblížit v málo bit-- a teď jsem nějak se snaží posouvat všechny jak around-- tam jdeme. Uvidíte, že se jmenuje hello.php, ale syntaxe to vypadá jako soubor HTML. To je proto, že Skutečná PHP v tomto souboru vše je přilepená mezi nimi otazník-stříška bloky. Všechno tady je považován za PHP kód. A všimněte si, že když jsem udělal poznámku, uvidíte známé dvou lomítka. A pokud jste si vzpomínám, v HTML, když jsem zadejte komentář, vypadá to něco blíže k to, což je komentář v HTML. Takže opravdu všechno mezi tyto dvě lomené závorky Nyní je PHP kód, který se odráží v tom, že tento malý komentář symbolu se obrátil na poznámku. Takže pokaždé, když psát PHP kód, dokonce i v případě, že to není HTML kód mimo něj, vždycky to bude uzavřeny v těchto hranatých závorkách s otazníky. Můžete nějak přemýšlet o tom, jak se to všechno to-- kódu, který běžel ve svých programech C byl uzavřen v int main, prázdnotě, složená závorka, konec kudrnaté prohlášení závorka. A uvidíte složené závorky v PHP, taky, ale je to druh jako hlavní metodu PHP. Takže teď, jak to uděláme něco v PHP? Nyní, PHP je programovací Jazyk, který je velmi C-like, ale působí na webu. Takže jedna věc, která budete immediately-- jeden z prvních věcí, kterou opravdu s C byl tisknete věci ven, že jo? Takže v C jsme udělali s funkcí printf. Dali jsme to řetězec, Pravděpodobně s novou linkou, a pak jsme ukončen to se středníkem. Takže tak, že budeme dělat, že v PHP-- protože to není úplně printf. Je to trochu odlišnou syntaxí. Mimochodem, že tiskneme věci v PHP je říkáme, "echo ahoj" nebo "echo" jakékoli slovo. A to má za následek, dělá printf s řetězcem "Dobrý den." A přidává novou řadu na to. Takže pojďme teď dělat sure-- Budu oddálit opět trochu bit-- pojďme se ujistěte, že že je tento kód pracuje protože tam by mohlo velmi dobře být chyba v tomto kódu že budeme muset řešit. Takže server je již spuštěna. Takže když jsme se posunout zpátky na dno, Jo, je server stále běží. Takže když jsme se jen klepněte na toto téma trochu vpravo here-- welcome-- bychom měli get-- skvěle. Stále se mající obeznámen "Pozdravuj" dialog, ale když jsem zadejte "Ahoj," uvidíme, že text "ahoj" byl vskutku vytisknout, která je přesně tak, jak jsme očekávali, protože echo v PHP je stejně jako prohlášení printf. Takže zpátky do kódu, jak v P sada 6 udělal distribuce kódu máte k dispozici aby to tak, že by PHP Výstup věc, která vás zadali na předchozí obrazovce? A tak nějak přezkoumat proč se to stane, my jsme jít do index.html, který je původní soubor, soubor, který se objeví na obrazovce s tlačítkem "pozdravit". Všimněte si, že je tu všechny klasické věci jsme si zvykli očekávat od takového HTML jak tyto věci, tyto značky uzavřený v lomených závorkách, jako PHP ale bez otazníky, což znamená zvláštní věc do formátu HTML. Máme titul, což je "ahoj." A všimněte si, že jak jsme viděli, titul je "ahoj" v obou případech. Změňme tohle na "říkají" Právě proto jsme mohou odlišit, kde jsme. Ale my máme tělo. A pak zajímavý kousek se bit, který se objeví v HTML, je tato forma element. A tak máme formulář. A to je klíč. To je, jak pracujeme s PHP. Akce parametr forma říká, že hello.php je to, co budeme posílat Hodnoty v této podobě se. To je místo, kde jsme kolem parametry, abych tak řekl. Všimněte si, další věc zde je to, že metoda je "se". Existují dva primární Metody, které budou být pomocí PHP k předání dat mezi websites-- webových stránek, rather-- v tomto úkolu. A tyto metody jsou "dostat" a "příspěvek." Tam jsou některé jemné Rozdíly mezi get a poštou že budeme mít my into-- se "dostat" do, chcete-li. Ale pro všechny záměry a účely, get a pošta jsou oba jen způsoby, předáte parametry s lehce různých provedeních. Pro tuto chvíli, budeme používat dostat, protože dostat to, co bylo původně použito v souboru PHP P nastavena 6. A vlastně, když jsme jít a dívat se Než jsme se upravovat něco jiného, Já jsem chtěl říct ahoj to-- Jak se jmenujete? Diváků: Elliot. SAM LEVATICH: Ach, bože. Nevím, jak se píše, že. Mohl byste hláskovat to pro mě? Diváků: E-L-L-I-O-T. SAM LEVATICH: I-O-T? Diváků: Jo. SAM LEVATICH: Perfect. DOBŘE. Myslím, že jsem věděl, jak se píše, že. Omlouvám se za to. Řekneme-li však "Řekni ahoj," to není že to nebude zobrazovat na obrazovce ale jelikož jsme upravili kód trochu. Ale pokud se nám "Pozdrav" - OK, tak "ahoj" je tady. Ale vezmeme-li se blíže podívejte se na samotné URL, uvidíme, že to skončí s hello.php? name = Elliot. Takže, to je způsob komunikující na následující webové stránce parametry, které jsme prošli. Řekli jsme name = Elliot. A to je to, jak nakonec P set 6 přistupovat proměnné, které jsme prošli v prostřednictvím formuláře. A to je něco, je typické pro požadavek GET. Požadavek GET dělá parametry známý v URL webu. A budete připomenout, taky, v P set 6, která vás musel napsat funkci že se zabýval tím, že tento dotaz řetězce může existovat po souboru. Tam by mohlo být otazník následovaný by v podstatě libovolný počet znaků. A to je přesně to, co se tady děje. A důvod, proč byste měli analyzovat, že v realizaci server.c v P set 6 je tak, že byste mohli říct, PHP kód, který Name = Elliot. Potřeboval jste být schopni analyzovat, že z adresy URL tak, aby soubor PHP dotyčný věděl, co to se zabýval. Tak doufejme, že to dává motivace server.c teď, když jsme pohybující se na mimo C do PHP. Takže pojďme se zaměřit na skutečně přístupem do co prošel žádosti Získejte nyní v tomto bodě. Chystám se zachránit to. My jsme nic nemění. Vypadá to, že máme vstupní pole. Jsme nastavit některé vlastnosti, jak můžeme udělat HTML. Jedná se o jednoduché věci. Nepotřebujeme to. Ale máme autocomplete off, který v podstatě says-- víte, když napíšete něco do webu, někdy se snaží naplnit, že pro vás. Takže je to pěkná věc. Chceme jej vypnout pro tento účel. To bylo rozhodnutí o CS50. Takže můžeme smazat, že pokud bychom chtěli. Autofocus jen hole kurzor ve tvaru při začátku. Opět platí, že není příliš důležitý. Ale name = "jméno" - to je trochu složitější, protože jeho jméno a jméno. Ale mohli bychom změnili to k něčemu jinému. A ve skutečnosti, to je Co budeme dělat teď. Řekneme "osoba", který je něco jako jména v případě, že osoba je definována jejich jména. Takže pojďme uzavřít toto, znovu se naše webové stránky protože náš server stále běží Apache 50, a budeme říkat, haló, tady je Elliot znovu. Proč ne? Ahoj. A pokud půjdeme tady, uvidíme pak místo jména = Elliot, se říká, že člověk = Elliot. A to je přímým důsledkem skutečnosti, že jsme právě změnili name = "člověka." Takže ve vstupním prvku Formulář HTML, název pole je identifikátor pro parametr, který je předávaný. Je to jako, když budete vytvářet funkce "add", které se ve dvou celých čísel a jste řekl, int a a b int. To by byl název a, a pokud jste chtěli jiný formulář, který můžeme udělat jen tím, kopírování a vkládání, pak bychom měli název b. Takže teď budeme mít dva parametry , které jsou při průchodu dostat se do další website-- další webové stránky, hello.php. A můžeme skutečně vidět že znovu, pokud chceme. To je nejjednodušší způsob, jak se vypořádat s webový kód v IDE, v podstatě. Spustíte server, dostat to běh, a pak pokaždé, když provést některé změny, jen v blízkosti tento soubor jen pro jistotu. Stisknutím tlačítka Zpět je trochu ošidné protože by to mohlo načíst dřívější verze, není nejaktuálnější jedné. A pak stačí kliknout na vaše opět tlačítko, pop vpravo up-- oh, a teď tam jsou dvě formy. A tak, když napíšeme jednu věc do každého one-- "jason Hirshhorn," pro instance-- řekneme ahoj. Díváme se na naše parametrů. Vypadá to, že máme, as Očekává se, a = Jason a b = Hirshhorn, který představuje dva parametry že prošel této funkci. Takže teď pojďme skutečně dostat do kterým se provádí tuto funkci, že jsme měl v P set 6. Takže teď jsme jen ozvěnou ahoj. A to není moc užitečné. Chceme echo nějaké proměnné který byl předán k nám. A víme, název této proměnné. Máme a my jsme b. Tak jsme si mohli vybrat echo ani jednoho. Ale jak se k němu dostaneme? No, existuje určitá globální proměnné v PHP. A já budu psát je v komentářích zde. Dva nejdůležitější jsou get a příspěvek pro naše účely právě teď. Jedná se o pole nebo, Technicky, slovníky kde naši proměnné, které jsme postup do dalšího webové stránky Live. A brzy uvidíme, jak je používat. Další krátká poznámka o PHP kód a některé specifika to-- v C, deklarovat proměnnou nebo použití proměnných, nejprve museli vyhlásit. A to, co jste měli dělat, když jste prohlášen za nimi byl říci, int a nebo char b. Vy jste měli deklarovat typy těchto proměnné před vytvořením je. PHP-- nemusíte dělat nic z toho. PHP nežádá typ proměnné. A způsob, jakým vás Vytvoření proměnná-- poněkud než říkat int, char, string-- který je opravdu char *, jak jsme víš-- spíše než dělat všechno že, protože všechno je stejného typu, bez typu, můžeme jen použijte jeden znak, který je znak dolaru. A uvidíte, že už je praskání up, malé automatické dokončování věcí. A říká, že _GET a _POST Jsou dvě možnosti, které mají k dispozici I ke mě. Některé z těchto dalších věcí jsou ostatní globální proměnné v PHP že budete používat více než průběh P set 7. Pro tuto chvíli budeme zaměřit se na get a post. Ale to je užitečný věc, která dělá IDE kde kdysi jste napsali v tomto znak dolaru, bude to začít vyplňování globálních proměnných nebo proměnné, které jste již definovány. Takže pokud jste chtěli definovat proměnná s názvem "string," můžete jen nastavit ji na hodnotu "ahoj." A je to v podstatě tak jednoduché, jak to. A pak bychom mohli udělat, něco jako "echo $ string." IDE je třeba házet Chyby, když dělám něco špatně, takže doufejme, že dělám všechno správně. Ale chyby vždy nastanou. Další ošemetná věc, o PHP je, že to není sestaven. Takže s C programy, měli byste dělat denní rutina of-- v podstatě, byste provádět úpravy na váš kód, měli byste jej uložit, a pak by se vám aby to, kde byl make krokem, který volal kompilátor, zvonit, aby váš kód, tento text souboru, do spustitelného souboru. PHP je C-jako, ale je to popraven v reálném čase prostřednictvím webového prohlížeče. Takže není způsob, jak zjistit. Udělat by se hodit těm, užitečné chyby, ne? Bylo by to jako, vy nepřiznal tuto proměnnou předtím, než jste se pokusili použít. Udělal jsi všechno to špatné stuff-- segfault, segfault, všichni ten druh zábavy krát která přišla s make. PHP je dvousečný meč protože nebudete mít ty chyby, ale to také znamená, že nebudete vědět, opravdu to, co je s programem špatného vaší pokud jste právě běží, a to nefunguje. Ale debugger by měl poukázat na to Někteří snad užitečné maličkosti syntakticky, které můžete opravit. Takže teď, když projdeme to-- říkají, pojďme ukončit to. Znovu otevřít. A jsme zpátky sem. Takže máme proměnnou a variabilní b. A tohle nebude nakonec záležet. Zavoláme jim h a g bez konkrétního důvodu. A my říkáme ahoj. Teď to vypadá jako naše řetězce "ahoj" je opravdu tisk. Vytvořili jsme proměnnou s názvem "string", nastavte ji na hodnotu "ahoj." Všimněte si, že jsme neměli dělat malloc nebo si pole znaků. V PHP, protože proměnných jsou bez typu, řetězec je stejné jako pro char všechny záměry a účely. To by mohlo být "hi". To může být právě znak k. To může být číslo 1. A to není jedno. PHP se nestará o typ vaší proměnné. Nebo to dělá péči. To se stará, když se pokusíte a dělat věci s ním, ale to není jedno, v krok prohlášení. A stejně jako je to možné v C, můžete prohlásit struny na zásobníku, jako je tento když říká, "svazek", je trochu bit potenciálního nesprávného pojmenování, kdy mluvíme o PHP. Ale my nemusíme obávat, že. Tak jsme dostali náš řetězec "Ahoj," a my echo řetězec. Takže teď jsme diskutovali proměnné. Takže teď musíme si promluvit o Get a zakládat a provádět konečnou věc, která se potřeboval opravdu dostat to zpátky nahoru na funkčnosti P nastavení 6. Takže teď jsme odrážet řetězec, ale my přece mají tyto proměnné dostat a post. A protože jsme s použitím Tato metoda si, že Zdá se přirozené, že naše proměnná máme zájem, i B, se bude nacházet v matici nebo slovník, technicky dostat. Takže když jsme se založit si takhle s groups-- I lisované vstoupit a to nelíbilo to-- ale tady máme dostat. A tak se již existuje. Takže můžeme začít již na přístup některé prvky Get. Pokud se nám to dostat, tato syntaxe pro pole v PHP je velmi C-podobně. Máme dvě hranaté závorky. Takže když říkáme, dostat do normální pole, mohli bychom získat přístup index nultý, první index. PHP je nula index. Dalo by se říci nula, jedna, two-- věci, jako je toto. A já jsem říkal, že dostat je technicky slovník. Takže to, co dělá PHP je pod kapotou, což je trochu hezčí než C, Je to již dává vám některé slovník funkčnost, která je opravdu hash tabulky, nebo se snaží, údajně. Nebo, technicky to by mohlo být zkusit také. Ale PHP realizuje hash tabulky, která tvoří účinnou slovník. A tak víme, jméno z naší proměnné, že jo? Je předávaný v řetězec dotazu PHP. Máme = H a B = g, kde a a b jsou názvy proměnných. Takže způsob, jak můžeme přístup k hodnota, která odpovídá klíči v našem slovníku je Jen tím, že říká _GET_GET ["a"]. Takže teď máme _GET ["a"]. A pokud bychom stačí vyměnit uvnitř náš echo, když jsme echo _GET_GET ["a"] - a uvidíme, jestli debuggeru hází všechny chyby týkající se tohle-- budeme šetřit, že a zavřít to. Otevři to. Takže jsme jen to právo teď, takže b by nezáleží. "ji" a "ho" - "hučení." "ji" a "hukot." To zní dobře. A to vytisknout "ji", který je blázen. Ale to je přesně to, co se děje v P set 6. V podstatě, co P set 6 Byl doing-- echo ahoj, name-- kde to mělo název proměnné a to jen vás žádá, abyste zadat v daném kousku textu. Tam byl také některé Doplňkový kód, kde to zahrnovalo v případě prohlášení, které můžeme udělat právě teď. Dá se říci, pokud existuje, který je funkce v PHP, _GET S podtržítkem, "name" - který je v podstatě říká, "v případě, že název byl vyplněn", protože jsme mohli jen klikl na tlačítko odeslat formulář bez psaním do tohoto pole. A my zabalit, že v našich přátelské složené závorky. Můžeme mít prohlášení jiného. A to je vše v úhlu PHP držák, otazník, úhelník, chcete-li. A teď uvidíme, jestli to funguje. Pořád čeká na to, aby ladění a svinstvo na mě, v podstatě, ale to má ještě ne. Možná, že to bude teď proto, že jsem mluvil o. Jo. To dělalo, ve skutečnosti. Takže, nic se objevil. To proto, že něco špatného že jsem napsal v PHP kódu. A jsem se zmínil o ladění je složitější, protože v PHP, my ani zkompilovat předem a kompilátor nebyl rád, Zde je místo, kde se vaše chyby jsou. Ale co můžeme dělat je-- se lidé pamatovat jak se dívat na jiné sítě požaduje, aby PHP-- nebo že internetové stránky poslat? [? Malin?] Dělal toto přednáška jednou nebo dvakrát. Pamatuješ si, kde jsme jít najít různé dluhy a 200 OKS, všechny tyto kódy, které jsou odesílány přes HTTP z webové stránky na webovou stránku? Pamatuje si někdo, kde jsme se jít na to? Diváků: Zdroj stránky. SAM LEVATICH: zdrojové stránky. Přesně. Pokud půjdete do Page Source-- perfektní. Takže Zdroj stránky vytáhne inspektor. A já jsem s použitím Safari. Mnoho z vás zřejmě bude používat Chrome nebo Firefox. Ale jak dlouho, jak jste v každém moderním browser-- a nebojte se řídit spolu, pokud chcete. Můžete zadat tento kód, nebo Stačí se podívat dovnitř P set 6 adresář pro nějaké podobné věci. hello.php je to, co jsme V současné době pracuje na emulaci. Takže tam jsou různé karet. Můžeme se podívat na všechny zdroje. Můžeme vidět zdrojový kód. Takže to vypadá, že ne dostat přes tělo do konce roku. To zjistila chybu v PHP, a to zastavil načítání celou webovou stránku. Nemáme ani konec tag pro HTML nebo tak něco. A pokud se podíváme na síti, můžeme vidět, že nás někdo poslal žádost. To je doména. Jedná se o adresu. Je to dokument. Jsme pomocí metody GET. A je to červené. Nebo to byla červená, když jsem nebyl vybrán. Jak mohu zrušit výběr, že? No, to byla červená. Dovolte mi, abych osvěžit. Je to tady. Teď je to červené. Takže je to červené, což znamená, to propadlo, což je špatné. Takže pojďme prozkoumat, proč se to nepodaří. Takže všechno, že Page zdroj může v podstatě říct, je vaše věc nepracoval, kterou jsme již vidět. Takže v ideálním případě by být ještě užitečný nástroj. A tam jsou některé rozšíření prohlížeče který vám umožní ladit PHP, ale my nebudeme psát tuny PHP, takže je to asi prostě nejlepší prohlédnout kódu opatrně a jen ujistit, že to nedělá nic jiného. Tak uvidíme, jestli formát tohoto if je místo, kde je problém. Chci nahrát, že zpátky sem. Dobrý den Ahoj. Takže je tu problém tam. Takže pro správnou syntaxi PHP, PHP se děje být C-jako v tom, že uvidíte smyčky. If Uvidíte. Uvidíte všechny tyto přátele že jste se seznámili se v průběhu tohoto CS50 semestru. Ale nejlepší způsob, jak přijít na to, jak se dělat něco, co je v PHP na stránce věnované ji nebo se podívat na některé příklady PHP kódu protože víte, funkčnost. Víte, co se dá co dělat s programem. Můžete smyčky. Můžete smyčka tolikrát, kolikrát chcete. Můžete smyčky ve všech druhy různých způsobů. Můžete si vytvořit funkce. Můžete vytvářet funkce, které volat další funkce, funkce které se nazývají. A budete mít názvy pro tyto pojmy. Máš rekurze, smyčky, pokud se další kontrolní toky. A tak Google je váš nejlepší přítel. Dokonce říká, "PHP-li prohlášení "a tam bude být tun míst s Odpovědi na jiných lidí který jsem měl podobné dotazy na vás, kteří jsou právě začínáte s PHP a jsou zvědaví syntaxe věci. Protože máme ten luxus, že jsou schopni podívat se na kód v P sadě 6, jsme vlastně vytáhněte ji a uvidíte, že OK, tady je něco zajímavého. Takže tohle je to, co to vlastně Vypadal jako v P set 6. Takže když jdeme přes to, můžeme vidět, že máme dostal několik z nich málo Bity otazník PHP-podobně. A nejsou složené závorky. Tam jsou dvojtečky. A tam jsou kudrnaté šle v PHP, ale toto je formát a způsob, jak dělat PHP, který pracuje dobře s HTML protože, jak uvidíte, že jsme zavření off těchto PHP bits-- elses a IFS a všechny that-- a poté jsme interspersing HTML uvnitř nich zatímco ještě v návaznosti na řízení toku stanoveny PHP. Takže jsem prostě jít rychlá procházka to protože je to hodně stejný koncepty, které jsme dělali předtím. Máme-li není prázdný, závorky, _GET_GET ["name"]. To je všechno stejné věci. Jsme pomocí _GET slovník, který PHP posílá na žádost forem, proto, že je parametry akce, a způsob je získat. A pak, že končí to. Tlustého střeva je signifier to prostě dělat v případě, že if vyhodnotí na true. Je to jako složená závorka. A ve skutečnosti, to je složená závorka v jiných jazycích, jako je Python, které můžete, pokud jste právě narazíte tomu, že pro konečné projekt. A pak se tento řádek, ahoj. Pak máme takový divný věci. Máme více konzol. Neexistuje žádný HTTP there-- nebo PHP, je mi líto. Ale je tu rovnítko. A pak máme funkci, htmlspecialchars (_GEThtmlspecialchars (_GET ["name"]). To je něco jako více pokročilá verze echo. Stejně jako jsme echo jako způsob vytisknout věci v PHP. To je funkce, která je definovány v PHP, který se bude zabývat některými více ošklivé znaky a hodnoty bytů že byste mohli projít. Je vždy nejbezpečnější používat. Ale echo bude dělat svou práci Jen v pořádku, pokud nejsme jednání s ničím příliš ošklivé. A tak to má stejný účinek v podstatě, tohle mezi otázce značky je hodnocena PHP. htmlspecialchars vrátí pěkný HTML tištěný hodnota _GET_GET ["jméno"], tj. co jsme zadali ve formuláři. A pak to bude pozdravit, čárka prostoru, a pak to. Celá věc mezi lomené závorky budou nahrazeny bez ohledu htmlspecialchars vyhlásí. Tak to je v podstatě podobné na to, co děláme. A máme prohlášení k jinému, který je hello world, který dává smysl. Takže teď se vraťme se k odběru kód a vidět exactly-- oh. Řekl I existuje, což není věc, kterou jsme chtěli dělat. Chtěli jsme říct ne prázdná. A tak by to mělo fungovat trochu trochu lepší, není prázdný _GET_GET ["name"]. A to složená závorka se shoduje s složená závorka. Máme naše složené závorky zde. echo ahoj _GET ["name"]. Uvidíme, jestli to funguje trochu lépe. Jsme stále běží náš server. Dobrý den, Jason. Dobrý den, Jason. A fungovalo to tentokrát. A tak to je důkaz že můžete opravdu použijte složené závorky, které jste znají a milují v PHP kódu v HTML. Kód PHP podmínky Jste v pset 6-- pset 6-- poskytuje další způsob dělat to samé. Takže teď máme ve své moci. Máme funkci implementovat PHP kód, který jsme viděli v pset 6 sami, v podstatě. Než jsem se jít dál, jaké jsou některé z otázky, které máte v tomto okamžiku? Ano [neslyšitelný]. Diváků: Takže ve znění pset6, při spuštění, je tu prostor. A vidím, kde je prostor za čárkou. [Neslyšitelných] začátek otevřený držák. Jak začlenit prostor, ve jak jste napsal své vlastní kódy? SPEAKER: To je dobrá otázka. A tak pojďme na to přišel. Tak to je opravdu dobrá otázka a ten, který jsem nepovažoval. Ale pojďme to udělat společně. Tak v první řadě, co Já dělám s ozvěnou je, když jsme prostě echo ahoj, ahoj to výstupy. Pokud bychom echo teď to dostat se na samostatný linka, pojďme prozkoumat, co se stane. Tak jsme to klikněte. Udržet říkáme, ahoj Jason. Takže znovu, nemáme tento prostor. A to proto, že v PHP, kdy jsme echo, bez ohledu na to, kolik spaces-- Ne, ne V- bez ohledu na to, kolik místa jsme se dát do here-- kdybychom teď naložit, že znovu, hi Jason. Jo, vidím, všem těm, prostory dostal snědli. A to je něco, ozvěna funkce dělá. Takže se starat o že prostor, a to je jeden z důvodů, Proč nechcete používat echo a použít htmlspecialchars místo. Jsem zvědavá, co by se stalo, kdyby jsme to udělali kde jsme uzavřený prostor v řetězci. Nejsem si jistý, co upřímně se stane, když to udělám. Takže to je jeden způsob. To je jeden způsob, jak se postarat o to. Pokud zabalit prostor v řetězec, pak prostor bude výstup pěkně ECHO. Nejbezpečnější věc udělat, je dělat htmlspecialchars. To je vždycky sázka na jistotu. Ale teď máme způsob, jak dělat to s echo-li to nezbytné. A podobným způsobem, můžeme echo nových tratích, všechny druh věcí, že jste obeznámeni dělat v PHP. Kdokoli jiný, jaké jsou nic víc otázky, které ostatní lidé mají v tomto bodě o PHP? Pokud se lidé ukázala trochu pozdě, Jsem rád, aby zůstali po trochou a mluvit o některých začátku. A to je také všechno livestreamed, a archivovány, který je blázen. Každopádně, takže teď pojďme udělat nějaké pokročilejší věci s PHP. A jedna z prvních věcí, byly zavedeny v C bylo pro smyčky. A PHP má silnější pro smyčka volal smyčky foreach. A vypadá to, že tohle-- pro každý blank jako prázdné, složených závorkách, dělat věci. Tak to je v podstatě zkratka. Víte, pro smyčkou jako syntaktický konstrukce byl navržen v C a v sestavě jazyk a podobné věci. Vymyslel v C, přesně, jako zkratka pro mnoho typů smyček že lidé by vidět. Jako když jsi psal smyčku, tam byl často inicializační krok provedený přímo na začátek, Stav, kdy by se smyčka stop-- a to je vlastnost to je jen v cyklu while, nebo že když má přesně jen, že feature-- a poté inkrementace krok na konci. A tak byste často najít sami psaní kódu jako následující. Chystám se vymazat něco z toho. Ale pokud budeme iterace znaky v poli, Například, jako bysme získal řadu znaků. Omlouvám se, že přivézt C. Já vím, jste myslel, že jsi udělal. Ale je to pouze za účelem učení PHP, slibuju. Takže pokud máš char str délky 8, a pojďme říkají, že to říká Hellooo s koncové null. Skvělé, takže to je naše řetězec. A pak jsme měli na smyčku. Máme int i = 0. A chceme ukončit při stř ze i rovná není rovno null, proto, že jsme se ukončit, pokud se rovná null. A pak budeme dělat i ++ na sebe bod v pro smyčce. Dělat něco s str ï. Takže základní vzorec byl, jsme měli toto pole, které jsme chtěl zacházet jako samostatné prvky. Ale to, co jsme museli udělat, je, že jsme museli v podstatě vytvořit samostatný celé číslo proměnnou, která se počítá se každé když jsme šli přes smyčku. A pak budeme muset pak volat strstr [i] když to, co jsme skutečně chtěli dělat je prostě jít charakter znakem, že jo? Nechceme, aby zvýšit integer a pak použít toto číslo přistupovat každý znak jednotlivě. Opravdu chceme znak po znaku. A tak pro každou inteligentně odhaduje, že pro nás. Máme-li pole, který můžeme prohlásit v PHP jako jen--, pokud budeme mít proměnnou volal, nazvěme to pole. Zázraky bez psaní, je to stejně jako jakoukoli jinou proměnnou. Je to jen pole. A máme trochu [neslyšitelný] jako 1, 2, 3, jen jakýsi inicializována pole. To je v pořádku, to není jako můj foreach. Ale pokud se to vlastně foreach-- Jsem napsal, že trochu špatně. Existují dělat smyčky foreach dvěma způsoby. Tam je in syntaxe a jako syntax. A budeme dělat v prvním syntaxi, ne jako. To je moje chyba. Takže foreach num v poli, echo num. A PHP se křičel na me z nějakého důvodu. Je to hledání neočekávané v v něčem, což je trochu na obtíž. Ale my přijít proč tomu tak je za chvíli. Takže se mi to. Zkusme pomocí as. To upřednostňuje jako syntaxe je zdá. Tak to udělejme foreach pole jako num. Tak trochu vysvětlení o tom, co se právě stalo je, jak je syntax saying-- dobře jako první, Pojďme se podívat na to, co to vytiskne. Tak jsme otevřít náš IDE. Jdeme sem. My říkáme, Hello Jason. A to dělalo 123, které byly obsah matice, který jsme vytvořili na vrchol. Takže potápění do této smyčky foreach, máme variabilní nazývá pole což je řada tří čísel. A pak děláme foreach pole jako num, echo num. A to je víc, intuitivní než u prořezat. Říkáme, zpracování každého z věci v poli jako num, Chci, abys mi dal num. A to je přesně to, co dělá. PHP počítá, že když říkáte foreach pole, a máte co do činění s řadou, co budete chtít iteraci jsou znaky v tomto poli, je ints v tomto poli, je elementy v tomto poli. A to, že umožňuje ukládat tyto proměnné jako num, a pak už jen výstup num hned spíše než říkat, Mám proměnnou s názvem i, a pak chci, aby výstup strstr [i]. A tak, že nám umožňuje dělat skvělé věci. Stejně jako v podstatě nemáme vytvářet tyto proměnné, jako bych je a dělat vše, tato inkrementace věci na konci. PHP se stará o všechno pro vás. Takže teď pojďme mluvit o foreach as to platí o naší _GET slovníku. Takže budeme komentovat na to rychle. Takže máme _GET pole. Máme tuto proměnnou. A je to tu nějaké věci v něm. Právě teď, máme jen jednu proměnnou předávaný k ní, což je název. Ale pokud budeme stisknete klávesu Enter, nyní můžeme mít dvě proměnné. Můžeme mít jméno a věk, například, pokud se chceme dostat věku a také jméno osoby, kupodivu. Takže teď _GET se chystá být slovník s dvěma prvky, dva páry hodnot klíče. A první key-- Jdu napsat tento jeden na tabuli příliš. Máme slovník je _GET. Je nám líto, že je to je trochu těžké vidět. Ale v našem slovníku máme název, který se bude něco že jsme vzhledem. A budeme mít věk, který je také bude něco, co jsme daný. A to je souhrnem našeho slovníku. Tak to má dva elementy v tom. A tak proto, že foreach smyčky jsou chytré, my Možná si myslíte, a správně by si mohl myslet, že foreach Můžete iterovat tento slovník, vytištění Uvedené hodnoty jménem a věkem. Takže pojďme se ve skutečnosti dělat jen to. Pojďme postavit smyčky foreach. A budeme dělat za _GET jako. A budeme dělat následující. Tak uvidíme, co se stane, když jsme typu jen slovo, a pak řekl echo slovo. Jsme také bude odrážet nový řádek jen aby to trochu jasnější, co se děje. Takže pojďme se podívat. Není to mi dává žádné chyby. A budeme zavírat to. Na našich webových stránkách, budete dělat hodně, že v průběhu roku pset7. Takže říkáme, jmenuju se Sam. Můj věk je 45. Není. Ale to vytiskne, jak se očekávalo, Same 45. A tak zjistíte, že co foreach smyčky tady did--, vraťme se, že tak je to Na board-- dostaneme _GET jako slovo. A byly tam čtyři věci _GET. Ale je to jen vytisknout dvě věci. foreach, že jeho inteligence já, Předpokládá se, že to, co jsme skutečně chtěli Byl hodnoty, ne klíče. Ale existuje způsob, jak bychom mohli tisknout out klíče stejně, pokud bychom chtěli. Pokud bychom chtěli také vědět, co tyto proměnné byly volány, existuje způsob, že bychom přístup k této také. A způsob, jak to udělat druh, Takže můžeme říci, nechá opravdu rozdělit do klíče a hodnoty. Tak uvidíme, co se stane teď. Takže máme klíč. Máme hodnotu. Máme další nová linka pro čitelnost. A uvidíme, co se stane, když to uděláme teď. Já nevím, jak starý je Jason. Jason 15. Takže máme jméno Jason, věk 15. Takže jsme byli schopni získat přístup k klíče a dvojice hodnota tohoto slovníku Jen tím, že říká, jako klíčové body na hodnotu. A to je foreach syntaktický cukr bit, který umožňuje přístup k věci, ve slovníku. Tak doufejme, že tento druh zdůrazňuje síla foreach smyčky. Můžete skoro hodu něco, co se zdá iterable, jako něco, který má více prvky jako pole, se jako dictionary-- ty jsou dva základní věci, které budete pracovat s a to jak v životě a ve pset 7. Takže si můžete hodit, že věci na něj, a to bude zjistit, to, co chcete dělat s ním. Bude říkat, OK, budu se dostat tyto věci z údajů, které byl předán ke mně. A to je něco, že jste bude používat hodně v pset 7. Jdu k rychlému rolování dolů, jen aby zjistili, kde jsem na. Ještě lidé mají otázky, na tomto místě? Otázky vůbec? Ano? Diváků: Takže s klíčem a hodnotou, jste mohli pojmenovat něco jiného a to by ještě fungovat? SPEAKER: Chybička se vloudila. Wow, já jsem úplně odstranil celý řádek. Skvělá práce. Takže, a. Key a hodnota je jen konvence. Je to užitečné. Ty by si nějaký návrh body, možná nějaký styl body za to, že proto, že skutečně vyjadřuje záměr. Ale my říkáme a a yarp. Diváků: Nemusíte se cokoliv měnit v souboru HTML aby bylo zřejmé, že? SPEAKER: Vůbec ne. Diváků: A to jen ví, že a to z větší rovná than-- SPEAKER: Ano. Diváků: --that indikátor that's-- SPEAKER: Ano. To je syntax foreach, ale ano. Diváků: Nejsou typy. Takže co když jste chtěli věk, že je jen číslo? Existuje způsob, jak to udělat? SPEAKER: Existují způsoby, jak zkontrolovat, zda proměnné odpovídají určité druhy. PHP Tak se ptá trochu více ze jste proto, že se v žádné typy. Některé způsoby, jak se zeptá méně. V některých ohledech se táže víc. Protože pokud jste právě něco v proměnné, nemáte tušení, o jaký typ se jedná. Ale pokud jste chytří o proměnných že přiřadíte druhy do a ujistěte se, že funguje pouze return-- vám Chcete funkcí pouze návrat jeden typ hodnotu, takže že můžete v podstatě Předpokládáme, že proměnná se dostanete zpět z funkce bude typu že si myslíte, že to bude v podstatě. Ale tam jsou některé metody kterou si můžete zkontrolovat. Nevzpomínám si jich z vrcholu mé hlavy. Čekám na to, aby modrat. isint? isstr? Existují metody zabudovaný do PHP, který může zkontrolujte typ proměnné pro vás. Ale pokud přiřadíte proměnné elegantně, neměli byste musí k tomu, že příliš mnoho pset 7. Ale existují tyto metody. A to je něco, je v daném jazyce. A já si nepamatuju přesný syntaxi. Dalo by se dokonce to najít. Ale čas je esence. mají Má někdo jiný máte nějaké další otázky? Ano. Diváků: Mám jen jednu další. Takže jste se zmínil o metodu GET, ale jste nezmínil metody POST. Jsme vrací k tomu? SPEAKER: Ano, budeme se vrací k tomu. To je přesně to, co jsem hledal na můj telefon, který nyní usnul ale budu ho najít. Jen ujistěte se, narážíme všechny PHP poznámky. Jo, není ladicí verze. Ano, máme několik dalších věcí, které chceme dělat v tomto bodě. Tak mluví o POST, které jste zmínil, jediný rozdíl mezi GET a POST je že Pamatuji si, když jsme se dívali na této adrese a my jsme viděli, oh, Název reálná hodnota rovná a věk se rovná yarp jsou přímo v URL tam pro nás. POST je trochu tajnůstkářský s jeho předávání informací. Takže pokud jste nechtěli uživatele vědět, například, vy Nechtěl uživatelské jméno a heslo osoby aktuálně přihlášeného, ​​který se zobrazí v URL, což je rozumná věc že nebude chtít v URL, protože někdo ho můžou vidět. Pokud se odkazovat někoho na stránku, budete Nechceme jejich URL tam omítnuté, protože by to umožnit lidem se přihlásit Jen se místo toho olepení adresy URL skutečně vyplněním formuláře. POST je trochu víc tajnůstkářský. A jediné věci, které budeme muset změnit jsou tato metoda, změna od dostat post. A pak uvnitř HTTP, místo toho přístupu maticový _GET, budeme přistupovat maticový _POST. A my Všimněte si, že, pokud jsme se otevřít tuto zálohu znovu, Jason pomalu klesá na věku. jméno Jasona, věk 14. Stejná věc se objeví. Ale my přejít na adresu URL a tyto proměnné nejsou tam. A způsob, jakým POST passes-- tak si pamatujte jak se dívat na zdroj stránky. Jdeme do sítě. My refresh. A to je další věc, která POST vám dá varování o. Jste mohli vidět pole, textové box takhle ve vašem prohlížeči. Jste si jisti, že chcete odeslat znovu formuláře? POST je to, co 's odesláním tyto formy. Vzhledem k tomu, v podstatě, když jste poslali svůj informace o kreditní kartě pro někoho, že to nebude zobrazovat v URL. To bude požadavek POST. Takže když aktualizovat stránku, je to znovuodeslání tuto žádost post. Takže teď my chceme poslat formulář znovu, protože to nebude vytvářet žádné duplicitní nákupy. A všimněte si, že tady dole, Metoda, kterou používáte, je POST. A to skutečně přenášet bajtů. Převedl 401 z nich. Program je docela malé. Ale je tu nikde, že můžeme vidět hodnoty, které jsou předány. Webové stránky samy o sobě mohou vidět, ale my jako uživatelé nejsou schopni vidět, pokud jste hacker. Pokud jste dobrý hacker, můžete se podívat. Pokud víte, že základní formát HTML, hodnoty bude se přihlásili na stránkách. Budete mít možnost vidět. Hodnoty budou tam, že jsou Jen o něco méně zřejmý pro vás přístup, v podstatě. Máme nějaký další otázky o GET, POST before--, co budeme dělat dál je vlastně podívat na některé z kódu že dáváte v pset 7, mluvit o tom, jak se používá některé z těchto pojmů, a mluvit o věci, které se chystáte muset udělat trochu ve pset 7. Nějaké další otázky před tím? Další otázky, které kluci mají? Skvělý. Dobře, pojďme se podívat trochu na pset 7, není pochyb o tom, co jsi zač vše nejvíce nadšeni. Myslím, že to je něco, David prochází trochu. Ale budeme mít tři adresáře signálů na top, stejně jako konfigurační soubor. To je pro databáze, které jsme vám mluví o asi za pět minut. Zahrnuje, už nikdy nebudete muset hledat v tomto adresáři pokud nechcete, ale je to hezké vědí, že jsou všechny druhy pomocníků. Pomocníci je jako užitečných funkcí. A pak máme config, která stanoví některé věci nahoru. Existují některé funkce, které má CS50 napsal, že jsou v pomocníka a config. A někteří z PHP, který Již ukončí v souborech bude dělat hodně z více druhu z tupé noha pracovat pro vás. Stejně jako když půjdeme do veřejné login.php, což je to, co ukáže pravdu, když jdete do pset 7. Uvidíme, že tam vyžadovat prohlášení. A to něco jako ostré zahrnují, hashtag zahrnují pokud jste na novější generace. Ale to v podstatě říká, že jsem potřebovat přístup ke všem funkcím v config.php. A vy jste mohli mít vyžadovat pro všechny druhy jiných věcí. config vlastně vyžaduje pomocníky. Takže kdykoli budete potřebovat config, vy jste také včetně nebo vyžadujících pomocníky stejně. Tak, že vám umožní přístup ke všem chladné funkce, které budeme používat, věci, jako je render. Já jsem vlastně bude zmírnit toto dole trochu. Takže funkce pak jsme bude procházet těsně předtím, než jsme se přesunout na SQL trochu bit je funkce login.php, jen protože používá některé z témat, že jsme právě mluvili v PHP. Vidíte první věc, kterou je v případě, $ _SERVER. To je další globální proměnná, která budete bude zabývat. Je to jako _GET a _POST, ale co server obsahuje toto může nechat vás vědět, jestli metoda požadavku byl GET nebo POST. Stejně jako předtím, co jsme dělali je jen v naší kód, který jsme napsali, byli jsme prostě mění, aby byl GET a POST v závislosti na tom, co je HTML. Ale existují stránky, které mohou být přistupovat s oběma typy žádostí. A možná budete chtít dělat různé věci v závislosti na typu žádosti stejně jako to dělá login. Takže si můžete ověřit, že požadavek Způsob přes přístup k klíče, přes použití klíče a dostat to Hodnota něco v slovníku _SERVER. Takže to je další celosvětový variabilní jako _GET a _POST. Pokud je to GET, chceme vykreslení přihlašovací formulář. Render je funkce, která v zásadě právě staví odpovídající HTML a předává jí některé parametry. Tento titul je parametr, který je použitý při zobrazování, kupodivu, název stránky v Otázkou je, co tady nahoře, říkat nebo ahoj v našem předchozím příkladu. Nyní máme jinou věc. Jinak pokud je to POST, my dělat některé další věci. Jsme pomocí této metody prázdnou. Není to neexistuje, je to prázdný. A my jsme viděli předtím, PHP má značné množství postavený v metodách, které v případě, že David will-- jsou metody, které jsou užitečné pro vás, budou upozorněni na vás v procházce, že David dává na začátku přehledu, a také Zamyla je užitečné bitů. Ona je zpátky všichni. Můžeme se všichni radovat. Omlouvám se, je příhodně pojmenovaný funkce že právě v podstatě vytiskne některé chybové zprávy, protože CS50 je velmi zdvořilý. A nyní toto, se jedná o choulostivé bit, protože to je místo, kde jsme dotazování databáze. Nyní jsme nemluvili o databázích. A budeme v příštím pět minut nebo tak, maximum. Ale to je funkce že CS50 napsal získat tabulku v podstatě z databáze že pracujeme s v pset 7. Jsem opravdu špatný s mým nula indexování dnes. Ale ano, je to 7. Takže dotaz bude to vrátit pole, v podstatě je klíčem bit. A protože tyto věci nemají psaní, takže řádků je pole pole. Vzhledem k tomu, když jsme přemýšlet o stůl, co budeme dělat je, jak jste se naučili v psets jako hra 15, tak jako tak kde jste museli použít double array, jsme v podstatě mají řadu dalších pole je tabulku. A máte řádků a sloupců. A pak můžete k nim přistupovat jako [0] [1], dostanete [0] [1]. Základní věci, jako je to. Takže to, co děláme zde v této funkci, ptáme databázi v případě, že uživatel, který je snaží přihlásit, že bude odeslána prostřednictvím metody POST. Uvidíme se dostáváme uživatelské jméno z _POST. Budou jste odeslali, uživatele nebo, pošle hodnotu prostřednictvím formuláře přes POST, protože je to uživatelské jméno a heslo věci. Prověřujeme uživatelské jméno vidět, je to v tabulce? Protože pokud se uživatel přihlašuje v, pak jejich uživatelské jméno by měl být uložen v tabulce Uživatelé, které existují pro tuto stránku. Takže v podstatě, pokud Uživatel je v databázi, Dotaz se chystá k návratu že řádek, který je pole. Ale choulostivé části je, že pokud i když dvojité pole je pouze jedné řady, i když je to jeden řádek array-- to, že máš basically-- pokud máte velikost jednoho pole že drží další pole, jste opravdu zabývají jednom sloupci. Ale je to stále zpracované jako dvojitá pole. A to je místo, kde to může být někdy dostat ošidné, protože máme řádky zde. Naše proměnná řádků. A pak budeme vytvářet novou proměnnou s názvem řádek a nastavení se rovná první řádek řádků. A všimněte si, že komentář říká, že je to první a jediný řádek. Tak tohle je ošemetná část, kde nyní funguje může vrátit pole velmi snadno. Tam není mallocs. Neuvidíte mallocs. Takže nebudete vidět Seg chyby. Ale funkce bude ještě absolvování kolem polí a daty ve skupinách. A musíte mít na pozoru před tím, co přesně vaše funkce vrátí. A i když je to jedno Sloupec takhle, dotaz je stále vrátit dvojité pole. Takže přístupu, který column-- nebo můžete myslet na všechno to jako převrácený protože mluvíme o řad. Ale přístup k tomuto jeden řádek, nemůžete prostě říct řádky. I když to je jeden řádek, musíte se rowsrows [0] nějak eliminovat tento vnější bit pole a mají jen vaše jeden řádek. Dělat některé další věci. K dispozici je funkce volal password_verify že ověří heslo, které bylo zaúčtováno. A pak vidíme další globální variabilní tady, _SESSION. V podstatě Session ID je, jak si udržet přehled na to, pokud někdo přihlášen, nebo ne. Takže teď s login.php, jsme přihlášení uživatele v. Takže to, co chceme udělat, je chceme říkají, že id relace je rovna řádku id, což prostě dává smysl, protože každý řádek bude mít jiný id číslo jako část tabulky. Dostaneme do SQL v Druhá, takže pokud něco z toho Zdá se, trochu jako bla, pak všichni budou vyjasněny. Ale my jdeme nastavit id rovná správnou věc, přihlášení uživatele v. Omlouváme se, pokud se něco pokazí. A to je přihlášení smysl život jako profesor Malan by řekl. Takže to byl login.php. A spousta PHP kód, který napíšete v pset 7, budou trochu. Nezapomeňte chmod na správná oprávnění. K dispozici bude trochu o že na počátku spec. Ale PHP, že jste psaní bude dělá věci, které je podobně jako tento. Budeš se přístupu na některé věci, které jsou uvedeny na vás v globální proměnné, PHP, které co do činění s aktuální přihlášený uživatel, zda existuje byly žádosti zaslané na to strana, různé věci, jako je to. A bude to také potenciálně iterace řádky této věci. V jiné funkce, dotaz dělá návrat této dvojité pole. A pokud existuje více než jeden řádků v něm, v případě, že are-- ano, je-li tam jsou více než jeden řádků v něm, pak to bude tabulka. A možná budete chtít opakovat přes řádcích tohoto pole za použití foreach smyčky, které jsme popsali. Takže pokud děláte foreach na double array, co bude word-- tady, Budu opravdu napsat. Napíšu to rychle sem. Pokud máme foreach řádků jako řádek, jaký je typ řady? Ví to někdo? Máš to? Takže řádků je dvojitý pole. Takže to, co se děje foreach odvodit že chceme z tohoto dvojího pole jestli máme iterace nad ním? Můžeme předpokládat, že v zásadě že to bude buď prvky, nebo řádky nebo sloupce, v podstatě. A tak my, řádků a sloupců může zacházet jako stejnou věc. V podstatě to, co se děje foreach smyčky udělat, je, že to bude k návratu řádků. řádek, který bude typu řadě, vzhledem k tomu, řádků je dvojitý pole. Takže pokud dáte foreach dvojitá pole, to je nebude přecházet více než jednu úroveň hluboko. Což je v podstatě říci, zda tam je osm buňky v této table-- 1,2, 3 4, 5, 6, 7, 8-- foreach smyčky není jít přes každého z těchto buněk. Co foreach smyčky bude dělat bylo to půjde přes tento řádek vám celý tento řádek. A pak to bude jít přes tento řádek. Takže to jen opakuje jednu úroveň hluboké. Máte-li přidat vnořené foreach smyčky, pak se může léčit každý řádek vrácený z řádky, činíte foreach řádek jako prvek, řekněme. A pak můžete echo prvek. Takže to je stručný malý opakovací o tom, jak můžete používat foreach smyčky v rámci dotazu. Jsou nějaké otázky týkající PHP? Cokoliv před my přejít na mluvit o SQL a legraci z databáze? Cítit se dobře? Cítit se dobře. Dobře. Pojďme zpět k PowerPoint, které budete pravděpodobně chybět. SQL, yay. Lidé, kteří jsou ve svém oddíle typicky bude vědět, že Podpoložky zkratek jsou vždy jen první slova Myslím si, že z tohoto zápasu, který algorithm-- tuto zkratku. Není to algoritmus. Takže SQL je databáze. Je to jazyk, který pracuje s databází. A všechny databáze jsou je stoly, alespoň v cestě že SQL zastupuje je. Další způsob, jak přemýšlet o databázích databáze jsou sada klíčů a hodnot v podstatě. Můžete si myslet o databázi jako slovník a také jako stůl. V podstatě je to způsob, jak spojit různá data s dalšími daty, často prostřednictvím řádků a sloupců. A to je způsob, jakým to je SQL funguje nejlépe. Takže toto je jeden příklad tabulky. Mám několik příkladů lidé v mém oddílu, který Neměl jsem čas na změnu. Ale máme věci, jako je ID, jméno, velmoc, a rodné město. Já nevím, kde je někdo z mého oddílu, tak jsem jen tak předpokládat, všichni jsou z New Yorku Město proto, že mám vysoký statistický pravděpodobnost, že budou v pořádku. SQL automaticky brát péče o sloupci ID pro vás. Pokud vložíte nový řádek do SQL databáze, se bude zvyšovat, že ID číslo a jen v podstatě držet asi pět jmen, velmoc, rodné město, kdo na konci této tabulky. Takže číslo je sloupec, budete nikdy nebudete muset bát. Avšak, stejně jako v případě z login.php, když jsme dostávali ID relace z tabulky, a jen pomocí ID, ID je způsob, jak jednoznačně identifikovat prvek databáze. Takže pokud jsme měli dva Sams, oba který učil CS50, a oba kdo byli z Milwaukee, ti by Stále mají odlišné identifikační čísla a být tak zřetelný v kontext tabulky. Takže tohle je to, co SQL se zabývá s, práce s na zadním konci. Nyní to jsou čtyři příkazy že budete muset pracovat s SQL. A Hodil jsem je všechny na jednom snímku. Ale my jdeme projít je všechny jednotlivě. První příkaz je UPDATE, který dělá to, co byste mohli očekávat. Řekněme, že máte nějaké data tabulku, která je zastaralý. Stejně jako v případě, že jste udržet track jmen lidí a stáří, pokud je někdo věk se zvyšuje, pak budete chtít jít dovnitř a aktualizovat věk Jen to, že osoby. Pro příklad, který pracuje s naší první table-- nebojte se o psaní všem tyto příkazy ve stejnou dobu. Ale pokud máte aktualizace dolů, že to bude dobré pro tuto část, proto, že budeme přejít zpět ke stolu. Takže když jdeme zpět ke stolu, řekněme, něco, co se stalo tam bylo zemětřesení nebo zlomová linie, která rozdělila přímo přes New York City. A chtěli jsme aktualizovat každý který žil v New Yorku. Všichni museli přestěhovat do Pensylvánie. To není rodné město. Všichni museli přestěhovat do New Haven. Tam jedeme. Takže všichni v New Yorku se stěhuje do New Haven. A tak to je něco, co je editaci tři řádky v této tabulce. Ale v SQL, můžete tak učinit že jen v jednom prohlášení. Tak jsme se vrátit k aktualizaci. Dovolte mi, abych rychle opět smazat tuto desku. Když mluvíme o aktualizace, existují několik částí syntaxe, které jsou klíčové. No, syntax je klíčové. Ale věci zeleně je volitelné. Bílá jsou požadovány, jako předdefinované názvy. A světle modrá jsou věci, které se liší v závislosti na stole. Tak to je to, co se děje s Barevnost tady, tam nahoře. Takže pokud chceme aktualizovat pouze ty řádky, lidí, kteří žijí v New Yorku, tak co budeme dělat, když jsme si řekli, UPDATE? Tak stůl je místo, kde klademe jméno našeho stolu. Řekněme, že jméno z našeho stolu je stůl jednou. Takže chceme aktualizovat tabulku jeden. A chceme set-- co chceme nastavit? No chceme říci, tak column-- PHP zachází řádky jako jediné identifikátory. A pak sloupce různých oblastech z těch prvků databáze. Takže první prvek databáze má jméno Sam, velmoc CS50, a rodné město Milwaukee. Takže když jsme si řekli nastavena, pojďme se podívat na opět nastavené parametry, které trvá. Máme sloupec se rovná hodnotě. Takže chceme říkají někteří column-- který pamatovat je field-- chceme vidět Pole se rovná něco nového. Takže když jsme se právě řekl aktualizace tabulka 1, nastavení jména rovný Elliot. Získat nějaké lidi z Nová sekce na toto téma. Ale pokud jsme právě udělal aktualizace tabulka 1 nastavit název rovný Elliot, co by tabulka vypadá po tom? Lidé mají nějaký nápad? To jo. Diváků: Všechno v tom, že řádek by se stal Elliot. SPEAKER: Všechno, v níž řadě? Publikum: V prvním řádku. SPEAKER: V první řadě? Proč první řádek? Nechci, aby vyzvednout na vás. Publikum: Možná, že všechno V celé tabulky? SPEAKER: Všechno, co v celá tabulka, ano. A to je přesně to pravé protože-- I Zrovna který vám pomůže ven trochu there-- protože jsme vynechat volitelná klauzule WHERE. Pokud nemáte Kde klauzule, co tento příkaz bude dělat Je to bude fungovat s každým jeden řádek v tabulce. Jméno každého z nás bude stanou Elliott, v podstatě, což Elliot je velmi šťastný, o. Nebo Yanni, jeden ze dvou. Ale jméno každého z nás se bude měnit. Způsob, jakým používáme WHERE clause-- a to se vztahuje na všechny wheres které jsou v každém z tyto různé věci. Tak zjistíte, že SET má sloupce stejnou hodnotu. A tak se WHERE. Ale to jsou různé typů příkazů. Takže sloupec se rovná hodnotě v SET je v zadání. Stejně jako my chceme říkat nastavit jméno rovnající se Elliot. Ale v doložek, kdy, jsou to výroky rovnosti. Takže řekněme, že jsme chtěli jen změnit jméno osoby do Elliot pokud je jejich jméno bylo Ryan, řekněme. Takže když říkáme WHERE name rovná Ryan, že by úspěšně Jediná změna name-- to by jen změnit název pole v řádcích kde je název pole je rovno Ryan. Takže pokud jsme měli několik lidí jmenoval Ryana, všechny jejich názvy by se změnila na Elliota. To je podobné jako v příkladu na to, pokud zlomová linie rozdělí New York City, a každý má přesunout do New Haven, tak, jak je v našich silách tomu, že v jednom příkazu je UPDATE table1 SET rodné město = New Haven kde rodné město rovná se New York City. To je síla příkaz UPDATE. Můžeme si vybrat libovolný počet Řádky skrze pravdivé prohlášení o polích v těchto řádcích. Nemůžeme říci UPDATE table1 set name = Elliot WHERE řada = 1, kromě toho, že můžeme řekneme-li, ID = 1. Takže budeme mít práce s rovností polí, rovnost sloupců. Ale za použití pole ID je způsob, jak vybrat jednotlivé řádky specificky, protože ID pole je jedinečný identifikátor v databázi SQL. Tak jako aktualizace řádek jednu, ID = 1. Aktualizace druhé řadě, jen změňte toto číslo. Ale síla z KDE prohlášení, je, že jsme můžete aktualizovat věci podle toho, co jejich aktuální hodnoty některé věci jsou. Ano Elliot? Diváků: A co když chcete to-- Znovu, to je jiná otázka. Ale moje první otázka byla, kde se to děje? Kde mám aktualizovat to? Je to v PHP kód? SPEAKER: Kde aktualizovat, ano. Budeme mluvit o tom, kde to všechno se stane, druh, jakmile jsme jít přes všechny příkazy. Ale to, co potřebujete vím, prozatím je v podstatě že vaše SQL databáze existuje jako něco, , které mají být přístupné dotazu Funkce, která definuje CS50. Takže pokud použijete funkci dotazu, můžete přístup k této tabulce. Takže budete posílat tyto příkazy ke svému stolu v PHP soubory pomocí funkce dotazu. Můžete si také pohrát s tabulkou přímo. A to je nejlepší způsob, jak testování těchto druhy příkazů. A půjdeme přes přesně, jak k tomu, že v jen trochu. Tak to je příkaz UPDATE. A zbytek příkazů se bude nějak podobné, pracují na podobných věcech. INSERT INTO je pravděpodobně nejvíce liší od UPDATE. Chystám se nechat, že tam pro jen trochu a pracovat tady. Takže INSERT INTO, uvidíte že tabulka je stále stejný. Chcete-li vložit do. Kapitalizace, SQL je malá a velká písmena. Takže se nemusíte kapitalizovat tyto věci. Podle konvence slova v bílém je aktivováno. Ale také barevně rozlišeny je. Jediný důvod, že jste vydělávat ti, když jste jim psaní je jen pro zdůraznění že to jsou konstanty. A tak si můžete buď prohlédnout kapitalizace nebo skutečnost, že jsem je barevný rozdílně. Takže máme vložit do, pojďme udělat table1 znovu. To vše je na jednom řádku. Jen jsem oddělující jej různé příkazy. Takže se nemusíte starat o tom, že table1 dělal to na druhém řádku. Takže chceme INSERT INTO tabulka1 některé hodnoty. A všimněte si, volitelný bit, který se dostanu do druhé. Takže máme hodnoty. Takže řekněme, že chceme přidat Andi k našemu stolu, protože nám chybí Andi. Andi je nemocný. Takže pojďme se přidat Andi k našemu stolu. Pamatujte si, že identifikační číslo se automaticky aktualizuje. Takže jediný polí my muset starat o jsou jméno, velmoc, a rodné město. A tak tak, že to uděláme, při pohledu na naši syntaxi, je máme právě dostal závorky, s čárkou hodnoty oddělené, přičemž každý z nich je hodnota. Takže pokud bychom chtěli vložit Andi do naší stůl, všechno, co musíme udělat, je pravým Andi. Co je Andi supervelmocí, lidé v sekci Andi? Ona ráda let, nebo rád rychlost, nebo tak něco. Co už máme tam nahoře? Máme CS50, letu, rychlost a síla. Diváků: Cestování v čase. SPEAKER: Cestování časem, úžasné. Takže máme Andi, čas cestování, a její rodné město. To je opravdu dobrá otázka. New York City, pokud někdo ví. Každý, kdo je z New York je lekce, aby od dnešního dne. Takže toto prohlášení by vložka, jako páté řadě, s cestováním supervelmocí čase a rodné město New York City. Ale volitelné pole je v podstatě způsob, přesně specifikovat, které sloupce Chcete-li vložit věci. Způsob, jakým to děláme nyní, Andi, cestování v čase, New York City, se děje v přesném pořadí našeho table-- jméno, velmoc, rodné město. A pokud byste chtěli dělat něco jiného než to, stejně jako, že jste nevěděli, něčí supervelmoc, jako jak Nevěděl jsem, že Andi to velmoc na začátku. Takže všechno, co jsem věděl, že jí byl pojmenovat a její rodné město. To, co jsem mohl udělat, je, že jsem mohl do-- Budu vymazat to rychlé. Chci jen aktualizovat sloupce. A to je místo, kde volitelný Seznam sloupců vstoupí do hry. Já jen chci, aby aktualizovat jméno a rodné město. A pak řeknu hodnoty. Udělám Andi a New York City. Kdybych vynechal seznam sloupců a právě udělal tyto dvě věci, kde by se New York City šel? Který sloupec by New York Město je umístěno do? Lidé mají nějaký nápad? Velmoc, přesně tak. Takže to bude jen jít v pořadí. A jakmile dosáhne konce seznam, bude to zastavit vyplněním věci. A hodnoty, které to bude držet v všechny sloupce bude jen NULL. Takže protože jsme upřesnili jméno a rodné město, budeme mít ID 5, jméno Andi, velmoc NULL. Takže velmoc je neinicializovaná hodnotu. Nebudete nutně dostat Stejné Valgrind chyby, pokud se pokusíte a přístupu k němu. Vše bude hezky vynulována out, neboť NULL je hodnota v SQL. To je konstantní. A pak rodné město bude New York City. Tak to je INSERT INTO příkazu. Ještě než se vrhneme, je tu další dva příkazy. Ještě lidé mít jakékoli otázky týkající UPDATE, o INSERT INTO, o SQL obvykle dříve než přejdeme na naše konečné kousky? Lidé se cítí dobře, skvěle. Miluji to. Tak pojďme mluvit o SELECT. Chystáte se zoufalý UPDATE tady. A SELECT bude velmi podobné. Cílem SELECT, Účelem SELECT v životě je poskytnout vám spoustu sloupců které splňují určité podmínky. A když říkám uspokojit určité podmínky, vaše mysl by mohla okamžitě se vrátit k tomu klauzuli WHERE který přišel v UPDATE. A to doložka přesně tam v SELECT. Pokud se nám nepodaří dát Kde doložka a říkáme SELECT jméno, hometown-- špalda, že malá wrong-- jméno, rodné město FROM Tabulka1. Pokud budeme jen říct, že to, co SELECT se chystá dát nám je, že je to bude nám dávají double-- tabulku, spíše. Dvojité pole když jsme myslet v PHP cítí. Ale je to jen tak nám dávají dvojitá řada dvou columns-- jména, a rodné město. A bude ignorovat ID. A bude ignorovat supervelmoci. A bude to nám stačí dát každý jeden řádek tabulky. Takže když jsme prostě vložena Andi, budeme mít Andi. A budeme mít původní čtyři. Pokud by už byla aktualizována, že bude odrazí, a tak dále, a tak dále. Takže je to proto, že jsme nepoužil klauzuli WHERE. Ale můžeme ji použít v přesně Stejně tak jsme se používal to v UPDATE. Pokud chceme jen tabulku jmen a supervelmoci lidí žijících v New Yorku, můžeme spustit příkaz jako SELECT jméno, superpower-- Já jsem prostě jít k odchodu that-- FROM tabulka1 KDE rodné město = New York City. Tak tohle jde ukázat, že je možné získat zcela různých sloupců, a pak dal sloupce, že nejste i dostat se zpátky v klauzuli WHERE. Nechceme ani chcete, rodné město každého. Ale my chceme jméno a velmoc lidí jejíž rodné město je New York City. Tak to je něco, co dá dělat s WHERE klauzule je, že jsme si umí poradit se sloupy že nemusí nutně chtít zpátky. Stejně tak v UPDATE, můžeme řešit se sloupy, co děláme, není nutně Chcete aktualizovat. Můžeme aktualizovat město každého kdo je jméno je Sam, například. Můžeme aktualizovat město Každý, jehož identifikační číslo 2. Takže jen aktualizovat Město druhé řady kde nemáme co do činění s nezbytná častá otázka. A DELETE je, jak byste Očekáváme, DELETE FROM tabulka1. A pak máme další klauzuli WHERE. Takže můžeme říci, kde ID = 1. Odstraňte první řádek. A DELETE bude vždy odstranit řádek, nebo to bude vymazat určitý počet řádků. DELETE FROM stolu, kde rodné město = New York City smaže všechny v New Yorku. To je v případě, že byl náhlé tragické mor a vy jen chtěl odstranit každý z tabulky, která žil v určitém městě který byl zasažen morem. Nechť odpočívá v pokoji. To jsou čtyři SQL příkazy že budete muset použít. Dalo by se ani nemusíte používat všechny. Ale to jsou čtyři že CS50 vás očekává, být pohodlné s jít do jak kvíz 1 a také pset7 a pset8. Je tu opět jen, že tabulka. V tomto jediném, Roy je supervelmoc má byl aktualizován na laserové paprsky, které se je příklad jsem nepoužil. Nevím, který z nich Roy preferuje, ale síla. Roy má supervelmoci síly. Katherine nedělal to dnes. To je nešťastné. Ale ona má super rychlost. No, to bylo PHP. Předtím, než budeme mluvit o MVC, dělá někdo máte otázky ohledně PHP? Nyní SQL, PHP, nebo pokud se náhle máte přijít s otázkou o PHP? Skvělý. Dobře, máme vše nastaveno poté. Tak mluví trochu o regulátory pohledem modelu, vraťme se k některým o věci v pset7. Takže to, co pohled modelu Regulátor je-- Nejsem zachrání své změny se přihlásit proto, že jsem totálně porážel jej. Ale v podstatě máme dvě oddělené věci děje. Máme veřejnost adresář, který obsahuje kód, který se bude popraven a webové stránky, které budou navštívili. A máme také tento adresář názory. A pohledy obsahuje šablony. To je to, co je funkce render-- jsme viděli omítky Funkce v banda PHP kódu že CS50 již napsal pro vás, že se v některých parametrech. Co že je tento kód dělá Je to bude do pohledů, které jsou soubory jako prewritten HTML kód, a to vložením hodnoty do určitých místech. To je, jak když vás jít do CS50 Finance, stejné záhlaví je na každé stránce. Stejný zápatí je na každé stránce. To je proto, že na cestě která způsobí, že práce je to bude automaticky opravit v tomto záhlaví a divák, který můžete najít v pohledech. Vlastně jsme se jít do hlavičky, a vypadat, je to soubor HTML s hlavou. Má to několik stylů. Nemusíte se dívat na CSS pro pset7, pokud nechcete. Ale můžete změnit je, pokud chcete, aby Váš Finance vypadat trochu jinak. Má to nějaký PHP v hlavička trochu vidět pokud tam je jiný název to by mělo dát v tomto záhlaví. Ale jen některé jiné skripty, a odkazy, a další věci. Hlava skončí, začne tělo, a oops, máme takový divný malý koncový bit. A je tu div, stejně jako beztvarý druh prvku že má představu o uprostřed. A pak, když vidíme, zápatí, máme konec div. Máme dno, což je kde text zápatí. Konec div, konec těla, konec HTML. Takže to, co činí, je dělá, je poskytnout, je druh záplatování up hlavičky, je jiný PHP soubor, který bude obsahovat skutečné věci, které budete prohlížet, stejně jako váš stůl zásob pokud jste nákup nebo prodej akcií. A pak to bude přidat do zápatí. A pohled modelu Regulátor představa je, že jsme chcete oddělit, jak věci vypadají z kódu. Je to chceme oddělit frontend a backend, kde je frontend věci, které uživatel vidí, pěkné visuals-- HTML, CSS, takové věci, obrazy, et cetera. A backend je PHP. To je kód, který píšete. To je místo, kde kód, který je dělá skutečné operace. To je, když přidáváte akcie na váš stůl, když kupujete a prodejní, to je backend. A můžeme, jak jste viděli, včetně PHP přímo v HTML. Takže to, co jsme mohli udělat pro Tento úkol je prostě musel HTML soubor pro každou stránku, jako je přihlášení. A pak se na této stránce, stačí měl obrovský blok PHP kódu, včetně všech kódu, který že strana by specificky potřebovat. A pak bychom mohli mít udělal pro portfolio. Mohli jsme udělali vše o nákupu a prodeje v rámci jednotlivých stránek. Ale proto, že jsme vykreslování odděleně od místa, kde budeme psát backend kódu, můžeme snadno změnit způsob, jakým se věci vypadají bez mění každý jeden soubor. Děláme věci, jako je jen přidat nový div ke dnu of-- Dobrý den, jsem upravil zápatí. Stačí si jen dělat věci takhle. Ale také můžete změnit celý vizuální rozvržení aniž by to ovlivnilo to, co je děje v backend. A můžete změnit Celý backend a stále mít to vypadat stejně jako to udělal předtím. Tento Je myšlenka pohledu modelu regulátoru. A je to vlastně uložena paradigma v některých programovacích jazyků možná budete chtít použít pro konečné projekty. Pokud tak učiníte iOS vývoj, Mají výhled, což je to, co vidíte na iPhone, a pak backend jako jako samostatnou věc. Můžete si myslet o trochu. Je tu spousta binárních souborů v počítačové vědy, což je legrační, protože všechno je v binární. Nechtěl jsem v plánu to. To byl hříčka neúmyslné. Ano, slovní hříčka není určena. Ale stejně jako .h soubory a soubory .c, je tu spousta odlučování věcí, které jsme nemusí potřebovat. Takže můžeme jen upravit h soubory, nebo někdo může jen vidět h souboru a vím, přesně ty funkce, které jsou v .c soubor, aniž by nutně vědět, jejich realizace. Tato myšlenka oddělování složek že na sobě vzájemně závislé ale může nějak přístup k sobě navzájem prostřednictvím různých kanálů, absolvování proměnných, jen obsahují prohlášení, věci, jako to, že tato zásada pomáhá vytvářet aplikace , které mohou být snadněji editoval více lidmi, může být více snadno změnit nebo změněna na velkém měřítku, a lépe se ladění v mnoha směrech. Opravdu rychlý, mám několik tipů pro pset7, což udělám na celou obrazovku, takže vás nebude jen při pohledu na the-- Tip Tip tipu. Existuje není tak mnoho tipů. Ale Zmínil jsem PHP je těžké ladění. Dvoulůžkové a třílůžkové zkontrolovat. Pokud váš kód je prostě není objevovat na stránce, jedná se pravděpodobně o chybu PHP, sorry. Už nikdy nebudete muset podívat se na CSS, pokud nechcete. Ale jakmile budete hotovi, to může být pěkný malý zábavná věc, kterou prostě jít a nepořádek s CSS parametry. CSS a HTML jsou příkladem modelu pohled regulátor styl věc taky, že jo? Ty by mohly mít tagy stylu uvnitř HTML prvků. Ale pokud se tak nějak outsourcing je na CSS, oni jsou snadnější upravovat a hra kolem a bavit se. Dopřejte CS50 pomocník funguje jako černé skříňky. Nemusíte vědět přesně to, co činí dělá, ale věřte, že vždycky právo to v závislosti na tom, co si to projít, věci, jako je tento. A já bych doporučit sledoval Davida návod, procházejí všechny stuff, nejen todos, ale opravdu může léčit Tyto jako černé skříňky. Nechoďte do těchto Funkce hledá chyby. A vítají návrat naše vládce Zamyla. Skvělý. Jsou nějaké otázky, než závěrečná jsme se nějak odrazit na den? Jsem stále žijí? Skvělý. Ahoj LiveStream lidí. Skvělý. Jsou tam ještě otázky? Žádný? A pak jsem si, že jsme dobré jít na dnešek. Budu držet kolem trochu později, když lidé měli dotazy báli se zeptat na potoku. Ale jinak, dobrý den.