1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [ПХП Седнице] 2 00:00:02,000 --> 00:00:04,000 [Томи МацВиллиам, Универзитет Харвард] 3 00:00:04,000 --> 00:00:07,000 [Ово је ЦС50.] [ЦС50.ТВ] 4 00:00:07,000 --> 00:00:10,920 Седнице у ПХП се може користити за имплементацију функционалности, 5 00:00:10,920 --> 00:00:13,440 као логовања корисника, у вашем веб апп. 6 00:00:13,440 --> 00:00:16,920 ПХП сесија вам омогућавају да повежете информације 7 00:00:16,920 --> 00:00:19,680 са целе седнице корисника прегледања 8 00:00:19,680 --> 00:00:22,290 а не само једној страници. 9 00:00:22,290 --> 00:00:27,330 Значи као корисник посећује разне ПХП страница које чине ваш сајт, 10 00:00:27,330 --> 00:00:30,630 свака информација у седници ће истрајати. 11 00:00:30,630 --> 00:00:34,770 То значи да се подаци чувају на седници од једне странице 12 00:00:34,770 --> 00:00:37,580 се касније може приступити другој страни. 13 00:00:37,580 --> 00:00:40,080 Складиштење информација у седници је лако, 14 00:00:40,080 --> 00:00:48,790 и ми смо то урадили преко знака долара, наглашавају, капитал СЕССИОН променљиву. 15 00:00:48,790 --> 00:00:52,620 Долар знак, наглашавају, СТК-баш као знаком долара, наглашавају, ГЕТ 16 00:00:52,620 --> 00:00:54,710 и знак долара, наглашавају, ПОСТ- 17 00:00:54,710 --> 00:00:58,690 је асоцијативни низ који се састоји од кључних вредности парова. 18 00:00:58,690 --> 00:01:07,980 Дакле, можемо да користимо синтаксу-као знак за долар, наглашавају, Сессион, 19 00:01:07,980 --> 00:01:16,000 носач, цитат, трла, цитирам, носач, једнако, цитат, бар, цитирам- 20 00:01:16,000 --> 00:01:20,440 да сачувате вредност "бар" у кључном "фоо". 21 00:01:20,440 --> 00:01:24,030 Међутим, пре него што могу да пишу или читају са дужином низа, 22 00:01:24,030 --> 00:01:26,770 ћемо морати да позове специјалну функцију- 23 00:01:26,770 --> 00:01:34,690 седница, наглашавају, старт, () - 24 00:01:34,690 --> 00:01:37,060 и то ће иницијализовати седницу. 25 00:01:37,060 --> 00:01:39,850 Па хајде да погледамо пример. 26 00:01:39,850 --> 00:01:46,570 Наша прва страна, хелло.пхп, користи седницу за излаз неке податке корисника. 27 00:01:46,570 --> 00:01:53,920 Запамтите, ми ћемо морати да користимо сессион_старт пре него што се приступи било какве податке сесије. 28 00:01:53,920 --> 00:01:59,010 Сада смо користећи ПХП иссет да утврди да ли постоји кључ 29 00:01:59,010 --> 00:02:03,230 у $ _СЕССИОН асоцијативног низа. 30 00:02:03,230 --> 00:02:07,250 Ако је кључ постоји, то значи да је корисник у пријављивања, 31 00:02:07,250 --> 00:02:10,410 тако ћемо приказати на име корисника. 32 00:02:10,410 --> 00:02:14,110 Ако то кључ није постављен, то значи да корисник није пријављен још, 33 00:02:14,110 --> 00:02:17,880 тако ћемо приказати везу до логин.пхп. 34 00:02:17,880 --> 00:02:21,380 Па хајде да погледамо логин.пхп. 35 00:02:21,380 --> 00:02:26,260 Овде доле, имамо једну ХТМЛ форму са једним улазом. 36 00:02:26,260 --> 00:02:32,720 Обрасца акција атрибут је $ _СЕРВЕР ['ПХП_СЕЛФ'], 37 00:02:32,720 --> 00:02:37,440 и то једноставно значи да желимо да образац се подноси тренутној датотеци, 38 00:02:37,440 --> 00:02:41,040 који, у овом случају, је логин.пхп. 39 00:02:41,040 --> 00:02:43,010 Па хајде да се вратимо на врх ове датотеке. 40 00:02:43,010 --> 00:02:50,100 Уколико корисник поднео образац, а затим $ _ПОСТ ['име'] мора бити подешена. 41 00:02:50,100 --> 00:02:53,750 За више информација о ХТМЛ форми и пост, 42 00:02:53,750 --> 00:02:56,510 погледајте ПХП Веб развој видео. 43 00:02:56,510 --> 00:02:59,330 У случају да је корисник урадио достави образац, 44 00:02:59,330 --> 00:03:03,970 желели бисмо да напише вредност која су уписали у у седници. 45 00:03:03,970 --> 00:03:08,540 Сада можемо преусмерити корисника на хелло.пхп. 46 00:03:08,540 --> 00:03:11,800 Зато смо чувају улаз корисника на седници, 47 00:03:11,800 --> 00:03:18,240 хелло.пхп ће моћи да приступе вредност која је подешена у логин.пхп. 48 00:03:18,240 --> 00:03:21,010 Дакле, хајде да проверите ово у веб бровсер. 49 00:03:21,010 --> 00:03:27,520 Прво, ми ћемо пронађите хттп://лоцалхост/хелло.пхп. 50 00:03:27,520 --> 00:03:30,220 Ми се овде види да нисмо пријављени у још, 51 00:03:30,220 --> 00:03:35,040 па хајде да кликнете на линк за пријављивање, који ће нас преусмери на логин.пхп. 52 00:03:35,040 --> 00:03:41,760 Ок, ја ћу укуцајте у моје име, које ће бити смештена у седници. 53 00:03:41,760 --> 00:03:48,950 Сјајно! Сада можемо видети мој улаз из логин.пхп на хелло.пхп преко седници. 54 00:03:48,950 --> 00:03:52,270 Дакле, шта је са пријављивањем корисника напоље? 55 00:03:52,270 --> 00:03:58,510 Па, како да се пријавите на корисника, ми смо једноставно складишти вредности у име сесије. 56 00:03:58,510 --> 00:04:03,040 Тако да се пријавите корисника напоље, ми само треба да уклоните тај кључ име 57 00:04:03,040 --> 00:04:05,040 са седнице низа. 58 00:04:05,040 --> 00:04:09,130 Па хајде да погледамо овај последњи фајл, логоут.пхп. 59 00:04:09,130 --> 00:04:12,080 Још једном, ми ћемо морати да позовете сессион_старт () 60 00:04:12,080 --> 00:04:15,260 пре него што можемо да урадимо било шта у вези седницу. 61 00:04:15,260 --> 00:04:19,240 Сада можемо једноставно назвати сессион_дестрои (), 62 00:04:19,240 --> 00:04:22,460 који ће се побринути да се ослободе свих података у сесији 63 00:04:22,460 --> 00:04:26,790 и преусмеравање корисника Назад на хелло.пхп. 64 00:04:26,790 --> 00:04:30,700 Дакле, ако кликнем на лог оут линк, 65 00:04:30,700 --> 00:04:34,690 можемо видети да је сервер је заборавио ко сам ја, 66 00:04:34,690 --> 00:04:36,970 и ја сам више пријављени 67 00:04:36,970 --> 00:04:39,910 Дакле, шта се овде дешава испод хаубе? 68 00:04:39,910 --> 00:04:42,250 Да би добили понашање смо управо видели, 69 00:04:42,250 --> 00:04:44,760 наш сервер треба да уради 2 ствари. 70 00:04:44,760 --> 00:04:48,980 Прво, сервер мора да некако складишти податке у седници. 71 00:04:48,980 --> 00:04:51,910 Различите ПХП фајлове који садрже сајт 72 00:04:51,910 --> 00:04:56,500 се извршавају као засебне призивањима ПХП преводиоца 73 00:04:56,500 --> 00:05:00,550 па локална променљива не може да се дели између њих. 74 00:05:00,550 --> 00:05:04,030 Уместо тога, сервер мора да складишти своје податке сесије 75 00:05:04,030 --> 00:05:08,440 у неком месту које више. пхп фајлове могу да приступе. 76 00:05:08,440 --> 00:05:13,940 Друго, сервер мора да повезују податке седници само са мојим сесије. 77 00:05:13,940 --> 00:05:15,940 Када сам се пријавите на Фацебоок, 78 00:05:15,940 --> 00:05:20,460 вероватно постоје милиони других људи такође пријављени у Фацебоок истовремено. 79 00:05:20,460 --> 00:05:24,200 Али сервер мора неки начин удруживања своје податке 80 00:05:24,200 --> 00:05:28,340 са мојим тренутне сесије и податке туђем са другом заседању. 81 00:05:28,340 --> 00:05:32,380 Срећом, аутори ПХП мисли о свему овоме за нас, 82 00:05:32,380 --> 00:05:35,170 тако да не треба да се спроведу све ово сами. 83 00:05:35,170 --> 00:05:39,540 Али, хајде да погледамо шта ради ПХП подразумевано. 84 00:05:39,540 --> 00:05:44,070 Када сам посетите страницу која садржи ПХП сессион_старт за први пут, 85 00:05:44,070 --> 00:05:47,930 ПХП ће генерисати велики насумичну вредност. 86 00:05:47,930 --> 00:05:53,970 До сессион_дестрои се зове или ја не посетите било ПХП странице на том сајту за неко време- 87 00:05:53,970 --> 00:05:59,050 да насумице и вероватно јединствен вредност ће бити повезан са мном. 88 00:05:59,050 --> 00:06:02,780 На тај начин сервер има неки начин идентификују своју сесију прегледања 89 00:06:02,780 --> 00:06:05,710 за разлику од неког другог. 90 00:06:05,710 --> 00:06:08,780 Можемо да погледамо тренутне сесије ИД 91 00:06:08,780 --> 00:06:12,380 помоћу ПХП функције, сессион_ид. 92 00:06:12,380 --> 00:06:17,250 Овде смо једноставно оутпуттинг вредност нашег идентификатора сесије. 93 00:06:17,250 --> 00:06:20,580 Дакле, ако ми поново пријавити на веб апп пример, 94 00:06:20,580 --> 00:06:25,530 и сада идите на сессид.пхп, 95 00:06:25,530 --> 00:06:27,850 ћемо видети овај дуг низ знакова, 96 00:06:27,850 --> 00:06:31,180 и да је тренутна идентификатор за моју сесију, 97 00:06:31,180 --> 00:06:35,410 а то је како је сервер праћење ко сам ја. 98 00:06:35,410 --> 00:06:37,670 Ок, али ми смо само пола решили проблем. 99 00:06:37,670 --> 00:06:40,910 Наравно, сервер сада има неки начин ме идентификовање, 100 00:06:40,910 --> 00:06:46,060 али када сам посетите још једну страницу, сервер мора да поново тај исти идентификатор 101 00:06:46,060 --> 00:06:48,910 радије него да генерише нову. 102 00:06:48,910 --> 00:06:52,760 Запамтите, ако ја изјављујем локалну променљиву у фоо.пхп 103 00:06:52,760 --> 00:06:55,190 а затим посетите бар.пхп, 104 00:06:55,190 --> 00:07:00,980 бар.пхп нема начина да сазна шта се десило у фоо.пхп. 105 00:07:00,980 --> 00:07:07,450 Дакле, имплементација седница стандардна ПХП захтева да прегледач подсети на серверу 106 00:07:07,450 --> 00:07:09,740 који ИД сесије се користе. 107 00:07:09,740 --> 00:07:12,710 Ово се спроводи у облику колачића. 108 00:07:12,710 --> 00:07:15,370 Колачић-у поред тога што укусна ужина- 109 00:07:15,370 --> 00:07:18,630 је једноставно мали текст фајл на вашем рачунару 110 00:07:18,630 --> 00:07:21,780 да сервер може писати преко веб претраживача. 111 00:07:21,780 --> 00:07:27,300 Дакле, након ПХП генерише свој јединствени ИД сесије преко сессион_старт, 112 00:07:27,300 --> 00:07:34,210 то ће рећи веб бровсер за складиштење тај идентификатор у локалној текстуалне датотеке, или колачића. 113 00:07:34,210 --> 00:07:38,490 Онда веб претраживач ће обухватити тај идентификатор у сваком захтеву 114 00:07:38,490 --> 00:07:40,780 да чини на сервер. 115 00:07:40,780 --> 00:07:44,280 Дакле стварно, веб сервер се не сећа ко сам ја. 116 00:07:44,280 --> 00:07:48,780 Уместо тога, веб претраживач је једноставно сећајући се јединствени идентификатор 117 00:07:48,780 --> 00:07:52,730 који је генерисан од стране ПХП и онда стално подсећајући на сервер 118 00:07:52,730 --> 00:07:55,120 шта је идентификатор. 119 00:07:55,120 --> 00:08:00,760 На тај начин, информације као мој корисничког имена се чувају на серверу не мојој веб претраживача. 120 00:08:00,760 --> 00:08:05,190 Претраживач једноставно говори серверу где ПХП ускладиштена та информација 121 00:08:05,190 --> 00:08:07,750 па ПХП можете да га преузмете. 122 00:08:07,750 --> 00:08:12,150 Тако да поставља питање, где се ПХП заправо чување ове информације? 123 00:08:12,150 --> 00:08:14,910 Подразумевано, ПХП ће чувати податке сесије 124 00:08:14,910 --> 00:08:19,540 у фајлу унутар / тмп од, или "темп" фолдер. 125 00:08:19,540 --> 00:08:24,450 Име тог фајла ће укључити ИД сесије тако ПХП се одредити 126 00:08:24,450 --> 00:08:28,620 који фајл да читају и пишу од преко само ИД сесије. 127 00:08:28,620 --> 00:08:32,280 У реду. Дакле, хајде да отворимо картицу Нетворк у Цхроме дебуггер 128 00:08:32,280 --> 00:08:34,890 преко иконе француског кључа на врху десно. 129 00:08:34,890 --> 00:08:38,409 Сада идемо да поново хелло.пхп. 130 00:08:38,409 --> 00:08:42,270 Хајде да кликнете на ХТТП захтев за хелло.пхп 131 00:08:42,270 --> 00:08:44,680 а затим кликните на заглавља. 132 00:08:44,680 --> 00:08:50,390 Овде можемо видети да заглавље колачић садржи кључ зове тект, 133 00:08:50,390 --> 00:08:55,980 или ПХП сесија ИД-са вредношћу која је тај исти дуг низ смо видели 134 00:08:55,980 --> 00:08:59,290 када смо посетили сессид.пхп. 135 00:08:59,290 --> 00:09:04,660 То је тачно како бровсер подсећајући на сервер оно ИД седница би требало да се користи. 136 00:09:04,660 --> 00:09:08,180 То је то, укључујући у ХТТП заглављу. 137 00:09:08,180 --> 00:09:10,500 У реду. Идемо назад на терминалу главу. 138 00:09:10,500 --> 00:09:16,450 Да бисте дошли до / тмп, где се ПХП чување информација сесије по подразумеваној вредности. 139 00:09:16,450 --> 00:09:19,160 Наравно довољно, унутар овог привремену фасциклу, 140 00:09:19,160 --> 00:09:23,550 Овде је фајл који садржи исту тачан ИД сесије. 141 00:09:23,550 --> 00:09:28,990 Ако отворимо овај фајл, можемо да видимо како се ПХП представља моју сесију на диску. 142 00:09:28,990 --> 00:09:32,870 Овде стринг "Томи" се чувају за кључне 'име,' 143 00:09:32,870 --> 00:09:35,750 који је управо оно што смо очекивали. 144 00:09:35,750 --> 00:09:38,850 И то је преглед сесија у ПХП. 145 00:09:38,850 --> 00:09:42,590 Оно што смо управо видели је само стандардна реализација сесија. 146 00:09:42,590 --> 00:09:45,600 У ствари, многи сајтови промените ово подразумевано понашање 147 00:09:45,600 --> 00:09:48,280 ефикасније складиштити ПХП сесије 148 00:09:48,280 --> 00:09:50,390 у интересу побољшања перформанси. 149 00:09:50,390 --> 00:09:52,800 Моје име је Томи, а то је ЦС50. 150 00:09:52,800 --> 00:09:56,000 [ЦС50.ТВ]