[Powered by Google Translate] [Java 9] [David J. Malan - Universiteti i Harvardit] [Kjo është CS50. - CS50.TV] Dakord. Mirëpritur mbrapa. Kjo është CS50, dhe kjo është fillimi i javës 9. Sot ne të përqëndrohet në veçanti në projektimin, jo më në kontekstin e C por në kontekstin e PHP dhe pak e SQL dhe pak e JavaScript, veçanërisht drejt një fundi të dy pset 7 dhe gjithashtu projektin tuaj përfundimtar. Në fakt, nëse ju jeni në atë moment në projektin tuaj përfundimtar ku me sa duket si e një orë apo më shumë më parë ju të paktën filluar të jepni disa menduar për projektin tuaj përfundimtar dhe ju jeni duke menduar se ju dëshironi të bashkëpunojnë me 1 ose 2 shokët e klasës, në qoftë se ju jeni ka probleme lidh me tha shokëve, të ndjehen të lirë për të plotësoni formularin në cs50.net/partners/form. Ajo vetëm kërkon që ju të jeni, çfarë lloji i projektit ju jeni duke menduar rreth, ku ju jetoni vetëm për arsye logjistike. Dhe pastaj, nëse ju doni të mbani një sy në gjatë javës së ardhshme apo më shumë nga spreadsheet URL atje, atëherë ju mund të shihni një version read-e vetëm të doc Google në të cilën ne jemi mbledhur këtë informacion. Pra, nëse ju dëshironi të punoni me dikë, me të gjitha mjetet të ndjehen të lirë për të arritur jashtë për njerëzit nëpërmjet këtij mekanizmi. Por shumica e folks bëjnë solo punës. Kjo është krejtësisht në rregull. Pra, mos të ndjehen se kjo është në asnjë mënyrë të detyrueshme. Të premten ajo ishte vetëm mua dhe disa të ekipit në këtu, Teatri bosh për pjesën më të madhe. Ka qenë 3 turistë ulur deri atje, kështu që ishte pak i vështirë. Çfarë kemi biseduar për bazat e të dhënave ishte dhe ne biseduam rreth 7 pset pak. Dhe në qoftë se ju nuk e keni për të kapur të ndodhë që në video vetëm ende, kjo është në rregull. Unë do të përpiqemi për të përcaktuar të gjitha kushtet që ne ndryshe do të marrë për të dhënë bazuar në leksion të së premtes. Por sot ne do të përpiqemi për të merrni ju në pikën e jo vetëm të qenit në gjendje për të bërë diçka si pset 7 por me të vërtetë kuptojnë se çfarë po ndodh nën kapuç, veçanërisht disa nga abstraksionet që kemi vënë në vend në dosjen functions.php për të bërë jetën tuaj pak më e lehtë, por në mënyrë që ju përfundimisht kuptoni kështu që kur rrotat e trajnimit të vijë jashtë në disa javë ju mund të mbijetojnë në botën reale dhe të bëjë këtë stuff pa ndonjë kornizë CS50 nën ju. Kjo $ _SESSION, për ato prej jush që janë të njohur ose që tashmë kapur video të premten, çfarë do SESIONI le të na bëjë në një aplikim PHP bazuar web? Kjo është një ndryshore superglobal, që do të thotë se është e ngjashme në frymë të GET dhe PAS dhe disa të tjerë, por çfarë është kjo gjë e dobishme për të? Çfarë është SEANCA përdoret për të? Po. [Student] Logging in Na vjen keq? [Student] Logging in Logging in vërtetë. Në pset 7 ne jemi duke përdorur këtë superglobal SESIONI për të lehtësuar logging in Dhe çfarë është e bukur në lidhje me këtë superglobal është se ajo është një grup shoqerues. Një grup asociativ, risjell, është vetëm një grup, por nuk kanë më të cilit indekseve të jetë një numër si 012. Ata mund të jenë numra ose ata mund të jenë edhe vargjet. Dhe kështu që nëse ju keni fetar në pset 7 ende, ju mund të kujtojnë se ne jemi ruajtjen e një ID kyç të quajtur brenda kësaj grup associative vlera e së cilës është diçka si 123 - çfarëdo regjistrohet aktualisht në ID e përdoruesit është. Motivimi për këtë është se edhe pas përdoruesi ka vizituar localhost ose faqen e internetit e mia më përgjithësisht dhe më pas ata kanë hyrë brenda, edhe në qoftë se ata nuk klikoni një lidhje ose të kthehen në faqen time për 5 minuta apo edhe një orë ose edhe një ditë, por ata lënë dritaren hapur shfletuesin e tyre, nëpërmjet këtij superglobal mund ta mbani mend se ata janë futur me emrin tuaj Me fjalë të tjera, ajo lejon mua për të ruajtur diçka pak më afatgjatë që unë dua në lidhje me një përdorues. Dhe ju mund të mendoni për atë me të vërtetë, si mishërim i një karrocë pazar. Vende si Amazon duket të ju lejojnë të vënë gjërat në një karrocë pazar, por HTTP, protokolli që fuqitë Web, është pa shtetësi në kuptimin që kur ju vizitoni një faqe interneti, për pjesën më të madhe që ju nuk keni ndonjë lidhje të vazhdueshme të rrjetit mes shfletuesin tuaj dhe server. Sa më shpejt që ju keni shkarkuar HTML dhe JPEGs dhe gifs dhe të gjithë që, lidhja shkon larg dhe ju vetëm duhet një kopje të HTML dhe gjësend nga serveri. Por në qoftë se serveri do të kujtoni diçka për ju, barra është në server të vërtetë regjistrojnë këtë informacion. Dhe kështu ju programues të cilët kanë kontroll mbi server mund të vënë çdo gjë që ju dëshironi më në brendësi të kësaj grup superglobal associative dhe ajo do të jetë atje herën tjetër përdorues vjen mbrapa, nëse kjo është minuta apo edhe ditë më vonë, nëse ata mbyllë dritaren e shfletuesit, në të cilën pikë SEANCA zhduket. Pra, kjo është ruajtja kalimtare, është jo-të vazhdueshme, dhe ajo është menduar për të shkuar larg sa më shpejt që përdoruesi mbyll shfletuesin e tyre - jo vetëm se, tab shpesh shfletuesi tërë, duke efektive prerjet përdoruesit jashtë. Pra, si është kjo gjë zbatohet në të vërtetë? Le të marrin një vështrim të shpejtë në një shembull të thjeshtë kemi shikuar në të premten. Për ata të panjohur, ajo ishte aq e thjeshtë si kjo. Kjo është një faqe web të cilit vetëm qëllim në jetë është që të thoni sa herë kam vizituar këtë faqe. Kjo është hera e parë që këtu të hënën se kam vizituar atë, kështu që ajo thotë se 0 herë. Por në qoftë se unë të fillojë reloading këtë faqe, ajo thotë se 1 herë, 2, 3, 4, 5, dhe kjo përfundimisht do vetëm i mbajnë në numërimin lart, lart, lart, lart, lart për çdo herë që unë në fakt klikoni Rifresko mbi të. Pra, si është kjo pune? Më lejoni të shkoj në brendësi të kësaj dosje të quajtur counter.php. Pjesa e lartë e saj është e gjitha komentet blu, por pjesa interesante është këtu. On line 13 që ne e quajmë këtë session_start funksion, dhe kjo është fjalë për fjalë të gjithë ju duhet të bëni nëse ju dëshironi të keni qasje në këtë superglobal të veçantë të quajtur $ _SESSION. Kjo e bën të mundur të gjithë, dhe ne do të shohim në një moment sa që është e mundur. Në linjë njoftim 16 atë që unë jam duke bërë. Nëse çelësi, e quajtur kundër - me fjalë të tjera, vlera e indeksit - "kundër" ekziston brenda kësaj grup të quajtur seancë, atëherë çfarë jam duke bërë me atë në përputhje më poshtë? Çfarë është Shkarko 18 duke bërë? [Përgjigja e padëgjueshme Studenti] Çfarë është ajo? [Student] Ruajtjen e vlerës. Mirë. Është ruajtjen e vlerës që është në sesion të drejtë tani në një variabël të re lokale të përkohshme, $ Counter në të gjitha Fjala. Vini re se PHP është tashmë qenë pak dembel këtu. Njoftim ne nuk kemi asnjë përmendje të int ose float ose string ose diçka të tillë sepse PHP është shtypur dobët, ku ju nuk keni për të specifikojë llojin e një ndryshore, dhe në këtë rast unë nuk e kam këtu edhe shpallur atë ende. Unë jam deklaruar atë në brendësi të këtyre teksteve kaçurrel dhe ndryshe C, në fakt kjo është në rregull. Pa marrë parasysh se sa thellë mbivendosur deklaratën e një ndryshore është në PHP - brenda mbajtëse kaçurrel, brenda së mbajtëse kaçurrel dhe si - ajo do të në atë moment në kohë ekzistojnë për pjesën e mbetur të programit, për mirë apo për keq. Pra, ajo menjëherë bëhet globale sa më shpejt që ju të përcaktojë atë si ne jemi duke bërë këtu. Përndryshe, në qoftë se unë nuk do të gjeni se nuk ka asgjë në superglobal seancë, Unë jam duket Initializing këtë counter ndryshueshme në 0, duke supozuar vetëm përdoruesi nuk ka qenë këtu më parë. Dhe atëherë kjo sigurisht është e bën rritjen counter si? Unë jam përditësimin e vlerës që është brenda e kësaj grup associative duke vendosur atë të barabartë për çdo gjë kundër aktualisht është + 1. Nëse unë lëviz nëpër këtu për HTML të faqes, kjo është në fakt shumë e thjeshtë. Unë kam të gjitha në trupin e kësaj faqeje është, "Ju keni vizituar këtë faqe herë kështu-dhe-kështu." Dhe kjo është një konstrukt PHP. Nëse ju bëni