>> DOUG Lloyd: Pra, në tonë video mbi PHP sintaksë,
kemi biseduar shumë rreth asaj se si PHP mund të përdoret në rreshtin e komandave
për të drejtuar programet në një mënyrë që ne jemi mjaft të njohur me nga C.
Por siç kam përmendur edhe në këtë video, PHP
është zhvilluar fillimisht për zbatimin e programimit web, faqet e internetit.
Dhe kështu në këtë video ne jemi do të flasim se si ne
përdorin PHP në kontekstin e zhvillimit web.
>> Ne e dimë, tashmë, nga Video ynë mbi HTML,
se faqet e internetit janë ndërtuar nga një grup i HTML tags
që semantike të përcaktuar struktura e një web faqe.
Por faqet e internetit që janë të ndërtuar me HTML të pastër
vuajnë nga një shumë, kufizim shumë serioze.
>> Dhe për të ilustruar këtë kufizim, le të konsiderojmë në vijim.
Kështu që tani unë dua të ndërtuar një faqe interneti se, sa herë që përdorues viziton ajo,
kjo më jep aktual kohë në Kembrixh, Mass.,
shfaqur atë në minutën e fundit.
Në qoftë se unë kam qenë duke e bërë këtë të drejtë tani, Unë mund të them diçka si kjo.
Kohën e tanishme në Cambridge-- kështu që unë kam HTML tags, tags kokë, tags titullin,
Trupi tags-- e tanishme kohë në Kembrixh është 14:08,
shtypjen nga koha ushtarak.
>> Çfarë ndodh në qoftë se është tani 02:09, 14:09?
Mirë deri më tani, me HTML, unë kam për të shkuar në dhe për të ndryshuar atë në 14:09.
Dhe pastaj një minutë më vonë, Unë kam për të ndryshuar atë përsëri.
Dhe si ju mund të imagjinoni, kjo është ndoshta puna më e keqja ndonjëherë.
Ju jeni webmasteri për një faqe web, dhe çdo minutë, 24 orë në ditë,
ju keni nevojë për të rinovuar kohën e tanishme nga dorë hapjes time.html dhe ndryshimin
vetëm se copë e kodit për të thënë Koha në orë dhe minuta.
Kjo ndoshta nuk është një shumë përdorim i mirë i burimeve tona,
njerëzore dhe kompjuterike.
>> Faqet e internetit që janë të gjitha HTML janë krejtësisht statike.
E vetmja mënyrë ju mund update përmbajtje, siç e kemi parë vetëm,
është për të hapur me dorë ato burim fotografi, modifikoni ato, dhe për të shpëtuar ata.
Dhe atëherë kur përdoruesi freskon faqe,
ose viziton faqen për të parë kohë, ata do të merrni përmbajtjen e fundit.
Por vetëm për shkak se ne kemi redaktuar me dorë atë.
>> Në qoftë se ne fillojmë të përzierje disa PHP në atje, Kodi ynë mund të merrni një shumë më fleksibël.
Dhe ne mund të kemi një mënyrë për faqet tona të jetë dinamike, ose update veten e tyre,
pa kërkuar varfër ynë webmaster në shembullin e mëparshëm
të jetë me dorë përditësimin gjëra.
Ata mund ta bëjë këtë automatikisht.
Ne nuk duhet të ndërhyjnë.
Ne mund të merrni disa fle.
E cila është ndoshta një gjë e mirë nëse ju jeni duke bërë një shumë të programimit web.
>> Pra, në CS50 IDE, kemi drejtuar një web server quajtur Apache.
Kjo është një shumë e përdorur gjerësisht, burim të hapur të sistemit web server.
Ky sistem ka të Kapaciteti për të interpretuar
PHP, e cila do të jetë e dobishme në qoftë ju doni të bëni ndonjë programimit PHP.
>> Dhe në CS50 IDE, ne kemi një komandë për të bërë këtë shumë e lehtë për të bërë,
apache50 filloni.
Dhe pastaj kjo slash rrugë, çaj të, çaj
dir, kjo është vetëm një mënyrë me të vërtetë e zakonshme e duke treguar atë që ju keni specifikuar këtu
është një rrugë për një të veçantë Lista që ju
duan të jetë rrënja vend, ose faqja rrënjë,
ose dosje nga e cila web serveri juaj do të fillojë të shqyrtojë dosjet dhe për të shërbyer
ato për klientët që kërkojnë ato.
Pra, le të pop mbi të CS50 IDE, vetëm për të të ju tregojnë se, me të vërtetë të shpejtë, se si punon kjo.
>> Kështu që këtu në CS50 IDE, unë jam në një Lista quajtur Java Zero Nine.
Dhe unë kam two-- kam ekzekutuar një komandë LS vetëm
më lart për të treguar se unë kam dy directories në këtu, PHP,
që është grup i dosjeve që kam përdorur në Sintaksa Video PHP, dhe pastaj PHP-web,
që është grup i dosjeve që unë do të donte për të përdorur në këtë video.
>> Dhe unë do të doja të fillojë një shembull web server
me përmbajtjen e PHP-web dosje si fotografi janë duke u shërbyer deri.
Pra, çfarë jam unë do të bëj?
Unë do të tipit apache50 hapësirë të fillojë, PHP hapësirë, dash web.
Kjo është rruga për të directory nga ku unë aktualisht jam.
Pastaj unë hit Enter.
Ajo do të bëjë një pak e gjëra këtu.
Dhe atëherë ajo do të thotë, Apache filluar me sukses.
Site juaj tani është në dispozicion at-- dhe atëherë nuk është URL për këtë faqe interneti.
Pra, çfarë jam unë do të bëj?
Unë jam duke shkuar për të shpejt të kopje këtë.
Dhe unë jam duke shkuar për të hapur up-- dhe Unë do të zoom out pak here--
Unë jam duke shkuar për të hapur një skedë të re në Chrome.
Dhe unë jam duke shkuar për të vizituar këtë URL.
>> Unë jam duke shkuar për të goditur Enter.
Ajo do të ngarkesës.
Dhe unë do të zoom jashtë përsëri.
Dhe ne mund të shohim këtu është përmbajtja e web directory tim PHP.
>> Pra, tani çfarë po ndodh në thelb këtu është, shembull im i CS50 IDE
është duke shërbyer deri në këto fotografi kushdo që kërkon ato.
Dhe gjatë rrjedhës së kjo video, ne do lloj
hidhini një sy në një bandë e këtyre Fotografi të ndryshme në kontekst.
>> Për të testuar se Apache tuaj server është duke punuar,
e cila në përgjithësi është duke shkuar të jetë rasti në CS50 IDE,
por në qoftë se ju bëni këtë më në përgjithësi, dhe ju të fillojë ndërtimin e vetë web tuaj
servers, ka një të vërtetë lloj i zakonshëm i analog në,
"botë Hello", që është zakonisht përdoret për zhvillimin PHP web.
E cila është që të kemi një fotografi i përbërë nga vetëm këtë code--
një kufizues PHP vendosur me info PHP, kllapa, pikëpresja në mes.
E cila është në thelb një të veçantë Funksioni PHP që ju tregon
çfarë version i PHP ju do të vrapojnë.
>> Pra, në CS50 IDE, unë kam se dosja në dispozicion vetëm
për të treguar se çfarë kjo do të duken si.
Kështu që unë jam duke kërkuar në indeksin e mia nga PHP shembull ime.
Shembull Apache im po kandidon përmbajtja e PHP-Web.
Dhe unë kam një file i quajtur këtu info.php.
>> Unë jam duke shkuar për të klikoni atë, zoom out.
Kjo është ajo që ju do të jeni për të parë, shumë e shumë.
Ky është vetëm duke u thënë mua se serverin tim Apache është duke punuar.
Dhe kjo është, me sa duket, version i PHP që unë jam running.
Kjo është analog ime për "Hello World".
>> Kështu që unë e di se gjërat janë funksionale.
Pra, ne jemi të mirë për të shkuar.
Ne mund të vazhdojë nga këtu.
>> Pra, le të rishqyrtojnë se Shembulli kohë ne ishim
duke folur në lidhje me webmaster tonë të varfër i cili kishte për të rinovuar faqen vazhdimisht.
Kjo mund të jetë një fix për sa Unë do të zbatojë gjëra
kështu që webmasteri nuk ka duhet të mbani përditësimin kohën.
Ajo do vetëm lloj i ndodh automatikisht.
>> Poshtë nën, HTML, është mjaft të ngjashme, me një përjashtim.
Por këtu unë kam marrë disa PHP në krye.
Unë kam, me sa duket, e quajti këtë date_default_timezone_set funksion.
>> Dhe ne nuk flasim për të gjithë këto funksione në CS50,
sepse PHP ka ndoshta dhjetëra mijëra.
Kjo mund të jetë pak e një ekzagjerim, por kjo nuk mund të jetë.
Atë e mori një shumë të funksioneve të ndërtuara në.
Dhe kështu kjo është një funksion me sa duket cakton Zona ime orare si SHBA / Lindore,
cila është koha zona që unë jam aktualisht në marrjen këtë video.
>> Pastaj unë të bëjë një telefonatë me funksion të quajtur, datë.
Dhe, me sa duket, unë jam ruajtjen E tij diçka që quhet, koha.
Pra, çfarë po ndodh këtu?
>> E pra, në thelb ajo që është ndodh është, unë jam duke e bërë një telefonatë
në një server që do të më tregoni se çfarë koha është aktualisht.
Dhe unë jam konvertimin e tij në një format orë, minuta, sekonda.
Dhe arsyeja është e H kapital është kjo do të më jepni 24 orë kohë, jo 12
kohë orë, e cila do të jetë h vogle.
Dhe unë jam vetëm ruajtjen që në një ndryshore të quajtur, kohë.
Kështu që linja e dytë e PHP atje, thirrja me funksionin,
data, është vetëm duke u disa varg, që është
do të më jepni datën, dhe kohë, dhe një bandë e informacioneve të tjera.
Dhe argumenti i parë atje, që e Tij, është vetëm nxjerrjen pjesë të rëndësishme
që më intereson për këtë shembull, që është orë, minuta, dhe të dytë.
Pra, kjo është gjithçka që po ndodh.
Kështu që unë të ruajtur atë në një kohë të ndryshueshme $.
Dhe pastaj poshtë në shumë fund atje, unë
kanë atë stenografi për shtypjen nga kohën e tanishme.
Kështu që unë jam vetëm duke shkuar për të shtypur se çfarë koha e tanishme është.
>> Pra, le të marrin një vështrim në këtë në IDE CS50 dhe të shohim se si ne jemi tani
kursim që Webmaster një shumë probleme.
Të gjithë të drejtë, kështu që këtu unë jam përsëri përsëri në directory rrënjë
e shkallës sime Apache.
Dhe unë kam një fotografi këtu të quajtur time.php.
Unë jam vetëm duke shkuar për të klikoni mbi atë.
Dhe unë do të lëvizni lart, sepse ne jemi zoomed në mjaft larg.
Koha e tanishme është 14:20:34.
Kështu që unë jam duke bërë atë orë, minuta, dhe sekonda.
Dhe unë mund të rifreskoni faqe dhe për të marrë kohë të re.
--41.
Unë jam duke shkuar për të rifreskoni faqen dhe për të marrë kohë të re, 44, 46, 47.
>> Pra, unë nuk jam në mënyrë të qartë ndryshuar asgjë veten.
Jam këtu freskuese faqe.
Kështu që unë nuk mund të kthehem atje redaktimi atë.
Dhe unë ju premtoj, unë nuk e bëj keni ndonjë aleatët
të cilët janë duke redaktimi file në emrin tim në anën.
>> Unë jam vetëm duke përdorur këtë funksion PHP, kohë, për të gjeneruar kohë për mua
automatikisht.
Kështu që edhe në qoftë se unë jam në gjumë, dhe web server im po kandidon,
përdorues që viziton atë faqe është ende duke shkuar për të marrë saktësisht kohën e tanishme.
Pra, kjo është goxha e mirë.
Unë e kam bërë faqen time më dinamike me jo shumë kodi PHP.
Ajo ishte vetëm dy rreshta të kodit dhe pastaj pak e një deklarate të shtypura.
Dhe tashmë unë kam një vend shumë më dinamike
se se shembulli i parë pamë ne fillim te videos.
>> Pra, kujtojnë nga video në PHP sintaksë se kur përkthyesi PHP shkon
Programi ynë, ai injoron gjithçka kjo nuk është brenda përndarësit PHP,
pështyrë atë.
Në këtë shembull, çfarë gjë se ajo ishte pështyrë jashtë ishte HTML.
Dhe kjo do të thotë unë mund të tani shpërndaj HTML dhe PHP së bashku.
Sepse përkthyesi do të vetëm injorojnë HTML dhe fjalë për fjalë prodhimit ajo.
Që është e mirë, e drejtë?
>> Sepse me sa duket, ne fund te ditës,
Unë do të doja faqen time për të ndërtohet i HTML.
Në mënyrë që çdo shfletues web mund të interpretojë ajo, apo kuptojnë HTML në faqen
dhe bëjnë atë si diçka që ne në fakt mund të kuptoni si njerëz.
Dhe unë mund të përdorin vetëm PHP për pjesët e web faqen time
Çfarë kërkon dinamizëm, që kërkojnë më të ketë gjëra që përditësojnë vazhdimisht.
Informacioni statike mund të qëndrojnë të njëjta.
>> OK, kështu që kjo është në rregull.
Por pse do ta bëjë këtë?
Pse duhet ta përzierje HTML dhe PHP?
Unë mund vetëm të shtypura nga të gjitha HTML, duke përdorur funksionin PHP shkruar.
Pse nuk jam unë duke bërë atë?
Mendoni se ajo për një të dytë.
>> Pse, kur unë mund vetëm të shtypura out-- unë mund të ketë linja të PHP që vetëm thonë,
print HTML tag, kreu të shtypura.
Pse nuk jam unë duke bërë atë?
Pse jam unë përzierjen PHP dhe HTML?
>> E pra, në qoftë se ju mendoni se në lidhje me atë për një të dytë.
PHP, përkthyesi ka për të interpretuar atë që e sheh.
Dhe kështu ajo do të ketë për të ekzekutuar një linjë të kodit.
Shtypura nga HTML.
Shtypura nga tag kokë hapur.
Shtypura nga tag titullin hapur.
Ajo do të duhet të ekzekutuar dhe interpretuar
që çdo hap të vetme të rrugës.
Pse jo vetëm le Përkthyesi vetëm lustroj
gjëra ajo nuk e kupton dhe të bëjë atë automatikisht?
Ajo do të kurseni më shumë kohë për përzierje HTML tim dhe PHP tim së bashku.
>> Dhe kështu kjo është arsyeja pse ne nuk e bëjmë vetëm duhet të hapur decimetrin PHP
dhe vetëm pastaj të shtypura nga të gjithë Përmbajtja e faqes tonë si një PHP gjigand
thirrje për funksionit, Print, dhe pastaj kufizues afër PHP dhe ne jemi duke bërë.
Pra, kjo është arsyeja pse ne përzierje e tyre së bashku.
>> Deri tani, ne nuk kemi parë shumë nga një ndryshim prej sintaksës përgjithshme PHP.
Ka qenë shumë i thjeshtë.
Ne kemi parë tashmë pikëpyetje, të barabartë.
Ne pamë një çift të thirrjeve të reja funksion, por asgjë të vërtetë dashuroj ndodh.
Le të ndoshta të bëjë gjëra pak njohës.
Çfarë ndodh nëse ne duam të kalojë informacion mes fotografi të ndryshme PHP,
kështu që ndoshta përdoruesi mund të të paraqesë informacion për mua.
Dhe atëherë unë mund të bëjë diçka me atë në një tjetër faqe.
>> Pra, PHP ka mbështetje për diçka që quhet Super Global
Variablat, e cila tingëllon shumë e awesome.
Ata janë me të vërtetë vetëm vargjeve gjigant asociative
që ndihmojnë në zbatimin e këtij funksionalitetin e kalimit
informacionit midis PHP fotografi që janë ekzistuese në web server tonë.
>> I pari i këtyre super Globals quhet $ _GET.
Dhe kjo është ndoshta më e thjeshtë për të kuptuar.
Çfarë ndodh me $ _GET?
E pra, në thelb, përdoruesi është do të tipit informacion shtesë
ne fund te URLs tanë.
Dhe çdo gjë që ata të tipit, duke supozuar ajo është formatuar në mënyrë të veçantë
quhet një varg pyetje, e cila është vetëm një grup i çifte kyçe me vlerë të ndara
nga ampersands.
Këto palë kryesore me vlerë do të jetë të ruhet në një $ _GET array associative.
Dhe nga video tonë në PHP sintaksë, ne e dimë
se si të punojnë me vargjeve associative tashmë.
Kështu që këtu është një shembull i disa PHP, ku ndoshta unë jam
nxjerrjen gjitha palë kryesore me vlerë që përdoruesit furnizuar në URL.
Pra, unë kam time Open decimetrin PHP.
Unë kam një lak foreach.
Unë jam iterating nëpër Super Array Global quajtur $ _GET.
>> Dhe unë dua të jem në gjendje për t'iu referuar te dyja çelësit dhe vlerës.
Dhe unë jam vetëm shtypjen e tyre jashtë, secili në dukje
vetë paragrafi tag saj këtu.
Unë jam shtypje nga disa HTML dhe interpolating vlerat
e çelësit dhe vlerës në atë deklaratë.
>> Pra, le të marrin një sy se si kjo në fakt do të punojnë në IDE tonë.
Dhe ndoshta kjo do të ndihmojë ilustruar pak
e asaj që merrni është të vërtetë duke bërë.
Kështu që unë jam kthyer këtu në rrënjë tim web.
Dhe unë do të zoom në një pak për të treguar se
se unë kam një skedar të quajtur, get1.php.
>> Pra, le të klikoni mbi get1.php.
Dhe unë nuk jam duke parë ndonjë përmbajtje.
Kjo është e çuditshme, e drejtë?
E pra, jo të vërtetë në fakt.
Sepse unë nuk e furnizimit asgjë në URL.
Unë jam duke shkuar për get1.php, por unë nuk ka të ofrojë ndonjë palë kryesore me vlerë
si pjesë e vargut tim pyetje.
Pra, le të shtoni një rresht query dhe të shohim se çfarë kjo skedë mund të bëjë.
>> Për të filluar një varg pyetje ju vetëm lloji pikëpyetje.
Atëherë ndoshta unë do të them name = Doug & viti = 2015.
Dhe atëherë unë do të goditur Enter.
Tani vini re se çfarë po ndodh.
Unë jam ende në get1.php.
Por tani unë kam furnizuar palë kryesore me vlerë, dhe unë jam i
shtypjen e tyre nga vetë Emri paragraph--, vit Doug--, 2015.
Kjo është pikërisht kodi ne vetëm panë në rrëshqitje një moment më parë.
>> Dhe në qoftë se unë dua të shtoj ndoshta një tjetër palë vlera kryesore, dhe class = CS50.
Tani unë kam një tjetër vlerë kyçe palë që është shtypur jashtë
kur unë sërish URL përsëri.
Tani ndoshta kjo nuk është e formatuar tmerrësisht mirë.
Kështu që unë kam një tjetër version të get.php.
Është get2.php.
>> Dallimi në këtë një është që unë kam CSS fotografi,
dhe kjo Formatet gjërat pak më shumë bukur për mua.
Kjo nuk është ndoshta më e CSS bukur në botë.
Por kjo është vetëm një tjetër mënyrë për të bërë atë.
Kështu që unë ende mund të merrni qasje për variablat e mia duke përdorur $ _GET.
Dhe në këtë rast, unë jam vetëm lloji i duke e bërë CSS pak më shumë i sofistikuar.
Dhe në qoftë se ne të pop mbi të IDE tim për një të dytë,
Unë do të ju tregojnë se në PHP web tim Lista këtu, get2.php.
Ne do të hapur atë, disa HTML këtu.
Me sa duket unë jam lidh në atë CSS skedar Unë kam qenë duke folur rreth.
Kam hapur një tag tavolinë.
Dhe pastaj këtu është lak foreach ime.
>> Këtu është se, ajo që unë tregoi në rrëshqitje përpara.
Dallimi i vetëm është I kanë këtë çelës dhe vlera CSS
styling që unë jam duke aplikuar për të.
Por kjo është e gjitha unë jam duke bërë, po unë jam iterating nëpër $ _GET të marrë të gjitha
nga palë kryesore me vlerë.
>> Dhe unë jam shtypjen e tyre jashtë si tryezë.
Dhe, me sa duket, unë jam formatimit çelësat në një mënyrë, me <td class = "kyç".
Pra, me sa duket që vlen për disa përzgjedhës klasë në time CSS skedar GET.CSS.
Dhe, me sa duket, unë jam shtypje nga vlerat e mia në rrugë krejtësisht të ndryshme.
E cila është shumë e shumë ajo që pamë këtu, ku
vlerat tona ishin të shtypura me një sfond blu,
dhe çelësat tona ishin të shtypura me një sfond të verdhë.
Pra, kjo është se si unë jam marrë këto stile të ndryshme.
Sepse unë jam duke përdorur klasa të ndryshme CSS.
Por kjo është shumë e shumë ajo për të merrni.
Si unë jam vetëm nxjerrjen e informacionit.
Dhe në këtë rast, unë jam vetëm shtypjen atë në ekran.
Unë jam duke marrë atë nga URL, dhe kjo është ajo që ka marrë për ne.
>> A ke parë një jetë e mundur Problemi këtu edhe pse?
Pse do të kemi ndoshta nuk duan të përdorin $ _GET?
Çfarë nëse, ndoshta, unë kam qenë duke e bërë këtë pyetje?
get3.php --to, që unë nuk kanë në IDE tim.
Është vetëm një skedar hipotetike.
Por vini re këtu se me sa duket duke kaluar fjalëkalimin tim në.
Dhe ndoshta fjalëkalimi im është e turpshme.
Apo ndoshta unë nuk dua që njerëzit të e di se çfarë fjalëkalimi im është, e drejtë.
>> Nëse unë jam duke kaluar atë though-- në qoftë se unë jam duke përdorur metodë $ _GET, ajo që ndodh është,
që do të jetë në URL.
Pra, disa përdorues keqdashës fuqi të jetë në gjendje për të parë atë që unë jam duke bërë.
Unë mund të jetë kalimin e tyre informatat e ndjeshme.
Apo ndoshta kjo nuk është edhe një përdorues keqdashës.
Ndoshta kjo është vetëm miku juaj që është duke qëndruar mbi supe tuaj.
Dhe tani ata e dinë fjalëkalimin në llogarinë tuaj në Facebook.
>> Dhe ndoshta ata nuk do të të bëjë asgjë me të.
Por nëse fjalëkalimi juaj ishin dorëzuar nëpërmjet $ _GET në Facebook,
tani ata e dinë fjalëkalimin tuaj Facebook.
Për shkak se ajo është e drejtë atje në URL kur ju keni bërë fusni informacionin.
>> Dhe kështu që ndoshta kjo nuk është më e mirë mënyrë për të kaluar informatat e ndjeshme.
Kjo është një mënyrë e mirë për të kaluar informacionin se ne nuk bëjmë veçanërisht
intereson si shumë të ndjeshme.
Sepse GET është shumë i shpejtë, relative të Globals tjera super
ne jemi duke shkuar për të folur rreth.
Por ndoshta jo mjet më të mirë për informata të ndjeshme.
>> Për këtë ne mund të dëshironi të përdorni diçka që quhet $ _POST,
e cila është një tjetër ndryshueshme Super Global.
Kjo është një tjetër grup associative.
Pra, ai punon shumë e shumë të njëjtë si të merrni.
Me përjashtim, në vend të nxjerrjes së informacion nga URL,
ajo ka diçka nëpërmjet HTTP headers.
Pra kujtojnë nga tonë video mbi HTTP, kemi biseduar
për mënyrën se si shfletues, servers, dhe klientët komunikojnë.
Dhe informacioni është kaluar prapa dhe me radhë në HTTP headers.
>> Me $ _POST, informacion është në mënyrë tipike dërguar nëpër ato HTTP headers.
Dhe ne do të shohim më së shpeshti $ _POST në konteksti i paraqitjes format HTML.
Ju mund të përdorni ende forma HTML të paraqesë gjërat për të marrë.
Por ata janë përdorur zakonisht në kontekstin e Postës.
>> Kështu që këtu është një shembull i një formë të HTML.
Tani ne kemi parë këto para, por ne kemi nuk shihet kjo pjesë, veprim = "post.php".
Pra, kur kemi biseduar për format në Konteksti i HTML, kam pasur një buton Submit.
Dhe në qoftë se ju kujtohet, unë do të klikoni Submit dhe pastaj faqja vetëm rifreskohen,
nuk kanë bërë asgjë.
>> Në këtë rast, unë jam paraqitur çdo gjë që unë lloji në këtë formë,
në një skedar PHP quajtur post.php.
Dhe, me sa duket, mënyrën se si unë jam duke bërë atë në këtë formë është duke përdorur metodën POST.
Pra, çdo pjesë e informacionit që unë lloji në këtë formë
do të dorëzohet përmes HTTP headers.
>> Ajo do të jetë në dispozicion në post.php, sepse kjo është veprimi i formës sime.
Ajo do të jetë i arritshëm duke shkuar për $ _POST.
Dhe me sa duket, mënyrën se si unë mund të merrni në çdo element individual
me atë grup associative është me këtë atribut,
Emri atribut i tags tona input.
>> Kështu që me sa duket unë mund të them $ _POST katror kllapa emrin për të marrë çfarëdo përdoruesit
shtypur në fushën e parë.
Dhe $ _POST fjalëkalim, i PW në vend, për të marrë në çfarëdo përdoruesi shtypur
në fushën e dytë.
>> Pra, le të marrin një vështrim në kjo gjatë në CS50 IDE.
Pra, ja ku jemi, dhe unë do të zoom në për një të dytë.
Dhe ne kemi një skedar të quajtur post.html.
Unë klikoni mbi post.html.
Në krye këtu kam një formë shumë e thjeshtë web.
Kjo është forma që ne vetëm e pa në rrëshqitje një të dytë më parë.
>> Unë mund të shtypni, Doug, dhe unë mund të shkruani fjalëkalimin tim, të cilat ne të gjithë
di është squadgoals.
Dhe unë do të goditur Submit.
Dhe me sa duket, kjo paraqet post.php.
Dhe unë jam me sa duket shtypjen se.
Kështu që unë jam duke u shpëtoj të gjithë të sigurisë që POST jep mua vetëm me shtypjen nga
emri i përdoruesit dhe fjalëkalimin.
>> Emri i përdoruesit është Doug.
Fjalëkalimin e përdoruesit është squadgoals.
Si e bëj këtë?
E pra, pop mbi të IDE përsëri për një të dytë.
Ne do të lëvizni poshtë për të marrë një vështrim në post.php, e cila ishte
veprimi që kam përdorur për të paraqitur këtu.
Ky ishte veprimi i formës sime HTML.
Dhe kjo është e gjitha unë jam duke bërë.
Emri i përdoruesit është, dhe unë jam shtypje nga përmbajtja e $ _POST "emër".
Dhe pastaj fjalëkalimin e përdoruesit është $ _POST "password".
Kështu që unë u dhënë këtë informacion duke paraqitur formularin HTML.
Dhe unë tani mund të ekstrakt atë duke përdorur $ _POST sepse metoda e kam përdorur për të transmetuar
të dhëna me atë formë ishte metoda POST.
>> Tani kjo ndoshta nuk është kështu great-- unë jam duke shkuar
për të shkuar mbrapa për një të dytë Për të vendosur here-- tonë
kjo ndoshta nuk është aq e madhe në qoftë se unë jam fusni informacionin me POST,
i cili është gjoja më të sigurt.
Kjo është ndoshta jo aq e madhe në qoftë se unë jam duke bërë atë dhe pastaj
shtypjen fjalëkalimin e përdoruesit.
Është menduar të jetë më i sigurt.
>> OK, por kjo nuk është plotësisht e sigurt.
Dhe kështu në këtë pak snippet këtu unë dua
për të vetëm të tërheq vëmendjen tuaj për disa shqetësimet e sigurisë të dhëna, vetëm diçka
për të menduar për sa ju jeni duke punuar ose duke përdorur internetin.
Kjo është vetëm diçka që të marrin në konsideratë.
>> Unë ju thashë se informacionet dorëzuar përmes HTTP headers
kur ju përdorni metodën POST.
Që do të thotë se ata nuk janë plotësisht të sigurta.
Ata janë të vështirë për të gjetur se duke përdorur metodën e Teklif, ku
kjo është vetëm e drejtë në URL.
Por ka ende një mënyrë për të gjetur atë.
Dhe unë vetëm dua të tregoj ju këtë në mënyrë që ju ndoshta
fillojnë të mendojnë për këtë si ju jeni duke punuar, apo duke përdorur
faqet e internetit dhe dorëzimin passwords, dhe ndoshta duke përdorur
e njëjta fjalëkalimin në një shumë vende të ndryshme.
Dijeni se është ende në fakt mjaft lehtë për të gjetur fjalëkalimin e dikujt.
>> Dhe kështu që këtu, unë jam duke shkuar për të shkuar në post2.html.
Dhe diferenca me post2.html dhe post2.php është shumë delikate.
Dallimi është vetëm që unë nuk e shtypura nga
fjalëkalimi kur unë të paraqesë formularin.
>> Kështu që unë jam duke shkuar për të shkruani në, Doug.
Dhe unë jam duke shkuar për të tipit në, squadgoals, madje
edhe pse ne e dimë se është fjalëkalimin.
Para se të paraqesë formojnë edhe pse, unë jam duke shkuar
për të hapur deri Mjete Zhvilluesish, vetëm për të ju tregojnë se çfarë do të ndodhë këtu.
Pra në Chrome, unë jam vetëm duke shkuar për të goditur F12.
Dhe kjo do të hapë tim Developer Tools në anën e djathtë.
Unë nuk e kanë dorëzuar formularin ende.
Tani unë jam duke shkuar për të goditur Shto në formën time.
Dhe me sa duket, unë bëra një thirrje për, ose kam bërë një kërkesë
të post2.php, e cila ka kuptim.
Unë jam duke shkuar për të klikoni mbi atë.
>> Pastaj mbi këtu, unë jam duke shkuar të klikoni mbi Headers.
Ka shumë gjëra në vazhdim e sipër këtu.
Por në qoftë se unë lëviz nëpër shumë fund, njoftimi drejtë there-- kalendarin tim
ka bllokuar atë për një të drejte second-- atje në qoshe shumë të poshtme,
name-- Doug, squadgoals pw--.
Pra, edhe pse unë jam duke përdorur POST Metoda, e cila është më e sigurt,
vetëm të jetë i vetëdijshëm se kur ju bëni kështu, ju jeni ende të transmetimit të informacionit
përmes HTTP.
Dhe ajo ende mund të jetë gjetur nga një kundërshtar.
Kjo është vetëm diçka që ne jemi duke shkuar që duhet të merren me të vërtetë.
Ndoshta ka disa mënyra për të encrypt tonë Fjalëkalimet para se të dërgoni ato mbi,
e cila do të jetë një më të mirë, që unë nuk jam duke bërë këtu.
>> Por vetëm të jetë i vetëdijshëm se këtë post metodë ka kufizime shumë.
Kjo është një përmirësim në krahasim Get In kushtet e të qënit menjëherë të dukshme.
Por kjo nuk është një fix plotë.
Kështu që këtu është një shembull i një të shpejtë në shtëpi ushtrojnë
që ju mund të përdorni për të marrë disa praktikë duke punuar me PHP.
Krijo palë e mëposhtme të faqeve web.
I parë duhet të jetë vetëm një shumë e thjeshtë formë me një fushë të vetme dhe një Submit
button.
Pra, shumë të ngjashme me atë që ne vetëm e bëri me post.html.
>> Dhe pastaj e dyta paraqesë ju duhet të krijojnë
është një skedar, një skedar PHP, që pret të dhëna, përmes postës,
dhe bazuar në atë që përdoruesit shtypur, e cila ju mund të marrë do të jetë një numër të plotë.
Ju nuk keni për të bërë ndonjë gabim kontrolluar ose të ngjashme.
Ju mund të supozojmë përdorues do të shkruani një vlerë e plotë,
ose diçka si një interpretuar nga PHP si një numër i plotë, në atë formë.
Ju thjesht doni të krijoni një n nga tryezë n shumëzimit.
>> Pra, në qoftë se përdoruesi paraqet 10, ne duam të të ketë një tryezë 10 nga 10 e shumëzimit.
Nëse shfrytëzuesi paraqet 12, ne duam një tabelë 12 nga 12 shumëzimit.
Vetëm kështu që ju mund të shihni se çfarë ne jemi makinës në këtu,
ne do të hedhim një vështrim në Kjo skedë në IDE time.
>> Kështu që këtu në IDE, unë kam mult_form.html.
Unë do të click it.
Të gjitha unë dua të bëj është të paraqesë një vlerë.
Lloji në 10, hit Submit.
Dhe me sa duket, mult_table.php, e cila ne mund të shohim në krye atje në URL,
Unë jam duke krijuar një 10 nga 10 Tabela e shumëzimit.
>> Nëse unë lloji 15 dhe e goditi Submit, tani unë të ketë një tryezë 15 nga 15 e shumëzimit.
Unë jam, natyrisht, nuk do të ju tregojnë ju përmbajtjen e mult_table.php,
sepse kjo do të marrë fun nga kjo në shtëpi ushtrojnë.
Por kjo është një mënyrë e madhe për të marrë disa praktikë pune me sythe PHP
dhe PAS, shumë e thjeshtë, me shpresë stres shembull i lirë, vetëm
për të bërë pak praktikë.
Dhe unë kam marrë një CSS vogël në vazhdim e sipër këtu për të bërë tryezën time individuale
Qelizat vetëm lloj i pop jashtë një pak dhe të shohim pak më shumë
si tabela e shumëzimit, në krahasim me vetëm tekst vetëm
lloj i ulur atje.
E fundit super globale ne do të flasim për në këtë video është diçka që quhet
$ _SESSION.
Dhe ndoshta kjo është në fakt shembulli më i mirë i diçkaje
ne do ta konsideronte globale.
Kjo është një tjetër grup.
Kjo është një tjetër grup associative.
Por ajo është e arritshme përmes çdo PHP fotografi që ekziston në sistemin tonë.
>> Ne nuk duhet të dorëzojnë informacion një faqe në një kohë
si të bëjmë me të merrni dhe me POST.
Është gjithmonë aty.
Dhe kështu kjo është e madhe për një faqe ku ju jeni regjistruar, për shembull,
dhe ju doni të dhënat tuaja login të vazhdojnë nga faqja në faqe për faqe.
>> Ju vetëm mund të fillojë një seancë dhe pastaj përdorni $ _SESSION për të ruajtur gjëra të tilla si
emri i përdoruesit, ose shfrytëzuesi-së Informacionit ID, dhe kështu me radhë.
Dhe se informacioni do të mbetet në $ _SESSION Deri sa ju shkatërrojë seancën
pak më vonë.
>> Shkrimi faqet dinamike me PHP bën ata shumë më mirë.
Faqet tuaja të bëhet shumë dinamike, dhe ju nuk e bëni
duhet të bëjë shumë më tepër se ajo që ju përndryshe do të kishte bërë vetëm
duke bërë atë me HTML.
Por kjo kërkon praktikë, një shumë të praktikës.
>> Ju tashmë e dini se si të punojnë me C, dhe kështu duke kërcyer për PHP nuk është shumë i ndërlikuar.
Çfarë është ndoshta pak pak i ndërlikuar është duke punuar
me këtë ide të re të merrni dhe të POST, dhe ndoshta përzierjen HTML dhe PHP tuaj
së bashku.
Por edhe të jenë të vetëdijshëm se internetit është një depo e madhe e informacionit.
Dhe dokumentacioni PHP është në dispozicion në shumë vende, por ndoshta më e
kanonike në php.net.
Dhe ju mund të gjeni atje, shumë funksione të ndryshme,
dhe të përdorin raste dhe shembuj me shembuj, mbi shembuj.
Ku në qoftë se ju doni të provoni dhe figura se si të bëjë diçka, shanset janë,
dikush ndoshta bërë atë para jush.
Dhe ju mund të përdorni ato si frymëzim për të zbatuar çfarëdo
ajo është që ju jeni duke u përpjekur për të zbatuar shumë.
>> Unë jam Doug Lloyd.
Kjo është CS50.