1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [PHP Vikao] 2 00:00:02,000 --> 00:00:04,000 [Tommy MacWilliam, Chuo Kikuu cha Harvard] 3 00:00:04,000 --> 00:00:07,000 [Hii ni CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:10,920 Vikao katika PHP inaweza kutumika kutekeleza utendaji, 5 00:00:10,920 --> 00:00:13,440 kama logins user, katika mtandao programu yako. 6 00:00:13,440 --> 00:00:16,920 Vikao vya PHP kuruhusu kujiunga habari 7 00:00:16,920 --> 00:00:19,680 kwa mtumiaji nzima ya kuvinjari 8 00:00:19,680 --> 00:00:22,290 badala ya ukurasa mmoja. 9 00:00:22,290 --> 00:00:27,330 Hivyo kwamba maana kama user ziara kurasa PHP mbalimbali kwamba kufanya juu tovuti yako, 10 00:00:27,330 --> 00:00:30,630 taarifa yoyote katika kikao cha yataendelea. 11 00:00:30,630 --> 00:00:34,770 Hivyo hiyo ina maana kwamba data kuhifadhiwa katika somo kwa ukurasa moja 12 00:00:34,770 --> 00:00:37,580 inaweza baadaye kupatikana kwa ukurasa mwingine. 13 00:00:37,580 --> 00:00:40,080 Kuhifadhi taarifa katika kikao ni rahisi, 14 00:00:40,080 --> 00:00:48,790 na sisi kufanya hivyo kupitia ishara ya dola, kusisitiza, mji mkuu wa SESSION kutofautiana. 15 00:00:48,790 --> 00:00:52,620 Dollar ishara, kusisitiza, kikao-tu kama ishara ya dola, kusisitiza, kupata 16 00:00:52,620 --> 00:00:54,710 na ishara ya dola, kusisitiza, baada ya 17 00:00:54,710 --> 00:00:58,690 ni safu associative yenye thamani jozi muhimu. 18 00:00:58,690 --> 00:01:07,980 Ili tuweze kutumia syntax-kama ishara ya dola, kusisitiza, kikao, 19 00:01:07,980 --> 00:01:16,000 bracket, quote, foo, quote, bracket, sawa, quote, bar, quote- 20 00:01:16,000 --> 00:01:20,440 kuhifadhi thamani "bar" katika muhimu "foo." 21 00:01:20,440 --> 00:01:24,030 Hata hivyo, kabla ya tunaweza kuandika au kusoma kutoka katika kikao cha safu, 22 00:01:24,030 --> 00:01:26,770 tutaweza haja ya simu kazi-maalum 23 00:01:26,770 --> 00:01:34,690 kikao, kusisitiza, kuanza, () - 24 00:01:34,690 --> 00:01:37,060 na hii initialize kikao. 25 00:01:37,060 --> 00:01:39,850 Hivyo basi tuangalie mfano. 26 00:01:39,850 --> 00:01:46,570 Ukurasa wetu wa kwanza, hello.php, anatumia kikao cha pato baadhi data kwa mtumiaji. 27 00:01:46,570 --> 00:01:53,920 Kumbuka, sisi itabidi kutumia session_start kabla ya tuweze kupata data yoyote kikao. 28 00:01:53,920 --> 00:01:59,010 Sasa sisi ni kutumia isset PHP ya kuamua kama muhimu ipo 29 00:01:59,010 --> 00:02:03,230 katika $ _SESSION associative safu. 30 00:02:03,230 --> 00:02:07,250 Kama kwamba muhimu ipo, hiyo ina maana mtumiaji watumiaji katika, 31 00:02:07,250 --> 00:02:10,410 hivyo tutaweza kuonyesha jina la mtumiaji. 32 00:02:10,410 --> 00:02:14,110 Kama kwamba muhimu ni si kuweka, hiyo ina maana mtumiaji si watumiaji katika bado, 33 00:02:14,110 --> 00:02:17,880 hivyo tutaweza kuonyesha kiungo kwa login.php. 34 00:02:17,880 --> 00:02:21,380 Hivyo basi tuangalie login.php. 35 00:02:21,380 --> 00:02:26,260 Hapa chini, tuna moja HTML fomu na pembejeo moja. 36 00:02:26,260 --> 00:02:32,720 aina ya hatua sifa ni $ _SERVER ['PHP_SELF'], 37 00:02:32,720 --> 00:02:37,440 na hii ina maana tu kwamba tunataka aina kuwasilishwa kwa file sasa, 38 00:02:37,440 --> 00:02:41,040 ambayo, katika kesi hii, ni login.php. 39 00:02:41,040 --> 00:02:43,010 Basi hebu kwenda nyuma juu ya faili hii. 40 00:02:43,010 --> 00:02:50,100 Kama mtumiaji in fomu, kisha $ _POST ['jina'] lazima kuweka. 41 00:02:50,100 --> 00:02:53,750 Kwa habari zaidi kuhusu aina HTML na post, 42 00:02:53,750 --> 00:02:56,510 kuangalia nje PHP Maendeleo ya Mtandao video. 43 00:02:56,510 --> 00:02:59,330 Katika kesi hiyo user alifanya kuwasilisha fomu, 44 00:02:59,330 --> 00:03:03,970 tunatarajia kuandika thamani kwamba wao typed katika ndani ya kikao. 45 00:03:03,970 --> 00:03:08,540 Sasa tunaweza kuelekeza mtumiaji hello.php. 46 00:03:08,540 --> 00:03:11,800 Kwa sababu tumekuwa kuhifadhiwa pembejeo mtumiaji ndani ya kikao, 47 00:03:11,800 --> 00:03:18,240 hello.php itakuwa na uwezo wa kupata thamani ambayo ilianzishwa katika login.php. 48 00:03:18,240 --> 00:03:21,010 Hivyo hebu angalia hii nje katika kivinjari. 49 00:03:21,010 --> 00:03:27,520 Kwanza, tutaweza navigate kwa http://localhost/hello.php. 50 00:03:27,520 --> 00:03:30,220 Tunaweza kuona hapa kwamba tuna si watumiaji katika bado, 51 00:03:30,220 --> 00:03:35,040 hivyo hebu bonyeza kuingia kiungo, ambayo kuelekeza sisi login.php. 52 00:03:35,040 --> 00:03:41,760 Sawa, mimi itabidi aina kwa jina langu, ambayo kisha kuhifadhiwa katika kikao. 53 00:03:41,760 --> 00:03:48,950 Kubwa! Sasa tunaweza kuona pembejeo yangu kutoka login.php juu ya hello.php kupitia kikao. 54 00:03:48,950 --> 00:03:52,270 Hivyo, nini kuhusu magogo user nje? 55 00:03:52,270 --> 00:03:58,510 Naam, ili kuingia user katika, sisi tu kuhifadhiwa thamani katika jina kikao. 56 00:03:58,510 --> 00:04:03,040 Hivyo kuingia user nje, sisi tu haja ya kuondoa kwamba muhimu jina 57 00:04:03,040 --> 00:04:05,040 kutoka katika kikao cha safu. 58 00:04:05,040 --> 00:04:09,130 Hivyo basi tuangalie faili hili jana, logout.php. 59 00:04:09,130 --> 00:04:12,080 Kwa mara nyingine tena, tutaweza haja ya simu session_start () 60 00:04:12,080 --> 00:04:15,260 kabla ya tunaweza kufanya kikao chochote kuhusiana. 61 00:04:15,260 --> 00:04:19,240 Sasa tunaweza tu kupiga simu session_destroy (), 62 00:04:19,240 --> 00:04:22,460 ambayo itachukua huduma ya kupata kuondoa data wote katika kikao cha 63 00:04:22,460 --> 00:04:26,790 na kisha kuelekeza user nyuma hello.php. 64 00:04:26,790 --> 00:04:30,700 Basi, ikiwa mimi bonyeza kiungo Ingia nje, 65 00:04:30,700 --> 00:04:34,690 tunaweza kuona kwamba server alisahau mimi ni nani, 66 00:04:34,690 --> 00:04:36,970 na mimi tena logged in 67 00:04:36,970 --> 00:04:39,910 Hivyo nini kinaendelea hapa chini ya Hood? 68 00:04:39,910 --> 00:04:42,250 Ili kupata tabia sisi tu kuona, 69 00:04:42,250 --> 00:04:44,760 server mahitaji yetu ya kufanya mambo 2. 70 00:04:44,760 --> 00:04:48,980 Kwanza, server mahitaji kwa namna fulani kuhifadhi data katika kikao. 71 00:04:48,980 --> 00:04:51,910 files mbalimbali PHP kuwa wanaunda tovuti 72 00:04:51,910 --> 00:04:56,500 ni kunyongwa kama miito ya tofauti ya PHP mkalimani 73 00:04:56,500 --> 00:05:00,550 variable hivyo ndani hawezi kuwa pamoja kati yao. 74 00:05:00,550 --> 00:05:04,030 Badala yake, server mahitaji ya kuhifadhi data wetu kikao 75 00:05:04,030 --> 00:05:08,440 katika baadhi ya sehemu files php kwamba nyingi. wanaweza kupata. 76 00:05:08,440 --> 00:05:13,940 Pili, server mahitaji ya kujiunga data kikao cha pamoja na tu kikao yangu ya kuvinjari. 77 00:05:13,940 --> 00:05:15,940 Wakati mimi kuingia kwa Facebook, 78 00:05:15,940 --> 00:05:20,460 kuna uwezekano wa mamilioni ya watu wengine pia watumiaji katika Facebook wakati huo huo. 79 00:05:20,460 --> 00:05:24,200 Lakini server mahitaji ya baadhi ya njia ya kujihusisha data yangu 80 00:05:24,200 --> 00:05:28,340 na kikao yangu ya sasa na data ya mtu mwingine kwa kipindi kingine cha. 81 00:05:28,340 --> 00:05:32,380 Kwa bahati nzuri, waandishi wa PHP mawazo kuhusu haya yote kwa ajili yetu, 82 00:05:32,380 --> 00:05:35,170 hivyo hatuna haja ya kutekeleza yoyote ya sisi wenyewe. 83 00:05:35,170 --> 00:05:39,540 Lakini hebu tuangalie nini PHP gani by default. 84 00:05:39,540 --> 00:05:44,070 Wakati natembelea PHP ukurasa zenye session_start kwa mara ya kwanza, 85 00:05:44,070 --> 00:05:47,930 PHP kuzalisha thamani kubwa random. 86 00:05:47,930 --> 00:05:53,970 Mpaka session_destroy inaitwa au mimi si kutembelea kurasa yoyote PHP kwenye tovuti hiyo kwa wakati- 87 00:05:53,970 --> 00:05:59,050 kwamba thamani random na pengine ya kipekee mapenzi kuhusishwa na mimi. 88 00:05:59,050 --> 00:06:02,780 Kwa njia hiyo server ina baadhi ya njia ya kutambua kikao yangu kuvinjari 89 00:06:02,780 --> 00:06:05,710 kinyume na mtu mwingine. 90 00:06:05,710 --> 00:06:08,780 Tunaweza kuangalia sasa ID kikao 91 00:06:08,780 --> 00:06:12,380 kutumia PHP kazi, session_ID. 92 00:06:12,380 --> 00:06:17,250 Hapa sisi ni tu outputting thamani ya kikao cha wetu kitambulisho. 93 00:06:17,250 --> 00:06:20,580 Hivyo kama sisi tena kuingia kwa mfano mtandao programu, 94 00:06:20,580 --> 00:06:25,530 na sasa navigate kwa sessid.php, 95 00:06:25,530 --> 00:06:27,850 tutaweza kuona kamba hii kwa muda mrefu ya wahusika, 96 00:06:27,850 --> 00:06:31,180 na kwamba kitambulisho sasa kwa ajili ya kikao yangu, 97 00:06:31,180 --> 00:06:35,410 na kwamba ni jinsi gani server ni kuweka wimbo wa mimi ni nani. 98 00:06:35,410 --> 00:06:37,670 Sawa, lakini tumekuwa tu kutatuliwa tatizo nusu. 99 00:06:37,670 --> 00:06:40,910 Uhakika, server sasa ina baadhi ya njia ya kutambua yangu, 100 00:06:40,910 --> 00:06:46,060 lakini wakati mimi kutembelea ukurasa mwingine, server mahitaji ya kutumia tena kwamba kitambulisho hicho 101 00:06:46,060 --> 00:06:48,910 badala ya kuzalisha mwezi mmoja. 102 00:06:48,910 --> 00:06:52,760 Kumbuka, kama mimi kutangaza variable za mitaa katika foo.php 103 00:06:52,760 --> 00:06:55,190 na kisha kutembelea bar.php, 104 00:06:55,190 --> 00:07:00,980 bar.php hana njia ya kujua nini kilichotokea katika foo.php. 105 00:07:00,980 --> 00:07:07,450 Hivyo default php utekelezaji kikao inahitaji kwamba browser kuwakumbusha server 106 00:07:07,450 --> 00:07:09,740 ambayo ID kikao kutumia. 107 00:07:09,740 --> 00:07:12,710 Hii ni kutekelezwa katika mfumo wa cookie. 108 00:07:12,710 --> 00:07:15,370 kuki-katika Mbali na kuwa na ladha vitafunio- 109 00:07:15,370 --> 00:07:18,630 ni tu ndogo Nakala faili kwenye kompyuta yako 110 00:07:18,630 --> 00:07:21,780 kwamba server unaweza kuandika kwa kupitia mtandao browser. 111 00:07:21,780 --> 00:07:27,300 Hivyo, baada ya PHP inazalisha kikao ID yangu ya kipekee kupitia session_start, 112 00:07:27,300 --> 00:07:34,210 ni kwenda kuwaambia kivinjari kuhifadhi kwamba kitambulisho katika mitaa Nakala faili, au cookie. 113 00:07:34,210 --> 00:07:38,490 Kisha kivinjari ni pamoja na kwamba kitambulisho katika kila ombi 114 00:07:38,490 --> 00:07:40,780 kwamba inafanya kwa server. 115 00:07:40,780 --> 00:07:44,280 Hivyo kweli, mtandao wa kompyuta si kukumbuka mimi ni nani. 116 00:07:44,280 --> 00:07:48,780 Badala yake, kivinjari ni tu kukumbuka kitambulisho kipekee 117 00:07:48,780 --> 00:07:52,730 kwamba ilitokana na PHP na kisha kukumbushia server 118 00:07:52,730 --> 00:07:55,120 yale ambayo kitambulisho ni. 119 00:07:55,120 --> 00:08:00,760 Kwa njia hiyo, habari kama user jina langu ni kuhifadhiwa kwenye server si kivinjari yangu. 120 00:08:00,760 --> 00:08:05,190 kisakuzi tu anaelezea server ambapo PHP kuhifadhiwa habari kwamba 121 00:08:05,190 --> 00:08:07,750 hivyo PHP unaweza retrieve yake. 122 00:08:07,750 --> 00:08:12,150 Ili anaomba swali, ambapo ni PHP kweli kuhifadhi habari hii? 123 00:08:12,150 --> 00:08:14,910 By default, PHP kuhifadhi kikao cha data yako 124 00:08:14,910 --> 00:08:19,540 katika faili ndani ya / TMP, au 'temp' folder. 125 00:08:19,540 --> 00:08:24,450 jina la faili ambayo ni pamoja na kikao cha ID hivyo PHP anaweza kuamua 126 00:08:24,450 --> 00:08:28,620 faili kusoma na kuandika kutoka kupitia tu kikao cha ID. 127 00:08:28,620 --> 00:08:32,280 Sawa. Basi hebu kufungua tab Network katika debugger Chrome ya 128 00:08:32,280 --> 00:08:34,890 kupitia bisibisi icon kulia juu. 129 00:08:34,890 --> 00:08:38,409 Sasa hebu kichwa na hello.php tena. 130 00:08:38,409 --> 00:08:42,270 Hebu bonyeza juu ya ombi HTTP kwa hello.php 131 00:08:42,270 --> 00:08:44,680 na kisha bonyeza headers. 132 00:08:44,680 --> 00:08:50,390 Hapa tunaweza kuona kwamba header cookie ina muhimu aitwaye PHPSESSID, 133 00:08:50,390 --> 00:08:55,980 au kikao PHP ID-na thamani kwamba ni hiyo kwa muda mrefu kamba tuliona 134 00:08:55,980 --> 00:08:59,290 tulipotembelea sessid.php. 135 00:08:59,290 --> 00:09:04,660 Hii ni jinsi gani browser ni kuwakumbusha server nini ID kikao zitumike. 136 00:09:04,660 --> 00:09:08,180 Ni ikiwa ni pamoja na katika header HTTP. 137 00:09:08,180 --> 00:09:10,500 Sawa. Hebu kichwa nyuma ya wastaafu. 138 00:09:10,500 --> 00:09:16,450 Hebu navigate kwa / TMP, ambapo PHP ni hifadhi ya habari kikao by default. 139 00:09:16,450 --> 00:09:19,160 Uhakika wa kutosha, ndani ya folda hii ya muda, 140 00:09:19,160 --> 00:09:23,550 hapa faili kwamba ina sawa halisi kikao ID. 141 00:09:23,550 --> 00:09:28,990 Kama sisi kufungua faili hili, tunaweza kuona jinsi PHP ni anayewakilisha kikao yangu juu ya disk. 142 00:09:28,990 --> 00:09:32,870 Hapa string "Tommy" ni kuwa kuhifadhiwa kwa ajili ya muhimu jina la, ' 143 00:09:32,870 --> 00:09:35,750 ambayo ni nini hasa sisi walikuwa wanatarajia. 144 00:09:35,750 --> 00:09:38,850 Na kwamba maelezo ya jumla ya vikao katika PHP. 145 00:09:38,850 --> 00:09:42,590 Nini sisi tu kuona mara tu utekelezaji default ya vikao. 146 00:09:42,590 --> 00:09:45,600 Kwa kweli, wengi tovuti kubadili tabia hii default 147 00:09:45,600 --> 00:09:48,280 kuhifadhi vikao PHP kwa ufanisi zaidi 148 00:09:48,280 --> 00:09:50,390 kwa maslahi ya kuboresha utendaji. 149 00:09:50,390 --> 00:09:52,800 Jina langu ni Tommy, na hii ni CS50. 150 00:09:52,800 --> 00:09:56,000 [CS50.TV]