[Powered by Google Translate] [Nedēļa 9] [David J. Malan - Hārvarda] [Tas ir CS50. - CS50.TV] Labi. Laipni lūdzam atpakaļ. Tas ir CS50, un tas ir sākums 9 nedēļas. Šodien mēs īpaši vērsta uz projektēšanas, vairs kontekstā C bet PHP kontekstā un SQL bitu un JavaScript mazliet, īpaši uz beigām gan 7 PSET un arī jūsu gala projektu. Patiesībā, ja jums ir, ka tajā brīdī savā pēdējā projektā kur iespējams no stundu vai tik pirms jums vismaz sāka pārdomāt uz savu galīgo projektu un jūs domājat jūs vēlētos sadarboties ar 1 vai 2 klasesbiedriem, ja jums ir problēmas savieno ar sacīja klasesbiedriem, justies brīvi, lai aizpildītu veidlapu cs50.net/partners/form. Tas tikai prasa jums, kas jūs esat, kāda veida projektu, jūs domājat par to, kur tu dzīvo tikai loģistikas iemeslu dēļ. Un tad, ja jūs vēlaties, lai saglabātu acu par nākamo nedēļu, vai arī tā izklājlapas URL tur, Jūs varat redzēt tikai lasāmu versiju Google doc kurā mēs esam šīs informācijas vākšanai. Tātad, ja jūs vēlaties strādāt ar kādu, ar visiem līdzekļiem justies brīvi, lai panākt, lai cilvēki izmantojot šo mehānismu. Bet par ļaudīm vairākums darīt darbu solo. Tas ir pilnīgi naudas sodu. Tāpēc nejūtos, ka tas ir kaut kādā veidā obligāta. Piektdien tas bija tikai man un no komandas maz šeit, tukšs teātris par lielāko daļu. Tur bija 3 tūristi sēdēja tur, tā ka bija mazliet neveikli. Ko mēs runājām par to bija datubāzes un mēs runājām par PSET 7 mazliet. Un, ja jums nav gadās noķert ka uz video tikai vēl, tas ir jauki. Es mēģināšu definēt visus noteikumus, kas mēs citādi pieņemt par pašsaprotamu pamatojoties uz piektdienas lekciju. Bet šodien mēs esam gatavojas izmēģināt, lai saņemtu jums līdz punktam ne tikai ar to var kaut ko darīt, piemēram, 7 PSET bet tiešām saprast, kas notiek zem pārsega, īpaši dažas no abstrakcijām, ka mēs ieviestas ar functions.php failā lai padarītu jūsu dzīvi mazliet vieglāk, bet tā, ka jūs galu galā saprast lai tad, kad mācību riteņi iztrūkt pēc pāris nedēļām jūs joprojām varat izdzīvot reālajā pasaulē un šo stuff bez CS50 ietvaros zem jums. Šis $ _SESSION, tiem no jums, kuri ir pazīstami vai kas jau nozvejotas video piektdien, kādi sesija ļaujiet mums darīt ar PHP balstītas tīmekļa lietojumprogrammu? Tas ir superglobal mainīgs, kas nozīmē, tas ir līdzīgs garā GET un POST un daži citi, bet kāda ir šī lieta noderīga? Kas ir sesija lieto? Yeah. [Students] pieslēdzoties Žēl? [Students] pieslēdzoties pieslēdzoties Tiešām. 7 PSET mēs izmantojam šīs sesijas superglobal lai atvieglotu pieslēdzoties Un, kas ir jauka par šo superglobal ka tas ir asociatīvā masīva. Asociatīvā masīva, atsaukšana, ir tikai masīvs, bet kuru indeksi vairs jābūt skaitļi piemēram 012. Tie var būt skaitļi vai tie var būt pat stīgas. Un tāpēc, ja esat ienira 7 PSET vēl, jūs varat atcerēties, ka mēs glabājusi atslēgu sauc ID iekšpuses šo asociatīvā masīva, kura vērtība ir kaut kas līdzīgs 123 - neatkarīgi pašlaik pieteicies lietotāja ID ir. Tam par motivācija ir tas, ka pat pēc lietotājs ir apmeklējis localhost vai manu mājas lapā vispār, un tad viņi pieteicies, pat ja tie nav noklikšķiniet uz saites vai atgriezties uz manu mājas lapā par 5 minūtēm vai pat stundu vai pat dienu, bet viņi atstāj savu pārlūka logu atvērt, izmantojot šo superglobal es varu atcerēties, ka tie ir pieteicies collas Citiem vārdiem sakot, tas man ļauj saglabāt nedaudz ilgtermiņa kaut ko es gribu par lietotāju. Un jūs varat domāt par to tiešām kā iemiesojums iepirkumu grozā. Vietās, piemēram, Amazon, protams ļauj jums nodot lietas par iepirkšanās grozs, bet HTTP protokols, kas pilnvaras internetā, ir bezvalstnieks tādā ziņā, ka tad, kad jūs apmeklējat tīmekļa vietni, par lielāko daļu jums nav zināma pastāvīgu tīkla savienojums starp jūsu pārlūkprogrammu un serveri. Tiklīdz esat lejupielādējis HTML un JPEG un GIF un visu, kas, savienojums iet prom, un jums vienkārši ir kopija HTML un plauktiņš no servera. Bet ja serveris vēlas atcerēties kaut ko par jums, slogs ir uz servera, lai faktiski ierakstīt šo informāciju. Un tāpēc jums programmētājs, kurš ir kontrole pār serveri var likt visvairāk kaut ko vēlaties iekšpuses šo superglobal asociatīvā masīva un tas būs tur nākamajā reizē lietotājs nāk atpakaļ, vai tas ir minūtes vai pat dienas vēlāk, ja vien tie slēgt savu pārlūka logu kurā brīdī sesija pazūd. Tātad, tas ir īslaicīgi uzglabāšanu, tas ir nestabils, un tas ir domāts, lai iet prom tiklīdz lietotājs aizver savu pārlūkprogrammu - ne tikai to, ka cilne, nereti visu pārlūku, tādējādi efektīvi mežizstrādes lietotājam ārā. Tātad, kā tas lieta faktiski īstenoti? Pieņemsim veikt ātri apskatīt vienkāršs piemērs mēs paskatījās piektdien. Tiem svešs, tas bija tik vienkārši, kā šis. Tas ir mājas lapa, kuras vienīgais mērķis dzīvē ir pateikt cik reizes esmu apmeklējis šo lapu. Šī ir pirmā reize šeit pirmdien, ka es apmeklēju to, tāpēc tā saka 0 reizes. Bet, ja es sāktu pārkraušanas šo lapu, tā saka 1 reizi, 2, 3, 4, 5, un tas galu galā vienkārši turēt uz skaitīšanas augšu, uz augšu, uz augšu, uz augšu, uz augšu katru reizi es tiešām noklikšķiniet Pārlādēt par to. Tātad, kā tas darbojas? Ļaujiet man iet iekšā šo failu sauc counter.php. Augšējā daļa no tā ir visiem Blue komentārus, bet interesanti daļa ir šeit. 13 līnijā mēs saucam funkciju session_start, un tas ir burtiski viss, kas jums jādara, ja jūs vēlaties, lai būtu pieejami uz šo īpašo superglobal sauc $ _SESSION. Tas padara to visu iespējams, un mēs redzēsim brīdi, kā tas viss ir iespējams. Rindā 16 paziņojumā, ko es daru. Ja galvenais, ko sauc skaitītājs - citiem vārdiem sakot, indeksa vērtība - "skaitītājs" pastāv iekšpusē šī masīva sauc sesija, tad ko es daru ar to līniju zemāk? Kas ir līnija 18 dara? [Dzirdams studentu reaģēšanas] Kas tas ir? [Students] glabāšana vērtību. Labi. Tas glabāšanai vērtību, kas ir sesija tieši tagad jaunā vietējā pagaidu mainīgo, $ Skaitītājs visiem mazajiem. Ievērojiet, ka PHP jau ir mazliet slinks šeit. Pamanīt mums nav nekādas atsauces uz int vai peldēt vai auklu vai kaut kas tamlīdzīgs jo PHP ir vāji drukāti, kurā jums nav jānorāda veidu mainīgo, un šajā gadījumā šeit es esmu pat deklarēta to vēl. Es esmu paziņojot to iekšpusē šo cirtaini lencēm un atšķirībā C, tas ir faktiski labi. Nav svarīgi, cik dziļi ligzdotu mainīgs deklarāciju ir PHP - iekšpusē cirtaini lencēm, iekšpusē cirtaini lencēm un līdzīgu - tas būs tajā brīdī laikā pastāv uz atlikušo programmas, lai labāk vai sliktāk. Tātad, tas uzreiz kļūst globāla, tiklīdz jūs to definēt kā mēs darām šeit. Pretējā gadījumā, ja es neuzskatu, ka tur ir kaut kas SESSION superglobal, Es esmu acīmredzot inicializēšana šo mainīgo counter līdz 0, tādējādi tikai pieņemot lietotājs nekad nav bijis šeit pirms. Un tad tas, protams, ir palielināšanai skaitītājs kā? Es esmu atjaunināšanu vērtību, kas ir iekšā šo asociatīvā masīva nosakot to vienāda neatkarīgi skaitītājs šobrīd ir + 1. Ja es ritiniet uz leju šeit HTML lapas, patiesībā tas ir diezgan vienkārši. Viss, kas man ir organismā šīs lapas ir "Tu esi apmeklējis šo vietni tik-un-tā reizes." Un tas ir PHP būvēt. Ja jūs