[Powered by Google Translate] [Walkthrough Problem Set 7] [Zamyla Chan] [Harvard Egyetem] [Ez CS50] [CS50.TV] Hello mindenkinek, és üdvözöljük a Walkthrough 7-CS50 Pénzügyminisztérium. Most hivatalosan is történik minden psets a CS50, és mi csak maradt még egy, amely lesz egy szórakoztató végrehajtás egy honlap, ahol a felhasználók be a CS50 Finance és a vásárolni és eladni készletek. Ma lesz egy pár eszköz a rendelkezésünkre áll. Mi fog beszélni engedélyeket. Ha van egy web mappa, fogsz szeretné, hogy a felhasználók végre bizonyos fájlokat hanem csak olvasd el a többinek, így fogunk nézni engedélyeket és hogyan lehet beállítani azokat. Akkor fogunk nézni a PHP, HTML és az SQL-kódot. Először is, engedélyeket. Ha a terminál egy bizonyos könyvtárban, akkor, hogy mit akarok, szeretné futtatni a chmod parancsot. Ez majd akár betűkkel vagy számokkal megfelel, amit alapvetően szeretné, hogy a világ lássa, te magad látni, stb Például, ha van egy mappa, akkor azt szeretné, hogy mappát végrehajtható mindenki azt látja, így, mit tennének az futtathatja a parancsot chmod a + x majd a nevét a mappát. Amikor egy fájlt, például a CSS fájlok vagy képfájlok - mint a JPEG és bitképeket, ilyesmi, vagy JavaScript-kód - azt szeretné, hogy legyen mindenki számára olvasható, Akkor mit csinál az használhatja a helyettesítő - amely csillag - hogy alapvetően jelzi a CSS mappában - mindent a mappában -  Fogom mondani, hogy ez lesz olvasható mindenki. Az engedélyek, amikor használja a leveleket, mi is használni számok helyett. Szóval, láthatjuk, hogy végül, ha akar valamit, hogy futtatható - ez által képviselt 1 - valamit, hogy olvasható legyen a 4-es számú, majd - írható a szám 2 - , és így lényegében ha azt szeretné, ezek kombinációja, akkor hozzá őket. Ha akarsz valamit, hogy olvasható, írható és végrehajtható, akkor lenne összeadni 4, 2, 1 és ez Önnek 7, akkor, ha van egy mappát, hogy legyen végrehajtható mindenki - valamint az írható és olvasható -, akkor csinál, hogy 7, 1, 1. Ez lenne a 7 az Ön számára, majd az 1 a többi ember. Amikor a specifikáció, akkor az tulajdonképpen, nevezze meg, hogy mely fájlok és mappák kell chmod-ed kifejezetten. Például, ha van mappák - ezek 7-1-1 - ha van kép, vagy a HTML, CSS, JavaScript, akkor azok lesznek 6, 0, 4 - vagy 6, 4, 4 - majd a PHP fájlokat lesz 6, 0, 0. Az ötlet mögött az, hogy a felhasználók nem igazán látni a PHP kódot, de csak látni a kimenetre. Nagyszerű! Mozgó a PHP. Egyszerűen, ha akarsz egy PHP fájl, a fájl utótagot is. Php. Azt is keverjük HTML a PHP kódot. Ha van egy HTML-fájlt, például akkor mellékelje azt a bal oldali szög, kérdőjel, php - tedd a php kód - majd zárja, hogy a másik kérdőjel, és derékszögben. Változók a PHP-ben egy sokkal könnyebb kezelni, mint a változókat C. Bármely változó csak kezdődik egy dollár jelet előtte, és ők gyengén gépelt. Ez azt jelenti, hogy nem kell aggódnia beállítás valamit egyenlő egy string vagy egy egész szám. Tudod csak egyszerűen azt mondja, ez az én nevem a változó és akkor ez az érték, így lesz könnyebb kezelni is. A másik dolog az, hogy a PHP lehetővé teszi, hogy asszociatív tömbök. Akkor egyszerűen meghatározni egy tömböt, mint akkor a C mondván, dollárjel-a nevét array-értéke, majd szögletes zárójelben van alapvetően csak a listán az értékek az összes elem a tömbben. De a PHP, mit is csinál ez alapvetően meghatározza - ez olyan, mint egy hash függvény. Megadhatja a névsor - mit fogsz hívni - és azután az értéknek felel meg. Ha valóban át-ban a = 1, b = 2, c = 3, akkor a tömb az index egy adna Önnek 1. Ez Pset majd felmelegíti néhány PHP egy részén kérdést, és aztán belevetik magukat CS50 pénzügyminiszter. Van egy pár - van néhány alkalmassága, alapvetően végrehajtani ezen a weboldalon. Azt szeretnénk, hogy a felhasználók regisztrációja honlapunkon egy felhasználói nevet és egy jelszót. Azt akarjuk, hogy lehetővé tegye számukra, hogy vizsgálja meg egy idézet, és akkor mi lenne nyomtassa ki a nevét, hogy idézet, valamint az aktuális ár, hogy ez az. Azt akarjuk, hogy lehetővé tegye számukra, hogy a portfolió az összes részvényt, hogy azokat vásárolták eddig. Azt is szeretnénk, hogy lehetővé tegye számukra, hogy részvényeket vásároljanak és eladni őket. És végül, azt akarjuk, hogy lehetővé teszi számukra, hogy a történelem az összes ügylet, hogy megtette. Aztán végül, miután végre minden adott, akkor már szabadon megvalósíthatja egy extra funkció. Elmegyünk azokba. Ezek lehetnek lehetővé teszi a felhasználóknak, hogy extra készpénzben letétbe extra pénzt, vagy lehetővé tenné számukra, hogy változtassák meg a jelszót, vagy valami ilyesmi, feladni őket nyugtát, amikor vásárolni vagy eladni a raktáron. Van egy korlátozott listát a funkciók, hogy meg tudná végre magad, annak érdekében, hogy ez az utolsó is. Mivel ez egy honlapot, nektek is van egy csomó szabad testreszabásához. Mi adnak némi CSS kódot, de te biztosan szabadon csípés azt, hogy úgy tűnjön, szebb, de a lényege az, az alap funkciók így mindig olvassa el a spec mit valóban szükség van fel ott. Követően a spec, fogjuk használni a készüléket, mint szintén a szerver. Ez lesz hosting honlapunkon számunkra, az a helyi szerveren. Ha követi ezeket az utasításokat, és bontsa ki a Pset 7 eloszlás kód be a virtuális gép / local host mappába,  akkor csak látogasson http://localhost/ a Google Chrome a készüléket, és akkor eléri a kódot, amely írtál Pset 7. Pset 7 jön egy csomó eloszlás kód, és remélhetőleg we've - végig a psets mielőtt ez - szokott minket olvasni terjesztési kódot, megértenék, hogy mit funkciók már biztosított, és hogyan lehet képes legyen használni az ilyen és az egyéb funkciók, hogy mi lesz megvalósítani. Ebben az esetben már 3 mappákat. Van egy HTML-mappa, amely tartalmazza a mappát, és a sablonok mappát. Mit fogunk csinál ezzel Pset egyfajta elválasztó gondolkodás - programozási gondolkodás - a PHP kód az aktuális vizuális szempont. Majd egy PHP fájl, amely nem minden gondolkodás, olvassa be az adatbázisba, kiírja a dolgokat, már ha nyilatkozatai - ilyesmi - majd, hogy majd adja át az adatokat a sablon fájl - vagy template.php fájlt. Mit fog tenni, hogy olvassa az adatokat, és akkor lesz nyomtassa ki. Mi lehet kezelni sablonok "buta", hogy nem igazán akarják hogy a sok munka kiszámítása dolgokat. Azt szeretnénk, vezérlők tenni. Egy kicsit az, hogy - vessünk egy pillantást néhány a forgalmazási kódot. Itt van a index.html fájlt, és ez elég üres. Lényegében mit csinál - azt mondja, nos, én megyek, hogy megkövetelje a configuration.php fájlt. Nem látom, hogy ott van, de ez alapvetően hívja a configuration.php fájlt, és a végrehajtó ezt. Miután nem, hogy ez lesz, hogy elvegye a portfólió. Rendering egy olyan funkció, így ha mi vagyunk a vezérlő, hívjuk render, akkor adja meg a fájlt, majd az adatokat, hogy mi megy végbe, oly módon, hogy hívom a portfolio.php--típusú igazolványt, hogy az adatokat, hogy a portfólió foglalkozni vele. És most itt van a login.php formában.  Ez a vezérlő alapvetően gondoskodik a naplózás be Itt, ellenőrzi, ha egy kérelmet nyújtott be, hogy ezt a fájlt, és foglalkozik érvényesítésével benyújtására. Majd vizsgálja meg ezt a bocsánatot funkciót. Ha szeretnénk kinyomtatni egy hibaüzenet, az általunk használt elnézést és átirányítja a felhasználót egy adott oldalra hogy kiírja a konkrét hibaüzenetet, hogy jelzik. Folytatva, akkor lekérdezhetik az adatbázis - we'll bejutni többet később. Akkor látjuk, hogy ide, ha egy űrlap nem nyújtottak be, akkor teszi a formában. Ez azt jelenti, hogy megy login_form.php, úgyhogy nézzük meg ezt. Login.php valójában ahol látjuk a HTML foglalkozó az aktuális vizuális szempont. Itt van egy input tag a felhasználó nevet, egy bemenet a jelszót, valamint egy submit gomb. Ez tulajdonképpen, ahol a vizuális szempontot és HTML formában fog tartani. Itt azt mondja, hogy ez fog benyújtani egy bizonyos módszerrel, az úgynevezett post. Mi lesz a különbség módszerek - elhelyezhet versus kap, van még valami, az úgynevezett hozott - szerzünk be azokat a módszereket később, de az érdeklődés e Pset, Én nagyon javasoljuk, hogy használja post. Tudjuk, hogy alapvetően, ha ebben a formában nyújtják be - származó login_form.php-- akkor fog menni a keresetet - login.php-- alapvetően át az összes olyan paramétert formákra való login.php. Az eredmények alapján az űrlap által tartalmazott tetszik asszociatív tömb. Az indexek a különböző elemek a post tömb pontosan mit meg itt. Azt mondja, hogy a neve ennek a bemenet felhasználónevet. A neve ez egy jelszó. Hasonlóképpen látja a felhasználónevét, mint az index az asszociatív tömb is. Ha megy a magában mappába, itt van ez a funkció fájl lesz nagyon hasznos. Mindezeket a funkciókat valósították meg az Ön számára. Nem kell, hogy specifikusan hajtotta végre e magad, de ők fognak nagyon hasznos. Már elnézést, amely, mint már mondtam, akkor alapvetően ki kell nyomtatni, egy hibaüzenet Önnek egy adott oldalon - apology.php. Aztán ott van a memória tartalmát, így ha csak hívja lerakó, majd át a változó, akkor viszi a lap jelenik meg, hogy a változó az Ön számára. Aztán már kijelentkezési, amely alapvetően véget egy bizonyos felhasználói ülésén. Lookup lesz hasznos. Mivel mi dolgunk idézetek és készletek fogunk tudni - és ez lényegében valós időben. Meg kell tudni, hogy melyek ezek a Stock értékek, így már a keresési funkció, amely foglalkozik a Yahoo dokumentáció készletek. Ha felnéz egy bizonyos jelképe a készlet, akkor visszatér Önnek a tőzsdei szimbólum valamint a nevét és a jelenlegi ára az állomány. Ez a keresés funkciót. Aztán van dolgunk mySQL, így leszel akarnak végrehajtani egyes lekérdezések a mi SQL adatbázisba. Van query foglalkozni -, hogy milyen elméleti részét, hogy ki. Megyünk, hogy halad az egész szöveg a mi SQL lekérdezés - és az összes változót, hogy menjen benne - és hogy ez mit jelent valójában, hogy végre nekünk. Ahelyett, hogy írjon mindezt ki minden alkalommal, hogy szeretnénk lekérdezni - a szerzés az összes eredménye, hogy a lekérdezés - akkor csak hívja a lekérdezés funkciót, és akkor visszatér hozzád - attól függően, hogy mit használ a lekérdezés - Valószínűleg egy sor valamennyi az eredmények, amelyek megfelelnek a lekérdezés vagy hasonló. Bővebben később mégis. Végül, van átirányítás, amely, mint a neve is sugallja, átirányítja egy másik oldalra. És akkor mi van render, ami fogunk hívni egy párszor. Ha a vezérlőben, hívja teszi a sablon oldalt majd át az értékeket, amelyek a sablont majd foglalkozni. Ezek az értékek valószínűleg fog foglalkozni a kimenet típusától kívánt hogy megjelenik a sablon oldalon. Oké. Azok a funkciók, és van egy sokkal több erre a forgalmazási kódot. Azt javasoljuk, hogy menjen keresztül, és fedezze fel magad. Továbbá, a spec valószínűleg végigvezeti néhány egyéb elemeit a forgalmazási kódot. Íme egy összefoglaló a funkciók talált functions.php. Oké. Az első feladat, hogy a felhasználók regisztrálni a honlapon. Most van egy bejelentkezési űrlapot a honlapon, és vannak néhány felhasználó jelszavakat. Használhatja ezeket a felhasználónevek és jelentkezzen be, de szeretné, hogy az emberek számára, hogy saját felhasználónevek és adjunk hozzá magukat a honlapon. Az elrendezés az év nagyon hasonló a bejelentkezési űrlap, kivéve a felhasználónév nem létező, és a felhasználónak is szüksége van, hogy egy új jelszót, aztán általában van egy jelszó megerősítését. Ha a felhasználó be minden az információ, szeretnénk hozzáadni, hogy adatbázisunkban felhasználók. Elmegyünk egy adatbázishoz - SQL adatbázis - hogy fogunk hivatkozni. Ebben az adatbázisban, akkor van egy táblázat az összes felhasználó számára tartalmazza a felhasználónév, a jelszó, valamint hogy mennyi készpénz vannak. A nyilvántartás, szeretnénk lehetővé teszi, hogy adja meg ezt az információt. Azt akarjuk, hogy kiírja, hogy formában. Azt szeretnénk, hogy győződjön meg arról, hogy a jelszó - hogy léptek egyet, majd azt is, hogy a jelszavak egyeznek, amikor belépnek kétszer. Miután az összes, ami történik - feltéve, hogy ezek a hibák ellenőrzik - akkor szeretnénk hozzáadni azokat a felhasználókat, hogy az adatbázisban. Végül, ha már regisztrált, ez elég kényelmes, ha nem kell, hogy jelentkezzen be újra ha egyszer már regisztrált felhasználó, így fogunk be őket a honlapon, ha már regisztrált sikeresen. Az első feladat, hogy megjelenítse a forma, és ez valóban lesz - ez az egész regisztrációs folyamat lesz modellezni elég szorosan bejelentkezés után kivéve helyett login.php lehet, hogy register.php. Helyett login_form.php--amely a sablon - akkor is regisztrálni formában. Azt akarja, hogy adjunk hozzá még egy mező - jelszó megerősítése mező - ahelyett, hogy csak az egy felhasználónevet és egy jelszót. Következő, szeretnénk ellenőrizni, hogy a jelszavak egyeznek, vagy üres. Megvan az adatkezelő - register.php--ami megy, hogy vigyázzon ezzel az ellenőrzések. Ha egy űrlapot elküldeni a post módszer, akkor az összes ilyen változó belül található a post tömb. Azt szeretnénk, hogy győződjön meg arról, hogy a post tömb érték index jelszó megegyezik a megerősítés elemet. Azt szeretnénk, hogy győződjön meg arról, hogy nem üres, , és azt szeretnénk, hogy győződjön meg arról, hogy ők ugyanaz. Egy kényelmes dolog a PHP, hogy nem kell használni karakterlánc összehasonlítani többé. Tudjuk használni az egyenlő-egyenlő operátor  annak ellenőrzésére, hogy a karaktersorozat egyenlő egymással. A hibakezelés, akkor szeretné, hogy bocsánatot kérjen. Ahhoz, hogy bocsánatot kérjen, egyszerűen hívja a függvényt  majd adja meg az üzenet típusa kívánt kimenet. Ezután szeretnénk hozzáadni a felhasználót az adatbázisba. Eddig minden, amit csináltam éppen üzleteljen helyileg, az eredmények az űrlapot. Most tényleg szeretnénk hozzáadni őket az adatbázisban. Ehhez először szeretnénk, hogy győződjön meg arról, hogy a felhasználónév nem üres. Értsd meg, hogy a honlapon, akkor nem lehet több felhasználó ugyanazzal a felhasználónévvel, így akkor szeretnénk, hogy győződjön meg arról, hogy ha be valamit az adatbázisban - helyezzen be egy új felhasználó -, akkor nem kap egy ütközés között a már meglévő username és a felhasználónév a felhasználó próbál benyújtására. Ehhez, ha egyszer végre egy lekérdezést - behelyezése egy bizonyos felhasználót a jelszó, és a kezdeti összeg cash - egyszer hívja a lekérdezés, akkor a mySQL ténylegesen vissza hamis, ha nem sikerül. A szerkezet felhasználók olyan, hogy a felhasználónév egy egyedi érték, így nem lehet több, mint egy. Ha megpróbálja, és helyezzen be egy új sor egy felhasználónevet, amely már létezik, hogy fog visszatérni false - mint egy logikai érték hamis. A trükkös dolog az, hogy akar majd ellenőrizze, hogy az eredmény az eredménye a lekérdezés. Ha ez nem sikerül, akkor akarja, hogy ellenőrizze a triple-egyenlő operátor. Ez tényleg megy, hogy ellenőrizze, van-e a hiba vagy sem, mivel csak egy egyszerű egyenlő, egyenlő, akkor lenne igaz, ha a sor üres volt. A hiánya miatt, ha van egy ütközés között felhasználónevek a tényleges érték hamis. Itt van, hogyan kíván beszúrni az adatbázisba. Itt a lekérdezést futtatni szigorúan SQL-ben. Egy dolog az, hogy tudod valójában megy a honlapon, hogy kezeli a SQL adatbázis és a játék körül van megadásával manuálisan vagy értékek vagy sorok. Ez kiírja, amit az SQL kimenet. Is futtatható SQL parancsokat belül az adatbázis  és aztán majd meglátjuk, mi a szintaxis lehet, majd fordítani, hogy a lekérdezés funkciót, hogy van a Pset 7, ami lesz nagyon hasonlít a lekérdezéseket ténylegesen fut. Ha akartam beszúrni egy új sort az én felhasználói tábla, akkor azt meg insert into felhasználókat, ami a nevét a táblázatban. Aztán meghatároznák az oszlop neveket. Aztán adna az értékeket együtt a jelszót. Jelszavak a mi felhasználók tábla nem tárolja, mint csak a húr. Vannak tárolva, mint a titkosított változat, így akar majd futtatni a függvényt kripta az aktuális jelszót, és hogy megadja a megfelelő típusú tároló a felhasználók tömb. Futás ez helyezzen be egy új sort a felhasználók táblában. Ahhoz, hogy foglalkozik a lekérdezés funkciót, mielőtt a C használtuk százalékos megjelölést helyőrző. Hasonlóképpen, az ugyanazon fogalmát helyőrző alkalmazandó. A lekérdezés megadhatja, hogy az egész lekérdezést, kivéve, ha van dolgunk, változók, mint a bevitt a lekérdezés, akkor ahelyett, hogy ténylegesen hozatalukért belül -, mint amikor már printf kimutatások C. Mi tenné a húr, majd egy helyőrző van, majd azt követően minden vessző, melyik változó volt. Itt fogjuk használni a kérdőjel megjelölés, mint a mi placeholder majd elmúlik minden változó, illetve annak érdekében, a helyőrzők - amennyiben azokat a változókat kell menni. Tehát itt az első kérdőjel helyébe lépne az aktuális felhasználónév majd a második kérdőjel a jelszót. Aztán végül, ha már regisztrált, és hozzá őket az adatbázisba, akkor kíván jelentkezni őket a honlapon. Van egyfajta szuper-globális változó nevű ülésén. Session tart egy bizonyos id, és hogy id megfelel a felhasználó számára, hogy ez a jelenleg bejelentkezett Mit akar majd tennie, hogy megtalálja, amit a felhasználói id majd állítsa be, hogy a munkamenet azonosítót, mint az adott felhasználó azonosító. Ez a funkció akkor szeretnénk használni Itt egy SQL parancs amely letölteni az utolsó behelyezett azonosító számát a táblázatban. Aztán sorok hívjuk - it'll hívja a id - it'll nevet hozzárendelni a számhoz, hogy visszatér. Úgy hívom, hogy id. Most már kész nyilvántartást, és tudunk lépni árajánlatot. Idézet lehetővé teszi a felhasználó számára, hogy írja be a nevét egy bizonyos állomány, és akkor fogja vissza a tulajdonságokat az állomány. Mit akar majd csinálni itt van egy vezérlő és néhány sablonokat. Ebben az esetben, mi lesz egy adatkezelő fog tenni minden gondolkodás számunkra. Úgy fog kinézni ki a szimbólumot, majd át az értékeket a sablonokat fog kinyomtatni. Fogunk van 2 sablonok itt. Fogunk van 1 sablon, amely a formát, amelyben a felhasználók fognak írja be a nevét az állomány - a nevét a részesedése. Akkor mi is szeretne majd egy sablont, amely megjeleníti ezeket az értékeket. Belenézhetsz bejelentkezési egy példát, hogy hogyan lenne olyan formában, hogy elfogadja a bemenet, kivéve itt, mi csak szeretnénk 1 mező. Nem akarunk egy felhasználónevet és egy jelszót területen. Azt akarom 1 szöveges mező, amely lehetővé teszi a felhasználónak, hogy írja be a nevét egy bizonyos állomány. Akkor szeretnénk küldeni az adatokat - ha egyszer már felnézett az állomány - A quote_form.php. Lookup visszatér a jelképe a készlet nevét, és egy ár. Ezek által tartalmazott egy asszociatív tömb. Nézd meg a keresési funkció belsejében functions.php További információ A visszatérő típusú e. Nagyszerű! Így végül, akkor szeretné, hogy megjelenjen a készlet információ. Azt akarja, hogy valószínűleg megjeleníteni - you'll szeretné elérni azokat a változókat. Miután az ár változó - valamint a nevét és a jel - akkor majd szeretné megjeleníteni azokat a sablon oldalon. Ez a sablon oldalt nevezhetnénk show_quote.php vagy ilyesmi. Ön quote.php oldal tenné mindet quote majd át az összes ezeket az értékeket. Ezután a php oldalon, hogy tényleg nyomtassa ki ezeket az értékeket a HTML aspektusa az oldalt. Csak használja a nyomtatási funkciót, és adja át az ár. 2 számos mód van - akkor sem összefűzi azt a pontot üzemeltető, vagy használjon helyőrző. A felhasználókat végül fognak vételi és eladási állományok. Azt akarjuk, hogy lehetővé teszi számukra, valamilyen módon látni az összes állomány, hogy jelenleg. Fogjuk hívni, hogy a portfólió. Portfolio lenne, valószínűleg minden felhasználó számára tartalmaz egy csomó sorok felsoroló típusú részvény, hogy azok majd, hogy hány e azok. A meglévő táblázat - most van egy felhasználók tábla az adatbázisban. , Amely egy felhasználó felhasználóneve valamint a jelszó és mennyi készpénz vannak. Nincs igazi módja tárolására való készletek belül. Ez nem olyan, mint mi is be új oszlop minden raktáron. Ez lenne egy nagyon, nagyon hosszú sor, mert van egy végtelen mennyiségű típusú állományokat tudtak volna. Szóval ahelyett, hogy mit fogunk csinálni belül ugyanabban az adatbázisban, mi lesz a felhasználók tábla, de akkor mi is van egy portfólió táblázatot. A portfolió táblát egyértelműen kapcsolódik a felhasználók tábla, hanem a portfolió tábla szerkezete lesz a készlet információ hány részvény az állománynak a felhasználó, valamint a felhasználó által bizonyos azonosító számát. Megvan a felhasználók tábla, amelynek id, valamint a felhasználói nevet, a hash - amely a jelszó, a titkosított jelszó - , majd a készpénz összegének vannak. Az azonosító szám akkor kapcsolódik az id számát a portfólió. A portfolió volna csak azt a szimbólumot az állomány, valamint a részvények - a részvények száma az állománynak, hogy a felhasználónak. Ebben a portfólió táblázatban volna alapvetően Az összes részvény birtokában az összes felhasználó a webhelyen. Később meghatározása csak egy bizonyos felhasználói részvények - csak a portfólió - akkor letölteni az értékeket a tárca asztalára, hogy Az azonosító szám kifejezetten az adott felhasználónak. Amikor megjelenik a portfólió, akkor szeretnénk jelenteni minden egyes állományok a felhasználó portfólió. Azt akarja, hogy jelentse a részvények számát és a folyó érték e felett. Ez a folyó értéke ezen részvények nem tárolja a portfólió táblázatban mert ez lesz frissítés - minimális - minden nap a Yahoo. Ahhoz, hogy ezt az információt, akkor nem lehet hivatkozni, hogy az Ön SQL lekérdezést. Milyen funkciót úgy rendelkezik, hogy nekünk? Milyen funkciót kap az ár? Ez lookup, így segítségével lookup egy adott szimbólumot kapsz egy csomó információt. Azt kapsz 3 db információk - a név, a szimbólum, valamint az árat. Ha lookup egy bizonyos szimbólumot, akkor kap az ár, és akkor az árat, hogy megjelenik a portfólió. A portfolió kell megjeleníteni a felhasználó aktuális egyenleg. Ez a mező tárol a felhasználók táblában. Akkor eszébe jutott, hogy mi alapvetően kelljen - vagyunk, különböző típusú PHP fájlokat. Megyünk, hogy egy vezérlő, amely alapvetően nem a gondolkodás az Ön számára. És akkor van egy sablon, amely a sablon foglalkozik kimenetre adatokat. Meg kell gondolni, milyen változók a vezérlő kell szednie be Ha van dolgunk, amely a portfólió kiadja minden név, jelkép, és ossza száma, valamint a jelenlegi ára a készlet, akkor majd szeretné megtalálni a módját, hogy alapvetően halad - akkor át egy sor értékek egyezik. Menjünk egy példa arra, hogyan lehet letölteni az összes állomány tulajdonosa egy adott felhasználó. Ez nem foglalkozik - még - az ára a készlet. Mi ez tennie, futtasson egy lekérdezést. Ez így a jel, valamint a részvény-tól - Hívom ezt a táblázatot, de ebben az esetben mi lenne az? Mi a neve a tábla, hogy mi dolgunk, amely szimbólum és a részvények egy adott felhasználó? Ez vagy a felhasználók vagy a portfólió. Portfolio. Mi ez tenne a lekérdezés portfólió áttekintése a szimbólumok és a részvények egy adott felhasználó számára. Itt, mondom, (SELECT jelkép, részvény TBL - hanem asztali, fogsz felváltani a portfólió. "Hol" alapvetően az állapotom. Azt mondom, csak azt akarom, hogy azok asszociatív tömbök, amelyek megfelelnek  E következő feltétel - id egyenlő.  Akkor én üzembe helyőrzője akkor és ott ülés id. Mi ez tennie, azaz minden sorban sorban. Ez egy ügyes módja helyett ténylegesen kellene létrehozni a hurok hogy végighalad az összes indexet, akkor a PHP akkor van egy for-each loop. Ha van egy adott tömb, akkor mondhatjuk fogom hívni minden egymást követő elem - Fogom hívni minden elem ezt a nevet. Szóval, minden egyes ilyen elemek, fogom hívni őket e, akkor én is csinálni. Ebben minden, akkor a sorok, mint a tényleges tömb, és minden sor fogsz hívni sorban. Minden alkalommal, amikor végrehajtja a test, akkor megy fel, és ez frissíteni fogja sor a következő elem sorokban. Nos, tekintve a vásárlás készletek mit akarunk tenni a kap az állomány, hogy a felhasználó akar vásárolni és az összeg a részvények, hogy a felhasználói akar vásárolni, majd - ha akarnak - Hozzáteszik, hogy az állomány a portfólió. Nyilvánvaló, hogy ha veszel valamit, akkor ez fog csökkenni az összeget vannak, hogy fog csökkenni a készpénz. Fogunk foglalkozni, hogy aktualizálja a portfólió, valamint a felhasználók tábla, amely tartalmazza a pénz. De először meg kell, hogy a tényleges készlet és az átadott részvények számának a felhasználó akar. Az, hogy szüksége lesz egy HTML formában, hogy kérni fogja a szimbóluma az állomány kívánt vásárolni, valamint a részvények száma. Akkor szeretnénk hozzáadni. Azt akarja, hogy válassza ki a bizonyos értékeket. Már ment keresztül ez egy kicsit már, de ha akarsz szerezni egyes sorok - letölteni egyes sorok az SQL tábla, ez a következő szintaxist. Ön válassza ki, majd ha meg egy csillag, hogy majd alapvetően vissza az egész, egész sort az Ön számára. Aztán megint, akkor a feltétel adott, és akkor adja meg - Csak azt akarom, hogy a felhasználónév megegyezik mail-ben, így csak letölteni a sorban a felhasználók, amely megfelel mail-ben. Amikor a felhasználó szeretne hozzáadni egy részét a portfolió, ellenőriznie kell, hogy egy pár hibát. Azt szeretnénk, hogy győződjön meg arról, hogy a felhasználó valóban megengedheti magának az állomány, így akar majd, hogy ellenőrizze a készpénz. Korábban szoktuk csillag letölteni egy egész sor egy SQL táblában. De itt, mi is valójában csak meg, hogy én csak azt akarom 1 érték - Én csak azt akarom, készpénzben. Tehát itt, akkor vissza a pénzt, hogy a felhasználó az id 1-es szám. Ha egy felhasználó már vásárolt egy adott állományt, de akkor vásárol többet az állomány, majd a portfolió - nem akar külön sorban, egy sor, amely tartalmazza, hogy az új ügylet. Te tényleg frissíteni kívánt összeget. Minden, ami a változó tényleg az az összeg, részvények, hogy a felhasználó tulajdonában van. Ha a betét a lekérdezést - így ez csak helyezze be a portfolió Mindezen értékek - a felhasználó azonosító számát, valamint a szimbólum a készlet, hogy ők a vásárlás és a részvényeket, akkor is szeretnénk adni, nos, ha befut egy ismétlődő kulcs - ebben az esetben, a duplikált kulcs nem csupán a felhasználó azonosítója, hanem a készlet jel - mert akkor csak - a feltevést, hogy akkor csak 1 sor  amely megfelel az 1-specifikus jel. Szóval, a duplikált kulcs - ha befut egy ütközés ott - te csak megy frissítse részvények az új értéket. Részvények értéke, amit mi volt azelőtt, valamint a részvények száma, hogy a felhasználó igényeinek. Most, hogy frissítette a portfólió asztal, mi szeretnénk frissíteni a felhasználó pénzt. Ez a felhasználói tábla, így mi lesz vonni egy bizonyos összeget készpénzben. Vélhetően ez lesz készpénz értéke cash mínusz -, majd egy bizonyos összeget. Ha frissíteni szeretnénk a készpénz, akkor - ha akartam elvenni pénzt mail-ben, akkor azt futtatni ezt a lekérdezést - 'Update felhasználók, majd állítsa a készpénz oszlop cash - Szeretném eltávolítani 9.999 dollárt, csak akkor, ha a felhasználónév megegyezik mail-ben. De ebben az esetben, azt nem akarjuk kivonni 9.999 konkrétan. Azt akarjuk, hogy meghatározza, nos, szeretnénk kivonni a jelenlegi ára az állomány szorozva a részvények száma, hogy ők vásárol. Most már lehetővé tette számukra, hogy az összes állomány, hogy azok, valamint többet vásárolnak készleteket. Már korábban is lehetővé tette számukra, hogy néz ki a jelenlegi ára a készlet. Itt szeretnénk lehetővé teszi számukra, hogy eladja őket. Először is szeretnénk megjeleníteni alapvetően - azt akarjuk, hogy lehetővé teszi számukra, hogy az összes állomány, hogy azok, ezért itt szeretnénk megjeleníteni az összes sort a portfólió. Ha úgy döntenek, hogy eladja egy bizonyos részvény, akkor fogjuk feltételezni, hogy akarják eladni az egészet. Ezek nem csak fog eladni 50% részvény, ők fognak eladni 100%-ban. Mi lehet csak törölni a teljes sort portfólió. Mi lehet törölni az adott felhasználó részesedése a bizonyos szimbólum. Ott van a szintaxis erre. Aztán szeretnénk frissíteni a pénzt. Mi lesz hozzá a cash összegének részvények árulják szorozva az aktuális ár az állomány - nem az ár, amelyen vásárolta meg, hanem az árat, amelyen azok - az aktuális ár, amikor eladásuk. A hivatkozás a jelenlegi ára a készlet, akkor érdemes használni lookup, amely megadja az árat a készlet az aktuális időt. Most marad történelem, amely azt szeretné, hogy a felhasználó számára, hogy nyomon követni az összes tevékenységük - akarja látni, amikor csak eladott valamit, valahányszor vásárolt készlet. Azt akarjuk, hogy adja meg azt az időpontot, amit meg is tettek, hogy valamint hány megvették és mi állomány volt. Muszáj minden jelenleg meglévő struktúrát, amely meghatározza, hogy az? Hát, van portfólió, amely megjeleníti a számot állományokat, a felhasználó egy adott részvény. De mi strukturáló portfoliója a módon, hogy frissíti, amikor veszünk több, mivel a történelem kellene - ha vásárol az Apple, 10 részvényeit, majd később eladni 5, akkor szeretne látni, azokat külön-külön önálló fellépések, külön sorokban. Mivel ez a fellépés, hogy szemléltesse, hogy a portfólióban táblázatban ez csak egy frissítést adott sorban,  úgyhogy valószínűleg szeretne majd egy másik asztalhoz. A mi adatbázisunkban, már a felhasználók tábla, van portfólió asztal, és most már valószínűleg szeretnénk története táblázatban. Ez a történelem tábla nyomon követhetjük az aktuális dátum, valamint a sajátos állomány jel, valamint hogy számos részvények, majd milyen intézkedéseket is - hogy Ön is vásárol ezeket a részvényeket, vagy akár arra eladták őket. Ahhoz, hogy foglalkozik a dátumot, van egy pár módon, hogy meg tudod csinálni. PHP egy módja annak, hogy nyomon követhetőek a dátum, amit lehet keresni magad. Az SQL is használhatja most vagy aktuális timestamp. Ez rajtad múlik. Csak győződjön meg arról, hogy minden alkalommal, amikor egy felhasználó vásárol vagy ad el, akkor lesz frissítés a készpénz A felhasználók tábla, akkor lesz frissítés a sorok a portfóliók táblázatban majd akkor is frissítjük a történelem, így nem lesznek 3 különálló SQL lekérdezések, hogy lesz oda befutó. Van egy csomó funkció most. Csak egy pár emlékeztetők, hogy az index fájlt, akkor szeretnénk csatolni legalább a - de akkor szeretné, hogy a felhasználó a hivatkozás a buy.php oldalra. Ez lesz, hogy a felhasználó - buy.php az adatkezelő, hogy megy, hogy vagy elküld -, hogy megy, hogy elküldjük Önnek a formában, amely lehetővé teszi, hogy vizsgálja meg a dolgokat. Van történelem. Van kijelentkezés, kapok egy árajánlatot, majd értékesítése. Ezek a minimális, amit meg akar mutatni. Ami a portfólió, a portfolió ténylegesen megjelenik az index oldalon. Ha elmegyünk index, itt azt látjuk, hogy teszi portfolio.php és átadja az asszociatív tömb - alapvetően a cím szerinti értéke portfólió. Szóval, ez a vezérlő. Ha megy a sablon portfolio.php, akkor minden azt az - alapvetően egy képet jelenít meg, amely azt mondja, oh, ez az oldal fejlesztés alatt áll. Később, miután igazolványt - leszel halad alapvetően konkrétabb információt. Ahelyett, hogy csak a cím, akkor valószínűleg elhaladó több dolgot. Miután ezeket az értékeket, akkor portfolio.php képes kezelni ezeket az értékeket és nyomdai ki őket bármilyen sorrendben. Miután végre az összes ilyen, akkor is kell végrehajtani 1 további funkciót. Ez egyaránt lehet, amely lehetővé teszi a felhasználó számára, hogy változtassanak jelszót, visszaállítani a jelszavát, ha elfelejtette, hogy - így a jelszó, akkor a akkor valószínűleg szeretné szerkeszteni regisztrációja annak érdekében, hogy lehetővé teszi számukra, hogy adjon meg egy e-mailt, tehát ha elfelejti a jelszavát, akkor lehet kapni, hogy. Ezek valószínűleg be saját felhasználónevét, majd egy e-mailt fog küldeni nekik egy link, hogy képes legyen visszaállítani a jelszavát. Egyszerre valami, ami lehetővé teszi a felhasználók számára, hogy bevételeket minden alkalommal, amikor vásárolni vagy eladni valamit, és végül lehetővé teszik számukra, hogy hozzá készpénzt saját honlapján. Csak, hogy menjen vissza a koncepció vezérlők és sablonok egy kicsit. Itt van valami, mint egy - így lesz egy vezérlő van. Most keresünk a login.php példát. Ha van egy vezérlő, alapvetően ez fog tartani 2 esetben. Ha van irányítók vagyunk ebben a darabban, hogy mi is a fajta foglalkozik amikor már formákat is. A vezérlő alapvetően külön cselekvések - 1, ha olyan formában már benyújtották, és majd két, ha a felhasználó jön az oldal az első alkalommal, és még mindig kell bemenő formában. Fogok ugrani az ügyben, mielőtt megy fel, az első esetben az alábbi alakú be Itt azt mondják, ha az űrlap együtt nyújtották be az eljárás után - ne aggódj, hogy egy kicsit. Ne aggódj, hogy túl sok, de megérti, hogy alapvetően ez a funkció foglalkozik akár olyan formában nyújtottak be, vagy nem. Ez a feltétel igaz, ha a felhasználó azt állította, az űrlapot. Ha nem, akkor megyünk szeretné hívni render login_form.php, majd át a címet. Ez a cím csak most alapvetően fog megjelenni a fejlécben. Mit jelent ez tulajdonképpen azt mondja, oké - nos, ha a felhasználó megy login.php és valójában nem vagy bejelentkezve, akkor azt akarom, hogy küldje el arra az oldalra, amely ilyen formában amely lehetővé teszi számukra, hogy adja meg a felhasználónevet és a jelszót. Aztán megy login_form, majd, amely a jelenlegi formájában. Aztán, ha a felhasználó azt állítja, hogy formája, ők majd benyújtja azt a login.php A módszer post. Akkor én tényleg majd be ezt a részt az én if-else hurok. Akkor van itt, hogy kezeljük az értékeket az űrlapon megadott. Itt van, hogy kezelni azokat. Majd ha egyszer foglalkozik az értékek - ha dolgunk - mondjuk dolgunk a quote.php oldalt, ahol valaki tud input állomány, amely akarnak nézni, és aztán majd meglátjuk, hogy a kijelző - ez a fajta hasonló itt. Itt van egy bejelentkezési forma - you'd valószínűleg egy idézet formájában - de akkor, ha a felhasználó ténylegesen be az információkat, akkor szeretné majd a vezérlőt, hogy adja át egy másik sablont hogy megmutatja nekik, hogy a tényleges adatokat. Akkor jobb itt, akkor valószínűleg - vége felé a feltétele az - az, ha a módszer megegyezik poszt - akkor majd érdemes tenni egy másik oldal - a show-idézet - amely elküldi, hogy ez az oldal - show_quote.php-- majd, hogy a fájl fog hivatkozni ezeket az értékeket. Van ennek értelme? Van egy vezérlő, amely alapvetően foglalkozik a 2 eset - hogy megadta egy űrlapot, vagy sem. Ha még nem adta meg egy űrlapot, akkor átirányítja a formában, ami aztán vissza erre az oldalra. Aztán, ha egyszer már információt az adatkezelő, hogy a testület foglalkozik majd, hogy a információ szükséges - akár felnézett értékek az állomány, majd egyszer ez felnézett ezeket az értékeket, és azokat egy szépen formázott tömb, akkor lehet, hogy át tömböt a sablon oldalt  foglalkozik kimenetre az információt. Ismét, hiszen a weben, ez lesz szórakoztató. Vagyunk kívül C úgyhogy nem korlátozódik az ASCII és terminál kimenet, így szórakozni ezzel. Tudod, hogy azt a vizuális, amennyit csak akar. Tudod, hogy a felhasználók input millió dollárt egy időben, vagy korlátozni kell, és tényleg azt jelenti, és lehetővé teszik számukra, csak írja be az 1 penny egy időben vagy valami ilyesmi. Mindenesetre biztos, hogy szórakozni ezzel. PHP kód egy kicsit egyszerűbb, hogy ez egy kicsit könnyebb, hogy feltérképezzék a pszeudokód a tényleges megvalósítás. Szóval, határozottan szórakoztató, mert ez valóban az utolsó darab CS50. Azzal, hogy ez volt Walkthrough 7. Ha végeztél figyeljük walkthrough, és befejezte a Pset, akkor ezek szintén psets, és most már a végső termék - miután átjutni kvíz 1. Ezután remélhetőleg tudja használni az eszközöket, amit megtanultam a psets - nemcsak a szintaktikai, hanem inkább az elvont fogalmát hogyan kell egy bizonyos - tetszik, azt akarom, hogy ezt majd ténylegesen végrehajtó. Tanulás, hogyan kell küzdeni a szintaxist és forgalmazási kódot. Reading mások kódot, majd értelmezése, hogy segítségével a már meglévő funkciókat. Szóval, sok szerencsét az utolsó Pset. Ez egy öröm, hogy vezesse a walkthroughs. Remélem, már hasznos az Ön számára. Ezek Rövidfilmek, és köszöni szépen. [CS50.TV]