[Powered by Google Translate] [Week 9] [David J. Malan - Harvard University] [Ez CS50. - CS50.TV] Rendben van. Üdv újra. Ez CS50, és ez a kezdete hét 9. Ma különösen a következőkre irányul design, már nem összefüggésében C de a kontextusában PHP és egy kis SQL és egy kis JavaScript, különösen a vége felé mind Pset 7 és a végleges projekt. Valójában, ha ezen a ponton a projekt végső ahol feltehetően egy órával ezelőtt, vagy ha Ön legalább kezdett, hogy néhány gondolat a projekt végső és gondol szeretne együttműködni 1 vagy 2 osztálytársak, ha sikerül összekötő említett osztálytársakkal, bátran töltse ki a formanyomtatványt cs50.net/partners/form. Ez csak megkérdezi, hogy ki vagy, hogy milyen projekt gondolkodik, hol laksz csak logisztikai okokból. És akkor, ha azt szeretnénk, hogy tartsa a szemét a következő héten, vagy úgy a táblázatkezelő URL ott, akkor majd megjelenik egy csak olvasható változata a Google doc ahol vagyunk információ begyűjtésére. Tehát, ha szeretne dolgozni valakivel, minden eszközzel bátran, hogy elérje az embereket keresztül, hogy a mechanizmus. De a többség az emberek munkát egyedül. Ez teljesen rendben van. Tehát nem érzem, hogy ez bármilyen módon kötelező. Pénteken csak én és néhány a csapat itt, üres színház a legtöbb. Voltak 3 turisták ült ott, úgy, hogy egy kicsit kínos. Mi beszéltünk volt, adatbázisok és beszélgettünk Pset 7 egy kicsit. És ha nem történt meg elkapni, hogy a videó csak még, ez rendben van. Megpróbálom meghatározni azokat a kifejezéseket, hogy mi egyébként magától értetődőnek alapuló pénteki előadás. De ma megpróbálom rávenni, hogy a pont hogy nem csak, hogy képes ilyet Pset 7 de tényleg megértését, mi történik a motorháztető alatt, különösen néhány olyan absztrakciók, hogy bevezetett a functions.php fájlban hogy életetek egy kicsit könnyebb, de úgy, hogy végül megértsék hogy amikor a képzés kerekek jön le néhány hét alatt még mindig életben a világban, és nem ez a cucc nélkül CS50 keret alatt van. Ez a $ _SESSION, azok számára, akik ismerik vagy aki már fogott a videó pénteken, mit SESSION tegyünk egy PHP-alapú webes alkalmazás? Ez egy szuperglobális változó, amely azt jelenti, hogy hasonló szellemben a GET és POST és néhány más, de mi ez a dolog hasznos? Milyen SESSION esetén alkalmazható? Igen. [Hallgató] bejelentkezés Tessék? [Hallgató] bejelentkezés bejelentkezés Valóban. A Pset 7 mi ezt SESSION szuperglobális megkönnyítése bejelentkezés És mi a szép ebben szuperglobális, hogy ez egy asszociatív tömb. Egy asszociatív tömb, visszahívás, csupán egy tömb, de amelynek indexei már nem kell számot mint a 012. Lehetnek számokat vagy lehetnek akár szálakat. És ha már lebukott Pset 7 mégis, akkor emlékszem, hogy tárolja a kulcsot nevű azonosító belsejében asszociatív tömb, amelynek értéke valami hasonló 123 - függetlenül a jelenleg bejelentkezett felhasználó azonosítója. A motiváció az, hogy még akkor is, ha a felhasználó által meglátogatott localhost vagy honlapom általában, és akkor már bejelentkezett, még akkor is, ha azok nem kattintson egy linkre, vagy térjen vissza a honlapomon 5 percig vagy akár egy órát, vagy akár egy nap, de elhagyja a böngésző ablak nyitva, ezen keresztül szuperglobális is emlékszem, hogy azokat bejelentkezett Más szavakkal, lehetővé teszi, hogy a hosszú távú tárolására kissé bármit szeretnék egy felhasználó. És azt lehet gondolni, hogy tényleg, mint a megtestesülése a bevásárló kosárba. Helyek, mint az Amazon nyilvánvalóan segítségével tegyük a dolgokat egy bevásárlókocsi, de a HTTP, a protokoll, hogy a hatáskörök az interneten, a hontalan abban az értelemben, hogy amikor meglátogat egy honlapot, a legtöbb nem rendelkezik valamilyen állandó hálózati kapcsolattal a böngésző és a szerver. Amint már letöltötte a HTML és a JPEG és a GIF-ek, meg minden, A kapcsolat megy el, és csak egy példányt a HTML és miegymás a szerverről. De ha a szerver akar emlékezni valamit rólad, a teher a szerver, hogy ténylegesen rögzíti ezt az információt. És így a programozó, aki ellenőrzése alatt a kiszolgáló nem tud a legtöbb, amit akarsz belsejében szuperglobális asszociatív tömb és ott lesz a következő alkalommal a felhasználó jön vissza, hogy ez percig, vagy akár nap múlva, hacsak nem zárja be a böngészőablakot, ekkor SESSION eltűnik. Szóval ez efemer tárolás, ez nem tartós, és ez azt jelentette, hogy menjen el amint a felhasználó bezárja a böngésző - nem csak, hogy a lapon, és gyakran az egész böngésző, ezáltal hatékonyan fakitermelés a felhasználó ki. Hogy van ez a dolog, amit ténylegesen végrehajtsák? Vessünk egy gyors pillantást egy egyszerű példát néztük pénteken. Azok számára ismeretlen volt olyan egyszerű, mint ez. Ez egy olyan weboldal, amelynek egyetlen célja az életben, hogy elmondja nekem hányszor jártam ezen az oldalon. Ez az első alkalom, hogy itt hétfőn jártam, tehát azt mondja 0 alkalommal. De ha elkezdek újratöltése ezen az oldalon, azt mondja 1 alkalommal, 2, 3, 4, 5, és ez végül csak tartani a számlálás fel, fel, fel, fel, fel Minden egyes alkalommal, amikor ténylegesen kattintson újratöltése rajta. Hogy ez a munka? Hadd menjek belül a fájl neve counter.php. A felső része ez az egész kék, megjegyzés, de az érdekes része itt van. On line 13 hívjuk ezt a funkciót session_start, és ez szó szerint csak annyit kell tennie, ha azt szeretné, hogy a hozzáférési Ennek a különleges szuperglobális $ _SESSION nevezett. Ez teszi minden lehetséges, és majd meglátjuk, egy pillanat, hogy ez minden lehetséges. Összhangban 16 értesítésben, hogy mit csinálok. Ha a kulcs, az úgynevezett számláló - más szóval, az index érték - "számláló" létezik belsejében nevű tömböt SESSION, akkor mit csinálok vele a sorral lejjebb? Mit 18. sor csinál? [Hallhatatlan diák válasza] Mi ez? [Hallgató] tárolása az értéket. Jó. Ez tárolja az értéket, ami a SESSION most egy új helyi ideiglenes változó, $ Számláló csupa kisbetűvel. Figyeljük meg, hogy a PHP már egy kicsit lusta itt. Figyeljük nincs semmilyen említést int vagy float vagy string vagy ilyesmi mert a PHP gyengén gépelt, ahol nem kell meghatározni a változó típusát, és ebben az esetben van, amit nem is kijelentette, hogy még. Én kimondó belül e kapcsos zárójelek és ellentétben a C, ez valójában rendben. Nem számít, milyen mélyen beágyazott a változó nyilatkozat PHP - belül kapcsos zárójel, belül kapcsos zárójel és hasonlók - akkor ebben a pillanatban időben léteznek a hátralévő a program, jobb vagy rosszabb. Így azonnal globálissá válik, amint meg azt csinálunk itt. Egyébként, ha nem találom, hogy van valami a SESSION szuperglobális, Én nyilvánvalóan inicializálás ezt a változót számláló 0-ra, ezzel csak feltételezve, hogy a felhasználó még soha nem volt itt korábban. És akkor ez a tanfolyam növelésével a számláló hogyan? Én frissítéséről érték van benne e asszociatív tömb azáltal, hogy egyenlő bármi ellen jelenleg + 1. Ha lapozzunk le ide, hogy a HTML az oldal, ez valóban nagyon egyszerű. Csak annyit, hogy a szervezetben az ezen az oldalon: "Ön felkereste ezt a webhelyet, így-és-ez alkalommal." És ez egy PHP konstrukció. Ha ezt: