[Powered by Google Translate] [Teden 9] [David J. Malan - Harvard University] [To je CS50. - CS50.TV] V redu. Dobrodošel nazaj. To je CS50, in to je začetek tedna 9. Danes smo se osredotočili predvsem na načrtovanje, ne več v okviru dela C vendar v okviru PHP in malo SQL in malo JavaScripta zlasti proti koncu leta je tako pset 7 in tudi vaš končni projekt. V bistvu, če ste na tej točki v svojem zadnjem projektu kjer je domnevno od eno uro ali tako pred vami vsaj začeli dati nekaj misli svoj končni projekt in misliš, da želite sodelovati z 1 ali 2 sošolci, Če imate težave pri povezovanju s sošolci dejal, vas prosimo, da izpolnite obrazec na cs50.net/partners/form. Prav tako vas vpraša, kdo ste, kakšen projekt razmišljate o tem, kje živiš le iz logističnih razlogov. In potem, če želite, da pazi na v naslednjem tednu ali tako preglednice URL tam, lahko nato videli samo za branje različico Google doc , v katerem smo zbiranje teh podatkov. Torej, če želite delati z nekom, z vsemi sredstvi, vas prosimo, da stik z ljudmi prek tega mehanizma. Vendar pa večina ljudi, ne dela sam. To je povsem v redu. Torej ne zdi, da je to na kakršen koli način obvezno. V petek je bila samo jaz in nekaj ekipo tukaj, prazna gledališče za večino del. Tukaj so 3 turisti sedel tam, tako da je bilo malo nerodno. Kaj sva govorila bila baze podatkov in smo se pogovarjali o pset 7 malo. In če niste slučajno ujeli na video, samo še, da je v redu. Bom poskusil opredeliti vse pristojnosti, ki bi jih sicer jemljemo za samoumevno temelji na predavanju v petek. Ampak danes bomo poskušali priti do točke ki ni samo, da lahko naredite nekaj takega pset 7 ampak res razume, kaj se dogaja pod pokrovom motorja, še posebej nekaj abstrakcij, ki smo jih v mestu v datoteki functions.php da bo vaše življenje malo lažje, vendar tako, da boste na koncu razumeli tako da, če je usposabljanje kolesa sname v nekaj tednih lahko še vedno preživi v realnem svetu in ne te stvari brez CS50 okviru pod vami. Ta $ _SESSION, za tiste, ki so seznanjeni ali so že ujeli videoposnetek, v petek, kaj seji storimo v PHP temelji na spletni aplikaciji? To je superglobal spremenljivka, kar pomeni, da je podobno v duhu, da GET in POST in še nekaj drugih, ampak kaj je ta stvar koristna za? Kaj je SEJA uporablja? Ja. [Študent] Sečnja noter Prosim? [Študent] Sečnja noter Sečnja noter Res je. V pset 7 smo s tem zasedanju superglobal lažje uspešni prijavi In kaj lepega o tej superglobal je, da je asociativno polje. Asociativni array, odpoklic pa je le niz, vendar katerih indeks ni več treba biti številke kot 012. Lahko so številke ali pa jih celo strune. In tako, če ste vrgli v pset 7 še ni, se lahko spomnimo, da smo shranjevanje ključno imenovano ID znotraj te povezovalne matrike, katerih vrednost je nekaj takega kot 123 - ne glede na trenutno prijavljen ID uporabnika je. Motivacija za to je, da tudi po tem, ko je uporabnik obiskal localhost ali moje spletno mesto bolj na splošno, nato pa sem se prijavil, tudi če ne kliknete povezavo, ali vrnitev na moji spletni strani za 5 minut ali celo uro ali celo dan, vendar zapustiti svoje okno brskalnika odprto, prek tega superglobal se spomnim, da so prijavljeni Z drugimi besedami, to mi omogoča, da shranite malo dolgoročno karkoli hočem o uporabniku. In misliš, da res, kot utelešenje v košarici. Mesta, kot so Amazon očitno vam dal stvari v nakupovalnem vozičku, vendar HTTP protokol, ki poganja spletu, je brez državljanstva v smislu, da ko obiščete spletno stran, večinoma nimaš neke stalne omrežne povezave med brskalnikom in strežnikom. Takoj, ko ste prenesli HTML in JPEG in GIF in vse to, povezava izgine in moraš samo kopijo HTML in malenkosti iz strežnika. Ampak, če je strežnik želi spomniti kaj o tebi, obremenitev na strežniku dejansko zabeležiti te informacije. In tako programer, ki imajo nadzor nad strežnikom lahko postavite skoraj karkoli želite znotraj tega superglobal asociativni niz in bo tam naslednjič, ko se uporabnik vrne, ali je to minut ali celo dni, razen če se zaprejo svoje okno brskalnika Takrat seji izgine. Torej je minljiva skladiščenje, to je brez trajne in to je pomenilo, da gredo stran takoj, ko uporabnik zapre svoj brskalnik - ne samo, da je kartica, ki se pogosto celoten brskalnik, ter uspešno prijavo uporabnika ven. Torej, kako je ta stvar dejansko izvaja? Oglejmo hiter pogled na preprostem primeru smo iskali v petek. Za tiste, ki ne poznajo, je bilo tako enostavno, kot to. To je spletna stran, katere edini namen v življenju je, da mi poveš Kolikokrat sem obiskal te strani. To je prvič, da sem v ponedeljek, da sem jo obiskal, zato je pravi 0 krat. Ampak, če začnem znova naložite to stran, se pravi 1 uro, 2, 3, 4, 5, in bo to na koncu kar naprej štetje gor, gor, gor, gor, gor Za vsako časa sem kliknite Osveži dejansko na njej. Torej, kako je to dela? Spusti me noter to datoteko z imenom counter.php. Zgornji del je vse modro pripombe, vendar pa je zanimiv del je tukaj. V vrstici 13 pravimo to funkcijo session_start, in da se je dobesedno vse, kar morate storiti, če želite imeti dostop te posebne superglobal imenom $ _SESSION. To naredi vse mogoče, in bomo videli, kako se je v trenutku, ki je vse mogoče. V vrstici 16 obvestila, kaj delam. Če je ključ, ki se imenuje boj - z drugimi besedami, vrednost indeksa - "števec" obstaja znotraj te matrike se imenuje seji, potem, kaj delam z njim v spodnji vrstici? Kaj je vrstica 18 delaš? [Neslišno študentski odziv] Kaj je to? [Študent] Shranjevanje vrednosti. Dobro. To je shranjevanje vrednost, ki je v SESTANEK sedaj v novi lokalni začasne spremenljivke, $ Števec v vseh male. Obvestilo, da PHP se bo že malo leni tukaj. Obvestilo nimamo nobene omembe int ali float ali vrvico ali kaj podobnega ker je PHP slabo tipkajo, pri čemer vam ni treba določiti vrsto spremenljivke, in v tem primeru tukaj sem sploh je prijavil še. Jaz sem ga razglasi znotraj teh zavitih oklepajih in v nasprotju C, to je pravzaprav dobro. Ne glede na to, kako globoko ugnezdena z variabilno izjavo v PHP - znotraj oklepaja kodrasti, znotraj oklepaja kodraste in podobno - da bo v tistem trenutku v času, ko so za preostali del programa, za boljše ali slabše. Torej takoj postane svetovna takoj, ko jo opredeljuje kot delamo tukaj. Sicer pa, če se mi ne zdi, da je kaj v SESSION superglobal, Jaz sem očitno to inicializacijo spremenljivke števec na 0, s tem samo ob predpostavki, da si še nikoli ni bil tukaj. In potem je seveda povečevanje števec kako? Jaz sem posodabljanje vrednost, ki je znotraj te povezovalne matrike z določitvijo je enaka ne glede na števec trenutno + 1. Če bi se pomaknite tukaj za HTML strani, je pravzaprav zelo preprost. Vse, kar imam v telesu tej strani, "ste obiskali to stran, tako-in-tako-krat." In to je konstrukt PHP. Če boste to storili