SAM LEVATICH: Vitajte na Sekcia pre tento týždeň. Nie som Andi. Andi onemocnel tento deň, a ja Boli druh volal v poslednej chvíli prevziať. Je to chrípková sezóna, takže sa uistite, že ste zostávajú čisté, umývanie rúk, a jesť zdravo, aby Tie taky, nie sú pripútaný na lôžko. Ale bez ďalšieho ado, poďme začať. Dnes budeme hovoriť o PHP trochu bit-- ako PHP sa vzťahuje k HTML, ako ju sa týka CSS, a niektoré z rúna veci si urobil na poslednú úlohu. Budeme hovoriť Niečo málo o SQL a ako môžete pracovať s databázami, čo je celkom kľúčovou zložkou P set 8-- P set 7. P set 7. A potom budeme hovoriť trochu bit o tom, ako radiče zobrazenie fungujú a prečo to je filozofia za niektoré Moderné webové stránky a odlišná konštrukcia. Celkom veľa veľa typov aplikácií a aplikácie, ktoré by mohlo loď sú pomocou tohto modelu, pohľad rámec regulátor, že budete používať P set 7, takže budem trochu pohovoriť o tom, prečo že to stáť obľúbený, prečo je to dôležité a pekné. A potom budem konečne prejsť na niektoré tipy o riešení P set 7. A ak budeme mať čas zostane na konci, vlastne môžeme urobiť nejaké na tom pracovať spoločne. Takže, PHP. V skutočnosti, možno ste si všimli tohle-- ste naozaj nemal ponoriť do to-- ale P sada 6 mal nejaký PHP kód, ktorý sa deje. A pretože PHP je C-like jazyk, PHP, na rozdiel od HTML a CSS, je programovací jazyk, vzhľadom k tomu, HTML a CSS sú statické. Sú značkovacie jazyky, ktoré sa zaoberajú so štýlom a vizuálne rozvrhnutie. PHP je real deal. PHP má slučky, má conditions-- všetky tie veci, ktoré je zábavné o C. To má niekoľko vecí, ktoré sú trochu trochu lepší než C, ktorý uvidíme, ale myslím, že najjednoduchší spôsob, ako hovoriť o PHP je len do toho ponoriť. Takže ja idem doprava do IDE v tomto bode. Prvá vec, ktorú ideme urobiť, je skutočne vyzerať trochu na niektoré z PHP kód, ktorý bol v P set 6. Takže spôsob, akým robíme that-- pred, tak, že sme sa systémom server pre spotrebiče bolo to, že budeme musieť type-- buď použiť implementácia alebo implementáciu personálu z server.c tým, že ide do adresára a beží server.c buď bez arguments-- takže stačí zavolať ho na miestnej hostiteľ, čo je to, čo ste pravdepodobne robil väčšinu time-- a potom ju kŕmenie directory-- s pre použitie ako koreňu Ak internetová stránka by spustiť, v podstate. Tento týždeň pre P set 7, as veľký ako náš kód pre server.c je, že tam sú ľudia, ktorí majú už napísal tieto jemné veci znovu na CS50 že majú trochu viac funkcií, server program, ktorý je schopný vysporiadať sa s trochu viac zo zložitosti, že budeme pozri v oboch P set 7 a P set 8. A to tak, že začnete sa zriaďuje Server je jednoduchým zadaním, "apache50." A predtým, než začnete robiť niečo, si chcete byť istý, že Apache 50 nie je už beží ako je na mojom stroji, ktoré som urobil to vyskúšať. A to tak, že volá apache50. Zastaviť, a uvidíte, že sa to zastaviť webový server, ak sa môžete pozrieť tu v dolnej časti okna terminálu. A potom už len začať, my sme Zavolám, "apache50 začať." A potom pôjdeme kŕmiť to adresár. A teraz, pretože chceme sa pozrieť na niektoré z P set 6 kód že sme mali zavedený, som vlastne kopírovať trochu P set 6 Kód do vlastného adresára, ktoré môžete vidieť na ľavej strane tam. Hovorí sa tomu "SECTION8" veľkými písmenami pretože ja som len tak nadšený bude naživo prenášané dnes. Takže keď sme sa spustiť tento, by mal všetci celkom efektívne pracovať. Hovorí, OK, ale naše stránky sú teraz k dispozícii na adrese IDE, v podstate, čo je to, čo ste používali presne tak, ako to bolo v P set 7-- P set 6. Všetky moje indexy sú jedným index dnes. Takže môžeme ísť na to adresa, ak budete pamätať, jednoduchým kliknutím tento malý tlačidlo v pravom hornom rohu. A budete vyvolať tento kód, ktorý sa stalo, keď ste šiel do hello.php. A to, čo kód je navrhnutý tak, urobiť, je, keď ste zadali v názve here-- keď poviete Sam pretože to je moja name-- a ja kliknite na pozdraviť, keď sme sa vydali na ďalšiu stránku, tento názov mal byť zobrazený. Bolo by povedal: "Ahoj, Sam" alebo "Dobrý deň," čo si len spomeniete dať do toho, aj keď sme sa vydali do úplne novej webovej stránky. A to je ten druh vecí, že PHP môže urobiť pre vás. PHP je schopná odovzdať dáta medzi dvoma webových stránok. To je úplne iný stránky. Uvidíte titul je "ahoj" sem. V skutočnosti, že majú rovnaký názov, ale ja sľubujú, že sú iný webový Stránky, keď sa pozrieme na zdroje. A môžete odovzdať dáta, ktoré je zapíšu do tohto textového poľa, ju predloží k ďalšej Stránka, ktorá sa práve zavolal, a potom sa, že dáta je schopný tam byť vo svojej súčasnej podobe. Teraz sme doteraz nebol realizovaný to sami, čo je to, čo budeme robiť práve teraz sort dostať chuť na to, ako PHP funguje, ale kľúčové myšlienkou je, že môžete PHP-- nejako myslieť na to ako funkcia. Niečo, čo PHP môže nechať vás to je to môže trvať parametre že zadáte do HTML stránky pomocou PHP a foriem, a že môže prechádzať tie, ktoré sú parametre na ďalšiu stránku, ktorá načíta hore. V tomto prípade, my naloženie do tejto stránka s tlačidlom "pozdraviť". Ale teraz, som vlastne vypúšťa niektoré z tohto kódexu v hello.php, ktorý bol spustený , Ktorá bola skutočne zobrazenie "Hello, svet "alebo" ahoj, Sam ", alebo "Dobrý deň," čo bolo len vstup. Takže teraz, my sme robiť to, v podstate. Chystáme sa obnoviť, že a tiež pridať nejaké ďalšie funkcie, urobiť trochu viac s tým, pozri čo PHP je naozaj schopný. Takže najprv, poďme hovoriť o Tento súbor, hello.php. Takže keď sme sa priblížiť v málo bit-- a teraz som nejako sa snaží posúvať všetky ako around-- tam ideme. Uvidíte, že sa volá hello.php, ale syntaxe to vyzerá ako súbor HTML. To je preto, že Skutočná PHP v tomto súbore všetko je prilepené medzi nimi otáznik-strieška bloky. Všetko tu je považovaný za PHP kód. A všimnite si, že keď som urobil poznámku, uvidíte známe dvoch lomky. A ak ste si spomínam, v HTML, keď som zadajte komentár, vyzerá to niečo bližšie k to, čo je komentár v HTML. Takže naozaj všetko medzi tieto dve lomené zátvorky Teraz je PHP kód, ktorý sa odráža v tom, že tento malý komentár symbolu sa obrátil na poznámku. Takže zakaždým, keď písať PHP kód, dokonca aj v prípade, že to nie je HTML kód mimo neho, vždy to bude uzavreté v týchto hranatých zátvorkách s otáznikmi. Môžete nejako premýšľať o tom, ako sa to všetko to-- kódu, ktorý bežal vo svojich programoch C bol uzavretý v int main, prázdnote, zložená zátvorka, koniec kučeravé vyhlásenie zátvorka. A uvidíte zložené zátvorky v PHP, taky, ale je to druh ako hlavný metódu PHP. Takže teraz, ako to urobíme niečo v PHP? Teraz, PHP je programovací Jazyk, ktorý je veľmi C-like, ale pôsobí na webe. Takže jedna vec, ktorá budete immediately-- jeden z prvých vecí, ktorú naozaj s C bol tlačíte veci von, že jo? Takže v C sme urobili s funkciou printf. Dali sme to reťazec, Pravdepodobne s novou linkou, a potom sme ukončený to sa bodkočiarkou. Takže tak, že budeme robiť, že v PHP-- pretože to nie je úplne printf. Je to trochu odlišnú syntaxou. Mimochodom, že tlačíme veci v PHP je hovoríme, "echo ahoj" alebo "echo" akékoľvek slovo. A to má za následok, robí printf s reťazcom "Dobrý deň." A pridáva novú radu na to. Takže poďme teraz robiť sure-- Budem oddialiť opäť trochu bit-- poďme sa uistite, že že tento kód pracuje pretože tam by mohlo veľmi dobre byť chyba v tomto kóde že budeme musieť riešiť. Takže server je už spustená. Takže keď sme sa posunúť späť na dno, Jo, je server stále beží. Takže keď sme sa len kliknite na túto tému trochu vpravo here-- welcome-- by sme mali get-- skvele. Stále sa majúci oboznámený "Pozdravuj" dialóg, ale keď som zadajte "Ahoj," uvidíme, že text "ahoj" bol vskutku vytlačiť, ktorá je presne tak, ako sme očakávali, pretože echo v PHP je rovnako ako vyhlásenie printf. Takže späť do kódu, ako v P sada 6 urobil distribúcia kódu máte k dispozícii aby to tak, že by PHP Výstup vec, ktorá vás zadali na predchádzajúcej obrazovke? A tak nejako preskúmať prečo sa to stane, my sme ísť do index.html, ktorý je pôvodný súbor, súbor, ktorý sa objaví na obrazovke s tlačidlom "pozdraviť". Všimnite si, že je tu všetky klasické veci sme si zvykli očakávať od takého HTML ako tieto veci, tieto značky uzavretý v lomených zátvorkách, ako PHP ale bez otázniky, čo znamená zvláštna vec do formátu HTML. Máme titul, čo je "ahoj." A všimnite si, že ako sme videli, titul je "ahoj" v oboch prípadoch. Zmeňme tohle na "hovoria" Práve preto sme môžu odlíšiť, kde sme. Ale my máme telo. A potom zaujímavý kúsok sa bit, ktorý sa objaví v HTML, je táto forma element. A tak máme formulár. A to je kľúč. To je, ako pracujeme s PHP. Akcia parameter forma hovorí, že hello.php je to, čo budeme posielať Hodnoty v tejto podobe sa. To je miesto, kde sme okolo parametre, aby som tak povedal. Všimnite si, ďalšia vec tu je to, že metóda je "sa". Existujú dva primárne Metódy, ktoré budú byť pomocou PHP na odovzdanie dát medzi websites-- webových stránok, rather-- v tejto úlohe. A tieto metódy sú "dostať" a "príspevok." Tam sú niektoré jemné Rozdiely medzi get a poštou že budeme mať my into-- sa "dostať" do, ak chcete. Ale pre všetky zámery a účely, get a pošta sú obaja len spôsoby, odovzdáte parametre s ľahko rôznych prevedeniach. Pre túto chvíľu, budeme používať dostať, pretože dostať to, čo bolo pôvodne použité v súbore PHP P nastavená 6. A vlastne, keď sme ísť a pozerať sa Než sme sa upravovať niečo iné, Ja som chcel povedať ahoj to-- Ako sa voláte? Divákov: Elliot. SAM LEVATICH: Ach, bože. Neviem, ako sa píše, že. Mohol by ste hláskovať to pre mňa? Divákov: E-L-L-I-O-T. SAM LEVATICH: I-O-T? Divákov: Jo. SAM LEVATICH: Perfect. OK. Myslím, že som vedel, ako sa píše, že. Ospravedlňujem sa za to. Ak hovoríme "Povedz ahoj," to nie je že to nebude zobrazovať na obrazovke ale keďže sme upravili kód trochu. Ale ak sa nám "Pozdrav" - OK, tak "ahoj" je tu. Ale ak vezmeme sa bližšie pozrite sa na samotné URL, uvidíme, že to skončí s hello.php? name = Elliot. Takže, to je spôsob komunikujúce na nasledujúcej webovej stránke parametre, ktoré sme prešli. Povedali sme name = Elliot. A to je to, ako nakoniec P set 6 pristupovať premenné, ktoré sme prešli v prostredníctvom formulára. A to je niečo, je typické pre požiadavku GET. Požiadavka GET robí parametre známy v URL webu. A budete pripomenúť, taky, v P set 6, ktorá vás musel napísať funkciu že sa zaoberal tým, že tento dotaz reťazca môže existovať po súbore. Tam by mohlo byť otáznik nasledovaný by v podstate ľubovoľný počet znakov. A to je presne to, čo sa tu deje. A dôvod, prečo by ste mali analyzovať, že v realizácii server.c v P set 6 je tak, že by ste mohli povedať, PHP kód, ktorý Name = Elliot. Potreboval ste byť schopní analyzovať, že z adresy URL tak, aby súbor PHP dotyčný vedel, čo to sa zaoberal. Tak dúfajme, že to dáva motivácia server.c teraz, keď sme pohybujúce sa na mimo C do PHP. Takže poďme sa zamerať na skutočne prístupom do čo prešiel žiadosti Získajte teraz v tomto bode. Chystám sa zachrániť to. My sme nič nemení. Vyzerá to, že máme vstupné pole. Sme nastaviť niektoré vlastnosti, ako môžeme urobiť HTML. Jedná sa o jednoduché veci. Nepotrebujeme to. Ale máme autocomplete off, ktorý v podstate says-- viete, keď napíšete niečo do webu, niekedy sa snaží naplniť, že pre vás. Takže je to pekná vec. Chceme ho vypnúť pre tento účel. To bolo rozhodnutie o CS50. Takže môžeme zmazať, že ak by sme chceli. Autofocus len palice kurzor v tvare pri začiatku. Opäť platí, že nie je príliš dôležitý. Ale name = "meno" - to je trochu zložitejšie, pretože jeho meno a meno. Ale mohli by sme zmenili to k niečomu inému. A v skutočnosti, to je Čo budeme robiť teraz. Povieme "osoba", ktorý je niečo ako mená v prípade, že osoba je definovaná ich mená. Takže poďme uzavrieť toto, znovu sa naše webové stránky pretože náš server stále beží Apache 50, a budeme hovoriť, haló, tu je Elliot znova. Prečo nie? Dobrý deň. A ak pôjdeme tu, uvidíme potom miesto mená = Elliot, sa hovorí, že človek = Elliot. A to je priamym dôsledkom skutočnosti, že sme práve zmenili name = "človeka." Takže vo vstupnom prvku Formulár HTML, názov poľa je identifikátor pre parameter, ktorý je odovzdávaný. Je to ako, keď budete vytvárať funkcie "add", ktoré sa v dvoch celých čísel a ste povedal, int a a b int. To by bol názov a, a ak ste chceli iný formulár, ktorý môžeme urobiť len tým, kopírovanie a vkladanie, potom by sme mali názov b. Takže teraz budeme mať dva parametre , Ktoré sú pri prechode dostať sa do ďalšej website-- ďalšie webové stránky, hello.php. A môžeme skutočne vidieť že znova, ak chceme. To je najjednoduchší spôsob, ako sa vysporiadať s webový kód v IDE, v podstate. Spustíte server, dostať to beh, a potom zakaždým, keď vykonať niektoré zmeny, len v blízkosti tento súbor len pre istotu. Stlačením tlačidla Späť je trochu zradné pretože by to mohlo načítať skoršie verzie, nie je najaktuálnejšie jednej. A potom stačí kliknúť na vaše opäť tlačidlo, pop vpravo up-- oh, a teraz tam sú dve formy. A tak, keď napíšeme jednu vec do každého one-- "jason Hirshhorn," pre instance-- povieme ahoj. Pozeráme sa na naše parametrov. Vyzerá to, že máme, as Očakáva sa, a = Jason a b = Hirshhorn, ktorý predstavuje dva parametre že prešiel tejto funkcii. Takže teraz poďme skutočne dostať do ktorým sa vykonáva túto funkciu, že sme mal v P set 6. Takže teraz sme len ozvenou ahoj. A to nie je moc užitočné. Chceme echo nejaké premenné ktorý bol odovzdaný k nám. A vieme, názov tejto premennej. Máme a my sme b. Tak sme si mohli vybrať echo ani jedného. Ale ako sa k nemu dostaneme? No, existuje určitá globálne premenné v PHP. A ja budem písať je v komentároch tu. Dva najdôležitejšie sú get a príspevok pre naše účely práve teraz. Jedná sa o polia alebo, Technicky, slovníky kde naši premenné, ktoré sme postup do ďalšieho webové stránky Live. A čoskoro uvidíme, ako ich používať. Ďalšie krátka poznámka o PHP kód a niektoré špecifiká to-- v C, deklarovať premennú alebo použitie premenných, najprv museli vyhlásiť. A to, čo ste mali robiť, keď ste vyhlásený za nimi bol povedať, int a alebo char b. Vy ste mali deklarovať typy týchto premenné pred vytvorením je. PHP-- nemusíte robiť nič z toho. PHP nežiada typ premennej. A spôsob, akým vás Vytvorenie proměnná-- trochu než hovoriť int, char, string-- ktorý je naozaj char *, ako sme víš-- skôr než robiť všetko že, pretože všetko je rovnakého typu, bez typu, môžeme len použite jeden znak, ktorý je znak dolára. A uvidíte, že už je praskanie up, malé automatické dokončovanie vecí. A hovorí, že _GET a _POST Sú dve možnosti, ktoré majú k dispozícii I mne. Niektoré z týchto ďalších vecí sú ostatné globálne premenné v PHP že budete používať viac ako priebeh P set 7. Pre túto chvíľu budeme zamerať sa na get a post. Ale to je užitočný vec, ktorá robí IDE kde kedysi ste napísali v tomto znak dolára, bude to začať vyplňovaní globálnych premenných alebo premenné, ktoré ste už definované. Takže ak ste chceli definovať premenná s názvom "string," môžete len nastaviť ju na hodnotu "ahoj." A je to v podstate tak jednoduché, ako to. A potom by sme mohli urobiť, niečo ako "echo $ string." IDE treba hádzať Chyby, keď robím niečo zle, takže dúfajme, že robím všetko správne. Ale chyby vždy nastanú. Ďalšia ošemetná vec, o PHP je, že to nie je zostavený. Takže s C programy, mali by ste robiť denná rutina of-- v podstate, by ste vykonávať úpravy na váš kód, mali by ste ho uložiť, a potom by sa vám aby to, kde bol make krokom, ktorý volal kompilátor, zvoniť, aby váš kód, tento text súboru, do spustiteľného súboru. PHP je C-ako, ale je to popravený v reálnom čase prostredníctvom webového prehliadača. Takže nie je spôsob, ako zistiť. Urobiť by sa hodiť tým, užitočné chyby, nie? Bolo by to ako, vy nepriznal túto premennú predtým, ako ste sa pokúsili použiť. Urobil si všetko to zlé stuff-- segfault, segfault, všetci ten druh zábavy krát ktorá prišla s make. PHP je dvojsečný meč pretože nebudete mať tie chyby, ale to tiež znamená, že nebudete vedieť, naozaj to, čo je s programom zlého vašej ak ste práve beží, a to nefunguje. Ale debugger by mal poukázať na to Niektorí azda užitočné maličkosti syntakticky, ktoré môžete opraviť. Takže teraz, keď prejdeme to-- hovoria, poďme ukončiť to. Znovu otvoriť. A sme späť sem. Takže máme premennú a variabilné b. A toto nebude nakoniec záležať. Zavoláme im h a g bez konkrétneho dôvodu. A my hovoríme ahoj. Teraz to vyzerá ako naša reťazca "ahoj" je naozaj tlač. Vytvorili sme premennú s názvom "string", nastavte ju na hodnotu "ahoj." Všimnite si, že sme nemali robiť malloc alebo si pole znakov. V PHP, pretože premenných sú bez typu, reťazec je rovnaké ako pre char všetky účely. To by mohlo byť "hi". To môže byť práve znak k. To môže byť číslo 1. A to nie je jedno. PHP sa nestará o typ vašej premennej. Alebo to robí starostlivosť. To sa stará, keď sa pokúsite a robiť veci s ním, ale to nie je jedno, v krok vyhlásenia. A rovnako ako je to možné v C, môžete vyhlásiť struny na zásobníku, ako je tento keď hovorí, "zväzok", je trochu bit potenciálneho nesprávneho pomenovanie, kedy hovoríme o PHP. Ale my nemusíme obávať, že. Tak sme dostali náš reťazec "Ahoj," a my echo reťazec. Takže teraz sme diskutovali premenné. Takže teraz musíme si pohovoriť o Get a zakladať a vykonávať konečnú vec, ktorá sa potreboval naozaj dostať to späť hore na funkčnosti P nastavenie 6. Takže teraz sme odrážať reťazec, ale my predsa majú tieto premenné dostať a post. A pretože sme s použitím Táto metóda si, že Zdá sa prirodzené, že naša premenná máme záujem, aj B, sa bude nachádzať v matici alebo slovník, technicky dostať. Takže keď sme sa založiť si takto s groups-- Aj lisované vstúpiť a to nepáčilo to-- ale tu máme dostať. A tak sa už existuje. Takže môžeme začať už na prístup niektoré prvky Get. Ak sa nám to dostať, táto syntax pre poľa v PHP je veľmi C-podobne. Máme dve hranaté zátvorky. Takže keď hovoríme, dostať do normálnej polia, mohli by sme získať prístup index nultý, prvý index. PHP je nula index. Dalo by sa povedať nula, jedna, two-- veci, ako je toto. A ja som hovoril, že dostať je technicky slovník. Takže to, čo robí PHP je pod kapotou, čo je trochu krajší ako C, Je to už dáva vám niektoré slovník funkčnosť, ktorá je naozaj hash tabuľky, alebo sa snaží, údajne. Alebo, technicky to by mohlo byť skúsiť tiež. Ale PHP realizuje hash tabuľky, ktorá tvorí účinnú slovník. A tak vieme, meno z našej premennej, že jo? Je odovzdávaný v reťazec dotazu PHP. Máme = H a B = g, kde a a b sú názvy premenných. Takže spôsob, ako môžeme prístup k hodnota, ktorá zodpovedá kľúčmi v našom slovníku je Len tým, že hovorí _GET_GET ["a"]. Takže teraz máme _GET ["a"]. A ak by sme stačí vymeniť vnútri náš echo, keď sme echo _GET_GET ["a"] - a uvidíme, či debuggeru hádže všetky chyby týkajúce sa tohle-- budeme šetriť, že a zavrieť to. Otvor to. Takže sme len to právo teraz, takže b by nezáleží. "ju" a "ho" - "hukot." "ju" a "hukot." To znie dobre. A to vytlačiť "ju", ktorý je blázon. Ale to je presne to, čo sa deje v P set 6. V podstate, čo P set 6 Bol doing-- echo ahoj, name-- kde to malo názov premennej a to len vás žiada, aby ste zadať v danom kúsku texte. Tam bol tiež niektoré Doplnkový kód, kde to zahŕňalo v prípade vyhlásenia, ktoré môžeme urobiť práve teraz. Dá sa povedať, ak existuje, ktorý je funkcia v PHP, _GET S podčiarknikom, "name" - ktorý je v podstate hovorí, "v prípade, že názov bol vyplnený", pretože sme mohli len klikol na tlačidlo odoslať formulár bez písaním do tohto poľa. A my zabaliť, že v našich priateľské zložené zátvorky. Môžeme mať vyhlásenie iného. A to je všetko v uhle PHP držiak, otáznik, uholník, ak chcete. A teraz uvidíme, či to funguje. Stále čaká na to, aby ladenie a svinstvo na mňa, v podstate, ale to má ešte nie. Možno, že to bude teraz preto, že som hovoril o. Áno. To robilo, v skutočnosti. Takže, nič sa objavil. To preto, že niečo zlé že som napísal v PHP kóde. A som sa zmienil o ladení je zložitejšia, pretože v PHP, my ani skompilovať vopred a kompilátor nebol rád, Tu je miesto, kde sa vaše chyby sú. Ale čo môžeme robiť je-- sa ľudia pamätať ako sa pozerať na iné siete požaduje, aby PHP-- alebo že internetové stránky poslať? [? Malin?] Robil toto prednáška raz alebo dvakrát. Pamätáš si, kde sme ísť nájsť rôzne dlhy a 200 OKS, všetky tieto kódy, ktoré sú odosielané cez HTTP z webovej stránky na webovú stránku? Pamätá si niekto, kde sme sa ísť na to? Divákov: Zdroj stránky. SAM LEVATICH: zdrojovej stránky. Presne tak. Ak pôjdete do Page Source-- perfektné. Takže Zdroj stránky vytiahne inšpektor. A ja som s použitím Safari. Mnoho z vás zrejme bude používať Chrome alebo Firefox. Ale ako dlho, ako ste v každom modernom browser-- a nebojte sa riadiť spolu, ak chcete. Môžete zadať tento kód, alebo Stačí sa pozrieť dovnútra P set 6 adresár pre nejaké podobné veci. hello.php je to, čo sme V súčasnej dobe pracuje na emuláciu. Takže tam sú rôzne kariet. Môžeme sa pozrieť na všetky zdroje. Môžeme vidieť zdrojový kód. Takže to vyzerá, že nie dostať cez telo do konca roka. To zistila chybu v PHP, a to zastavil načítanie celú webovú stránku. Nemáme ani koniec tag pre HTML alebo tak niečo. A ak sa pozrieme na sieti, môžeme vidieť, že nás niekto poslal žiadosť. To je doména. Jedná sa o adresu. Je to dokument. Sme pomocou metódy GET. A je to červené. Alebo to bola červená, keď som nebol vybraný. Ako môžem zrušiť výber, že? No, to bola červená. Dovoľte mi, aby som osviežiť. Je to tu. Teraz je to červené. Takže je to červené, čo znamená, to prepadlo, čo je zlé. Takže poďme preskúmať, prečo sa to nepodarí. Takže všetko, že Page zdroj môže v podstate povedať, je vaša vec nepracoval, ktorú sme už vidieť. Takže v ideálnom prípade by byť ešte užitočný nástroj. A tam sú niektoré rozšírenie prehliadača ktorý vám umožní ladiť PHP, ale my nebudeme písať tony PHP, takže je to asi jednoducho najlepší prehliadnuť kódu opatrne a len uistiť, že to nerobí nič iné. Tak uvidíme, či formát tohto if je miesto, kde je problém. Chcem nahrať, že späť sem. Ahoj. Takže je tu problém tam. Takže pre správnu syntax PHP, PHP sa deje byť C-ako v tom, že uvidíte slučky. If Uvidíte. Uvidíte všetky tieto priateľov že ste sa zoznámili sa v priebehu tohto CS50 semestra. Ale najlepší spôsob, ako prísť na to, ako sa robiť niečo, čo je v PHP na stránke venovanej ju alebo sa pozrieť na niektoré príklady PHP kódu pretože viete, funkčnosť. Viete, čo sa dá čo robiť s programom. Môžete slučky. Môžete slučka toľkokrát, koľkokrát chcete. Môžete slučky vo všetkých druhy rôznych spôsobov. Môžete si vytvoriť funkcie. Môžete vytvárať funkcie, ktoré volať ďalšie funkcie, funkcie ktoré sa nazývajú. A budete mať názvy pre tieto pojmy. Máš rekurzia, slučky, ak sa ďalšie kontrolné toky. A tak Google je váš najlepší priateľ. Dokonca hovorí, "PHP ak vyhlásenie "a tam bude byť ton miest s Odpovede na iných ľudí ktorý som mal podobné otázky na vás, ktorí sú práve začínate s PHP a sú zvedaví syntaxe veci. Pretože máme ten luxus, že sú schopní pozrieť sa na kód v P sade 6, sme vlastne vytiahnite ju a uvidíte, že OK, tu je niečo zaujímavé. Takže toto je to, čo to vlastne Vyzeral ako v P set 6. Takže keď ideme cez to, môžeme vidieť, že máme dostal niekoľko z nich málo Bity otáznik PHP-podobne. A nie sú zložené zátvorky. Tam sú dvojbodky. A tam sú kučeravé traky v PHP, ale toto je formát a spôsob, ako robiť PHP, ktorý pracuje dobre s HTML pretože, ako uvidíte, že sme zatvorení off týchto PHP bits-- elses a IFS a všetky that-- a potom sme interspersing HTML vnútri nich zatiaľ čo ešte v nadväznosti na riadenie toku stanovené PHP. Takže som jednoducho ísť rýchla prechádzka to pretože je to veľa rovnaký koncepty, ktoré sme robili predtým. Ak máme nie je prázdny, zátvorky, _GET_GET ["name"]. To je všetko rovnaké veci. Sme pomocou _GET slovník, ktorý PHP posiela na žiadosť foriem, preto, že je parametre akcie, a spôsob ich získať. A potom, že končí to. Hrubého čreva je signifier to jednoducho robiť v prípade, že if vyhodnotí na true. Je to ako zložená zátvorka. A v skutočnosti, to je zložená zátvorka v iných jazykoch, ako je Python, ktoré môžete, ak ste práve narazíte tomu, že pre konečné projekt. A potom sa tento riadok, ahoj. Potom máme taký divný veci. Máme viac konzol. Neexistuje žiadny HTTP there-- alebo PHP, je mi ľúto. Ale je tu znamienko rovnosti. A potom máme funkciu, htmlspecialchars (_GEThtmlspecialchars (_GET ["name"]). To je niečo ako viac pokročilá verzia echo. Rovnako ako sme echo ako spôsob vytlačiť veci v PHP. To je funkcia, ktorá je definované v PHP, ktorý sa bude zaoberať niektorými viac škaredé znaky a hodnoty bytov že by ste mohli prejsť. Je vždy najbezpečnejšie používať. Ale echo bude robiť svoju prácu Len v poriadku, ak nie sme rokovania s ničím príliš škaredé. A tak to má rovnaký účinok v podstate, tohle medzi otázke značky je hodnotená PHP. htmlspecialchars vráti pekný HTML tlačený hodnota _GET_GET ["meno"], tj. čo sme zadali vo formulári. A potom to bude pozdraviť, čiarka priestoru, a potom to. Celá vec medzi lomené zátvorky budú nahradené bez ohľadu htmlspecialchars vyhlási. Tak to je v podstate podobné na to, čo robíme. A máme vyhlásenie k inému, ktorý je hello world, ktorý dáva zmysel. Takže teraz sa vráťme sa k odberu kód a vidieť exactly-- oh. Povedal Aj existuje, čo nie je vec, ktorú sme chceli robiť. Chceli sme povedať nie prázdna. A tak by to malo fungovať trochu trochu lepšie, nie je prázdny _GET_GET ["name"]. A to zložená zátvorka sa zhoduje s zložená zátvorka. Máme naše zložené zátvorky tu. echo ahoj _GET ["name"]. Uvidíme, či to funguje trochu lepšie. Sme stále beží náš server. Dobrý deň, Jason. Dobrý deň, Jason. A fungovalo to tentoraz. A tak to je dôkaz že môžete naozaj použite zložené zátvorky, ktoré ste poznajú a milujú v PHP kódu v HTML. Kód PHP podmienky Ste v pset 6-- pset 6-- poskytuje ďalší spôsob robiť to isté. Takže teraz máme vo svojej moci. Máme funkciu implementovať PHP kód, ktorý sme videli v pset 6 sami, v podstate. Než som sa ísť ďalej, aké sú niektoré z otázky, ktoré máte v tomto okamihu? Áno [nepočuteľný]. Divákov: Takže v znení pset6, pri spustení, je tu priestor. A vidím, kde je priestor za čiarkou. [Nepočuteľných] začiatok otvorený držiak. Ako začleniť priestor, v ako ste napísal svoje vlastné kódy? SPEAKER: To je dobrá otázka. A tak poďme na to prišiel. Tak to je naozaj dobrá otázka a ten, ktorý som nepovažoval. Ale poďme to urobiť spoločne. Tak v prvom rade, čo Ja robím s ozvenou je, keď sme jednoducho echo ahoj, ahoj to výstupy. Ak by sme echo teraz to dostať sa na samostatný linka, poďme preskúmať, čo sa stane. Tak sme to kliknite. Udržať hovoríme, ahoj Jason. Takže znovu, nemáme tento priestor. A to preto, že v PHP, kedy sme echo, bez ohľadu na to, koľko spaces-- Nie, nie V- bez ohľadu na to, koľko miesta sme sa dať do here-- keby sme teraz naložiť, že znovu, hi Jason. Jo, vidím, všetkým tým, priestory dostal zjedli. A to je niečo, ozvena funkcie robí. Takže sa starať o že priestor, a to je jeden z dôvodov, Prečo nechcete používať echo a použiť htmlspecialchars miesto. Som zvedavá, čo by sa stalo, keby sme to urobili kde sme uzavretý priestor v reťazci. Nie som si istý, čo úprimne sa stane, keď to urobím. Takže to je jeden spôsob. To je jeden spôsob, ako sa postarať o to. Ak zabaliť priestor v reťazec, potom priestor bude výstup pekne ECHO. Najbezpečnejšie vec urobiť, je robiť htmlspecialchars. To je vždy stávka na istotu. Ale teraz máme spôsob, ako robiť to s echo ak je to potrebné. A podobným spôsobom, môžeme echo nových tratiach, všetky druh vecí, že ste oboznámení robiť v PHP. Ktokoľvek iný, aké sú nič viac otázky, ktoré ostatní ľudia majú v tomto bode o PHP? Ak sa ľudia ukázala trochu neskoro, Som rád, aby zostali po trochou a hovoriť o niektorých začiatku. A to je tiež všetko livestreamed, a archivované, ktorý je blázon. Každopádne, takže teraz poďme urobiť nejaké pokročilejšie veci s PHP. A jedna z prvých vecí, boli zavedené v C bolo pre slučky. A PHP má silnejší pre slučka volal slučky foreach. A vyzerá to, že tohle-- pre každý blank ako prázdne, zložených zátvorkách, robiť veci. Tak to je v podstate skratka. Viete, pre slučkou ako syntaxe konštrukcia bol navrhnutý v C a v zostave jazyk a podobné veci. Vymyslel v C, presne, ako skratka pre mnoho typov slučiek že ľudia by vidieť. Ako keď si písal slučku, tam bol často inicializačný krok vykonaný priamo na začiatok, Stav, kedy by sa slučka stop-- a to je vlastnosť to je len v cykle while, alebo že keď má presne len, že feature-- a potom inkrementácia krok na konci. A tak by ste často nájsť sami písanie kódu ako nasledujúce. Chystám sa vymazať niečo z toho. Ale ak budeme iterácie znaky v poli, Napríklad, ako by sme získal rad znakov. Ospravedlňujem sa, že priviezť C. Ja viem, ste myslel, že si urobil. Ale je to len za účelom učenie PHP, sľubujem. Takže ak máš char str dĺžky 8, a poďme hovoria, že to hovorí Hellooo s koncovej null. Skvelé, takže to je naša reťazec. A potom sme mali na slučku. Máme int i = 0. A chceme ukončiť pri stř zo i rovná nerovná null, preto, že sme sa ukončiť, ak sa rovná null. A potom budeme robiť aj ++ na seba bod v pre sláčiky. Robiť niečo s str ï. Takže základný vzorec bol, sme mali toto pole, ktoré sme chcel zaobchádzať ako samostatné prvky. Ale to, čo sme museli urobiť, je, že sme museli v podstate vytvoriť samostatný celé číslo premennú, ktorá sa počíta sa každé keď sme išli cez slučku. A potom budeme musieť potom volať strstr [aj] keď to, čo sme skutočne chceli robiť je jednoducho ísť charakter znakom, že jo? Nechceme, aby zvýšiť integer a potom použiť toto číslo pristupovať každý znak jednotlivo. Naozaj chceme znak po znaku. A tak pre každú inteligentne odhaduje, že pre nás. Ak máme poľa, ktorý môžeme vyhlásiť v PHP ako jen--, ak budeme mať premennú volal, nazvime to pole. Zázraky bez písania, je to rovnako ako akúkoľvek inú premennú. Je to len pole. A máme trochu [nepočuteľný] ako 1, 2, 3, len akýsi inicializovaná poľa. To je v poriadku, to nie je ako môj foreach. Ale ak sa to vlastne foreach-- Som napísal, že trochu zle. Existujú robiť slučky foreach dvoma spôsobmi. Tam je in syntax a ako syntax. A budeme robiť v prvom syntaxi, nie ako. To je moja chyba. Takže foreach num v poli, echo num. A PHP sa kričal na me z nejakého dôvodu. Je to hľadanie neočakávané v v niečom, čo je trochu na obtiaž. Ale my prísť prečo tomu tak je za chvíľu. Takže sa mi to. Skúsme pomocou as. To uprednostňuje ako syntax je zdá. Tak to urobme foreach pole ako num. Tak trochu vysvetlenie o tom, čo sa práve stalo je, ako je syntax saying-- dobre ako prvý, Poďme sa pozrieť na to, čo to vytlačí. Tak sme otvoriť náš IDE. Ideme sem. My hovoríme, Hello Jason. A to robilo 123, ktoré boli obsah matice, ktorý sme vytvorili na vrchol. Takže potápanie do tejto slučky foreach, máme variabilné nazýva pole čo je rad troch čísel. A potom robíme foreach poľa ako num, echo num. A to je viac, intuitívne než u prerezať. Hovoríme, spracovanie každého z veci v poli ako num, Chcem, aby si mi dal num. A to je presne to, čo robí. PHP počíta, že keď hovoríte foreach poľa, a máte čo do činenia s radom, čo budete chcieť iterácii sú znaky v tomto poli, je ints v tomto poli, je elementy v tomto poli. A to, že umožňuje ukladať tieto premenné ako num, a potom už len výstup num hneď skôr než hovoriť, Mám premennú s názvom i, a potom chcem, aby výstup strstr [i]. A tak, že nám umožňuje robiť skvelé veci. Rovnako ako v podstate nemáme vytvárať tieto premenné, ako by som ich a robiť všetko, táto inkrementácia veci na konci. PHP sa stará o všetko pre vás. Takže teraz poďme hovoriť o foreach as to platí o našej _GET slovníka. Takže budeme komentovať na to rýchlo. Takže máme _GET poľa. Máme túto premennú. A je to tu nejaké veci v ňom. Práve teraz, máme len jednu premennú odovzdávaný k nej, čo je názov. Ale ak budeme stlačíte klávesu Enter, teraz môžeme mať dve premenné. Môžeme mať meno a vek, napríklad, ak sa chceme dostať veku a tiež meno osoby, napodiv. Takže teraz _GET sa chystá byť slovník s dvoma prvkami, dva páry hodnôt kľúča. A prvý key-- Idem napísať tento jeden na tabuľu príliš. Máme slovník je _GET. Je nám ľúto, že je to je trochu ťažké vidieť. Ale v našom slovníku máme názov, ktorý sa bude niečo že sme vzhľadom. A budeme mať vek, ktorý je tiež bude niečo, čo sme daný. A to je súhrnom nášho slovníka. Tak to má dva elementy v tom. A tak preto, že foreach slučky sú chytré, my Možno si myslíte, a správne by si mohol myslieť, že foreach Môžete iterovat tento slovník, vytlačenie Uvedené hodnoty menom a vekom. Takže poďme sa v skutočnosti robiť len to. Poďme postaviť slučky foreach. A budeme robiť za _GET ako. A budeme robiť nasledujúce. Tak uvidíme, čo sa stane, keď sme typu len slovo, a potom povedal echo slovo. Sme tiež bude odrážať nový riadok len aby to trochu jasnejšie, čo sa deje. Takže poďme sa pozrieť. Nie je to mi dáva žiadne chyby. A budeme zatvárať to. Na našich webových stránkach, budete robiť veľa, že v priebehu roka pset7. Takže hovoríme, volám sa Sam. Môj vek je 45. Nie je. Ale to vytlačí, ako sa očakávalo, Same 45. A tak zistíte, že čo foreach slučky tu did--, vráťme sa, že tak je to Na board-- dostaneme _GET ako slovo. A boli tam štyri veci _GET. Ale je to len vytlačiť dve veci. foreach, že jeho inteligencia ja, Predpokladá sa, že to, čo sme skutočne chceli Bol hodnoty, nie kľúče. Ale existuje spôsob, ako by sme mohli tlačiť out kľúče rovnako, ak by sme chceli. Ak by sme chceli tiež vedieť, čo tieto premenné boli volány, existuje spôsob, že by sme prístup k tejto tiež. A spôsob, ako to urobiť druh, Takže môžeme povedať, nechá naozaj rozdeliť do kľúča a hodnoty. Tak uvidíme, čo sa stane teraz. Takže máme kľúč. Máme hodnotu. Máme ďalšia nová linka pre čitateľnosť. A uvidíme, čo sa stane, keď to urobíme teraz. Ja neviem, ako starý je Jason. Jason 15. Takže máme meno Jason, vek 15. Takže sme boli schopní získať prístup k kľúče a dvojica hodnota tohto slovníka Len tým, že hovorí, ako kľúčové body na hodnotu. A to je foreach syntaxe cukor bit, ktorý umožňuje prístup k veci, v slovníku. Tak dúfajme, že tento druh zdôrazňuje sila foreach slučky. Môžete skoro hodu niečo, čo sa zdá iterable, ako niečo, ktorý má viac prvky ako pole, sa ako dictionary-- tie sú dva základné veci, ktoré budete pracovať s a to ako v živote a vo pset 7. Takže si môžete hodiť, že veci na neho, a to bude zistiť, to, čo chcete robiť s ním. Bude hovoriť, OK, budem sa dostať tieto veci z údajov, ktoré bol odovzdaný ku mne. A to je niečo, že ste bude používať veľa v pset 7. Idem k rýchlemu rolovanie dole, len aby zistili, kde som na. Ešte ľudia majú otázky, na tomto mieste? Otázky vôbec? Ano? Divákov: Takže s kľúčom a hodnotou, ste mohli pomenovať niečo iné a to by ešte fungovať? SPEAKER: Oops. Wow, ja som úplne odstránil celý riadok. Skvelá práca. Takže, a. Key a hodnota je len konvencie. Je to užitočné. Tie by si nejaký návrh body, možno nejaký štýl body za to, že preto, že skutočne vyjadruje zámer. Ale my hovoríme a a yarp. Divákov: Nemusíte sa čokoľvek meniť v súbore HTML aby bolo zrejmé, že? SPEAKER: Vôbec nie. Divákov: A to len vie, že a to z väčšej rovná than-- SPEAKER: Áno. Divákov: --that indikátor that's-- SPEAKER: Áno. To je syntax foreach, ale áno. Divákov: Nie sú typy. Takže čo keď ste chceli vek, že je len číslo? Existuje spôsob, ako to urobiť? SPEAKER: Existujú spôsoby, ako skontrolovať, či premenné zodpovedajú určité druhy. PHP Tak sa pýta trochu viac zo ste preto, že sa v žiadnej typy. Niektoré spôsoby, ako sa spýta menej. V niektorých ohľadoch sa pýta viac. Pretože ak ste práve niečo v premennej, nemáte tušenie, o aký typ sa jedná. Ale ak ste chytrí o premenných že priradíte druhy do a uistite sa, že funguje iba return-- vám Chcete funkcií iba návrat jeden typ hodnotu, takže že môžete v podstate Predpokladáme, že premenná sa dostanete späť z funkcie bude typu že si myslíte, že to bude v podstate. Ale tam sú niektoré metódy ktorú si môžete skontrolovať. Nespomínam si ich z vrcholu mojej hlavy. Čakám na to, aby modrať. isint? isstr? Existujú metódy zabudovaný do PHP, ktorý môže skontrolujte typ premennej pre vás. Ale ak priradíte premenné elegantne, nemali by ste musí na to, že príliš veľa pset 7. Ale existujú tieto metódy. A to je niečo, je v danom jazyku. A ja si nepamätám presný syntax. Dalo by sa dokonca to nájsť. Ale čas je esencia. majú Má niekto iný máte nejaké ďalšie otázky? Áno. Divákov: Mám len jednu ďalšiu. Takže ste sa zmienil o metódu GET, ale ste nespomenul metódy POST. Sme vracia k tomu? SPEAKER: Áno, budeme sa vracia k tomu. To je presne to, čo som hľadal na môj telefón, ktorý teraz zaspal ale budem ho nájsť. Len uistite sa, narážame všetky PHP poznámky. Jo, nie je ladiaci verzie. Áno, máme niekoľko ďalších vecí, ktoré chceme robiť v tomto bode. Tak hovorí o POST, ktoré ste spomenuli, jediný rozdiel medzi GET a POST je že Pamätám si, keď sme sa pozerali na tejto adrese a my sme videli, oh, Názov reálna hodnota rovná a vek sa rovná yarp sú priamo v URL tam pre nás. POST je trochu tajnostkársky s jeho odovzdávanie informácií. Takže ak ste nechceli užívateľa vedieť, napríklad, vy Nechcel užívateľské meno a heslo osoby aktuálne prihláseného, ​​ktorý sa zobrazí v URL, čo je rozumná vec že nebude chcieť v URL, pretože niekto ho môžu vidieť. Ak sa odkazovať niekoho na stránku, budete Nechceme ich URL tam omietnuté, pretože by to umožniť ľuďom sa prihlásiť Len sa namiesto toho olepenia adresy URL skutočne vyplnením formulára. POST je trochu viac tajnostkársky. A jediné veci, ktoré budeme musieť zmeniť sú táto metóda, zmena od dostať post. A potom vnútri HTTP, namiesto toho prístupu maticový _GET, budeme pristupovať maticový _POST. A my Všimnite si, že, ak sme sa otvoriť túto zálohu znova, Jason pomaly klesá na veku. meno Jasona, vek 14. Rovnaká vec sa objaví. Ale my prejsť na adresu URL a tieto premenné nie sú tam. A spôsob, akým POST passes-- tak si pamätajte ako sa pozerať na zdroj stránky. Ideme do siete. My refresh. A to je ďalšia vec, ktorá POST vám dá varovanie o. Ste mohli vidieť pole, textové box takhle vo vašom prehliadači. Ste si istí, že chcete odoslať znovu formulára? POST je to, čo 's odoslaním tieto formy. Vzhľadom k tomu, v podstate, keď ste poslali svoj informácie o kreditnej karte pre niekoho, že to nebude zobrazovať v URL. To bude požiadavka POST. Takže keď aktualizovať stránku, je to znovuodeslání túto žiadosť post. Takže teraz my chceme poslať formulár znova, pretože to nebude vytvárať žiadne duplicitné nákupy. A všimnite si, že tu dole, Metóda, ktorú používate, je POST. A to skutočne prenášať bajtov. Previedol 401 z nich. Program je celkom malé. Ale je tu nikde, že môžeme vidieť hodnoty, ktoré sú odovzdané. Webové stránky samy o sebe môžu vidieť, ale my ako užívatelia nie sú schopní vidieť, ak ste hacker. Ak ste dobrý hacker, môžete sa pozrieť. Ak viete, že základný formát HTML, hodnoty bude sa prihlásili na stránkach. Budete mať možnosť vidieť. Hodnoty budú tam, že sú Len o niečo menej zrejmý pre vás prístup, v podstate. Máme nejaký ďalší otázky o GET, POST before--, čo budeme robiť ďalej je vlastne pozrieť na niektoré z kódu že dávate v pset 7, hovoriť o tom, ako sa používa niektoré z týchto pojmov, a hovoriť o veci, ktoré sa chystáte musieť urobiť trochu vo pset 7. Nejaké ďalšie otázky pred tým? Ďalšie otázky, ktoré chlapci majú? Skvelé. Dobre, poďme sa pozrieť trochu na pset 7, nie je pochýb o tom, čo si zač všetko najviac nadšení. Myslím, že to je niečo, David prechádza trochu. Ale budeme mať tri adresára signálov na top, rovnako ako konfiguračný súbor. To je pre databázy, ktoré sme vám hovorí o asi za päť minút. Zahŕňa, už nikdy nebudete musieť hľadať v tomto adresári ak nechcete, ale je to pekné vedia, že sú všetky druhy pomocníkov. Pomocníci je ako užitočných funkcií. A potom máme config, ktorá stanovuje niektoré veci hore. Existujú niektoré funkcie, ktoré má CS50 napísal, že sú v pomocníka a config. A niektorí z PHP, ktorý Už ukončí v súboroch bude robiť veľa z viacerých druhu z tupé noha pracovať pre vás. Rovnako ako keď pôjdeme do verejnej login.php, čo je to, čo ukáže pravdu, keď idete do pset 7. Uvidíme, že tam vyžadovať vyhlásenie. A to niečo ako ostré zahŕňajú, hashtag zahŕňajú ak ste na novšie generácie. Ale to v podstate hovorí, že som potrebovať prístup ku všetkým funkciám v config.php. A vy ste mohli mať vyžadovať pre všetky druhy iných vecí. config vlastne vyžaduje pomocníkov. Takže kedykoľvek budete potrebovať config, vy ste tiež vrátane alebo vyžadujúcich pomocníkov rovnako. Tak, že vám umožní prístup ku všetkým chladné funkcie, ktoré budeme používať, veci, ako je render. Ja som vlastne bude zmierniť toto dole trochu. Takže funkcie potom sme bude prechádzať tesne predtým, než sme sa presunúť na SQL trochu bit je funkcia login.php, len pretože používa niektoré z tém, že sme práve hovorili v PHP. Vidíte prvá vec, ktorú je v prípade, $ _SERVER. To je ďalšia globálna premenná, ktorá budete bude zaoberať. Je to ako _GET a _POST, ale čo server obsahuje toto môže nechať vás vedieť, či metóda požiadavke bol GET alebo POST. Rovnako ako predtým, čo sme robili je len v našej kód, ktorý sme napísali, boli sme jednoducho mení, aby bol GET a POST v závislosti na tom, čo je HTML. Ale existujú stránky, ktoré môžu byť pristupovať s oboma typmi žiadostí. A možno budete chcieť robiť rôzne veci v závislosti na type žiadosti rovnako ako to robí login. Takže si môžete overiť, že požiadavka Spôsob cez prístup k kľúče, cez použitie kľúče a dostať to Hodnota niečo v slovníku _SERVER. Takže to je ďalší celosvetový variabilný ako _GET a _POST. Ak je to GET, chceme vykreslenie prihlasovací formulár. Render je funkcia, ktorá v zásade práve stavia zodpovedajúce HTML a odovzdáva jej niektoré parametre. Tento titul je parameter, ktorý je použitý pri zobrazovaní, napodiv, názov stránky v Otázkou je, čo tu hore, hovoriť alebo ahoj v našom predchádzajúcom príklade. Teraz máme inú vec. Inak ak je to POST, my robiť niektoré ďalšie veci. Sme pomocou tejto metódy prázdnu. Nie je to neexistuje, je to prázdny. A my sme videli predtým, PHP má značné množstvo postavený v metódach, ktoré v prípade, že David will-- sú metódy, ktoré sú užitočné pre vás, budú upozornení na vás v prechádzke, že David dáva na začiatku prehľadu, a tiež Zamyla je užitočné bitov. Ona je späť všetci. Môžeme sa všetci radovať. Ospravedlňujem sa, je príhodne pomenovaný funkcie že práve v podstate vytlačí niektoré chybové správy, pretože CS50 je veľmi zdvorilý. A teraz toto, sa jedná o chúlostivé bit, pretože to je miesto, kde sme dopytovania databázy. Teraz sme nehovorili o databázach. A budeme v budúcom päť minút alebo tak, maximum. Ale to je funkcia že CS50 napísal získať tabuľku v podstate z databázy že pracujeme s v pset 7. Som naozaj zlý s mojím nula indexovanie dnes. Ale áno, je to 7. Takže otázka bude to vrátiť poľa, v podstate je kľúčom bit. A pretože tieto veci nemajú písanie, takže riadkov je pole pole. Vzhľadom k tomu, keď sme premýšľať o stôl, čo budeme robiť je, ako ste sa naučili v psets ako hra 15, tak ako tak kde ste museli použiť double array, sme v podstate majú rad ďalších pole je tabuľku. A máte riadkov a stĺpcov. A potom môžete k nim pristupovať ako [0] [1], dostanete [0] [1]. Základné veci, ako je to. Takže to, čo robíme tu v tejto funkcii, pýtame databázu v prípade, že užívateľ, ktorý je snažia prihlásiť, že bude odoslaná prostredníctvom metódy POST. Uvidíme sa dostávame užívateľské meno z _POST. Budú ste odoslali, užívateľa alebo, pošle hodnotu prostredníctvom formulára cez POST, pretože je to užívateľské meno a heslo veci. Preverujeme užívateľské meno vidieť, je to v tabuľke? Pretože ak sa užívateľ prihlasuje v, potom ich užívateľské meno by mal byť uložený v tabuľke Užívatelia, ktoré existujú pre túto stránku. Takže v podstate, ak Užívateľ je v databáze, Otázka sa chystá k návratu že riadok, ktorý je pole. Ale chúlostivé časti je, že ak aj keď dvojité pole je iba jednej rady, aj keď je to jeden riadok array-- to, že máš basically-- ak máte veľkosť jedného poľa že drží ďalšie pole, ste naozaj zaoberajú jednom stĺpci. Ale je to stále spracované ako dvojitá poľa. A to je miesto, kde to môže byť niekedy dostať zradné, pretože máme riadky tu. Naše premenná riadkov. A potom budeme vytvárať novú premennú s názvom riadok a nastavenie sa rovná prvý riadok riadkov. A všimnite si, že komentár hovorí, že je to prvý a jediný riadok. Tak toto je ošemetná časť, kde teraz funguje môže vrátiť pole veľmi ľahko. Tam nie je mallocs. Neuvidíte mallocs. Takže nebudete vidieť Seg chyby. Ale funkcia bude ešte absolvovaní okolo polí a dátami v skupinách. A musíte mať na pozore pred tým, čo presne vaše funkcie vráti. A aj keď je to jedno Stĺpec takto, dotaz je stále vrátiť dvojité poľa. Takže prístupu, ktorý column-- alebo môžete myslieť na všetko to ako prevrátený pretože hovoríme o radov. Ale prístup k tomuto jeden riadok, nemôžete jednoducho povedať riadky. Aj keď to je jeden riadok, musíte sa rowsrows [0] nejako eliminovať tento vonkajšie bit poľa a majú len vaše jeden riadok. Robiť niektoré ďalšie veci. K dispozícii je funkcia volal password_verify že overí heslo, ktoré bolo zaúčtované. A potom vidíme ďalšie globálne variabilný tu, _SESSION. V podstate Session ID je, ako si udržať prehľad na to, ak niekto prihlásený, alebo nie. Takže teraz s login.php, sme prihlásenie užívateľa v. Takže to, čo chceme urobiť, je chceme hovoria, že id relácie je rovná riadku id, čo proste dáva zmysel, pretože každý riadok bude mať iný id číslo ako časť tabuľky. Dostaneme do SQL v Druhá, takže ak niečo z toho Zdá sa, trochu ako bla, potom všetci budú vyjasnené. Ale my ideme nastaviť id rovná správnu vec, prihlásenie používateľa v. Ospravedlňujeme sa, ak sa niečo pokazí. A to je prihlásenie zmysel život ako profesor Malan by povedal. Takže to bol login.php. A veľa PHP kód, ktorý napíšete v pset 7, budú trochu. Nezabudnite chmod na správne povolenia. K dispozícii bude trochu o že na počiatku spec. Ale PHP, že ste písanie bude robí veci, ktoré je podobne ako tento. Budeš sa prístupu na niektoré veci, ktoré sú uvedené na vás v globálne premenné, PHP, ktoré čo do činenia s aktuálne prihlásený užívateľ, či existuje boli žiadosti zaslanej na to strana, rôzne veci, ako je to. A bude to tiež potenciálne iterácie riadky tejto veci. V inej funkcie, otázka robí návrat tejto dvojitej poľa. A ak existuje viac ako jeden riadkov v ňom, v prípade, že are-- áno, ak je tam sú viac ako jeden riadkov v ňom, potom to bude tabuľka. A možno budete chcieť opakovať cez riadkoch tohto poľa za použitia foreach slučky, ktoré sme popísali. Takže ak robíte foreach na double array, čo bude word-- tu, Budem naozaj napísať. Napíšem to rýchlo sem. Ak máme foreach riadkov ako riadok, aký je typ radu? Vie to niekto? Máš to? Takže riadkov je dvojitý pole. Takže to, čo sa deje foreach odvodiť že chceme z tohto dvojitého poľa či máme iterácie nad ním? Môžeme predpokladať, že v zásade že to bude buď prvkami, alebo riadky alebo stĺpce, v podstate. A tak my, riadkov a stĺpcov môže zaobchádzať ako rovnakú vec. V podstate to, čo sa deje foreach slučky urobiť, je, že to bude k návratu riadkov. riadok, ktorý bude typu rade, vzhľadom k tomu, riadkov je dvojitý pole. Takže ak dáte foreach dvojitá pole, to je nebude prechádzať viac než jednu úroveň hlboko. Čo je v podstate povedať, či tam je osem bunky v tejto table-- 1,2, 3 4, 5, 6, 7, 8-- foreach slučky nie je ísť cez každého z týchto buniek. Čo foreach slučky bude robiť bolo to pôjde cez tento riadok vám celý tento riadok. A potom to bude ísť cez tento riadok. Takže to len opakuje jednu úroveň hlboké. Ak máte pridať vnorené foreach slučky, potom sa môže liečiť každý riadok vrátený z riadky, robíte foreach riadok ako prvok, povedzme. A potom môžete echo prvok. Takže to je stručný malý opakovacie o tom, ako môžete používať foreach slučky v rámci dotazu. Sú nejaké otázky týkajúce PHP? Čokoľvek pred my prejsť na hovoriť o SQL a žarty z databázy? Cítim sa dobre? Cítim sa dobre. Dobre. Poďme späť k PowerPoint, ktoré budete pravdepodobne chýbať. SQL, yay. Ľudia, ktorí sú vo svojom oddieli typicky bude vedieť, že Podpoložky skratiek sú vždy len prvé slová Myslím si, že z tohto zápasu, ktorý algorithm-- túto skratku. Nie je to algoritmus. Takže SQL je databáza. Je to jazyk, ktorý pracuje s databázou. A všetky databázy sú je stoly, aspoň v ceste že SQL zastupuje je. Ďalší spôsob, ako premýšľať o databázach databázy sú sada kľúčov a hodnôt v podstate. Môžete si myslieť o databázu ako slovník a tiež ako stôl. V podstate je to spôsob, ako spojiť rôzne dáta s ďalšími dátami, často prostredníctvom riadkov a stĺpcov. A to je spôsob, akým to je SQL funguje najlepšie. Takže toto je jeden príklad tabuľky. Mám niekoľko príkladov ľudia v mojom oddielu, ktorý Nemal som čas na zmenu. Ale máme veci, ako je ID, meno, veľmoc, a rodné mesto. Ja neviem, kde je niekto z môjho oddielu, tak som len tak predpokladať, všetci sú z New Yorku Mesto preto, že mám vysoký štatistický pravdepodobnosť, že budú v poriadku. SQL automaticky brať starostlivosť o stĺpci ID pre vás. Ak vložíte nový riadok do SQL databázy, sa bude zvyšovať, že ID číslo a len v podstate držať asi päť mien, veľmoc, rodné mesto, kto na konci tejto tabuľky. Takže číslo je stĺpec, budete nikdy nebudete musieť báť. Avšak, rovnako ako v prípade z login.php, keď sme dostávali ID relácie z tabuľky, a len pomocou ID, ID je spôsob, ako jednoznačne identifikovať prvok databázy. Takže ak sme mali dva Sams, obaja ktorý učil CS50, a obaja kto boli z Milwaukee, tí by Stále majú odlišné identifikačné čísla a byť tak zreteľný v kontext tabuľky. Takže toto je to, čo SQL sa zaoberá s, práca s na zadnom konci. Teraz to sú štyri príkazy že budete musieť pracovať s SQL. A Hodil som ich všetky na jednom snímku. Ale my ideme prejsť ich všetky jednotlivo. Prvý príkaz je UPDATE, ktorý robí to, čo by ste mohli očakávať. Povedzme, že máte nejaké dáta tabuľku, ktorá je zastaraný. Rovnako ako v prípade, že ste udržať track mien ľudí a vek, ak je niekto vek sa zvyšuje, potom budete chcieť ísť dovnútra a aktualizovať vek Len to, že osoby. Pre príklad, ktorý pracuje s našou prvou table-- nebojte sa o písaní všetkom tieto príkazy v rovnakom čase. Ale ak máte aktualizácia dole, že to bude dobré pre túto časť, preto, že budeme prejsť späť k stolu. Takže keď ideme späť k stolu, povedzme, niečo, čo sa stalo tam bolo zemetrasenie alebo zlomová línia, ktorá rozdelila priamo cez New York City. A chceli sme aktualizovať každý ktorý žil v New Yorku. Všetci museli presťahovať do Pensylvánie. To nie je rodné mesto. Všetci museli presťahovať do New Haven. Tam sme ísť. Takže všetci v New Yorku sa sťahuje do New Haven. A tak to je niečo, čo je editáciu tri riadky v tejto tabuľke. Ale v SQL, môžete tak urobiť že len v jednom vyhlásení. Tak sme sa vrátiť k aktualizácii. Dovoľte mi, aby som rýchlo opäť zmazať túto dosku. Keď hovoríme o aktualizácie, existujú niekoľko častí syntaxe, ktoré sú kľúčové. No, syntax je kľúčové. Ale veci zelene je voliteľné. Biela sú požadované, ako preddefinované názvy. A svetlo modrá sú veci, ktoré sa líšia v závislosti na stole. Tak to je to, čo sa deje s Farebnosť tu, tam hore. Takže ak chceme aktualizovať iba tie riadky, ľudí, ktorí žijú v New Yorku, tak čo budeme robiť, keď sme si povedali, UPDATE? Tak stôl je miesto, kde kladieme meno nášho stola. Povedzme, že meno z nášho stola je stôl raz. Takže chceme aktualizovať tabuľku jeden. A chceme set-- čo chceme nastaviť? No chceme povedať, tak column-- PHP zaobchádza riadky ako jediné identifikátory. A potom stĺpce rôznych oblastiach z tých prvkov databázy. Takže prvý prvok databázy má meno Sam, veľmoc CS50, a rodné mesto Milwaukee. Takže keď sme si povedali nastavená, poďme sa pozrieť na opäť nastavené parametre, ktoré trvá. Máme stĺpec sa rovná hodnote. Takže chceme hovoria niektorí column-- ktorý pamätať je field-- chceme vidieť Poľa sa rovná niečo nové. Takže keď sme sa práve povedal aktualizácie tabuľka 1, nastavenie mena rovný Elliot. Získať nejaké ľudí z Nová sekcia na túto tému. Ale ak sme práve urobil aktualizácie tabuľka 1 nastaviť názov rovný Elliot, čo by tabuľka vyzerá po tom? Ľudia majú nejaký nápad? Jo. Divákov: Všetko v tom, že riadok by sa stal Elliot. SPEAKER: Všetko, v ktorej rade? Publikum: V prvom riadku. SPEAKER: V prvom rade? Prečo prvý riadok? Nechcem, aby vyzdvihnúť na vás. Publikum: Možno, že všetko V celej tabuľky? SPEAKER: Všetko, čo v celá tabuľka, áno. A to je presne to pravé protože-- I Zrovna ktorý vám pomôže von trochu there-- pretože sme vynechať voliteľná klauzuly WHERE. Ak nemáte Kde klauzula, čo tento príkaz bude robiť Je to bude fungovať s každým jeden riadok v tabuľke. Meno každého z nás bude stanú Elliott, v podstate, čo Elliot je veľmi šťastný, o. Alebo Yanni, jeden z dvoch. Ale meno každého z nás sa bude meniť. Spôsob, akým používame WHERE clause-- a to sa vzťahuje na všetky wheres ktoré sú v každom z tieto rôzne veci. Tak zistíte, že SET má stĺpce rovnakú hodnotu. A tak sa WHERE. Ale to sú rôzne typov príkazov. Takže stĺpec sa rovná hodnote v SET je v zadaní. Rovnako ako my chceme hovoriť nastaviť meno rovnajúcu sa Elliot. Ale v doložiek, kedy, sú to výroky rovnosti. Takže povedzme, že sme chceli len zmeniť meno osoby do Elliot ak je ich meno bolo Ryan, povedzme. Takže keď hovoríme WHERE name rovná Ryan, že by úspešne Jediná zmena name-- to by len zmeniť názov poľa v riadkoch kde je názov poľa je rovné Ryan. Takže ak sme mali niekoľko ľudí menoval Ryana, všetky ich názvy by sa zmenila na Elliota. To je podobné ako v príklade na to, ak zlomová línia rozdelí New York City, a každý má presunúť do New Haven, tak, ako je v našich silách tomu, že v jednom príkazu je UPDATE Table1 SET rodné mesto = New Haven kde rodné mesto rovná sa New York City. To je sila príkaz UPDATE. Môžeme si vybrať ľubovoľný počet Riadky skrze pravdivé vyhlásenie o poliach v týchto riadkoch. Nemôžeme povedať UPDATE Table1 set name = Elliot WHERE rad = 1, okrem toho, že môžeme povieme, ID = 1. Takže budeme mať práca s rovnosťou polí, rovnosť stĺpcov. Ale za použitia poľa ID je spôsob, ako vybrať jednotlivé riadky špecificky, pretože ID poľa je jedinečný identifikátor v databáze SQL. Tak ako aktualizácia riadok jednu, ID = 1. Aktualizácie druhej rade, len zmeňte toto číslo. Ale sila z KDE vyhlásenia, je, že sme môžete aktualizovať veci podľa toho, čo ich aktuálne hodnoty niektoré veci sú. Ano Elliot? Divákov: A čo keď chcete to-- Znova, to je iná otázka. Ale moja prvá otázka bola, kde sa to deje? Kde mám aktualizovať to? Je to v PHP kód? SPEAKER: Kde aktualizovať, áno. Budeme hovoriť o tom, kde to všetko sa stane, druh, akonáhle sme ísť cez všetky príkazy. Ale to, čo potrebujete viem, zatiaľ je v podstate že vaše SQL databázy existuje ako niečo, , Ktoré majú byť prístupné dotazu Funkcia, ktorá definuje CS50. Takže ak použijete funkciu dotazu, môžete prístup k tejto tabuľke. Takže budete posielať tieto príkazy k svojmu stolu v PHP súbory pomocou funkcie dotazu. Môžete si tiež pohrať s tabuľkou priamo. A to je najlepší spôsob, ako testovanie týchto druhy príkazov. A pôjdeme cez presne, ako k tomu, že v len trochu. Tak to je príkaz UPDATE. A zvyšok príkazov sa bude nejako podobné, pracujú na podobných veciach. INSERT INTO je pravdepodobne najviac líši od UPDATE. Chystám sa nechať, že tam pre len trochu a pracovať tu. Takže INSERT INTO, uvidíte že tabuľka je stále rovnaký. Ak chcete vložiť do. Kapitalizácie, SQL je malé a veľké písmená. Takže sa nemusíte kapitalizovať tieto veci. Podľa konvencie slová v bielom je aktivované. Ale tiež farebne rozlíšené je. Jediný dôvod, že ste zarábať tí, keď ste im písanie je len pre zdôraznenie že to sú konštanty. A tak si môžete buď pozrieť kapitalizácie alebo skutočnosť, že som ich farebný rozdielne. Takže máme vložiť do, poďme urobiť Table1 znova. To všetko je na jednom riadku. Len som oddeľujúce ho rôzne príkazy. Takže sa nemusíte starať o tom, že Table1 robil to na druhom riadku. Takže chceme INSERT INTO tabulka1 niektoré hodnoty. A všimnite si, voliteľný bit, ktorý sa dostanem do druhej. Takže máme hodnoty. Takže povedzme, že chceme pridať Andi k nášmu stolu, pretože nám chýba Andi. Andi je chorý. Takže poďme sa pridať Andi k nášmu stolu. Pamätajte si, že identifikačné číslo sa automaticky aktualizuje. Takže jediný polí my musieť starať o sú meno, veľmoc, a rodné mesto. A tak tak, že to urobíme, pri pohľade na našu syntax, je máme práve dostal zátvorky, s čiarkou hodnoty oddelené, pričom každý z nich je hodnota. Takže ak by sme chceli vložiť Andi do našej stôl, všetko, čo musíme urobiť, je pravým Andi. Čo je Andi superveľmocou, ľudia v sekcii Andi? Ona rada rokov, alebo rád rýchlosť, alebo tak niečo. Čo už máme tam hore? Máme CS50, letu, rýchlosť a sila. Divákov: Cestovanie v čase. SPEAKER: Cestovanie časom, úžasné. Takže máme Andi, čas cestovania, a jej rodné mesto. To je naozaj dobrá otázka. New York City, ak niekto vie. Každý, kto je z New York je lekcie, aby od dnešného dňa. Takže toto vyhlásenie by vložka, ako piate rade, s cestovaním superveľmocou čase a rodné mesto New York City. Ale voliteľné pole je v podstate spôsob, presne špecifikovať, ktoré stĺpce Ak chcete vložiť veci. Spôsob, akým to robíme teraz, Andi, cestovanie v čase, New York City, sa deje v presnom poradí nášho table-- meno, veľmoc, rodné mesto. A ak by ste chceli robiť niečo iné než to, rovnako ako, že ste nevedeli, niečí superveľmoc, ako ako Nevedel som, že Andi to veľmoc na začiatku. Takže všetko, čo som vedel, že jej bol pomenovať a jej rodné mesto. To, čo som mohol urobiť, je, že som mohol do-- Budem vymazať to rýchle. Chcem len aktualizovať stĺpca. A to je miesto, kde voliteľný Zoznam stĺpcov vstúpi do hry. Ja len chcem, aby aktualizovať meno a rodné mesto. A potom poviem hodnoty. Urobím Andi a New York City. Keby som vynechal zoznam stĺpcov a práve urobil tieto dve veci, kde by sa New York City išiel? Ktorý stĺpec by New York Mesto je umiestnené do? Ľudia majú nejaký nápad? Veľmoc, presne tak. Takže to bude len ísť v poradí. A akonáhle dosiahne konca zoznam, bude to zastaviť vyplnením veci. A hodnoty, ktoré to bude držať v všetky stĺpce bude len NULL. Takže pretože sme spresnili meno a rodné mesto, budeme mať ID 5, meno Andi, veľmoc NULL. Takže veľmoc je neinicializovaný hodnotu. Nebudete nutne dostať Rovnaké Valgrind chyby, ak sa pokúsite a prístupu k nemu. Všetko bude pekne vynulovaná out, pretože NULL je hodnota v SQL. To je konštantná. A potom rodné mesto bude New York City. Tak to je INSERT INTO príkazu. Ešte než sa vrhneme, je tu ďalšie dva príkazy. Ešte ľudia mať akékoľvek otázky týkajúce UPDATE, o INSERT INTO, o SQL zvyčajne skôr než prejdeme na naše konečné kúsky? Ľudia sa cítia dobre, skvele. Miluj to. Tak poďme hovoriť o SELECT. Chystáte sa zúfalý UPDATE tu. A SELECT bude veľmi podobné. Cieľom SELECT, Účelom SELECT v živote je poskytnúť vám veľa stĺpcov ktoré spĺňajú určité podmienky. A keď hovorím uspokojiť určité podmienky, vaša myseľ by mohla okamžite sa vrátiť k tomu klauzulu WHERE ktorý prišiel v UPDATE. A to doložka presne tam v SELECT. Ak sa nám nepodarí dať Kde doložka a hovoríme SELECT meno, hometown-- špalda, že malá wrong-- meno, rodné mesto FROM Tabuľka1. Ak budeme len povedať, že to, čo SELECT sa chystá dať nám je, že je to bude nám dávajú double-- tabuľku, skôr. Dvojité pole keď sme myslieť v PHP cíti. Ale je to len tak nám dávajú dvojitá rad dvoch columns-- mená, a rodné mesto. A bude ignorovať ID. A bude ignorovať superveľmoci. A bude to nám stačí dať každý jeden riadok tabuľky. Takže keď sme jednoducho vložená Andi, budeme mať Andi. A budeme mať pôvodnú štyri. Ak by už bola aktualizovaná, že bude odrazí, a tak ďalej, a tak ďalej. Takže je to preto, že sme nepoužil klauzulu WHERE. Ale môžeme ju použiť v presne Rovnako tak sme sa používal to v UPDATE. Ak chceme len tabuľku mien a superveľmoci ľudí žijúcich v New Yorku, môžeme spustiť príkaz ako SELECT meno, superpower-- Ja som jednoducho ísť k odchodu that-- FROM tabulka1 KDE rodné mesto = New York City. Tak toto ide ukázať, že je možné získať úplne rôznych stĺpcov, a potom dal stĺpce, že nie ste aj dostať sa späť v klauzule WHERE. Nechceme ani chcete, rodné mesto každého. Ale my chceme meno a veľmoc ľudí ktorej rodné mesto je New York City. Tak to je niečo, čo dá robiť s WHERE klauzula je, že sme si vie poradiť sa stĺpy že nemusí nutne chcieť späť. Rovnako tak v UPDATE, môžeme riešiť sa stĺpy, čo robíme, nie je nevyhnutne Chcete aktualizovať. Môžeme aktualizovať mesto každého kto je meno je Sam, napríklad. Môžeme aktualizovať mesto Každý, ktorého identifikačné číslo 2. Takže len aktualizovať Mesto druhého radu kde nemáme čo do činenia s nevyhnutná častá otázka. A DELETE je, ako by ste Očakávame, DELETE FROM tabulka1. A potom máme ďalšiu klauzulu WHERE. Takže môžeme povedať, kde ID = 1. Odstráňte prvý riadok. A DELETE bude vždy odstrániť riadok, alebo to bude vymazať určitý počet riadkov. DELETE FROM stolu, kde rodné mesto = New York City zmaže všetky v New Yorku. To je v prípade, že bol náhlej tragickej mor a vy len chcel odstrániť každý z tabuľky, ktorá žil v určitom meste ktorý bol zasiahnutý morom. Nech odpočíva v pokoji. To sú štyri SQL príkazy že budete musieť použiť. Dalo by sa ani nemusíte používať všetky. Ale to sú štyri že CS50 vás očakáva, byť pohodlné s ísť do ako kvíz 1 a tiež pset7 a pset8. Je tu opäť len, že tabuľka. V tomto jedinom, Roy je superveľmoc má bol aktualizovaný na laserové lúče, ktoré sa je príklad som nepoužil. Neviem, ktorý z nich Roy preferuje, ale sila. Roy má superveľmoci sily. Katherine nerobil to dnes. To je nešťastné. Ale ona má super rýchlosť. No, to bolo PHP. Predtým, než budeme hovoriť o MVC, robí niekto máte otázky ohľadom PHP? Teraz SQL, PHP, alebo ak sa náhle máte prísť s otázkou o PHP? Skvelé. Dobre, máme všetko nastavené potom. Tak hovorí trochu o regulátory pohľadom modelu, vráťme sa k niektorým o veci v pset7. Takže to, čo pohľad modelu Regulátor je-- Nie som zachráni svoje zmeny sa prihlásiť preto, že som totálne porážal ho. Ale v podstate máme dve oddelené veci deje. Máme verejnosť adresár, ktorý obsahuje kód, ktorý sa bude popravený a webové stránky, ktoré budú navštívili. A máme tiež tento adresár názory. A pohľady obsahuje šablóny. To je to, čo je funkcia render-- sme videli omietky Funkcie v banda PHP kóde že CS50 už napísal pre vás, že sa v niektorých parametroch. Čo že je tento kód robí Je to bude do pohľadov, ktoré sú súbory ako prewritten HTML kód, a to vložením hodnoty do určitých miestach. To je, ako keď vás ísť do CS50 Financie, rovnaké hlavičky je na každej stránke. Rovnaký päty je na každej stránke. To je preto, že na ceste ktorá spôsobí, že práca je to bude automaticky opraviť v tomto záhlaví a divák, ktorý môžete nájsť v pohľadoch. Vlastne sme sa ísť do hlavičky, a vyzerať, je to súbor HTML s hlavou. Má to niekoľko štýlov. Nemusíte sa pozerať na CSS pre pset7, ak nechcete. Ale môžete zmeniť je, ak chcete, aby Váš Financie vyzerať trochu inak. Má to nejaký PHP v hlavička trochu vidieť ak tam je iný názov to by malo dať v tomto záhlaví. Ale len niektoré iné skripty, a odkazy, a ďalšie veci. Hlava skončí, začne telo, a oops, máme taký divný malý koncový bit. A je tu div, rovnako ako beztvarý druh prvku že má predstavu o uprostred. A potom, keď vidíme, päty, máme koniec div. Máme dno, čo je kde text päta. Koniec div, koniec tela, koniec HTML. Takže to, čo robí, je robí, je poskytnúť, je druh záplatovanie up hlavičky, je iný PHP súbor, ktorý bude obsahovať skutočné veci, ktoré budete prezerať, rovnako ako váš stôl zásob ak ste nákup alebo predaj akcií. A potom to bude pridať do päty. A pohľad modelu Regulátor predstava je, že sme chcete oddeliť, ako veci vyzerajú z kódu. Je to chceme oddeliť frontend a backend, kde je frontend veci, ktoré užívateľ vidí, pekné visuals-- HTML, CSS, také veci, obrazy, et cetera. A backend je PHP. To je kód, ktorý píšete. To je miesto, kde kód, ktorý je robí skutočné operácie. To je, keď pridávate akcie na váš stôl, keď kupujete a predajné, to je backend. A môžeme, ako ste videli, vrátane PHP priamo v HTML. Takže to, čo sme mohli urobiť pre Táto úloha je jednoducho musel HTML súbor pre každú stranu, ako je prihlásenie. A potom sa na tejto stránke, stačí mal obrovský blok PHP kódu, vrátane všetkých kódu, ktorý že strana by špecificky potrebovať. A potom by sme mohli mať urobil pre portfólio. Mohli sme urobili všetko o nákupe a predaja v rámci jednotlivých stránok. Ale preto, že sme vykresľovanie oddelene od miesta, kde budeme písať backend kódu, môžeme ľahko zmeniť spôsob, akým sa veci vyzerajú bez mení každý jeden súbor. Robíme veci, ako je len pridať nový div ku dnu of-- Dobrý deň, som upravil päta. Stačí si len robiť veci takto. Ale tiež môžete zmeniť celý vizuálne rozvrhnutie bez toho, aby to ovplyvnilo to, čo je deje v backend. A môžete zmeniť Celý backend a stále mať to vyzerať rovnako ako to urobil predtým. Toto Je myšlienka pohľadu modelu regulátora. A je to vlastne uložená paradigma v niektorých programovacích jazykov možno budete chcieť použiť pre konečné projekty. Ak tak urobíte iOS vývoj, Majú výhľad, čo je to, čo vidíte na iPhone, a potom backend ako ako samostatnú vec. Môžete si myslieť o trochu. Je tu veľa binárnych súborov v počítačovej vedy, čo je smiešny, pretože všetko je v binárnej. Nechcel som v pláne to. To bol hračka neúmyselné. Áno, slovná hračka nie je určená. Ale rovnako ako .h súbory a súbory .c, je tu veľa odlučovanie vecí, ktoré sme nemusí potrebovať. Takže môžeme len upraviť h súbory, alebo niekto môže len vidieť h súboru a viem, presne tie funkcie, ktoré sú v .c súbor, bez nevyhnutne vedieť, ich realizácie. Táto myšlienka oddeľovanie zložiek že na sebe vzájomne závislé ale môže nejako prístup k sebe navzájom prostredníctvom rôznych kanálov, absolvovanie premenných, len obsahujú vyhlásenie, veci, ako to, že táto zásada pomáha vytvárať aplikácie , Ktoré môžu byť ľahšie editoval viac ľuďmi, môže byť viac ľahko zmeniť alebo zmenená na veľkom meradle, a lepšie sa ladenie v mnohých smeroch. Naozaj rýchly, mám niekoľko tipov pre pset7, čo urobím na celú obrazovku, takže vás nebude len pri pohľade na the-- Tip Tip tipu. Existuje nie je tak veľa tipov. Ale Zmienil som PHP je ťažké ladenie. Dvojlôžkové a trojlôžkové skontrolovať. Ak váš kód je jednoducho nie je objavovať na stránke, jedná sa pravdepodobne o chybu PHP, sorry. Už nikdy nebudete musieť pozrieť sa na CSS, ak nechcete. Ale akonáhle budete hotoví, to môže byť pekný malý zábavná vec ktorú jednoducho ísť a neporiadok s CSS parametrami. CSS a HTML sú príkladom modelu pohľad regulátor štýl vec taky, že jo? Tie by mohli mať tagy štýlu vnútri HTML prvkov. Ale ak sa tak nejako outsourcing je na CSS, oni sú ľahšie upravovať a hra okolo a baviť sa. Doprajte CS50 pomocník funguje ako čierne skrinky. Nemusíte vedieť presne to, čo robí robí, ale verte, že vždy právo to v závislosti na tom, čo si to prejsť, veci, ako je tento. A ja by som odporučiť sledoval Davida návod, prechádzajú všetky stuff, nielen todos, ale naozaj môže liečiť Tieto ako čierne skrinky. Nechoďte do týchto Funkcia hľadá chyby. A vítajú návrat naše vládca Zamyla. Skvelé. Sú nejaké otázky, než záverečná sme sa nejako odraziť na deň? Som stále žijú? Skvelé. Ahoj Livestream ľudí. Skvelé. Sú tam ešte otázky? Nie? A potom som si, že sme dobré ísť na dnešok. Budem držať okolo trochu neskôr, keď ľudia mali otázky báli sa opýtať na potoku. Ale inak, dobrý deň.