[Powered by Google Translate] [Nädal 9] [David J. Malan - Harvardi Ülikool] [See on CS50. - CS50.TV] Hea küll. Tere tulemast tagasi. See on CS50, ja see on algus 9. nädalast. Täna keskendutakse eelkõige disain, enam kontekstis C kuid seoses PHP ja natuke SQL ja natuke JavaScript, Eriti suunas lõpuks nii pset 7 ja ka oma lõpliku projekti. Tegelikult, kui sa oled selle koha peal oma lõpliku projekti kus eeldatavasti alates tund või nii tagasi sa vähemalt hakanud mõtlema oma lõpliku projekti ja sa mõtled, mida soovite teha koostööd 1 või 2 klassikaaslased, kui sul on probleeme ühendavad ütles klassikaaslased, julgelt täitke vorm aadressil cs50.net/partners/form. See lihtsalt küsib, kes sa oled, millist projekti sa mõtled, kus sa elad lihtsalt logistilistel põhjustel. Ja siis kui sa tahad hoida silma peal üle järgmisel nädalal või nii arvutustabeli URL seal, saab siis näha ainult lugemiseks versiooni Google doc kus me selle teabe kogumiseks. Nii et kui sa tahad teha kellegagi, kõigi vahenditega vabalt jõuda inimesed kaudu, et mehhanism. Kuid enamik inimesed teevad tööd soolo. See on täiesti korras. Nii ei tunne, et see on kuidagi kohustuslik. Reedel oli see ainult mulle ja mõned meeskond siin, tühi teatri suures osas. Esines 3 turistid istub seal üleval, nii et oli natuke ebamugav. Mida me rääkisime oli andmebaasid ja me rääkisime pset 7 natuke. Ja kui sa ei juhtunud jõuda, et video lihtsalt veel, siis hästi. Ma püüan määratle tingimusi, mida me muidu enesestmõistetavaks aluseks reedel loeng. Aga täna me ei kavatse proovida sulle punkti mitte lihtsalt on võimalik teha midagi pset 7 aga tõesti mõista, mis toimub all kapuuts, eriti mõned abstraktsioonid, et me paika panna functions.php faili teha oma elu natuke lihtsam, kuid nii, et te lõpuks aru nii et kui abirattad maha tulla paari nädala jooksul saab veel ellu reaalses maailmas ja seda kraami ilma CS50 raamistiku all teid. See $ _SESSION, you need, kes tunnevad või kes juba püütud video reedel, mida ei SESSION tehkem aastal PHP-põhine veebirakenduse? See on superglobal muutuja, mis tähendab, et see on sarnase sisuga GET ja POST ja mõned teised, kuid mis asi see on kasulik? Mis on SESSION kasutatakse? Jah. [Üliõpilane] Sisselogimine Vabandust? [Üliõpilane] Sisselogimine Sisselogimine Tõepoolest. Aastal pset 7 me kasutame selle sessiooni superglobal hõlbustada sisselogimist Ja mis on tore see superglobal, et see on assotsiatiivne massiiv. Assotsiatiivne massiiv, mäletate, on lihtsalt massiivi kuid mille indeksid ei pea enam olema numbrid nagu 012. Nad võivad olla numbrid või nad võivad olla isegi stringe. Ja nii kui oled sukeldunud pset 7 veel, siis võib meelde tuletada, et me oleme ladustamiseks võti nimega ID sees see assotsiatiivne massiiv, mille väärtus on umbes 123 - olenemata hetkel sisse logitud kasutaja ID on. Motivatsioon on see, et isegi kui kasutaja on külastanud localhost või minu koduleheküljel üldisemalt ja siis nad on sisse loginud, isegi kui nad ei kliki lingil või naasta oma veebilehel 5 minutit või isegi tund või isegi päev, kuid nad lahkuvad brauseri aken lahti, kaudu see superglobal saab Mäletan, et nad on sisse logitud Teisisõnu, see võimaldab mul hoida veidi pikemas perspektiivis midagi tahan umbes kasutaja. Ja te võite mõelda, et see tõesti nii kehastus ostukorv. Kohad nagu Amazon ilmselt laseb sul panna asjad ostukorv, kuid HTTP protokoll, et võimu Web, on kodakondsuseta selles mõttes, et kui te külastate veebisaiti, enamasti sa ei pea mõned pidevat võrguühendust vahel brauseri ja serveri. Niipea kui olete alla laadinud HTML ja JPEG ja GIF ja kõik, et ühendus kaob ja sa lihtsalt koopia HTML ja tühi-tähi serverist. Aga kui server soovib mäletan midagi sinust, koorem on serveris tegelikult salvestada see teave. Ja nii sa programmeerija, kes on üle serveri saab panna kõige ükskõik mida tahad sees see superglobal assotsiatiivne massiiv ja see on seal järgmine kord kasutaja tagasi tuleb, kas see on minuti või isegi päevad hiljem, kui nad sulgevad oma brauseri aknas, kus punkt SESSION kaob. Nii et see on üürike ladustamine, see on mitte-püsiv ning see on mõeldud taanduvad niipea kui kasutaja sulgeb oma brauseri - mitte ainult sakk sageli sirvija seeläbi tõhusalt logib kasutaja välja. Nii et kuidas see asi tegelikult ellu viia? Võtame Kiire pilk lihtsa näite me vaatasime reedel. Nende võõras, see oli nii lihtne see. See on veebileht, mille ainus eesmärk elus on mulle Mitu korda olen käinud siin lehel. See on esimene kord siin esmaspäeval, et käisin, nii ta ütleb: 0 korda. Aga kui ma hakkan uuesti seda lehte, see ütleb 1 kord, 2, 3, 4, 5, ja see lõpuks lihtsalt hoida lugedes üles, üles, üles, üles, üles iga kord, kui ma tegelikult käsku Värskenda seda. Niisiis, kuidas on selle töö? Laske mul minna sees see fail nimega counter.php. Ülaosa on kõik sinine kommentaare, kuid huvitavam osa on siin. Rea 13 kutsume seda funktsiooni session_start, ja see on sõna otseses mõttes kõik, mida pead tegema kui sa tahad pääseda sellele erilist superglobal nimega $ _SESSION. Mistõttu on võimalik, ja me näeme hetke pärast, kuidas see kõik võimalik. In real 16 teadet, mida ma teen. Kui võti nimega counter - teisisõnu, indeksi väärtus - "counter" olemas sees see massiiv nimega SESSIOON, siis mida ma teen sellega rida allpool? Mis on eelarverea 18 teed? [Kuuldamatu õpilase vastus] Mis see on? [Üliõpilane] hoidmine väärtust. Hea. See ladustamiseks väärtus, mis on istung kohe uue kohaliku ajutise muutuja, $ Counter kõik väiketähed. Pange tähele, et PHP on juba natuke liiga laisk siin. Teade meil ei ole ühtegi viidet int või veepinnal või nööri või midagi sellist sest PHP on nõrgalt kirjutatud, kusjuures te ei pea täpsustada, millist tüüpi muutuja, ja selles asjas olen isegi ei deklareeritud seda veel. Ma tunnistades selle sees need looksulg ja erinevalt C, see on tegelikult midagi. Ükskõik kui sügavalt pesastatud muutuja deklaratsioon PHP - sees lokkis traksidega, sees lokkis traksidega jms - see tol ajahetkel olemas ülejäänud programmi, jaoks hea või halb. Nii see kohe muutub globaalne niipea kui sa defineerid seda me teeme siin. Vastasel juhul, kui ma ei leia, et seal on midagi istungil superglobal, Ma ilmselt initsialiseerimisel see muutuja loendur 0, seega lihtsalt eeldades, kasutaja ei ole kunagi varem siin olnud. Ja siis see muidugi on incrementing leti kuidas? Ma ajakohastamine väärtus, mis on sees see assotsiatiivne massiiv seades see võrdne olenemata counter praegu on +1. Kui ma keri siin HTML leht, see on tegelikult üsna lihtne. Ma pean kehas sellel leheküljel on: "Te olete seda saiti külastas nii-ja-nii korda." Ja see on PHP ehitada. Kui sul