[Powered by Google Translate] [Vika 9] [David J. Malan - Harvard University] [Þetta er CS50. - CS50.TV] Allt í lagi. Velkominn aftur. Þetta er CS50, og þetta er upphaf viku 9. Í dag við áherslu sérstaklega á hönnun, ekki lengur í tengslum við C en í tengslum við PHP og a hluti af SQL og hluti af JavaScript, sérstaklega til enda bæði pset 7 og einnig lokaverkefni þitt. Í staðreynd, ef þú ert á þeim stað í síðasta verkefni þar væntanlega eins og um klukkustund eða svo fyrir þig að minnsta kosti farinn að gefa sumir hugsun við lokaverkefni og þú ert að hugsa þú vilt vinna með 1 eða 2 bekkjarfélaga, Ef þú ert í vandræðum með að tengja við sagði bekkjarfélaga, ekki hika við að fylla út eyðublaðið cs50.net/partners/form. Það spyr bara hver þú ert, hvers konar verkefni sem þú ert að hugsa um, þar sem þú býrð bara til skipulagningar ástæðum. Og svo ef þú vilt hafa auga á næstu viku eða svo töflureikni vefslóð þar, þú getur þá séð lesa-eini útgáfa af Google Doc þar sem við erum að safna að upplýsingum. Svo ef þú vilt vinna með einhverjum, finnst fyrir alla muni frjáls til að ná til fólks gegnum þessi kerfi. En meirihluti af fólkinu vinna verk sóló. Það er alveg í lagi. Svo finnst ekki að þetta sé á nokkurn hátt skylda. Á föstudaginn var það bara ég og nokkrar af liðinu hér, tóm leikhús að mestu leyti. Það voru 3 ferðamanna situr þarna svo það var svolítið klaufalegur. Það sem við ræddum um var gagnagrunna og við ræddum um pset 7 svolítið. Og ef þú hefur ekki gerst að grípa það á vídeó bara enn, það er í lagi. Ég ætla að reyna að skilgreina þau hugtök sem við ella taka sem sjálfsögðum hlut byggt á fyrirlestri föstudag. En í dag ætlum við að reyna að fá þig til að benda á ekki bara að vera fær um að gera eitthvað eins og pset 7 en í raun skilja hvað er að gerast undir hetta, einkum sum Huglægt sem við höfum sett á stað í functions.php skrá til að gera líf þitt svolítið auðveldara en svo að þú skiljir að lokum þannig að þegar þjálfun hjól koma út í nokkrar vikur enn er hægt að lifa í hinum raunverulega heimi og gera þetta efni án CS50 ramma undir þér. Þetta $ _SESSION, fyrir þá sem eru kunnugir eða sem þegar lent á vídeó á föstudaginn, hvað þýðir fundi skulum gera í PHP-undirstaða vefur umsókn? Þetta er superglobal breyta, sem þýðir að það er svipað og í anda við FÁ og POST og nokkrir aðrir, en það er þetta gagnlegt fyrir? Hvað er fundi notað? Já. [Nemandi] Annálar inn Því miður? [Nemandi] Annálar inn Annálar inn Reyndar. Í pset 7 við erum að nota Þessi fundur superglobal að auðvelda skrá þig inn Og hvað er gott um þessa superglobal er að það er tengin array. An tengin array, muna, er bara fylki en ekki lengur Hvers vísitölur að vera númer eins og 012. Þeir geta verið tölur eða þeir geta verið jafnvel strengir. Og svo ef þú hefur kafa í pset 7 enn, getur þú manst að við erum að geyma lykil kallast auðkenni innan þessa tengin array sem gildi er eitthvað eins og 123 - hvað er nú skráður á ID notanda er. The hvatning fyrir þessu er að jafnvel eftir að notandi hefur heimsótt localhost eða vefsíðu mína meira almennt og þeir hafa skráð í, jafnvel ef þeir smella á tengilinn og fara á heimasíðuna mína í 5 mínútur eða jafnvel klukkutíma eða jafnvel á dag, en þeir fara glugga þeirra opin, um þetta superglobal get ég man að þeir eru tengd Með öðrum orðum, það leyfa mér að geyma örlítið lengri tíma allt sem ég vil um notanda. Og hægt er að hugsa um það í raun eins og holdgun af innkaupakörfu. Staðir eins og Amazon láta augljóslega að setja hlutina í innkaupakörfu, en HTTP, siðareglur sem knýr á vefnum, er án ríkisfangs í þeim skilningi að þegar þú heimsækir vefsíðu, að mestu leyti þú þarft ekki einhverja stöðuga nettengingu milli þinn flettitæki og miðlara. Um leið og þú hefur hlaðið niður HTML og JPEG og GIF og allt það, tengingin fer í burtu og þú verður bara afrit af HTML og whatnot frá þjóninum. En ef miðlara vill að muna eitthvað um þig, byrði er á miðlara til að raunverulega taka upp þær upplýsingar. Og svo þú forritari sem hafa stjórn á þjóninum hægt að setja flest allt sem þú vilt inni af þessu superglobal tengin array og það mun vera þar næst þegar notandi kemur aftur, hvort sem það er mínúta eða jafnvel dögum síðar, nema þeir loka glugga þeirra, á hver benda fundi hverfur. Svo það er skammvinn geymslu, það er ekki viðvarandi, og það er ætlað að fara burt um leið og notandinn lokar vafranum þeirra - ekki bara að flipanum, oft allt vafra, þannig í raun að skrá þig inn á notandi út. Svo hvernig er þetta framkvæmd í raun? Við skulum taka fljótur líta á einfalt dæmi skoðuðum við á föstudaginn. Fyrir þá framandi, það var eins einfalt og þetta. Þetta er vefsíða sem tilgangurinn í lífinu er að segja mér hversu oft ég hef heimsótt þessa síðu. Þetta er í fyrsta sinn hér á mánudag sem ég heimsótti hana, svo það segir 0 sinnum. En ef ég byrja að endurhlaða þessa síðu, segir það 1 tími, 2, 3, 4, 5, og þetta mun að lokum bara að halda áfram að telja upp, upp, upp, upp, upp í hvert sinn sem ég í raun að smella Endurhlaða á það. Svo hvernig er það að vinna? Leyfðu mér að fara inn á þessa skrá sem heitir counter.php. Efri hluti þess er öll blá athugasemdir, en áhugaverður hluti er hér. Á línu 13 Við köllum þessa aðgerð session_start, og það er bókstaflega allt sem þú þarft að gera ef þú vilt hafa aðgang að þessu sérstaka superglobal heitir $ _SESSION. Það gerir það allt mögulegt, og við munum sjá í smá stund hvernig það er allt mögulegt. Í samræmi 16 fyrirvara hvað ég er að gera. Ef lykillinn heitir gegn - með öðrum orðum, að vísitölu - "gegn" er inni í þessu fylki kallast fundi, þá hvað er ég að gera með það í línu fyrir neðan? Hvað er lína 18 að gera? [Inaudible nemandi svar] Hvað er það? [Nemandi] Geymsla gildi. Gott. Það er geyma gildi sem er á fundi núna í nýja staðnum tímabundna breytu, $ Gegn í öllum lágstöfum. Takið eftir að PHP er nú þegar að vera svolítið latur hérna. Takið eftir að við höfum ekki að tala um INT eða float eða band eða eitthvað svoleiðis vegna PHP er veikt tegund, þar sem þú þarft ekki að tilgreina gerð breytu, og í þessu tilfelli hér að ég hef ekki einu sinni lýst því enn. Ég er að lýsa yfir því innan þessara hrokkið axlabönd og ólíkt C, þetta er í raun allt í lagi. Sama hversu djúpt hreiður yfirlýsingu breytu er í PHP - inni hrokkið borsveif, inni hrokkið borsveif og þess háttar - mun á þeirri stundu í tíma til að loka forritinu, fyrir betri eða verri. Þannig að það verður strax heimsvísu um leið og þú skilgreinir það sem við erum að gera hér. Annars, ef ég finn ekki að það er eitthvað í þinginu superglobal, Ég er greinilega Frumstilli þessa breytu gegn 0, þannig bara miðað notandinn hefur aldrei verið hér áður. Og þá er þetta auðvitað er incrementing borðið hvernig? Ég er að uppfæra verðmæti sem er inni þessa tengin array því að setja það jafnt hvað gegn nú er + 1. Ef ég skruna niður til HTML á síðunni, það er í raun mjög einfalt. Það eina sem ég hef í líkamanum á þessari síðu er, "þú hefur heimsótt þessa síðu svo-og-svo sinnum." Og þetta er PHP reisa. Ef þú gerir