[Powered by Google Translate] [8. nädalal, Jätkub] [David J. Malan] [Harvardi Ülikool] [See on CS50.] [CS50.TV] See on CS50, nii et see on lõpuks 8. nädal siin. Meil muidugi oli natuke orkaani varem sel nädalal, nii kohe on tõesti ainult sina ja mina selles saalis, kuid täna me jätkame vestlust PHP ja umbes veebi programmeerimine üldisemalt, ja me ka tutvustada ideed andmebaaside, eriti üks nn MySQL, mis on üsna populaarne nendel päevadel, Suures osas tänu oma mastaapsuse samuti sellepärast, et oleks tasuta ja avatud lähtekoodiga. Aga kõigepealt pilk, kus me pooleli jäime viimast korda. Tuletame meelde, et otsisime mitu Frosh IEd näiteid, ja see oli kole vorm, mida ma tulid välja mõned 15 + aastat tagasi et on õpilaste loengusse registrisse uustulnuk ettevõttesisene sport ilma et oleks tegelikult trek enam üle õue Wigglesworth libisema füüsilise paberile all mõned Proctor uks. Selle asemel kolisime kõike online, kuid selleks oli vaja kasutada Mõne tehnoloogiaid, nii et üks, meil oli vaja HTML, hüpertekst-märgistuskeel, mis jälle on see märgistuskeel, millega te teete veebilehti struktuuriga. Kasutades natuke CSS nendel päevadel, kaskaadlaadistikke, mille me kasutame stylizations selle veebilehe kasutades veidi teistsugune süntaks, arvestades HTML oli kõike selle struktuuri. Samuti peame kasutusele veebi programmeerimine keeles. Sellisel juhul me kasutame PHP ja PHP läheb võimaldavad meil dünaamiliselt väljund sisu, samuti teha programmiline asjad E-kirjade saatmine, nagu juhtus märkusele jätsime eelmisel nädalal. Tuletame meelde, et kood oli see 2 osa. Üks oli meil froshims3.php, ja seda suuresti juurdehindlus koos HTML-vormi sees on, killuke CSS siin stiilis atribuudid nii et vorm ise oleks keskendunud leht, kuid pärast seda meil oli mingi tüüpiline vorm sisendid, tekstiväli, märkeruut, mõned nööpe, valige Menüü ja submit nuppu. Ja selle vormi kaudu, me esitatud toimikust, et oli ilmselt nn register3.php, mis ise vaatasin natuke midagi sellist. Nüüd on enamik koodi register3.php, mäletate, oli kõike e. Ta tegi natuke kinnitamise vorm, mis esitati veenduda et põllud tegelikult kui oodati. Siis me kutsusime mõned PHP funktsioonide veidi uus süntaks, kuigi see on laenatud C. See nool operaator lubab meil kasutada midagi, mida nimetatakse objektorienteeritud programmeerimine. Me ei hakka et igal detail siin, kuid tean nüüd see on viis, mille funktsioonid on seotud esemed, mis on eri tüüpi struktuuri, nagu me nägime C. Aga nüüd, lihtsalt võtta usus, et see on õige süntaks kasutada kasutades raamatukogu niimoodi PHPMailer raamatukogu. Ja siis lõpuks seda faili olime dünaamiliselt loodud talle mis sai saata minu jharvard@cs50.net konto minu jharvard@cs50.net konto ja me teavitanud kasutaja vastavalt, et nad olid olnud registreeritud seda spordiala. See on päris palju, mida Frosh IEd saidi tegid kõik need aastad tagasi kui ma seda rakendanud, antud mõnes muus keeles, kuid see näitab ehk jõud, mis teil on Nüüd, et sa ennast väljendada mitte ainult programmiliselt madalal tasemel keeles nagu C, kuid palju kõrgem Nende väga reaalses maailmas rakendusi nagu e tegelikult lahendada mõned reaalses maailmas probleeme. Nüüd, muidugi, kuigi ma kasutan selle skripti genereerida mõned e dünaamiliselt jharvard@cs50.net, mis on tõepoolest konto et mul on juurdepääs, ei olla üsna ettevaatlik saata ainult posti kontodelt, on tegelikult oma, muidu asjad sulle natuke kuuma vett elus. Olles seda öelnud, lähme nüüd üleminekut lahendada erinevaid probleeme kokku, et säilitada riikides. Nüüd, mida see tegelikult tähendab? HTTP, see Hypertext Transfer Protocol, on tegelikult kodakondsuseta protokoll, ja mida see tähendab, et kui sa tõmba midagi nagu Google.com ja seejärel vajutage enter tavaliselt teie brauseris on mingi ketramine ikoon, siis tulemusi mõnedes veebileht laetakse, ja siis see väike ikoon lõpetab keerlemise ja et tõepoolest viitab et HTTP on lõpetanud mingi ühendus serveriga ja ongi kõik. HTTP on kodakondsuseta selles mõttes, et see ei hoia püsiv ühendus serveriga samamoodi Skype ei või gchat ei sest HTTP eeldus on, et kui olete tõmmatud veebilehe ongi kõik. Nüüd tegelikult nendel päevadel saidid nagu Facebook ja Google Maps ja Twitter jms seal on palju rohkem dünaamikat, mille isegi pärast seda ikoon peatub ketramine saate tegelikult saada rohkem uudiseid serverist rohkem tweets, rohkem staatuse uuendusi Facebookis jms. Kuid isegi see kasutab tehnikat, et me räägime ka nädal või kaks tuntakse Ajax kasutades keeles nimetatakse JavaScript, kuid lõpus päeval, HTTP on ikka kodakondsuseta. Ja veel, kui sa tahad kuidagi mäletan asju kasutaja isegi pärast olen lahti oma server PHP ei pakuvad teile vahend selle sest nagu me nägime viimast korda, PHP on mitmeid superglobals, ja superglobal on jällegi eriline globaalne muutuja et teada andis teile veebiserver ja PHP ise. Sa ei pea midagi tegema panna väärtusi see, ja vahel superglobals oleme näinud siiani on GET ja POST, mis on koht, kus vormiväljad panna automaatselt teie eest, samuti paar teised, et me ei ole näinud veel. Toas on $ _SERVER mõned erilised seotud muutujate server ise. Mis on IP-aadress, mida protokoll, HTTP või HTTPS sa kasutasid, mida päringu meetodit sa kasutada jms, nii et seal mõned huvitavad, mahlane üksikasju server, ja tegelikult, kasutaja seal hästi. Seal on $ _COOKIE, mis on koht, kus neid asju nimetatakse salvestada küpsiseid. Me ei kuluta aega küpsised end täna, kuid tean nüüd, et Küpsis on vaid väike osa teabest et veebiserver saab taime kohta veebibrauser ning omakorda selle RAM või oma arvuti kõvakettale et salvestada teavet kasutaja näiteks oma kasutajanimi nii et nad ei pea seda iga kord, kui nad sisse logida või mõned unikaalne number või tunnus, et kasutaja nii et sa ei pea vaevama neid sama liiki küsimusi eelistusi tulevikus, kuid enamik huvi praegu on $ _SESSION. See superglobal, mis sarnaselt teistele, antakse sulle automaatselt PHP poolt kui olete kirjalikult PHP-põhinevad veebilehed saab salvestada ükskõik mida tahad, stringid, täisarvud, ujuva punkti, väärtused, massiivid, esemeid, tõesti kõike, mida soovite, ja see võimaldab salvestada see nii et isegi kui kasutaja külastab teie nüüd ja siis tuleb tagasi minuti kaugusel nüüd või 5 minuti kaugusel nüüd, sest nad võtavad oma aja, enne kui klõpsate mõnda muud linki PHP tagab, et mida iganes sa panna, et istung superglobal minut või 5 minutit tagasi on siiski olemas, kui kasutaja naaseb. Ja all kapuuts see superglobal rakendatakse teel neid asju nimetatakse küpsiseid, kuid nüüd, see on lihtsalt võtmiseks kusjuures see on omamoodi programmilise samaväärne ostukorv. Mida iganes sa, programmeerija, panna, et superglobal assotsiatiivne massiiv on seal mõned mitu minutit hiljem kuni te selle kustutate või kuni kasutaja lõpetab oma brauseri kokku. Võtame pilk näide sellest, kuidas asi tegelikult kasutatakse. Aastal counter.php seas tänapäeva tükid kood meil on selline rida. Alguses seda faili on meil hunnik sinine kommentaarid, mis on ebahuvitav nüüd. Kuid rida 13 on meil uus liin, session_start ja et tegelikult ei täpselt, mida ta ütleb. See algab istungid. See võimaldab teil kasutada seda suurt superglobal $ _SESSION, ja see on nii lihtne. Nüüd, kui me lähtume vaadata real 16, proovime aru saada, mis see veebileht saab teha. If (isset ($ _SESSION ["counter"]) siis lase käia ja kaupluse leti muutuja, väiketähed loendur $ _SESSION ["Counter"]. See tundub olevat kuulutab kohaliku muutuja nimega counter mille sees ta paneb koopia olenemata on sees superglobal kutsunud istungi location "counter." Else, ilmselt see väike kohalik muutuja loendur, käivitub kuni 0. Aga siis paar rida hiljem 26 teate, et seanss on koopia loendur oma võti, on uus väärtus omistatakse mis on oma praeguse väärtuse pluss 1. Lühidalt, see fail tundub olevat ajakohastamine counter, mis on talletatud istungi superglobal poolt incrementing see 1, kuid see esimene säilitab koopia eelmisest väärtus talletades seda kohaliku muutuja nimega $ counter, ja siis siin all vaatame, mis jääb. Selgub, et see on päris palju lihtsalt HTML. Allosas see leht näeme rida 37, kus olen käinud selle saidi counter mitu korda, nii et seal on paar huvitavaid funktsioone siin. Üks on see selgelt erinev, kuid see ei ole piisav, et lihtsalt panna $ Counter kehas HTML sest loomulikult kui see on lihtsalt seal hulgas oma HTML PHP läheb eeldada, et on lihtsalt HTML. Sa sõna otseses mõttes tahavad $ vastuollu trükitakse ekraanile. Kuid selle asemel, visates sisse PHP režiim seda tükk süntaks saame dünaamiliselt lisada väärtust siin väga sarnase sisuga, mida me tegime viimane kord koos sisestades väärtused stringid. Tegelikult on see lihtsalt stenografisti märke öelda midagi selle sõna otseses mõttes, print ($ loendur) või isegi midagi printf (% s, counter), või isegi, kui olete näinud internetis või õpikutes, seal on funktsioon PHP nimetatakse kaja mis teeb sama asja, ja kõik need on lihtsalt enam Hengästynyt võimalusi öelda