[Powered by Google Translate] [Week 8, Folytatás] [David J. Malan] [Harvard Egyetem] [Ez a CS50.] [CS50.TV] Ez CS50, így ez a vége a 8. héten itt. Meg persze volt egy kis hurrikán korábban ezen a héten, így most ez tényleg csak te és én ebben előadóterem, de ma folytatjuk a beszélgetést a PHP-ről és a webes programozás általában, és mi is bevezetni az ötletet adatbázisok, különösen egy úgynevezett MySQL, ami nagyon népszerű manapság, nagy részben, mert a skálázhatóság, valamint mert a szabad és nyílt forráskódú. De először egy pillantást, ahol abbahagytuk a múltkor. Emlékezzünk vissza, hogy kerestük a több Frosh PM példák, és ez volt az ocsmány formában, hogy én találtam ki néhány 15 + éve annak érdekében, hogy a diákok az egyetemen nyilvántartást gólya intramurális sport anélkül, hogy ténylegesen kelljen trek már az egész udvar, hogy Wigglesworth , hogy csúszik a fizikai darab papírt alá néhány Proctor ajtaján. Ehelyett költözött mindent online, de erre mi szükség van, hogy használják ki néhány technológiák, így az egyik, mi szükség HTML, Hypertext Markup Language, ami megint ez a leíró nyelv, amellyel csinál weboldalakat szerkezetileg. Egy kis CSS ezekben a napokban, stíluslapokat, ahol használjuk stylizations a weboldal segítségével egy kicsit más szintaxist, mivel a HTML volt, ami a szerkezet cikke. Azt is meg kell, hogy vezessenek be egy webes programozási nyelv. Ebben az esetben fogjuk használni a PHP és a PHP fog lehetővé teszi számunkra, dinamikusan kimeneti tartalom, valamint a nem programozott dolgokat, mint a e-mail küldése, mint volt a helyzet a jegyzet elindultunk a múlt héten. Emlékezzünk arra, hogy a kód a volt 2 részből áll. Az egyik, mi volt froshims3.php, és ez nagyrészt markup egy HTML form belsejébe, egy apró kis CSS ide a stílusban attribútumok annak érdekében, hogy az űrlap maga lenne az oldal közepére, de azon túl, hogy a volt néhány reprezentatív formában bemenet, egy szöveges mező, egy jelölőnégyzet, Néhány rádió gombok, egy választó menü, és egy submit gomb. És ebben a formában, akkor be egy fájlba, amit látszólag nevezett register3.php, amely maga is nézett egy kicsit valami ilyesmi. Nos, a legtöbb kód register3.php, visszahívás, szólt e-mailt. Ez volt egy kicsit érvényesítése a formában, hogy benyújtották, hogy győződjön meg arról, hogy a mezők ténylegesen, feltéve, hogy várható volt. Aztán hívott néhány PHP funkciókat kissé új szintaxist, annak ellenére, hogy kölcsönvett C. Ez a nyíl operátor lehetővé teszi számunkra, hogy használja valami úgynevezett objektum-orientált programozás. Mi nem megyünk bele, hogy minden részletesen itt, de tudom, most ez egy módja annak, funkciók kapcsolódó tárgyakkal, amelyek a speciális szerkezet, mint láttuk C. De most, csak hogy a hit, hogy ez a helyes szintaxisa használata a könyvtár, mint ez PHPMailer könyvtár. És akkor a végén a fájl voltunk dinamikusan generált e-mail hogy van küldött my jharvard@cs50.net számla az én jharvard@cs50.net számla, és mi ennek megfelelően tájékoztatja a felhasználót, hogy a már nyilvántartásba ezt a sportot. Ez elég sok, amit a Frosh PM helyén volt annyi évvel ezelőtt amikor végre azt, megadták, más nyelven, de ez azt mutatja, talán a hatalom, hogy van most, hogy ki tudja fejezni magát nem csak algoritmikusan alacsony szinten nyelven, mint a C, de sokkal magasabb szinten ezekkel a nagyon valós alkalmazások, mint például e-mail, hogy ténylegesen megoldani néhány valódi világ problémáira. Most, persze, bár én ezt a szkriptet generálni e dinamikusan jharvard@cs50.net, ami valóban egy felhasználói fiókot hogy férnek hozzá, ne legyen nagyon óvatos, hogy küldjön postázni csak a számlákat, hogy valóban a saját, nehogy dolgok neked egy kis forró víz az életben. Ezzel azt mondta, menjünk most átmenet megoldása egy másik probléma teljesen, hogy megtartsák államok. Nos, mit jelent ez valójában? HTTP, ez a Hypertext Transfer Protocol, valójában egy hontalan protokollt, és hogy ez mit jelent az, hogy a ha húzza fel ilyesmit Google.com, majd nyomd meg az Entert általában a böngésző valamilyen forgó ikont, majd eredmények néhány weboldal letöltés alatt, majd a kis ikon nem fonási, illetve, hogy valóban azt sugallja, hogy a HTTP befejezte valamilyen kapcsolat a szerver és ennyi. HTTP hontalan abban az értelemben, hogy nem tart fenn egy állandó kapcsolatot a szerver ugyanúgy Skype nem vagy Gchat nem azért, mert a HTTP A feltételezés az, hogy ha egyszer már letöltött egy weboldalt ennyi. Nos, a valóságban ezek a napok oldalak, mint a Facebook és a Google Maps és a Twitter és hasonló van egy sokkal több dinamizmust, amellyel még azután is, hogy az ikon nem forog akkor valójában még több frissítés a szerver, több tweet, több státusz frissítéseket a Facebook-on és hasonlók. De még, hogy használja a technikát, hogy fogunk beszélni, egy hét vagy két nevei Ajax egy nyelvet nevű JavaScript, de a végén a nap, HTTP még hontalan. És mégis, ha azt szeretné, hogy valahogy emlékezni dolgokat a felhasználó még azután is, hogy már le a szerver PHP nem engedheti meg magának egy eszköz ezt mert, mint láttuk utoljára, PHP számos szuperglobális, és egy szuperglobális van, ismét egy különleges globális változót ez adta neked a webszerver és a PHP is. Nem kell semmit tenni az értékeket is, és az egyik szuperglobális láttuk eddig is kap, és írjon, ott, ahol az űrlapmezőket kerülnek automatikusan az Ön számára, valamint egy pár mások, hogy nem láttuk még. Belül $ _SERVER néhány speciális változót kapcsolódó szerver is. Mi az IP-címet, milyen protokoll, HTTP vagy HTTPS nem használja, mit kérés módszer nem használja, és a hasonló, így van néhány érdekes, szaftos részleteket a szerver, és valójában a felhasználó ott is. Van $ _COOKIE, ott, ahol ezek a dolgok úgynevezett cookie-kat tárolja. Nem fogunk több időt a cookie-k maguk ma, de tudom, most, hogy a cookie-k csak egy kis darab információ hogy a web szerver növény a böngésző és ezáltal a RAM vagy a számítógép merevlemezére , hogy információt tároljon gyűjt a felhasználó, például, a felhasználói név úgy, hogy nem kell, hogy írja, hogy minden alkalommal, amikor jelentkezzen be, vagy valamilyen egyedi száma vagy azonosítója, hogy a felhasználói így nem kell zaklat őket az azonos típusú kérdések preferenciák a jövőben, de a legtöbb látványosság most az $ _SESSION. Ez szuperglobális, amely, mint a többiek, adják Önnek automatikusan PHP amikor írsz PHP-alapú weboldalak tárolhatja, amit akarsz, vonósok, egészek, lebegő pontok, értékek, tömbök, objektumok, tényleg bármit, amit akar, és ez lehetővé teszi, hogy tárolja olyan módon hogy még ha a felhasználó látogatja most majd jön vissza egy perc múlva vagy 5 perc múlva, mert veszik az időt, mielőtt rákattint néhány egyéb linkre PHP biztosítani fogja, hogy bármit is tesz az említett ülésen szuperglobális egy perc vagy 5 perc ott lesz, amikor a felhasználó visszatér. És a motorháztető alatt a szuperglobális hajtják végre útján ezek a dolgok úgynevezett cookie-kat, de most, ez csak egy absztrakció ahol ez a fajta a programszerű egyenértékű a bevásárló kosárba. Bármit, a programozó, tedd, hogy szuperglobális asszociatív tömb lesz ott bizonyos számú perccel később amíg nem törli, vagy addig, amíg a felhasználó be nem zárja a böngészőjét összesen. Vessünk egy pillantást egy példát, hogy ez a dolog valóban használják. A counter.php napjaink darab kód mi a következő sort. Elején a fájl van egy csomó kék észrevételek, amelyek érdektelen most. De a 13-as vonal van egy új vonal, session_start, és hogy valóban pontosan mit mond. Úgy kezdődik ülés. Ez lehetővé teszi, hogy a nagy szuperglobális $ _SESSION, és ez ennyire egyszerű. Na most, ha haladunk, hogy nézd meg a 16 vezetéken, próbáljuk meg kitalálni, mi ez a weblap fog tenni. If (isset ($ _SESSION ["counter"]), akkor megy előre és tárolja a számláló változó, kisbetűk számláló, $ _SESSION ["Számláló"]. Ez úgy tűnik, hogy nyilvánító helyi változó nevű számláló belsejében, amely ez üzembe másolatát bármilyen belsejében a szuperglobális nevezett ülés helyét "számlálót". Else, úgy tűnik, ez a kis helyi változó számláló inicializálása 0-ra. De aztán néhány sort később 26 észre, hogy az ülés példánya számláló, a legfontosabb, egy új érték célhoz kötött, amely az aktuális érték plusz 1. Röviden, ezt a fájlt úgy tűnik frissítjük egy számlálót, ami tárolt ülésszak szuperglobális növelésével azt 1, de először egy példányát megtartja a korábbi érték tárolja azt egy helyi változó neve $ számláló, majd itt lent lássuk, mi marad. Kiderült, hogy elég sok csak HTML. A lap alján látunk a 37. sor, hogy én felkereste ezt a webhelyet számláló hogy hányszor, így van egy pár érdekes funkciók itt. Egy, ez egyértelműen egy változó, de ez nem elegendő az imént $ Számláló a szervezetben a HTML-mert persze ha ez csak ott among HTML PHP fogja feltételezni, hogy ez csak HTML. Ha szó szerint szeretnénk $ számlálót kell nyomtatni a képernyőn. De ahelyett, hogy a csepegés a PHP módba e darab szintaxis tudunk dinamikusan be egy értéket ide nagyon hasonló szellemben, hogy mit csináltunk utoljára a behelyezése értékeket szálakat. Tény, hogy ez csak egy összevont írásmód mond valami ilyesmit szó, print ($ counter), vagy akár valami hasonló printf (% s, számláló), sőt, mint azt láttuk online, vagy a tankönyvekben, van egy függvény a PHP-ben az úgynevezett echo amely nem ugyanaz a dolog, és minden ezek csak hosszabb lélegzetű módon a mondás