[Powered by Google Translate] [PHP Vikao]
[Tommy MacWilliam, Chuo Kikuu cha Harvard]
[Hii ni CS50.] [CS50.TV]
Vikao katika PHP inaweza kutumika kutekeleza utendaji,
kama logins user, katika mtandao programu yako.
Vikao vya PHP kuruhusu kujiunga habari
kwa mtumiaji nzima ya kuvinjari
badala ya ukurasa mmoja.
Hivyo kwamba maana kama user ziara kurasa PHP mbalimbali kwamba kufanya juu tovuti yako,
taarifa yoyote katika kikao cha yataendelea.
Hivyo hiyo ina maana kwamba data kuhifadhiwa katika somo kwa ukurasa moja
inaweza baadaye kupatikana kwa ukurasa mwingine.
Kuhifadhi taarifa katika kikao ni rahisi,
na sisi kufanya hivyo kupitia ishara ya dola, kusisitiza, mji mkuu wa SESSION kutofautiana.
Dollar ishara, kusisitiza, kikao-tu kama ishara ya dola, kusisitiza, kupata
na ishara ya dola, kusisitiza, baada ya
ni safu associative yenye thamani jozi muhimu.
Ili tuweze kutumia syntax-kama ishara ya dola, kusisitiza, kikao,
bracket, quote, foo, quote, bracket, sawa, quote, bar, quote-
kuhifadhi thamani "bar" katika muhimu "foo."
Hata hivyo, kabla ya tunaweza kuandika au kusoma kutoka katika kikao cha safu,
tutaweza haja ya simu kazi-maalum
kikao, kusisitiza, kuanza, () -
na hii initialize kikao.
Hivyo basi tuangalie mfano.
Ukurasa wetu wa kwanza, hello.php, anatumia kikao cha pato baadhi data kwa mtumiaji.
Kumbuka, sisi itabidi kutumia session_start kabla ya tuweze kupata data yoyote kikao.
Sasa sisi ni kutumia isset PHP ya kuamua kama muhimu ipo
katika $ _SESSION associative safu.
Kama kwamba muhimu ipo, hiyo ina maana mtumiaji watumiaji katika,
hivyo tutaweza kuonyesha jina la mtumiaji.
Kama kwamba muhimu ni si kuweka, hiyo ina maana mtumiaji si watumiaji katika bado,
hivyo tutaweza kuonyesha kiungo kwa login.php.
Hivyo basi tuangalie login.php.
Hapa chini, tuna moja HTML fomu na pembejeo moja.
aina ya hatua sifa ni $ _SERVER ['PHP_SELF'],
na hii ina maana tu kwamba tunataka aina kuwasilishwa kwa file sasa,
ambayo, katika kesi hii, ni login.php.
Basi hebu kwenda nyuma juu ya faili hii.
Kama mtumiaji in fomu, kisha $ _POST ['jina'] lazima kuweka.
Kwa habari zaidi kuhusu aina HTML na post,
kuangalia nje PHP Maendeleo ya Mtandao video.
Katika kesi hiyo user alifanya kuwasilisha fomu,
tunatarajia kuandika thamani kwamba wao typed katika ndani ya kikao.
Sasa tunaweza kuelekeza mtumiaji hello.php.
Kwa sababu tumekuwa kuhifadhiwa pembejeo mtumiaji ndani ya kikao,
hello.php itakuwa na uwezo wa kupata thamani ambayo ilianzishwa katika login.php.
Hivyo hebu angalia hii nje katika kivinjari.
Kwanza, tutaweza navigate kwa http://localhost/hello.php.
Tunaweza kuona hapa kwamba tuna si watumiaji katika bado,
hivyo hebu bonyeza kuingia kiungo, ambayo kuelekeza sisi login.php.
Sawa, mimi itabidi aina kwa jina langu, ambayo kisha kuhifadhiwa katika kikao.
Kubwa! Sasa tunaweza kuona pembejeo yangu kutoka login.php juu ya hello.php kupitia kikao.
Hivyo, nini kuhusu magogo user nje?
Naam, ili kuingia user katika, sisi tu kuhifadhiwa thamani katika jina kikao.
Hivyo kuingia user nje, sisi tu haja ya kuondoa kwamba muhimu jina
kutoka katika kikao cha safu.
Hivyo basi tuangalie faili hili jana, logout.php.
Kwa mara nyingine tena, tutaweza haja ya simu session_start ()
kabla ya tunaweza kufanya kikao chochote kuhusiana.
Sasa tunaweza tu kupiga simu session_destroy (),
ambayo itachukua huduma ya kupata kuondoa data wote katika kikao cha
na kisha kuelekeza user nyuma hello.php.
Basi, ikiwa mimi bonyeza kiungo Ingia nje,
tunaweza kuona kwamba server alisahau mimi ni nani,
na mimi tena logged in
Hivyo nini kinaendelea hapa chini ya Hood?
Ili kupata tabia sisi tu kuona,
server mahitaji yetu ya kufanya mambo 2.
Kwanza, server mahitaji kwa namna fulani kuhifadhi data katika kikao.
files mbalimbali PHP kuwa wanaunda tovuti
ni kunyongwa kama miito ya tofauti ya PHP mkalimani
variable hivyo ndani hawezi kuwa pamoja kati yao.
Badala yake, server mahitaji ya kuhifadhi data wetu kikao
katika baadhi ya sehemu files php kwamba nyingi. wanaweza kupata.
Pili, server mahitaji ya kujiunga data kikao cha pamoja na tu kikao yangu ya kuvinjari.
Wakati mimi kuingia kwa Facebook,
kuna uwezekano wa mamilioni ya watu wengine pia watumiaji katika Facebook wakati huo huo.
Lakini server mahitaji ya baadhi ya njia ya kujihusisha data yangu
na kikao yangu ya sasa na data ya mtu mwingine kwa kipindi kingine cha.
Kwa bahati nzuri, waandishi wa PHP mawazo kuhusu haya yote kwa ajili yetu,
hivyo hatuna haja ya kutekeleza yoyote ya sisi wenyewe.
Lakini hebu tuangalie nini PHP gani by default.
Wakati natembelea PHP ukurasa zenye session_start kwa mara ya kwanza,
PHP kuzalisha thamani kubwa random.
Mpaka session_destroy inaitwa au mimi si kutembelea kurasa yoyote PHP kwenye tovuti hiyo kwa wakati-
kwamba thamani random na pengine ya kipekee mapenzi kuhusishwa na mimi.
Kwa njia hiyo server ina baadhi ya njia ya kutambua kikao yangu kuvinjari
kinyume na mtu mwingine.
Tunaweza kuangalia sasa ID kikao
kutumia PHP kazi, session_ID.
Hapa sisi ni tu outputting thamani ya kikao cha wetu kitambulisho.
Hivyo kama sisi tena kuingia kwa mfano mtandao programu,
na sasa navigate kwa sessid.php,
tutaweza kuona kamba hii kwa muda mrefu ya wahusika,
na kwamba kitambulisho sasa kwa ajili ya kikao yangu,
na kwamba ni jinsi gani server ni kuweka wimbo wa mimi ni nani.
Sawa, lakini tumekuwa tu kutatuliwa tatizo nusu.
Uhakika, server sasa ina baadhi ya njia ya kutambua yangu,
lakini wakati mimi kutembelea ukurasa mwingine, server mahitaji ya kutumia tena kwamba kitambulisho hicho
badala ya kuzalisha mwezi mmoja.
Kumbuka, kama mimi kutangaza variable za mitaa katika foo.php
na kisha kutembelea bar.php,
bar.php hana njia ya kujua nini kilichotokea katika foo.php.
Hivyo default php utekelezaji kikao inahitaji kwamba browser kuwakumbusha server
ambayo ID kikao kutumia.
Hii ni kutekelezwa katika mfumo wa cookie.
kuki-katika Mbali na kuwa na ladha vitafunio-
ni tu ndogo Nakala faili kwenye kompyuta yako
kwamba server unaweza kuandika kwa kupitia mtandao browser.
Hivyo, baada ya PHP inazalisha kikao ID yangu ya kipekee kupitia session_start,
ni kwenda kuwaambia kivinjari kuhifadhi kwamba kitambulisho katika mitaa Nakala faili, au cookie.
Kisha kivinjari ni pamoja na kwamba kitambulisho katika kila ombi
kwamba inafanya kwa server.
Hivyo kweli, mtandao wa kompyuta si kukumbuka mimi ni nani.
Badala yake, kivinjari ni tu kukumbuka kitambulisho kipekee
kwamba ilitokana na PHP na kisha kukumbushia server
yale ambayo kitambulisho ni.
Kwa njia hiyo, habari kama user jina langu ni kuhifadhiwa kwenye server si kivinjari yangu.
kisakuzi tu anaelezea server ambapo PHP kuhifadhiwa habari kwamba
hivyo PHP unaweza retrieve yake.
Ili anaomba swali, ambapo ni PHP kweli kuhifadhi habari hii?
By default, PHP kuhifadhi kikao cha data yako
katika faili ndani ya / TMP, au 'temp' folder.
jina la faili ambayo ni pamoja na kikao cha ID hivyo PHP anaweza kuamua
faili kusoma na kuandika kutoka kupitia tu kikao cha ID.
Sawa. Basi hebu kufungua tab Network katika debugger Chrome ya
kupitia bisibisi icon kulia juu.
Sasa hebu kichwa na hello.php tena.
Hebu bonyeza juu ya ombi HTTP kwa hello.php
na kisha bonyeza headers.
Hapa tunaweza kuona kwamba header cookie ina muhimu aitwaye PHPSESSID,
au kikao PHP ID-na thamani kwamba ni hiyo kwa muda mrefu kamba tuliona
tulipotembelea sessid.php.
Hii ni jinsi gani browser ni kuwakumbusha server nini ID kikao zitumike.
Ni ikiwa ni pamoja na katika header HTTP.
Sawa. Hebu kichwa nyuma ya wastaafu.
Hebu navigate kwa / TMP, ambapo PHP ni hifadhi ya habari kikao by default.
Uhakika wa kutosha, ndani ya folda hii ya muda,
hapa faili kwamba ina sawa halisi kikao ID.
Kama sisi kufungua faili hili, tunaweza kuona jinsi PHP ni anayewakilisha kikao yangu juu ya disk.
Hapa string "Tommy" ni kuwa kuhifadhiwa kwa ajili ya muhimu jina la, '
ambayo ni nini hasa sisi walikuwa wanatarajia.
Na kwamba maelezo ya jumla ya vikao katika PHP.
Nini sisi tu kuona mara tu utekelezaji default ya vikao.
Kwa kweli, wengi tovuti kubadili tabia hii default
kuhifadhi vikao PHP kwa ufanisi zaidi
kwa maslahi ya kuboresha utendaji.
Jina langu ni Tommy, na hii ni CS50.
[CS50.TV]