[Powered by Google Translate] [Semèn 9] [David J. Malan - Inivèsite Harvard] [Sa a se CS50. - CS50.TV] Tout dwa. Byenveni tounen. Sa a se CS50, e sa se kòmansman an nan semèn 9. Jodi a nou konsantre an patikilye sou konsepsyon, pa nan yon kontèks C men nan yon kontèks PHP ak yon ti jan nan SQL ak yon ti jan nan JavaScript, patikilyèman nan direksyon yon fen nan tou de pset 7 ak tou pwojè final ou a. An reyalite, si ou se nan pwen sa a nan pwojè final ou a kote prezimableman kòm nan yon èdtan oswa konsa Anons sa pibliye depi ou omwen te kòmanse bay kèk panse final pwojè ou a ak w ap panse ou ta renmen kolabore ak 1 oswa 2 kamarad klas, si w ap gen pwoblèm koneksyon avèk kamarad klas di, santi yo lib yo ranpli fòm lan nan cs50.net/partners/form. Li jis mande w ki moun ou ye, ki kalite pwojè w ap panse sou sa, kote w ap viv jis pou rezon lojistik. Lè sa a, si ou vle kenbe yon je sou sou pwochen semèn lan oswa konsa adrès URL la calcul a, ou ka Lè sa a, wè yon vèsyon Read-Only nan Google doc la nan ki n ap kolekte enfòmasyon sa a. Se konsa, si ou vle travay avèk yon moun, pa tout vle di santi yo lib yo rive jwenn deyò moun via ki mekanis. Men, majorite nan jan fè solo travay. Sa a se totalman amann. Se konsa, pa santi ke sa a se nan nenpòt fason obligatwa. Nan Vandredi li te jis m 'ak kèk nan ekip la nan isit la, vid teyat pou pati ki pi. Te gen 3 touris chita 'kanpe, se konsa sa ki te yon ti kras gòch. Ki sa nou te pale osijè de te baz done ak nou te pale de pset 7 yon ti jan. Men, si nou pa t 'rive trape ki sou videyo jis ankò, sa se amann. M ap eseye defini nenpòt tèm ke nou ta otreman pran pou yo akòde ki baze sou konferans Vandredi a. Men, jodi a nou pral pou yo eseye fè ou jwenn nan pwen an nan pa sèlman yo te kapab fè yon bagay tankou pset 7 men vrèman konprann sa k ap pase sou anba kapo machin lan, patikilyèman kèk nan Abstraksyon sa yo ke nou mete nan plas nan dosye a functions.php fè lavi ou yon ti jan pi fasil, men se konsa ke ou finalman konprann konsa, lè wou yo fòmasyon vin wete nan kèk semèn ou ka toujou siviv nan mond reyèl la epi nou fè bagay sa a san okenn kad CS50 anba ou. Sa a _SESSION $, pou moun nan nou ki yo abitye oswa ki te deja pran videyo a nan Vandredi, ki sa ki SESYON kite nou fè nan yon aplikasyon web PHP ki baze sou? Sa a se yon varyab supèrglobal, ki vle di li nan menm jan an nan lespri yo ka resevwa ak POST ak yon lòt moun kèk, men sa ki bagay sa a itil pou? Ki sa ki SESYON itilize pou? Yeah. [Elèv] antre pous Padon? [Elèv] antre pous antre pous Vreman vre. Nan pset 7 n ap lè l sèvi avèk sa a supèrglobal SESYON fasilite antre pous Ak sa ki nan bon sou sa a supèrglobal se ke li nan yon etalaj asosyatif. Yon etalaj asosyatif, sonje, se jis yon etalaj, men pa gen okenn pi long ki gen endis yo dwe nimewo tankou 012. Yo ka nimewo oswa yo ka menm strings. Se konsa, si ou te plonje nan pset 7 ankò, ou ka sonje ke nou ap estoke yon kle ID rele andedan sa a etalaj asosyatif ki gen valè se yon bagay tankou 123 - kèlkeswa sa kounye a louvri sesyon an nan ID itilizatè a se. Motivasyon an pou sa a se ke menm apre si itilizatè a te vizite lokalost oswa sit entènèt mwen an plis jeneralman ak Lè sa a, yo te louvri sesyon an, menm si yo pa klike sou yon lyen oswa retounen nan sit entènèt mwen an pandan 5 minit oswa menm yon èdtan oswa menm yon jou, men yo kite fenèt navigatè yo ouvè, via sa a supèrglobal mwen ka sonje ke yo louvri sesyon pous Nan lòt mo, li pèmèt m 'nan magazen anyen yon ti kras tèm long mwen vle sou yon itilizatè. Epi ou ka panse a li vrèman kòm enkarnasyon a nan yon kabwa fè acha. Kote tankou Amazon evidamman kite ou mete bagay sa yo nan yon shopping cart, men HTTP, pwotokòl la ki pouvwa entènèt la, se atach avèk okenn peyi nan sans ke lè ou vizite yon sit entènèt, pou pati ki pi ou pa gen kèk koneksyon rezo konstan ant navigatè ou ak sèvè a. Le pli vit ke ou te telechaje HTML ak JPEGs yo ak jif yo ak tout sa ki, koneksyon an ale lwen ak ou jis gen yon kopi nan HTML ak etajèr soti nan sèvè an. Men, si sèvè a vle sonje yon bagay sou ou, chay la se sou sèvè a aktyèlman anrejistre enfòmasyon sa a. Se konsa, nou pwogramè a ki gen kontwòl sou sèvè a ka mete pi anyen ou vle andedan sa a etalaj supèrglobal asosyatif epi li pral gen tan nan pwochen itilizatè a vini tounen, si li nan minit oswa menm jou apre, sof si yo fèmen fenèt navigatè yo, nan ki pwen SESYON disparèt. Se konsa, li depo efemèr, li la ki pa ki pèsistan, ak li a te vle di l 'ale le pli vit ke itilizatè a fèmen navigatè yo - se pa sèlman ki tab, souvan navigatè la an antye, ensi efektivman antre itilizatè a deyò. Se konsa, kouman sa a se bagay aktyèlman aplike? Kite a pran yon gade rapid nan yon egzanp ki senp nou te etidye nan Vandredi. Pou moun ki abitye, li te kòm senp tankou sa a. Sa a se yon paj wèb ki sèl objektif nan lavi se fè m 'konnen konbyen fwa mwen te vizite paj sa a. Sa a se premye fwa a isit la sou Lendi a ke mwen te vizite li, konsa li di 0 fwa. Men, si mwen kòmanse rupture paj sa a, li di 1 tan, 2, 3, 4, 5, ak sa a pral evantyèlman jis kenbe sou konte leve, leve, leve, leve, moute pou chak tan mwen aktyèlman klike sou Reload sou li. Se konsa, kouman sa a ap travay? Kite m 'ale andedan sa a ranpli rele counter.php. Pati a anwo nan li se tout kòmantè ble, men pati nan enteresan an se isit la. Sou liy 13 nou rele sa a session_start fonksyon, e ke se literalman tout sa ou bezwen fè si ou vle gen aksè sa a supèrglobal espesyal ki rele $ _SESSION. Ki fè li tout sa ki posib, epi nou pral wè nan yon moman ki jan ki nan tout sa posib. Nan liy avi 16 sa m ap fè a. Si kle a, yo rele kontwa - nan lòt mo, valè a endèks - "vann san preskripsyon" egziste anndan sa a etalaj yo rele sesyon, Lè sa a, ki sa mwen ap fè avèk li nan liy ki anba a? Ki sa ki se liy 18 ap fè? [Fèbl repons elèv] Ki sa ki nan sa? [Elèv] Sere valè an. Bon. Li nan estoke valè a ki nan nan sesyon dwa kounye a nan yon nouvo lokal varyab tanporè, $ Kontwa nan tout miniskil. Remake PHP se deja ke yo te yon ti kras parese isit la. Avi nou pa gen nenpòt ki mansyone nan int oswa flote oswa fisèl oswa yon bagay tankou sa paske PHP se chetif tape, annakò ak sa ou pa bezwen presize kalite a nan yon varyab, ak nan ka sa a isit la, mwen pa te menm te deklare li ankò. Mwen deklare li anndan nan sa yo aparèy òtopedik Curly ak kontrèman ak C, sa a se aktyèlman oke. Pa gen pwoblèm ki jan pwofondman pare solèy deklarasyon yon varyab a se nan PHP - andedan nan atèl Curly, andedan nan atèl Curly ak renmen an - li pral nan moman sa nan tan ki egziste pou rès pwogram nan, pou pi bon oswa pou vin pi mal. Se konsa, li imedyatman vin mondyal osito ke ou defini li kòm n ap fè isit la. Sinon, si mwen pa jwenn ke gen nan anything nan supèrglobal nan sesyon, Mwen aparamman inisyalizin sa a vann san preskripsyon varyab a 0, ensi jis asepte itilizatè a te janm gen isit la anvan. Lè sa a, sa a nan kou se incrementing kontwa an ki jan? Mwen mete ajou valè a ki sa ki andedan sa a etalaj asosyatif pa mete li egal a kèlkeswa sa kontwa kounye a se + 1. Si m 'desann isit la yo HTML ki nan paj la, li la aktyèlman trè senp. Tout sa mwen gen nan kò a nan paj sa a se, "Ou te vizite sit sa a pou-ak-se konsa fwa." Ak sa a se yon tise PHP. Si ou fè sa