SAM LEVATICH: Üdvözöljük részben ezen a héten. Nem vagyok Andi. Andi esett rosszul ez a nap, és én már egyfajta hívják last minute átvenni. Ez az influenza szezon, úgyhogy győződjön meg róla, hogy tartózkodik tiszta, kézmosás, és az egészséges táplálkozás érdekében, hogy te is, nem ágyhoz kötött. De minden további nélkül ADO, vágjunk bele. Ma fogunk beszélni PHP-ről egy kicsit bit-- hogyan PHP vonatkozik HTML, hogyan tárgya CSS, és néhány, a web cucc tettél az utolsó feladat. Fogunk beszélni kicsit SQL és hogyan lehet dolgozni adatbázisok, ami egy elég kulcsfontosságú eleme P állítsa 8-- P készlet 7. P készlet 7. És akkor fogunk beszélni egy kicsit kicsit arról, hogy nézet irányítók dolgoznak és miért ez a filozófia mögött modern web oldalak és a különböző design. Elég sok sok típusú alkalmazások és alkalmazások lehet, hogy a hajó használja ezt a modellt, Tekintettel vezérlő keret, hogy lesz használva P készlet 7, úgyhogy Beszéljünk egy kicsit arról, hogy miért, hogy lett népszerű, miért fontos és szép. És akkor én aztán rátérnek a Néhány tipp, hogyan kezelésére P készlet 7. És ha van ideje megmaradt a végén, mi is valójában némi dolgozni, hogy együtt. Szóval, PHP. Sőt, lehet, hogy észre this-- hogy nem igazán kell merülni it-- de P készlet 6 volt némi PHP kód, amely folyik. És mivel a PHP egy C-szerű nyelven, PHP, HTML és CSS eltérően, egy programozási nyelv, mivel HTML és CSS statikus. Ők jelölőnyelvek foglalkozó A stílus és a képi elrendezés. PHP az igazi üzlet. A PHP hurkok, azt conditions-- minden ilyesmi, hogy a szórakoztató mintegy C. Van egy pár dolog, ami egy kicsit kicsit jobb, mint a C, ami majd meglátjuk, de azt hiszem, a legegyszerűbb módja, hogy beszéljen A PHP csak merülni. Így fogok menni jobbra az IDE ezen a ponton. Az első dolog, megyünk tennie, hogy valóban meg Egy kicsit meg néhány, a PHP kód, ami volt, P szett 6. Tehát az is, hogy mi hogy-- előtt, az is, hogy mi volt futó A szerver a készüléket az volt, hogy mi lett volna type-- vagy használja a végrehajtás vagy az alkalmazottak végrehajtása A server.c az megy könyvtár és fut server.c, hogy ha nem arguments-- így csak hívja azt a helyi gépen, ami pontosan akkor valószínűleg vitte a time-- majd etetés Egy directory-- a melyeket használd a gyökér ahol a honlapjára lehet futtatni, alapvetően. Ezen a héten a P készlet 7, mint nagy, mint a mi kódot server.c van, vannak olyan emberek, akik már írásos ezeket a finom dolgokat a CS50 hogy van egy kicsit több funkció, egy szerver program, ami képes A szó egy kicsit A bonyolult, hogy mi lesz lásd mind P készlet 7 és P készlet 8. És az is, hogy kezdje meg a szerver által csak beírja, "apache50." És mielőtt bármit, azt szeretnénk, hogy győződjön meg arról, hogy az Apache 50 nem már fut, ahogy van a gépemen, amit meg is tettem kipróbálni. És te, hogy hívja apache50. Megáll, és látni fogod, hogy a megállási A web szerver, ha nézd ott alján a terminál ablakban. És akkor csak elindítani vagyunk fog hívni, "apache50 kezdeni." Aztán megyünk megetetni egy könyvtárba. Most, mert meg akarjuk nézni néhány, a P készlet 6-kód hogy mi volt végre, én valóban másolt egy kicsit a P készlet 6 kódot a saját mappában, ami látható a bal oldalon van. Ezt hívják "SECTION8" minden nagybetűvel mert én csak annyira izgatott hogy élőben közvetítjük ma. Tehát, ha futtatni ezt, ahogy kellene Minden munka elég hatékonyan. Azt mondja, OK, honlapunkon most rendelkezésre a címe az IDE, Alapvetően ez az, amit használtál pontosan úgy, ahogy volt, a P beállítani 7-- P szett 6. Minden az én indexek egy indexet ma. Így tudunk menni, hogy címe, ha emlékezni fogsz, csak rákattint erre a kis gombra a jobb felső sarokban. És emlékezzünk csak vissza ezt a kódot, amely történt, amikor bement hello.php. És mi a kód célja, hogy tennie, ha beírt egy nevet here-- ha azt mondod, Sam mert ez az én name-- és rákattintok köszönni, ha mentünk a következő oldalra, ezt a nevet kellett volna megjelenni. Úgy mondanám, "Hello, Sam" vagy "Hello", bármilyen nevet helyezni, hogy annak ellenére, hogy mentünk hogy egy teljesen új weboldal. És ez a fajta dolog hogy a PHP tehet érted. PHP képes átadni adatok Két weboldalakat. Ez egy teljesen más oldal. Látni fogod a cím "helló" itt. Igazából, nekik van az azonos című, de én Megígérjük, hogy különböző web oldalakat, ha megnézzük a forrást. És akkor át az adatokat, hogy az Ebbe a szövegmezőbe, elküldené a következő oldal, amit most hívott fel, majd, hogy az adatok képes ott a jelenlegi formájában. Most még nem hajtották végre ez magunkat, amely van mit fogunk csinálni most, hogy Rendezés ízelítőt kapnak a PHP működésének, de a lényeg, hogy PHP-- tudsz fajta gondolok rá, mint egy függvény. Valami, ami PHP segítségével nem ez paramétereket adhat hogy belép egy HTML oldal használata révén a PHP és formák, és akkor adja át azokat a paramétereket Tovább a következő oldalra, hogy betölti fel. Ebben az esetben azt töltöd fel ezt oldalán a "Köszönj" gomb. De most, én valóban törölve bizonyos, hogy a kódot A hello.php hogy volt, hogy futni hogy valójában megjelenítő "hello, világ "vagy" hello, Sam "vagy "hello", bármi volt csak meg kell adni. Tehát most vagyunk hogy csináljuk, alapvetően. Megyünk, hogy újra ezt, és is hozzá néhány funkciót, akkor egy kicsit többet is, lásd mi PHP valóban képes. Tehát az első, beszéljünk ezt a fájlt, hello.php. Tehát, ha nagyítani egy kis bit-- és most én vagyok fajta próbál mozoghat ahogy around-- ott vagyunk. Látni fogod, hogy hívják hello.php, de a szintaxis is néz ki, mint egy HTML fájlt. Ez azért van, mert a aktuális PHP ebben a fájlban A minden ragadt között kérdőjel-caret blokkok. Minden itt tartják PHP kódot. És észre fogod venni, hogy amikor csináltam egy megjegyzést, látni fogod az ismerős két perjel. És ha lesz felidézni, a HTML, ha írja a comment, úgy néz ki, valami közelebb ez, ami egy megjegyzést HTML-ben. Szóval tényleg mindent között E két hegyes zárójelek Most PHP kód, amely tükröződik a tény hogy ez a kis megjegyzést jelző be van kapcsolva a megjegyzést. Így minden alkalommal írsz PHP kódot, akkor is, ha nincs HTML kód azon kívül, ez mindig lesz zárt ezekben hegyes zárójelek Kérdőjel. Akkor valami gondolni it--, hogy minden A kód futott a C programok volt zárva egy int main, semmis, kapcsos zárójel, záró kapcsos zárójel nyilatkozatot. És látni fogod kapcsoszárójele a PHP is, de ez a fajta mint a fő módszer a PHP. Tehát most, hogyan csináljuk semmit PHP-ben? Most, PHP programozási nyelv, amely nagyon C-szerű, de működik az interneten. Tehát egy dolog, hogy akkor immediately-- egy Az első dolog, amit tényleg a C-ben kinyomtatott cucc, ugye? Tehát C tettük, hogy egy printf függvény. Adtunk neki egy húr, Valószínűleg egy új vonal, és akkor megszűnik ez egy pontosvessző. Tehát az is, hogy fogunk csinálni A PHP--, mert ez nem elég printf. Ez egy kicsit más szintaxist. Az hogy kiírjuk a dolgokat A PHP azt mondjuk, "echo hello" vagy "echo" bármilyen szót. És, hogy az a hatása, csinál printf egy húr, "hello". És hozzáteszi az új vonal is. Úgyhogy most, hogy sure-- Majd kicsinyítés megint egy kicsit bit-- Bizonyosodjunk meg róla, hogy hogy a kód működik mert előfordulhat, nagyon valamint egy hiba ezen a kódot hogy mi lesz kezelni. Így a szerver már fut. Ha tehát lépjünk vissza az aljára, Ja, a szerver még mindig fut. Tehát ha csak megérinti a kicsit jobb here-- welcome-- kellene get-- nagy. Még mindig vannak a ismerős "Say Hello" párbeszéd, de mikor írja a "hi" majd meglátjuk hogy a szöveg "helló" valóban kinyomtatják, amely pontosan úgy, ahogy vártuk, mert echo PHP Olyan, mint egy printf kifejezést. Szóval vissza a kódot, hogy hogyan P szett 6 tette A forgalmazás kódot biztosított teszik, hogy a PHP az kimenet a dolog, hogy beírt az előző képernyőre? És a fajta vizsgálja hogy miért történik, mi vagyunk megyek be index.html, az eredeti fájlt, a fájl felbukkan a képernyőn A "Köszönj" gomb. Azt veszi észre, hogy van a klasszikus dolgokat amit elvárnak a HTML ilyen mivel ezek a dolgok, ezek a címkék zárt szögletes zárójelben, mint a PHP de nem a kérdőjelek, ami azt jelzi, egy különleges dolog, hogy a HTML. Van neve, amely "hello". És észre fogod venni, hogy amint láttuk, A cím: "Hello" mindkét esetben. Változtassuk meg ezt hogy "azt mondják," csak úgy tudjuk lehet megkülönböztetni magunkat, ahol vagyunk. De most már van egy test. És akkor az érdekes kicsit, a kicsit, hogy megjelenik a HTML, ez űrlap elem. És így megvan egy formája. És ez a kulcs. Így dolgozunk PHP. Az akció paramétere formában azt mondja, hogy hello.php van mit fogunk küldeni Az értékek ebben a formában, hogy. Ez az, ahol vagyunk halad A paraméterek, hogy úgy mondjam. Észre fogod venni, egy másik dolog itt az, hogy a módszer "get". Vannak két elsődleges módszerek, amelyekkel fog lennie a PHP adattovábbításhoz között websites-- weboldalak, rather-- ebben a feladatot. És ezek a módszerek "get" és a "post." Van néhány apró különbségek a GET és POST hogy mi lesz into-- vagyunk lesz ", hogy" a, ha úgy tetszik. De minden cél és célokra, GET és POST mind csak oly módon, hogy Ön át paramétereket kissé eltérő kivégzések. Egyelőre fogunk használni kap, mert hogy volt, mi az eredetileg használt A PHP fájlt P szett 6. És valóban, ha megyünk, és nézz mielőtt már szerkesztette mást, Megyek köszönni alábbiakra: mi a neved? Közönség: Elliot. SAM LEVATICH: Ó, a mindenit. Én nem tudom, hogy pontosan ezt. Lehet hogy írják nekem? Közönség: E-L-L-I-O-T. SAM LEVATICH: I-O-T? Közönség: Igen. SAM LEVATICH: Tökéletes. OKÉ. Azt hiszem, én tudom, hogy pontosan ezt. Sajnálom az esetet. De ha azt mondjuk, "Say hello," ez nem ez nem fog megjelenni a képernyőn Még hiszen módosította A kód egy kicsit. De ha "Say Hello" - OK, így a "hello" itt van. De ha vesszük közelebbről nézd meg az URL-t is, látni fogjuk, hogy véget ér A hello.php? name = Elliot. Szóval, ez egy módja kommunikál a következő weboldalon A paraméterek, hogy már eltelt. Azt mondtuk name = Elliot. És ez végül is hogyan P szett 6 belépett a változó, hogy mi telt el űrlapon keresztül. És ez a valami, Sajátos, hogy a GET kérelmet. A GET kérést teszi a paraméterek ismert a webhely URL-je. És emlékezzünk csak vissza, túl, P készlet 6, hogy kellett írni egy függvény hogy foglalkozott azzal a ténnyel, hogy ez a query string létezhetne, miután a fájlt. Lehetne egy kérdőjel követi az alapvetően tetszőleges számú karakter. És pontosan ez az, mi folyik itt. És az ok, amiért meg kellett elemezni, hogy a végrehajtása server.c P készlet 6 annyira, hogy meg tudná mondani, A PHP kód, ami name = Elliot. Ön szükség, hogy képes legyen feldolgozni, hogy ki az URL- úgy, hogy a PHP fájlt a kérdéses tudta, mi volt szó. Így remélhetőleg ez ad A motiváció server.c most, hogy mozog kívül C PHP. Úgyhogy valóban összpontosítani elérésével dolgokat engedjük át GET kérelmet most ezen a ponton. Megyek menteni ezt. Mi nem változtat semmin. Úgy néz ki, hogy van egy beviteli mező. Mi beállítás bizonyos tulajdonságait, meg tudjuk csinálni egy HTML. Ezek egyszerű dolgok. Nem kell ezeket. De megvan autocomplete off, amely alapvetően says-- tudod, ha írja a dolgokat a web, néha igyekszik kitölteni, hogy az Ön számára. Szóval ez egy szép dolog. Azt akarjuk, hogy kapcsolja ki erre a célra. Ez volt a CS50 döntést. Így lehet törölni, hogy ha akarnánk. Autofókusz csak botok a kurzor formájában az elején. Ismét nem túl fontos. De name = "név" - ez egy kicsit trükkös, mert azt a neve és a név. De tudtuk, hogy megváltozott ez valami más. És valóban, ez ezt fogjuk tenni most. Majd azt mondjuk, "személy", amely a fajta, mint név ha egy személy által meghatározott nevüket. Úgyhogy zárja be ezt, indítsák újra fel honlapunkat Mivel a szerver még mindig fut Apache 50, és azt fogjuk mondani, helló, itt van Elliot újra. Miert nem? Helló. És ha felmegyünk ide, majd meglátjuk akkor ahelyett name = Elliot, azt mondja személy = Elliot. És ez a közvetlen eredménye az a tény, hogy csak megváltozott name = "személy". Tehát egy input elem HTML formában, a név mezőben az azonosító az paraméter, amit most telt. Ez olyan, mint ha te létre egy függvény "add" tartott két egészbe és azt mondtad int a és b int. Ez lenne a nevére egy, és ha akart egy másik formája, amely tehetünk, csak a másolás és beillesztés, akkor mi lenne a neve b. Tehát most mi lesz két paraméter hogy a jelenleg átengedjük hogy a következő website-- A következő weblapon hello.php. És valóban látni újra, ha akarunk. Ez a legegyszerűbb módja annak, hogy foglalkozik A web kódot az IDE, alapvetően. Elindítja a szervert, hogy ez futás, majd minden alkalommal, amikor hogy néhány változtatást, csak közel hogy a fájl csak a biztonság kedvéért. A Vissza gomb megnyomásával egy kicsit trükkös mert lehet betölteni egy korábbi változat, nem a legfrissebb az egyik. És akkor csak nyomd meg a gombot újra, pop jobb up-- ó, és most két formája van. És így ha beírjuk egy dolog az egyes one-- "Jason Hirshhorn" a instance-- köszönünk. Bízunk fel nálunk paramétereket. Úgy néz ki, megvan, mint várható, a = Jason és b = Hirshhorn, amely a két paraméter hogy át ezt a funkciót. Így most nézzük valóban eljut végrehajtó funkciók, hogy mi volt a P szett 6. Akkor most mi csak visszhangzó helló. És ez nem túl hasznos. Azt akarjuk, hogy echo néhány változót hogy átadták nekünk. És tudjuk, hogy a neve ennek a változó. Van egy és mi b. Így lehet választani, hogy echo bármelyik. De hogyan hozzáférni? Nos, vannak bizonyos A globális változók a PHP. És én fogom írni azokat a megjegyzéseket itt. A két legfontosabbak get és tegye a céljainknak most. Ezek azok a sorok, illetve, Technikailag a szótárak ahol változók vagyunk átadva a következő weboldalon élőben. És hamarosan látni fogjuk, hogyan kell használni őket. Egy másik rövid megjegyzés a PHP kód és néhány sajátosságait it-- a C, , hogy egy változót vagy használni változók, először nyilatkoznia kellett őket. És mit kellett tennie, ha nyilvánította őket volt mondani int egy vagy char b. Meg kellett állapítsa meg a típusok ezeknek változók, mielőtt megalkotta őket. PHP-- nem kell semmilyen e. PHP nem kér a változó típusa. És az is, hogy hozzon létre egy változó-- inkább mintha azt mondanánk, int, char, string-- ami igazán char *, mint mi tudom-- ehelyett inkább az összes hogy azért, mert mindent van az azonos típusú, típus nélküli, mi csak használja karakter, amely a dollár jel. És látni fogja, ez már felbukkanó up, kis autocomplete dolgokat. És mondja, hogy _GET és _POST Két lehetőség van, hogy van elérhető nekem. Néhány ilyen egyéb dolgok más globális változók a PHP hogy akkor használja felett során P készlet 7. Most megyünk összpontosítani a GET és POST. De ez egy hasznos dolog, hogy az IDE csinál ahol egykor beírt abban a dollár jel, ez fog kezdeni kitöltésével globális változók vagy változók, amit már definiált. Tehát, ha akarta, hogy meghatározza változó a "szöveg" akkor csak meg azt egyenlő "hi". És ez alapvetően olyan egyszerű, mint ezt. És akkor tudnánk csinálni olyasmit, hogy "echo $ string." Az IDE kell dobott néhány hibákat, ha csinálok semmi rosszat, így remélhetőleg csinálok mindent jól. De a hibákat mindig nem merülnek fel. Egy másik trükkös dolog PHP hogy ez nem összeállítani. Tehát C program, akkor tegye A napi rutin of-- alapvetően, ha lenne szerkesztések A kód azt menteni, és akkor lenne teszik, ahol make volt A lépés, hogy nevezett a fordító, csenget, hogy a kódot, ez a szöveg fájlt, egy futtatható. PHP C-szerű, de ez végre menet közben használt böngésző. Szóval nincs lehet tudni. Tedd azt dobja azokat Hasznos hibákat, ugye? Olyan lenne, mint Ön nem vallották ezt a változót Mielőtt megpróbálta használni. Te tetted ezt rossz stuff-- szegmentációs hiba, szegmentációs hiba, minden fajta szórakozás alkalommal kapott make. A PHP egy kétélű kard mert nem fog ez a hiba, de ez azt is jelenti, hogy nem fogod tudni Tényleg, mi a baj a programmal ha csak futni, és ez nem működik. De a debugger ki kell emelnem, Néhány remélhetőleg hasznos kis dolgok nyelvtanilag, hogy meg tudod oldani. Tehát most, ha átmegyünk az alábbiakra: azt mondják, zárjuk ezt. Újranyitása. És újra itt vagyunk, hogy itt. Tehát van egy változó és egy B változó. És ezek végül nem számít. Hívjuk őket h és g különösebb ok nélkül. És köszönünk. Most úgy néz ki, mint a húr "hi" valóban a nyomtatást. Létrehoztunk egy változó nevű "karakterlánc," meg, egyenlő "hi". Figyeljük meg, hogy nem volt köze malloc vagy hogy egy karakter tömb. A PHP, mert változók a típus nélküli, egy string ugyanaz, mint egy char számára minden szándékkal és céllal. Ez lehet a "hi". Ez lehet csak a karakter k. Ez lehet egy szám 1. És ez nem érdekli. PHP nem érdekel milyen típusú a változó. Vagy ez nem érdekel. Ez érdekel, amikor megpróbál és olyan dolgokat vele, de ez nem érdekli A nyilatkozat lépést. És mint te is a C, akkor Kijelentem, húrok a verem, mint ez bár azt mondja: "verem" egy kicsit Kicsit potenciális helytelen elnevezés, amikor beszélünk PHP. De nem kell aggódni, hogy. Szóval megvan a húr "hi", és mi echo karakterlánc. Így most már tárgyalt változók. Tehát most kell beszélni get és Posta és végre az utolsó dolog, ami szükség, hogy valóban ezt vissza A funkció a P szett 6. Akkor most mi vagyunk visszhangos a húr, de nem kell ezeket a változókat kap és post. És mivel mi használ A módszer kap, akkor Természetesnek tűnik, hogy a változó, mi érdekli, az A és B, lesz található a tömbben vagy szótár, technikailag kap. Ha tehát létre, hogy ilyen Ön groups-- nyomtam be és ez nem tetszett it-- de itt már kap. És így kap már létezik. Így már elkezdheti a hozzáférést néhány eleme a GET. Ha nem kap, ez a szintaxis tömbök a PHP-ben nagyon C-szerű. Megvan a két szögletes zárójel. Tehát, ha azt mondjuk, hogy egy normális tömb, tudtuk elérni A nulladik index, az első index. PHP nulla index. Mondhatnánk nulla, egy, two-- dolgok, mint ez. És már azt mondja, hogy kap technikailag egy szótárban. Tehát mi PHP csinál a motorháztető alatt, ami egy kicsit szebb, mint a C, ez már ad némi szótár funkcionalitást, amely valóban hash táblák, vagy megpróbál, állítólag. Vagy, technikailag lehet egy próbát is. De a PHP végrehajtja a hash tábla, képező hatékony szótárban. És így tudjuk a nevét a mi változó, ugye? Akkor azt telt el A lekérdezés string PHP. Van egy = H és b = g, ahol a és b a nevei a változók. Tehát az is, hogy tudjuk elérni a értéket, amely megfelel a kulcs a mi szótár Csak azzal _GET_GET ["a"]. Tehát most van _GET ["a"]. És ha csak cserélje belül a visszhang, ha echo _GET_GET ["a"] - és majd meglátjuk, hogy a hibakereső dob esetleges hibákat mintegy this-- fogjuk menteni, hogy zárja be ezt ki. Nyisd fel. Úgyhogy csak csinál egy jobb most, hogy b nem számít. "ő" és a "vele" - "zümmögés." "ő" és a "zümmögés". Jól hangzik. És ez kinyomtatható "ő", ami őrület. De hogy pontosan mi történik a P szett 6. Alapvetően mi P szett 6 volt doing-- echo hello, name-- ahol volt egy változó nevét, és ez csak kéri, hogy írja be azt a kis szöveget. Volt még néhány kiegészítő kód, ahol ez benne, ha nyilatkozatok, amit tehetünk most. Elmondhatjuk, ha létezik, amely egy funkciót a PHP, _GET Az aláhúzás, "name" - amely lényegében azt mondja, "Ha a név nem lett kitöltve", mert tudtunk volna csak rákattintott a gombra elküldeni az űrlapot nélkül gépelés semmit ezen a területen. És csomagoljuk, hogy a mi barátságos kapcsoszárójele. Mi lehet egy else utasítás. És ez mind a PHP szög konzol, kérdőjel, hegyes zárójel, ha úgy tetszik. És most majd meglátjuk, ha ez működik. Folyton arra vár, hogy a debug és szarni ki rajtam, alapvetően, de ez még nem. Lehet, hogy majd most mert én beszéltem. Aha. Tette, sőt. Szóval, semmi sem mutat fel. Ennek oka, hogy valami baj van hogy én írtam a PHP kódot. És azt már említettem a hibakeresés trükkös, mert a PHP, mi nem fordította volna ezt megelőzően és a fordító nem tetszik, itt van, ahol a hibák. De mit tehetünk is-- tenni az emberek emlékeznek hogyan kell nézni a különböző hálózati kéri, hogy PHP-- vagy honlapok elküld? [? Malin?] Tette ezt előadás egyszer vagy kétszer. Emlékszel hova megyünk találni A különböző tartozások és 200 OKS, mindezek a szabályok, hogy küldik HTTP-n keresztül web oldalt weboldal? Tudja valaki emlékszik hová megyünk erre? Közönség: Oldal forrása. SAM LEVATICH: Oldal forrása. Pontosan. Ha megy oldal Source-- tökéletes. Tehát Oldal forrása húzza fel az ellenőr. És én vagyok a Safari. Sok akkor valószínűleg használja a Chrome vagy a Firefox. De amíg te minden modern browser-- és bátran kövesse valamint ha akarod. Akkor írja fel ezt a kódot, vagy Csak belenézel a Pset 6 könyvtár néhány hasonló dolgokat. hello.php mi vagyunk jelenleg is dolgozik emulálni. Tehát vannak különböző fülek. Azt nézd meg a források. Láthatjuk a forráskódot. Így néz ki, hogy nem hogy elmúlt testület a végén. Ez hibát talált a PHP és megállt betölti az egész weboldal. Mi nem is kell véget címkét HTML, vagy bármi. És ha megnézzük a hálózat, tudjuk látom, hogy mi van intézett. Ez az a tartomány. Ez az a cím. Ez egy dokumentumot. Mi a GET-metódussal. És ez a piros. Vagy, Vörös volt, amikor én Nem bejelölésével. Hogyan vetted meg? Nos, nem volt piros. Hadd frissítsem. Ott van. Most már piros. Szóval ez a piros, ami azt jelenti, ez nem sikerült, ami rossz. Tehát nézzük meg, hogy miért nem. Így minden, az oldal forrását is Alapvetően mondani, hogy a dolog nem működött, amely akkor már látni. Tehát ideális esetben ott lenne használhatóbb eszköz. És van néhány böngésző kiterjesztés amely lehetővé teszi, hogy debug PHP, de mi nem megy írni egy csomó PHP, így talán csak a legjobb hogy nézze át a kódot gondosan és csak arról, hogy ez nem csinál mást. Tehát lássuk, ha a formátuma Ha az állítás, hol a probléma. Azt akarom tölteni, hogy újra itt. Helló, szia. Szóval van egy kis gond van. Tehát a helyes szintaxist PHP, PHP megy hogy a C-szerű, hogy látni fogod hurkok. Majd meglátod, ha kimutatásokat. Majd meglátod mindezeket barátok hogy már megismerik több mint során E CS50 félévben. De a legjobb módja annak, hogy kitaláljuk, hogyan lehet tenni valamit a PHP-ben, hogy a Google is vagy nézd meg néhány példát PHP kódot mert tudod, hogy a funkcionalitást. Tudod, mit tudsz ezt a programot. Tudod hurok. Tudod hurok, ahányszor csak akar. Akkor hurok minden a legkülönbözőbb módokon. Tudod teremt funkciókat. Tudod teremt funkciók hívni más funkciók, funkciók hogy hívják magukat. És van, neveket ezeket a fogalmakat. Megvan rekurzió, hurkok, ha más ellenőrzési folyamatok. És így a Google a legjobb barátod. Még azt mondják, "PHP, ha nyilatkozatot ", és hogy lesz- legyen tonna állások választ mások akik már voltak hasonló kérdések Önnek, akik csak most kezdik el a PHP és kíváncsi szintaktikai dolog. Mert mi van a luxust, hogy tudja, hogy nézd meg a kódot Pset 6, mi valójában húzza fel, és látom, hogy OK, itt van valami érdekes. Szóval ez az, amit valójában nézett ki, mint a P szett 6. Tehát, ha végig ezt, láthatjuk, hogy már Van több ilyen kis PHP-szerű kérdőjel bit. És itt nincsenek zárójelek segítségével. Vannak kettőspont. És vannak göndör nadrágtartó PHP, de ez egy olyan formátum, és egy módja a PHP, hogy jól működik a HTML mert ahogy látni fogjátok, mi záró ki ezeket PHP bits-- a másnak és az IFS és az összes hogy-- majd mi interspersing HTML bennük miközben követő vezérlésfolyam által meghatározott PHP. Szóval én csak fog gyors séta ezt mert ez egy csomó ugyanolyan koncepciók csinálunk előtt. Megvan ha nem üres, zárójelben, _GET_GET ["name"]. Ez mind ugyanazokat a dolgokat. Mi az _GET szótárban, hogy PHP küld kérésére formák, mert ez a paramétereit akció, és a módszer kap. És akkor, ha a vége, hogy. A vastagbél egy jelölő, hogy csak ezt ha az if értéke igaz. Ez olyan, mint egy kapcsos zárójel. És valóban, ez egy göndör merevítő Más nyelvek, mint a Python, amely akkor találkozhat, ha csak Ehhez a végleges projekt. És akkor ezt a sort, helló. Aztán itt van ez a fura dolog. Van több zárójelben. Nincs HTTP there-- vagy PHP, sajnálom. De van egy egyenlőségjel. És akkor mi van feladatuk, htmlspecialchars (_GEThtmlspecialchars (_GET ["name"]). Ez a fajta, mint egy továbbfejlesztett változata visszhang. Mint azt már echo, mert így nyomtatni dolgokat PHP. Ez a funkció, ami meghatározott PHP hogy foglalkozik majd néhány csúnya karakterek és bájtértékeket hogy meg tudná átadni. Mindig legbiztonságosabb használni ezt. De echo fogja elvégezni a munkát csak finom, ha nem vagyunk megbirkózni bármivel is csúnya. És így ez ugyanazt a hatása alapvetően, ez a cucc a kérdésből jelek értékeljük PHP. htmlspecialchars visszatér egy szép HTML nyomtatott értéke _GET_GET ["name"], azaz amit csak gépelt formában. És akkor majd köszönni, vessző helyet, és akkor azt. Ez az egész dolog között relációjelet váltja fel, amit htmlspecialchars kioltja. Szóval ez alapvetően hasonló hogy mit csinálunk. És van egy else utasítás, hogy ez hello world, ami teljesen érthető. Szóval most menjünk vissza a kódot, és látni exactly-- ó. Azt mondta létezik, amely nem Egy dolog, hogy szerettünk volna csinálni. Azt akartam mondani, nem üres. És ezért ez a munka egy kicsit kicsit jobb, nem üres _GET_GET ["name"]. És ez kapcsos zárójel megegyezik kapcsos zárójel. Megvan a kapcsos zárójelek itt. echo hello _GET ["name"]. Lássuk, ha ez működik egy kicsit jobban. Még mindig fut a szerver. Szia Jason. Szia Jason. És működött ebben az időben. És ez az igazolás hogy valóban Használja a kapcsos zárójelek, hogy ismerik és szeretik a PHP kód HTML-ben. A PHP kód nyújtott Önt PSET 6-- PSET 6-- további lehetőségeket ad csinálja ugyanezt. Tehát most már a hatalom. Megvan a funkcionalitás megvalósítására A PHP kódot, amit látott PSET 6 a magunk, alapvetően. Mielőtt áttérnénk arra, mik a kérdésre, hogy van ezen a ponton? Igen [hallható]. Közönség: Tehát változatának pset6, futtatáskor, van egy hely. És látom, ahol a tér a vessző után. [Hallhatatlan] Start A nyitó zárójel. Hogyan bele a helyet ahogy írtad a saját kódok? Előadó: Ez egy jó kérdés. És így nézzük, hogy ki. Szóval ez egy nagyon jó kérdés és az egyik, hogy nem tartottam. De nézzük együtt csináljuk. Tehát először is, hogy mi Csinálok echo van, amikor csak echo hello, kiadja helló. Ha echo most ez kap egy külön vonal, Vizsgáljuk meg, mi történik. Tehát kattintson erre. Tartjuk mondván, hi Jason. Tehát újra, nem ezt a helyet. És ez azért van, mert a PHP, amikor már echo, nem számít, hány spaces-- dehogy, nem V-- nem számít, hány mezőt teszünk here-- ha most betölteni, hogy újra, hi Jason. Igen, lásd, az összes ilyen terek kapott felemésztette. És ez olyasmi, Az echo függvény. Tehát vigyázni hogy a tér, és ez az az egyik oka miért nem használja echo és használja htmlspecialchars helyett. Kíváncsi vagyok, mi lenne történne, ha ezt tettük ahol zárt térben egy szövegben. Én tényleg nem tudom, mi fog történni, ha ezt csinálom. Szóval ez az egyik módja. Ez az egyik módja annak, hogy vigyázzon rá. Ha tekerje a helyet a szöveget, majd a tér akkor is kiviszi szépen visszhang. A legbiztonságosabb dolog, csinálni htmlspecialchars. Ez mindig a biztonságos fogadást. De most van egy módja, ez az echo, ha szükséges. És hasonló módon tudunk echo új vonalak, minden sort A cucc még nem ismeri csinál PHP. Bárki más, mik többé kérdésre, hogy más emberek Ezen a ponton a PHP-ről? Ha az emberek mutatott fel egy kicsit későn, Boldog vagyok, hogy maradjon, miután egy kicsit és beszélni néhány elején. És ez is az összes livestreamed, és archív, ami őrület. Különben is, így most nézzük meg néhány fejlettebb cucc PHP. És az egyik legkorábbi dolog, amit vezették be, hogy a C volt a hurok. És a PHP van egy erősebb az hurok úgynevezett foreach ciklus. És úgy néz ki this-- minden üres üres, zárójelek, ezt a dolgot. Szóval ez alapvetően egy rövidített. Lásd, a for ciklus, mint a szintaktikai építése dolgozta ki a C és a gyülekezési nyelv és a dolgok tetszik. Kidolgozott C, pontosan, gyors- Egy csomó típusú hurkok hogy az emberek látni. Mint amikor azt írta a hurok, ott gyakran volt egy kiindulási lépésben végrehajtott rögtön az elején, egy állapot, amikor a hurok lenne stop-- és ez a funkció ez csak egy while ciklus, vagy hogy egy ideig pontosan Csak, hogy feature-- majd egy Növelés lépés végén. És így azt gyakran találja magát kódot írni, mint a következő. Megyek töröljön néhány e. De ha már ismételve keresztül karakter egy tömbben, például, mint mi már Van egy sor karakter. Sajnáljuk, hogy vissza C. tudom, azt hittem, kész. De ez csak arra a célra A tanulás PHP, ígérem. Tehát, ha van egy char str A hossza 8, és nézzük azt mondják, hogy mondja Hellooo A záró null. Nagy, szóval ez a string. És akkor volt egy hurok. Van int i értéke 0. És azt akarjuk, hogy kilépjen, ha str Az i értéke nem egyenlő null, mert lépni, ha az megegyezik null. És akkor mi i ++ minden pont a for ciklus. Csinál valamit str i. Tehát az alapvető formula volt, mi volt ez a tömb, hogy mi akarta kezelni különálló elemként. De amit meg kellett tennie, amit kellett alapvetően egy olyan külön integer változó, hogy számolta fel minden időt mentünk át a hurkon. És akkor mi lett volna akkor hívja strstr [i], ha az, amit igazán akartam csinálni csak menj karakter karakterre, ugye? Nem akarjuk, hogy növeljük a integer majd ezeknek az egész eléréséhez minden egyes karakter külön-külön. Valóban szeretnénk karakterenként. És így minden intelligensen úgy számol, hogy a számunkra. Ha van egy tömbben, amely kijelenthetjük PHP mint csak-- ha van egy változó nevű, nevezzük tömb. A csodák nincsenek gépelés, ez mint bármely más változó. Ez csak egy tömbben. És van egy kis [hallható], mint 1, 2, 3, csak egyfajta újonnan elkészített tömb. Az rendben van, hogy nem tetszik a foreach. De ha valóban foreach-- Beírtam, hogy egy kicsit rossz. Két módja van egy foreach ciklus. Ott a szintaxis és a mint a szintaxis. És fogunk csinálni szintaktikai első, nem. Ez az én hibám. Tehát foreach szám a tömbben, echo szám. És PHP ordibál nekem valamiért. Ez találni egy váratlan el valamit, ami egy kicsit a fáradságot. De majd kitaláljuk hogy ez miért van egy pillanat. Szóval nem olyan. Próbáljuk az a. Kedveli a mint szintaxis tűnik. Tehát lássuk foreach tömb szám. Szóval egy kis magyarázatot Az, ami történt Az AS-szintaxist saying-- is első, nézzük meg, hogy mi ez a készülék kinyomtatja. Így nyitunk meg IDE. Mi megy itt. Azt mondjuk, Hello, Jason. És valóban 123, melyek tartalma a tömb, amit teremtett fel tetején. Tehát búvárkodás ebbe foreach ciklus, van egy változó nevű tömb ami a tömb három szám. És akkor mi csinálunk foreach tömb szám, echo szám. És ez több, intuitív, mint egy az lop. Azt mondjuk, kezelésére minden A dolgok a tömb szám, Azt akarom, hogy adjon nekem Num. És ez pontosan mit csinál. PHP kiszámításához amikor azt mondod foreach tömb, és van dolgunk, egy tömbben, mit fogsz akar végighaladni a karakter, hogy tömb, az ehavi abban tömb, az elemek, hogy a tömb. És ez hagyta, hogy tárolja azokat a változókat, mint szám, és aztán csak kimeneti num Azonnal ahelyett, mondván, Nekem van egy változó az i, és akkor szeretnék kimeneti strstr [i]. És úgy, hogy lehetővé teszi számunkra, hogy nem jó dolog. Mint alapvetően nincs létrehozni ezeket a változókat, mint az i és tegyenek meg mindent ez a növelés cucc végén. PHP gondoskodik minden, hogy az Ön számára. Tehát most beszéljünk foreach mint ez érvényes a _GET szótárban. Szóval majd hozzászóló gyorsan. Szóval megvan a _GET tömb. Van ez a változó. És van néhány dolog benne. Most már csak egy változót hárítanak rá, ami nevét. De ha nyomjuk meg, most mi lehet a két változó. Mi lehet nevét és korát, például, Ha azt akarjuk, hogy a kor és Az adott személy neve, furcsa módon. Tehát most _GET lesz a Szótár két elemet, két legfontosabb érték párokat. És az első key-- fogok levelet ezt fel a táblára is. Megvan a szótár _GET. Sajnálom, de ez egy kicsit nehéz észrevenni. De belül a szótár van Íme, amelyet lesz valami hogy mi adni. És mi lesz kor, amely szintén lesz valami, hogy mi adni. És ez a teljes egészében Az, hogy a szótár. Szóval ez van két elem benne. És így, mert foreach hurkok okos, mi Azt gondolhatnánk, és helyesen Azt gondolhatnánk, hogy foreach lehet halad végig ezt szótár, kinyomtatásával által megadott értékek nevét és életkorát. Úgyhogy tulajdonképpen nem csak ezt. Nézzük össze egy foreach ciklus. És fogunk csinálni _GET, mint. És mi lesz a következő lépésekre. Nézzük, mi történik, ha beírjuk Csak szót, majd azt mondják visszhangja szót. Mi is lesz, hogy echo egy új sort csak hogy egy kicsit világosabb, mi történik. Tehát lássuk. Ez nem ad nekem semmilyen hibát. És majd zárd be ezt. Honlapunkon fogsz csinálni egy csomó, amely során a pset7. Tehát azt mondjuk a nevem Sam. Korombeli 45. Ez nem. De nem írja ki, mint az várható volt, Sam 45. És így látjuk, hogy mi foreach ciklus did-- itt, menjünk vissza, hogy így akár A board-- kapunk _GET a szót. És volt négy dolgokat _GET. De ez csak az kinyomtathatók két dolgot. foreach, hogy a hírszerző én, Feltételezhető, hogy az, amit igazán akart volt az érték, nem a kulcsokat. De van egy módja, hogy mi lehetett nyomtatni ki a kulcsokat is, ha akarnánk. Ha akarnánk is tudom, mit ezeket a változókat hívták, van egy módja, hogy mi férsz is. És ahogy az a fajta csinálni, így elmondható, amellyel igazán osztott be kulcs érték párokat. Nézzük, mi történik most. Tehát van kulcsa. Van értéket. Van egy új sorban az olvashatóság érdekében. És lássuk, mi történik ha ezt tesszük most. Nem tudom, hány éves Jason. Jason 15. Tehát van név Jason, 15 éves korában. Így tudtuk elérni a kulcs és érték párokat ennek szótár Csak azzal a kulcsfontosságú pontokat értéket. És ez egy foreach szintaktikai cukor kicsit amely lehetővé teszi teszi a hozzáférést a dolgokat a szótárban. Így remélhetőleg ez a fajta hangsúlyozza A hatalom a foreach ciklus. Akkor elég sok dobás bármit, ami úgy tűnik, iterable, mint bármi, ami több elemeket, mint egy tömb, mint egy dictionary-- ez két elsődleges dolog, akkor lehet dolgozni mind az életben és a PSET 7. Szóval lehet dobni, hogy a cucc rajta, és ez lesz kitalálni mit akarsz csinálni vele. Ez fogja mondani, OK, megyek, hogy ezek a dolgok az adatokból, hogy átadták nekem. És ez olyasmi, te lesz egy csomó a PSET 7. Megyek Gyorsgörgetőt le, csak, hogy hol vagyok. Vajon az emberek kérdései, ezen a ponton? Kérdések egyáltalán? Igen? Közönség: Tehát a kulcs és érték, akkor nevezd meg mást és ez még mindig működik? Előadó: Hoppá. Wow, én teljesen törölte a teljes vonalon. Nagy munka. Tehát egy, a. Kulcs és érték csupán egy konvenció. Ez hasznos. Akkor kap néhány tervezési pont, talán néhány stílus pont csinál, hogy azért, mert Tényleg közvetíti a szándék. De mondjuk egy és yarp. Közönség: Nem kell, hogy változtat semmit a HTML fájlban annak érdekében, hogy tükrözze ezt? Előadó: Egyáltalán nem. Közönség: És ez csak tudja, hogy mert az egyenlő nagyobb than-- Előadó: Igen. Közönség: --that mutatója, hogy that's-- Előadó: Igen. Ez egy foreach szintaxist, de igen. Közönség: Nincs típusok. Szóval mi van, ha akarta, kor csak egy szám? Van úgy, hogy? Előadó: Több lehetőség is van, hogy ellenőrizze, változók felelnek meg bizonyos típusú. Tehát PHP kéri egy kicsit többet Ön mivel nincsenek típus. Bizonyos szempontból ez azt kérdezi kevesebb. Bizonyos szempontból azt kérdezi többet. Mert ha csak valamit egy változó, Önnek fogalma sincs, milyen ez. De ha okos a változók hogy rendeljen típusok és győződjön meg róla, , amely csak akkor return-- szeretnénk funkciók csak vissza egy típusú értéket, így hogy akkor alapvetően elvárják, hogy a változó kapsz vissza Egy függvény lesz a típus hogy úgy gondolja, ez lesz, alapvetően. De vannak olyan módszerek amellyel ellenőrizheti. Nem emlékszem rájuk le a fejem tetején. Várom, hogy kék színűre. isint? isstr? Vannak módszerek épített PHP, amely ellenőrizze a változók típusa az Ön számára. De ha rendelni változók okosan, akkor nem kell meg kell csinálni, hogy túl sok a PSET 7. De ezek a módszerek léteznek. És ez olyasmi, ez a nyelv maga. És nem emlékszem pontosan szintaxist. Akár azt is nézni, hogy ki. De az idő a lényeg. Van-e bárki más még kérdésed? Igen. Közönség: Van még egy. Szóval említette a GET módszer, de Ön nem említette a POST módszert. Jövünk vissza, hogy? Előadó: Igen, úgy lesz jön vissza, hogy a. Pontosan ez az, amit kerestem a telefonom, amely most elaludt, de én fogom találni. Csak ügyelve elérünk az összes PHP megjegyzések. Ja, nincs hibakeresés változata. Igen, van még néhány dolog, akarunk csinálni most ezen a ponton. Így beszél POST, amit említett, Az egyetlen különbség között a GET és a POST hogy emlékszem, amikor néztük Ebben URL-t és láttuk, ó, név azonos egy és kora megegyezik yarp igaza van az URL-ben ott nekünk. POST egy kicsit titokzatos A múló információkat. Tehát, ha nem akar egy felhasználó tudni, például, akkor Nem akartam a felhasználóneveddel és a jelszót a személy bejelentkezett megjelenítéséhez az URL, ami egy ésszerű dolog hogy nem akarja az URL, mert valaki lássa. Ha ők hivatkoznak, hogy valaki egy oldalon nem akarják, hogy URL vakolt ott, mert ez lehetővé tenné, hogy az emberek a bejelentkezéshez Csak a beillesztés egy URL helyett A ténylegesen egy űrlap kitöltése. POST egy kicsit több titokzatos. És az egyetlen dolog, ami akkor meg kell változtatni vagy ez a módszer, a változás re fog küldeni. Majd belül a HTTP helyett bejutó a tömb _GET, fogunk elérni a tömb _POST. És mi észre, hogy ha megnyitjuk ezt vissza újra, Jason lassan csökken a korral. Íme Jason, 14 éves. Ugyanazokat a dolgokat bukkan fel. De megyünk a URL-t és azokat a változókat nincsenek ott. És az is, hogy a POST passes-- úgy emlékszem, hogyan kell nézni a forrása az oldalon. Mi megy a hálózat. Mi frissíteni. És ez egy másik dolog, hogy POST kapsz figyelmeztetéseket. Talán láttad egy doboz, egy szöveges doboz, mint ez a böngészőjében. Biztos benne, hogy szeretné küldeni formában újra? POST Mi a küldő ezek a formák. Mert alapvetően, ha elküldte a hitelkártya adatokat valaki, ez nem fog megjelenni az URL-ben. Hogy lesz egy POST kérést. Tehát, ha az oldal frissítése, ez újraküldése hogy a post kérést. Szóval most mi szeretnénk küldeni a alkotják újra, mert ez nem fog létrehozni az ismétlődő vásárlások. És akkor veszi észre, hogy itt lent, A módszer mi használ a POST. És ez valóban át bájt. Ez átutalt 401 közülük. Program elég apró. De nincs hová, hogy látjuk Az értékek kerülnek át. A weboldalak magukat láthatjuk, de a felhasználók nem tudják látni, hacsak nem egy hacker. Ha egy jó hacker, akkor nézd. Ha tudja az alapvető formátum a HTML, Az értékeket tesz jelentkezzenek az oldalt. Ön képes lesz látni. Az értékek ott lesz, ők Csak egy kicsit kevésbé nyilvánvaló az Ön számára a hozzáférés, alapvetően. Van már többé kérdései GET, POST before-- mit fogunk csinálni a következő valójában nézd meg néhány, a kódot hogy adsz a PSET 7, beszélni hogyan használja néhány ezeket a fogalmakat, és megbeszéljük a dolgokat, hogy fogsz hogy meg kell csinálni egy kicsit a PSET 7. Több kérdésre előtte? Több kérdés a srácok? Nagy. Rendben, nézzük meg Egy kicsit meg PSET 7, Nem kétséges, hogy mi vagy Minden leginkább izgatott. Úgy értem, ez olyan dolog, David megy keresztül egy kicsit. De mi lesz három könyvtárat a top, valamint egy konfigurációs fájlt. Ez az adatbázis, amit majd beszélni körülbelül öt perc. Tartalmazza, soha nem kell nézni ebben a könyvtárban ha nem akarjuk, hogy de jó, hogy tudom, vannak mindenféle segítők. Segítők olyan, mint hasznos funkció. És akkor mi van config, amely meghatározza néhány dolgot. Vannak olyan funkciók, amelyek CS50 van írva, hogy vannak segítő és config. És néhány PHP, hogy Már kilép a fájlokat fog sokat a több sort A tompa láb munka az Ön számára. Mint ha bemegy az állami login.php, amely a mi felbukkan jobb, ha bemegy PSET 7. Meglátjuk, hogy van Ehhez pedig nyilatkozatot. És ez a fajta, mint egy Éles közé, hashtaget tartalmazzák, ha egy újabb generáció. De ez alapvetően azt mondja, hogy szükségem van-hozzáférés hogy az összes funkciót config.php. És akkor lehetett volna egy követeli mindenféle más dolog. config ténylegesen szüksége segítők. Szóval, ha szükségessé config, te is beleértve, vagy igénylő segítők is. Annak érdekében, hogy hozzáférést biztosít az összes hűvös funkciók, hogy fogunk használni, Dolgok, mint teszik. Én valóban megy, hogy megkönnyítsék ezt le egy kicsit. Így a funkció akkor vagyunk megy a séta mielőtt rátérnénk a SQL egy kicsit bit a login.php funkciót, csak mert használ néhány téma hogy mi csak beszélgettünk, PHP nyelven. Látod, az első dolog, ha a $ _SERVER. Ez egy újabb globális változó, hogy fogsz foglalkozni. Ez olyan, mint _GET és _POST, de mi szerver tartalmazza az ez engedi tudom, ha a kérelem módszer volt GET vagy POST. Mint korábban, amit csináltunk csak a mi kódban is, mi csak változó, hogy legyen a GET és POST attól függően, mi a HTML-ben. De vannak lapok is megközelíthető mindkét típusú kéréseket. És érdemes csinálni különböző dolgokat attól a kérés fajtája csakúgy, mint a login. Így ellenőrizheti, hogy kérésre módszer segítségével betekintés kulcsok, keresztül egy gombot, és egyre a értéke valamit a szótárban _SERVER. Szóval ez egy újabb globális változó, mint _GET és _POST. Ha ez a GET, szeretnénk teszi a belépés formában. Render egy olyan funkció, hogy alapvetően Csak teszi fel a megfelelő HTML és átadja néhány paraméter. Ez a cím egy olyan paraméter, ami használt megjelenítésére, furcsa módon, Az oldal címe a kérdés, a dolog itt, mondjuk, vagy hello előző példához. Most van egy másik dolog. Különben, ha ez bejegyzésben nem más dolog. Mi használva az üres módszer. Ez nem létezik, hogy üres. És láttuk korábban, PHP van egy szép összeg a beépített A módszerek, hogy David will-- ha olyan módszerek, amelyek hasznosak az Ön számára, akkor riasztani Önnek A séta, hogy Dávid ad az elején áttekintést, valamint Zamyla segítőkész bit. Ő vissza mindenki. Mindannyian örülni. elnézést egy találó nevű funkció hogy alapvetően csak kiírja Bizonyos hibaüzenetek, mert CS50 nagyon udvarias. És most ez az, ez egy trükkös kicsit, mert ez van, ahol mi vagyunk az adatbázis lekérdezésekor. Most még nem beszéltünk adatbázisokat. És mi lesz a következő öt perc múlva, maximum. De ez egy funkció hogy CS50 írt hogy egy asztalnál alapvetően egy adatbázisból hogy mi dolgozunk a PSET 7. Én nagyon rossz az én nulla indexelés ma. De igen, ez 7. Tehát kérdezni, hogy fog visszaadni tömb, alapvetően a kulcs kicsit. És mivel ezek a dolgok nem gépelés, így sor olyan tömb tömbök. Mert amikor arra gondoltunk, hogy egy asztal, mit fogunk csinálni van, ahogy tanult psets mint a játék 15, egyébként ahol kellett, hogy egy kettős tömb, mi alapvetően Van tömb többi tömbök teszi az asztalra. És neked sorok és oszlopok. És akkor érheti őket, mint [0] [1], az lesz a [0] [1]. Alapvető ilyesmi. Szóval, mit csinálunk Itt ebben a funkcióban, kérünk az adatbázis ha a felhasználó ez próbálsz bejelentkezni, hogy lesz postán módszer. Meglátjuk, mi megvagyunk A felhasználói nevet _POST. Fognak küldött, a felhasználó vagy, küld egy értéket egy űrlap segítségével tegye, mert ez felhasználónevét és jelszavát cucc. Ellenőrizzük a felhasználóneveddel látni, ez a táblázat? Mert ha egy felhasználó bejelentkezik a, majd a felhasználóneveddel kell tárolni a táblázata a felhasználókat, hogy létezik ezen az oldalon. Tehát alapvetően, ha a felhasználó az adatbázisban, lekérdezés fog visszatérni hogy sorban, ami a tömb. De a kutya elásva, hogy ha még ha A kettős tömb csak az egyik sor, akkor is, ha ez egy egysoros array-- mint megvan basically-- ha van egy mérete egy tömbben hogy van a kezében egy másik tömb, te tényleg foglalkoznak egy oszlopban. De ez még mindig kezelik mint egy dupla tömb. És ez az, ahol lehet néha trükkös, mert megvan sorok itt. A változó sorok. És akkor mi hozzuk létre egy új változó nevű sorban és állítsa át megegyező az első sorban a sorok. És észre fogod venni, hogy megjegyzést azt mondja, hogy az első és egyetlen sorban. Szóval ez a trükkös rész, ahol most funkciók Visszatérhet tömbök nagyon könnyen. Ott nem mallocs. Nem fogja látni mallocs. Szóval akkor nem fogja látni seg hibákat. De funkciók továbbra is halad körüli tömbök és adatokat csoportosan. És van, hogy legyen óvatos, mit Pontosan a funkció visszatér. És még ha ez az egyik oszlop, mint ez, lekérdezés még mindig tart, hogy visszatérjen a kettős tömb. Tehát, hogy elérje az column-- vagy lehet gondolni mindez a fordított mivel beszélünk sor. De elérni, hogy egy sorban, nem lehet csak mondani sorokat. Annak ellenére, hogy az egyik sorban, meg kell ne rowsrows [0], hogy egyfajta megszüntesse ezt külső kicsit a tömb már csak a egy sort. Tetszik néhány más dolog. Van egy funkció nevű password_verify amely ellenőrzi a jelszót, hogy volt kifüggesztett. És akkor azt látjuk, egy újabb globális változó ide, _SESSION. Alapvetően session id hogyan nyomon követni Az, ha valaki be van jelentkezve vagy sem. Tehát most a login.php, mi bejelentkezik egy felhasználó. Tehát mi szeretnénk tenni, azt akarjuk, hogy mondjuk a session id megegyezik a sorban id, amely csak akkor van értelme, mert minden sorban lesz egy másik id számú részeként az asztalra. Mi lesz az SQL egy második, így ha bármely e Úgy tűnik, egy kicsit, mint bla, akkor minden rendben lesz tisztázni kell. De mi lesz beállítani az id egyenlő A megfelelő dolog, naplózza a felhasználó. Sajnálom, ha valami balul sül el. És ez bejelentkezések célra az élet, mint professzor Malan mondaná. Szóval ez volt login.php. És egy csomó PHP kód írsz A PSET 7, akkor lesz egy kicsit. Ne felejtsd el, hogy a chmod a megfelelő jogosultságokat. Lesz egy kicsit hogy az elején a spec. De a PHP, hogy te írásban lesz csinálnak, ami ehhez hasonló. Te leszel hozzáférés bizonyos dolgokat, adott neked a A globális változók a PHP, hogy foglalkozunk a jelenlegi bejelentkezett felhasználó, hogy van-e Van már kérések erre oldal, különböző dolgokat. És ez is potenciálisan iterációjával keresztül sorban ez a dolog. Egy másik funkció, lekérdezés nem tér vissza ez a kettős tömb. És ha több mint egy sor benne, Ha van are-- igen, ha van több mint egy sort benne, akkor ez lesz a táblázatban. És érdemes ismételget A sorok között ezt a tömbben A foreach ciklus, amit leírt. Szóval, ha foreach egy dupla tömb, mi lesz a word-- itt, Én valójában írni. Majd írd gyors itt. Ha van egy foreach sorok a sorban, mi a típusa sorban? Tudja valaki? Megcsináltad? Tehát sorok kettős tömb. Tehát mi foreach fog következtetni hogy akarunk e kettős tömb ha már az iterációt ez? Mi alapvetően azt feltételezik, hogy ez lesz akár elemeket, vagy a sorok, vagy oszlopok, alapvetően. És így a sorok és oszlopok is tudja kezelni, mint ugyanaz a dolog. Alapvetően mi a foreach ciklus megy tennie, hogy ez meg fog visszatérni sorok. sorban lesz a típus sorban, mivel sorok kettős tömb. Tehát, ha adsz foreach kettős tömb, ez Nem fog ismételget több mint egy szintnél mélyebben. Amely alapvetően mondani, ha van Nyolc sejtek ebben table-- 1,2, 3 4, 5, 6, 7, 8-- a foreach ciklus nem megyek végig ezeken sejtek. Mi a foreach ciklus fog tenni ben fog átmenni ezen a soron, Önnek ezt az egész sort. És akkor megyek át, hogy a sorban. Tehát csak Végig egyszintű. Ha hozzá egy beágyazott foreach ciklus, akkor Kényeztesse minden sorban vissza sorok, te foreach sorban eleme, mondjuk. És akkor is visszhangoznak elem. Szóval ez egy rövid kis üdítő, hogyan lehet, hogy a foreach hurkok összefüggésben lekérdezés. Vannak-e olyan kérdésre PHP? Bármi, mielőtt lépni beszélünk SQL és a szórakozás adatbázis? Jól érzi magát? Jól érzi magát. Minden rendben. Térjünk át vissza a PowerPoint, amit valószínűleg hiányozni. SQL, hurrá. Emberek, akik az én részén jellemzően tudni fogja, hogy alszámok betűszavak Mindig csak az első szavakat Azt hiszem, az, hogy mérkőzésen algorithm-- hogy mozaikszó. Ez nem egy algoritmus. Tehát SQL egy adatbázisban. Ez egy nyelvet dolgozik adatbázisokkal. És minden adatbázisok is asztalok, legalábbis a módon hogy az SQL képviseli őket. Egy másik módja annak, hogy gondolni adatbázisok adatbázisok egy kulcscsomót és értékek alapvetően. Akkor gondolj egy adatbázist, A szótár és úgy is, mint egy asztal. Alapvetően ez egy módja annak, hogy társítani eltérő adatokat más adatokkal, gyakran a sorok és oszlopok. És ez az út ez SQL működik a legjobban. Tehát ez az egyik példája a táblázatban. Van néhány példa a az emberek az én rész, amely Nem volt ideje változtatni. De megvan a dolgok, mint azonosító, nevet, szuperhatalom, és szülővárosában. Nem tudom, hol bárkit is ettől az én részén, így én csak fog vállalni mindenki a New York- Város, mert van egy nagy statisztikai valószínűsége, hogy helyes-e. SQL automatikusan megteszi érdekel az ID oszlop az Ön számára. Ha beszúr egy új sort egy SQL adatbázis, ez a növekmény, hogy Azonosító száma és csak Alapvetően kibír, mint öt nevet, szuperhatalom, szülővárosában, aki rá a végén, hogy asztalra. Tehát ID egy oszlopban lesz Soha nem kell aggódnia. De, mint abban az esetben, A login.php, amikor kezdtek a session ID- egy asztal és csak használ ID, ID egy módja annak, hogy egyedileg azonosítja egy eleme egy adatbázisban. Tehát, ha már két Sams, mind a amely azt tanította, CS50, és mind a kik voltak Milwaukee, azoknak lenne még külön azonosító szám és így különböztethetőek összefüggésben az asztalra. Szóval ez az, amit az SQL foglalkozik a, dolgozó, a hátsó végén. Ezek pedig a négy parancs hogy szüksége lesz, hogy az SQL. És dobtam mindet fel egy dián. De megyünk végig őket külön-külön. Az első parancs UPDATE, ami azt teszi, amit várnánk. Mondja el, hogy van néhány adat A táblázatban ez elavult. Mint ha tartod követni az emberek nevét és korú, ha valaki életkor növekedésével, majd a fogsz akar menni, és frissíteni, csak az adott személy életkora. Egy példa, hogy működik a mi első table-- ne aggódj írásban minden ezeket a parancsokat egyidejűleg. De ha van frissítés le, hogy jó lesz ez a rész, mert megyünk menj vissza az asztalhoz. Tehát, ha megyünk vissza az asztalhoz, mondjuk valami történt ben volt egy földrengés, vagy törésvonal, amely osztott közvetlenül a New York City-ben. És azt akartuk, hogy frissítse mindenkinek aki élt New Yorkban. Mindannyian kellett költözniük Pennsylvania. Ez nem szülővárosában. Mindannyian kellett költöznie, New Haven. Ott vagyunk. Tehát mindenki a New York-i költözik New Haven. És így, hogy valami, ami szerkesztésekor három sor ebben a táblázatban. De az SQL, amit tehetünk, hogy csak egy nyilatkozatot. Szóval megyünk vissza a frissítés. Hadd gyors törölni ezen a fórumon újra. Amikor beszélünk frissítése, vannak Néhány rész a szintaxis szempontjából kulcsfontosságú. Nos, ez mind a szintaxis gombot. De a dolgok a zöld opcionális. A fehér van szükség, mint előre nevét. És a világoskék olyan dolgok hogy függ az asztalra. Szóval ez mi folyik a A színösszeállítás itt, akár ott. Tehát ha azt akarjuk, hogy frissíteni csak azokat a sorokat Az ember, aki New Yorkban él, így mit tennénk, ha mi azt mondtuk UPDATE? Szóval asztal, ahol fel a neve a mi asztalon. Mondjuk úgy, hogy a név a mi tábla tábla egyik. Tehát szeretnénk jobb asztalra egy. És azt akarjuk, hogy set-- mit akarunk beállítani? Hát azt akarjuk mondani, így column-- PHP kezeli sorok egyedi azonosítóként. És akkor oszlopok A különböző területeken ezen elemek az adatbázis. Tehát az első eleme az adatbázis van egy neve Sam, szuperhatalma CS50, és a szülővárosa Milwaukee. Tehát, ha azt mondtuk állítva, nézzük meg A paraméterek újra, hogy sor kerül. Van oszlop egyenlő értéket. Szóval azt akarom mondani néhány column-- amely emlékszik egy field-- szeretnénk látni a mező egyenlő valami újat. Tehát, ha csak azt mondta frissítés 1. táblázat nevét nem egyenlő Elliot. Kap néhány ember a új szakasz ezen. De ha csak nem frissítés 1. táblázat állítsa név egyenlő Elliot, mi lenne A táblázatban néz utána? Emberek van valami ötlete? Igen. Közönség: Minden, az adott sorban válna Elliot. Előadó: Minden, amelyben egymás után? Közönség: Az első sorban. Előadó: Az első sorban? Miért az első sorban? Nem úgy értem, hogy vegye rád. Közönség: Talán mindent Az egész asztal? Előadó: Minden, Az egész asztal, igen. És ez pontosan így van because-- I Csak segít ki egy kicsit there-- mert kihagytuk Az opcionális WHERE záradékot. Ha nincs meg a WHERE záradékot, hogy mi ez a parancs fogja tenni A jó lesz minden Egyetlen sort a táblázatban. Mindenki nevet fogja válnak Elliott, alapvetően, ami Elliot nagyon örül. Vagy Yanni, az egyik a kettő. De mindenki nevét meg fog változni. Szóval, hogyan használjuk a WHERE clause-- és ez vonatkozik minden, a hová amelyek mindegyikében Ezek különböző dolog. Szóval, észre fogod venni, hogy a SET van oszlop egyenlő értékű. És így nem WHERE. De ezek nem azonosak deklarációkat. Tehát az oszlop egyenlő érték A SET van feladat. Mint azt mondjuk azt akarjuk, beállítani név megegyezik Elliot. De a WHERE, Ezek az egyenlőség nyilatkozatok. Tehát mondjuk mi csak akart változtatni a személy nevét, hogy Elliot ha nevük volt, Ryan, mondjuk. Tehát amikor azt mondjuk HOL neve egyet Ryan, hogy lenne sikeresen egyetlen változás A name-- ez csak módosítsa a mező a sorok ahol a név mező egyenlő Ryan. Tehát, ha lenne több ember nevű Ryan, minden nevük váltanának Elliot. Ez hasonló a példa Az, ha egy törésvonal osztja New York City, és mindenkinek meg kell költözött New Haven, ahogy csak tudunk Ehhez az egyik állítás UPDATE tábla1 SET szülővárosában = New Haven ahol szülővárosában egyenlő New York City-ben. Ez a hatalom Az UPDATE utasítás. Mi lehet kijelölni kívánt sorok révén igaz állítások a mezők azokat a sorokat. Nem tudjuk megmondani, UPDATE tábla1 szett name = Elliot HOL sor = 1, kivéve, hogy tudjuk, ha azt mondjuk, ID = 1. Szóval lesz dolgozó egyenlőség A mezők, az egyenlőség oszlopok. De az ID mező egy módja annak, jelölje ki az egyes sorok külön, mert az ID mező egy egyedi azonosító egy SQL adatbázisba. Szóval, mint frissítése sorban egy, ID = 1. Frissítése sorban két, csak megváltoztatni, hogy az azonosító számot. De a hatalom a HOL állítás, hogy mi frissítheti a dolgokat annak alapján, amit a aktuális értékeket bizonyos dolgok. Igen Elliot? Közönség: És mi van, ha azt szeretnénk alábbiakra: újra, ez egy másik kérdés. De az első kérdésem az volt, hol van ez? Hol vagyok frissítésével? Ez egy PHP kódot? Előadó: Hol frissíteni, igen. Fogunk beszélni hol mindez történik valami egyszer megyünk az összes olyan parancsot. De mit kell tudom, most alapvetően hogy az SQL adatbázis létezik valami hogy elérhető legyen a lekérdezés funkciót, amely CS50 meghatározza. Tehát, ha használja a lekérdezés funkciót, elérheti a táblázatban. Így lesz küldését parancsokat a táblázatot PHP fájlok segítségével a lekérdezés funkciót. Azt is játszani körül Ön asztalra közvetlenül. És ez a legjobb módja annak, hogy tesztelje efféle parancsokat. És megyünk keresztül, pontosan hogyan kell csinálni, hogy csak egy kicsit. Szóval ez UPDATE parancsot. És a többi a parancsok lesznek valamiféle hasonló, dolgozik hasonló dolgokat. Az INSERT INTO valószínűleg A legnagyobb mértékben különbözik UPDATE. Én elmegyek, hogy ott a Csak egy kicsit, és a munka itt. Szóval INSERT INTO, látni fogod ez a táblázat még mindig ugyanaz. Meg akar szúrni. A kapitalizáció, SQL a kis- és nagybetűket. Szóval nem kell kihasználni ezeket a dolgokat. Megegyezés alapján, a szavak fehér aktiválásra kerülnek. De azt is színkóddal őket. Az egyetlen ok, hogy tőkét kovácsoljon ezeket, ha írsz nekik csak kiemelni hogy az említett konstansok. És így akkor sem nézni A kapitalizáció vagy az a tény, hogy már színes különbözőkként. Tehát van INSERT INTO, csináljuk tábla1 újra. Ez az egész egy sorba. Én csak azt elválasztó A különböző nyilatkozatok. Szóval ne aggódj amiatt, hogy tábla1 tette rá a második sorban. Tehát szeretné szúrni INTO tábla1 néhány érték. És észre fogod venni az opcionális bites, amelyet mindjárt a második. Tehát van értékeket. Tehát mondjuk azt akarjuk, hogy adjunk Andi az asztalunkhoz, mert hiányzik Andi. Andi beteg. Tehát tegyük hozzá Andi az asztalunkhoz. Ne feledje, hogy a személyazonosító számot automatikusan frissül. Így az egyetlen ágakból kell aggódni név, szuperhatalom, és szülővárosában. És így az is, hogy ezt tesszük, nézi a szintaxis, a mi már Most kaptam egy zárójelben, vesszővel elválasztott értékek, amelyek mindegyike olyan érték. Tehát ha azt akartuk, hogy helyezze Andi a mi asztal, minden, amit meg kell tennie, hogy jobb Andi. Mi Andi szuperhatalom, emberek Andi részben? Azt szeretném repülés, vagy tetszik sebesség, vagy valami. Mit nekünk már van ott? Van CS50, repülés, gyorsaság, és erő. Közönség: Időutazás. Előadó: Időutazás, csodálatos. Tehát van Andi, ideje utazás, és szülővárosában. Ez egy nagyon jó kérdés. New York City, kivéve, ha valaki tudja. Mindenki New York a tanulság, hogy elvegye a mai. Tehát ez a kijelentés helyezze, mint egy ötödik sorban, a szuperhatalom időutazás és a szülővárosa New York City. De a nem kötelező mező alapvetően egy módja hogy határozza meg pontosan, hogy mely oszlopokat beszúrni kívánt dolgokat. Az hogy csinálunk most, Andi, időutazás, New York City, megy a pontos sorrendje a table-- nevet, szuperhatalom, szülővárosában. És ha akartam csinálni valami más, mint az, mint mondják, nem tudtad valaki szuperhatalom, mint a hogyan nem tudtam Andi szuperhatalom az elején. Szóval csak annyit tudtam volt a név és szülővárosában. Mit tehettem van tudtam do-- fogom törölni ezt a gyors. Azt akarom, hogy csak az oszlopok frissítéséhez. És ez az, ahol az opcionális oszlop lista kerül szóba. Én csak azt akarom, hogy frissíteni nevet és szülővárosában. És akkor én azt mondom értékeket. Megteszem Andi és New Yorkban. Ha tudtam volna kimaradt oszlopok listájából és csak tenni ezt a két dolgot, hol lenne New York City mentek? Melyik oszlop lenne New York Város kerültek be? Emberek van valami ötlete? Szuperhatalom, pontosan. Tehát ez csak megy érdekében. És, amint eléri a végén a listán, akkor csak megállítani töltés dolgokat. És az értékeket, amelyeket maradok itt az összes oszlopot lesz csak NULL. Szóval, mert mi megadva nevét és szülővárosában, megyünk, hogy azonosító 5, Íme Andi, szuperhatalom NULL. Tehát szuperhatalom egy előkészítetlen értéket. Ön nem feltétlenül kap a ugyanolyan Valgrid hibákat, ha megpróbálja és hozzáférni. Minden meg fog szépen nullázni ki, mert NULL érték van a SQL. Ez egy állandó. És akkor szülővárosában lesz New Yorkban. Szóval ez a INSERT INTO parancsot. Mielőtt rátérnénk, van További két parancs. Vajon az emberek bármilyen kérdése van UPDATE, mintegy INSERT INTO, az SQL Általában mielőtt továbbmegyünk ra a végső bit? Az emberek jól érzik magukat, jó. Imádom. Szóval beszéljünk SELECT. Megy árok UPDATE ide. És válassza ki lesz nagyon hasonló. A cél a SELECT, SELECT célja az életben az, hogy kapsz egy csomó oszlopok amelyek megfelelnek bizonyos feltételeknek. És amikor azt mondom kielégíteni bizonyos körülmények között, elméd talán azonnal menj vissza, hogy WHERE záradék hogy jött az UPDATE. És ez a záradék Pontosan ott SELECT. Ha nem tesszük meg a WHERE záradékot, és azt mondjuk SELECT név, hometown-- tönköly, hogy egy kicsit wrong-- nevét, szülővárosában FROM tábla1. Ha csak annyit, hogy mi SELECT fog adni számunkra ez fog adni nekünk egy double-- asztalra, inkább. A kettős tömb, ha mi vagyunk gondolkodik PHP érzékeli. De ez csak fog nekünk egy kettős tömb két columns-- nevet, és szülővárosában. És akkor figyelmen kívül hagyja ID. És akkor figyelmen kívül hagyja szuperhatalom. És akkor csak ad nekünk minden egysoros a táblázat. Tehát, ha csak be Andi, mi lesz Andi. És mi lesz az eredeti négy. Ha már frissített, hogy lesz tükröződik, satöbbi, satöbbi. Szóval ez azért van, mert nem használja a WHERE. De tudjuk használni pontosan Ugyanígy használták UPDATE. Ha csak szeretne egy táblázatot a nevét és szuper erőkre élők New York-ban, akkor végre utasítást mint a SELECT név, superpower-- Én csak hagyom hogy-- FROM tábla1 WHERE szülővárosában = New York City-ben. Tehát ez azt mutatja, hogy tudsz hogy teljesen más oszlopok, majd tegye oszlopokat, hogy te nem még kapok vissza a WHERE záradékot. Még azt sem akarja, hogy a szülővárosa mindenkinek. De mi szeretnénk a nevét, és a szuperhatalom az emberek akinek szülővárosában, New Yorkban. Szóval ez olyasmi, amit tehetünk a WHERE záradék tudunk foglalkozni oszlopok hogy nem feltétlenül akarja vissza. Ugyanígy az UPDATE, tudjuk kezelni oszlopok, amit mi nem feltétlenül frissíteni szeretne. Mi lehet frissíteni a város mindenkinek aki neve Sam, például. Mi lehet frissíteni a város Mindenkinek, akinek azonosító száma 2 lehet. Szóval csak frissíteni a város a második sorban ahol nem kell foglalkozni szükséges a gyakori kérdés. És törölni, ahogy az számíthat töröljön tábla1. És akkor mi van a másik WHERE záradékot. Tehát elmondhatjuk WHERE ID = 1. Törölje az első sorban. És törölje mindig törli a sorban, vagy akkor töröljön néhány sorok számát. DELETE FROM asztal, ahol szülővárosa = New York City törli mindenki New Yorkban. Ez, ha volt egy hirtelen tragikus csapás és akkor csak azt akartam, hogy távolítsa el mindenki az asztalnál, aki élt egy bizonyos városban hogy elütötte a pestis. Lehet nyugodjanak békében. Ezek a négy SQL parancsok hogy akkor kell használni. Lehet, hogy nem is kell használni őket. De ez az a négy hogy CS50 várja el, hogy kényelmes megy Mindkét kvíz 1 és pset7 és pset8. Már csak az asztalnál újra. Ebben egy, Roy szuperhatalom van frissült a lézersugarak, amely egy példa, amikor nem használtam. Nem tudom, melyik Roy preferálja, de ereje. Roy van egy szuperhatalom ereje. Katherine nem sikerült ma. Ez pech. De van szuper sebesség. Hát ez volt a PHP. Mielőtt beszélünk MVC, nem Van valakinek kérdése van a PHP? Most SQL vagy PHP ha hirtelen felér egy kérdést a PHP-ről? Nagy. Rendben, készen is van akkor. Így beszél egy kicsit mintegy modell nézet vezérlők, menjünk vissza néhány A cucc pset7. Szóval, milyen modell nézet vezérlő is-- nem vagyok fogja menteni a változtatásokat a bejelentkezéshez mert én teljesen lemészárolták azt. De alapvetően két külön dolog folyik. Van egy nyilvános tartalmazó könyvtárat A kód lesz végrehajtva és a weboldalakat, hogy lesz látogatható. És mi is ezt a kilátást könyvtárban. És nézetek sablonokat tartalmaz. Ez az, amit a függvény render-- láttuk a render feladatát egy csomó PHP kód hogy CS50 már írt neked, vevő bizonyos paramétereket. Mi a kód csinál A ez lesz a nézetek, amelyekben egymáshoz, mint előre megírt HTML kódot, és ez behelyezése értékek a bizonyos helyeken. Így, ha bemegy CS50 pénzügyek, azonos fejléc minden oldalon. Ugyanez a lábléc minden oldalon. Ez azért van, mert az utat amelyek miatt alkotások Nem lesz automatikusan tapaszt, hogy fejléc és olvasó, amely megtalálható a kilátást. Igazából mehet be fejléc, és nézd, ez egy HTML fájlt egy fej. Van rajta néhány stíluslapok. Nem kell nézni CSS A pset7, ha nem akar. De lehet módosítani őket, ha akarod, hogy A pénzügyminiszter egy kicsit másként néznek. Van rajta néhány PHP A fejléc egy kicsit látni ha van egy másik cím meg kell tenni ezt a fejlécet. De csak néhány más scriptek, hivatkozásokat, és egyéb dolgok. Fejvégek, szervezet megkezdi, és hoppá, mi ez a fura kis végére kicsit. És van egy div, mint formátlan fajta elem hogy van egy ötlete közepén. És akkor, amikor azt látjuk, lábléc, mi van a végén egy div. Van egy alsó, ami ahol a lábléc szöveg. Vége a div, vége a test, vége HTML. Tehát mi vakolat Ennek a vakolat sort A folt fel fejléc, a különböző PHP fájlt tartalmazni fogja a tényleges dolgok akkor megtekinthetjük, mint az asztal készletek ha vételi vagy eladási készletek. És akkor majd hozzá a lábléc. És a modell nézet vezérlő ötlet az, hogy mi külön szeretné választani, hogyan dolgok a kódot. Ez azt akarjuk, hogy külön a frontend és a backend, ahol a frontend is A dolog, hogy a felhasználó lát, a szép visuals-- HTML, CSS, ilyesmi, Képek, satöbbi. És a backend PHP. Ez kódot, hogy írsz. Ez az, ahol a kód, ami ezzel a tényleges műveletek. Ez, ha éppen hozzá tőzsdén a táblázatot, ha veszel, és Értékelési, ez backend. És tudjuk, ahogy láttam, beleértve a PHP közvetlenül a HTML-ben. Tehát mi tudtunk volna a ez a feladat most volt egy HTML fájlt az egyes oldalak, mint a belépés. És akkor azon az oldalon, csak Volt egy hatalmas PHP kód, beleértve az összes kódot, hogy hogy az oldal kifejezetten szüksége lenne. És akkor mi lehetett volna tenni, hogy a portfólió. Tudtunk volna minden a vásárlási és értékesítése az egyes oldalakat. De mivel mi teszi elkülönítve, ahol írunk a backend kódot, akkor könnyen változás, hogy a dolgok nem változó minden egyes fájlt. Mi a dolgokat, mint csak add egy új div az aljára of-- Hello módosította a lábléc. Tudod csak csinálni ilyesmi. De azt is meg lehet változtatni a teljes vizuális megjelenésének anélkül, hogy mi megy a háttérben. És meg lehet változtatni a teljes backend és még Van úgy néznek ki, mint korábban. Ez Az ötlet MVC. És ez valóban egy kiszabott paradigma egyes, a programozási nyelvek érdemes használni A végleges projekt. Ha igen iOS fejlesztés, van kilátás, ami az, amit látsz az iPhone, és majd backend például külön dolog. Akkor gondolj egy kicsit. Van egy csomó binárisok a számítástechnika, ami vicces, mert minden bináris. Nem terveztem, hogy. Ez egy szójáték nem szándékos. Igen, szójáték nem célja. De mint .h fájlokat és .c fájlok, van Sok elválasztó dolog, hogy mi talán nem is kell. Így tudjuk csak szerkeszteni a h fájlokat, vagy valaki csak látni egy .h fájlt, és tudom, pontosan a funkciókat, amelyek a .c fájlt anélkül, hogy feltétlenül tudva azok végrehajtását. Ez szétválasztásának gondolata a komponensek hogy függnek egymástól de egyfajta hozzáférhet egymás különböző csatornákon keresztül, múló változók, csak kijelentéseket tartalmaz, a dolgok mint, hogy ezt az elvet segít létrehozni alkalmazások hogy könnyebben szerkesztette több ember, könnyebben lehet változtatni vagy módosított egy nagy méretű, és könnyebben hibakeresés egy csomó módon. Nagyon gyors, van Néhány tipp a pset7, amely Csinálok teljes képernyőn, így nem csak néztem the-- tip tip tippee. Nincs túl sok tipp. De már említettem PHP nehéz nyomon követni. A dupla és tripla ellenőrizze. Ha a kód csak nem felbukkan az oldalon, ez talán PHP hibát, sajnálom. Soha nem kell nézni CSS, ha nem akar. De ha egyszer már elkészült, akkor Jó kis móka dolog, hogy csak megy és szórakozz a CSS paramétereket. CSS és a HTML egy példa egy modell Tekintettel vezérlő stílus dolog is, ugye? Lehetne-szerű tag belsejében HTML elemeket. De ha valami outsourcing őket CSS, ők könnyebb szerkeszteni, és a játék körül, és érezd jól magad. Kényeztesse CS50 helper funkciók, mint a fekete doboz. Önnek nem kell tudni pontosan mit tehetik csinál, de bízik benne, hogy mindig a helyes dolog attól függően, hogy mit adsz meg, dolgok, mint ez. És azt ajánlom figyelte Dávid áttekintése, megy végig a cucc, nem csak a todos, de akkor tényleg lehet kezelni Ezek a fekete dobozok. Ne menj bele ezek a funkciók keres hibákat. És üdvözlik a visszatérés A mi Overlord Zamyla. Nagy. Van-e végső kérdésekre előtt Ezt egy kissé ugrál a nap? Vagyok még mindig él? Nagy. Hi Fogadok emberek. Nagy. Vannak-e már kérdése? Nem? És akkor azt hiszem, jó menni ma. Maradok egy kicsit Utána, ha az emberek voltak kérdéseik féltek megkérdezni a patak. De egyébként, van egy jó nap.