[Powered by Google Translate] [PHP Sessions] [Tommy MacWilliam, Harvard Universiteti] [Bu CS50 edir.] [CS50.TV] PHP Sessions funksionallığı həyata keçirilməsi üçün istifadə edilə bilər, istifadəçi giriş kimi, web app. PHP sessiyaları siz məlumat şərik imkan verir istifadəçi bütün tarama sessiya ilə sadəcə bir səhifə daha. Istifadəçi web etmək ki, müxtəlif PHP pages ziyaret kimi Belə ki, deməkdir İclasda hər hansı bir məlumat davam edəcək. Belə ki, o deməkdir ki, bir səhifə ilə sessiyanın saxlanılır data sonra başqa bir səhifə ilə əldə edilə bilər. Bir iclasında məlumat saxlanılması, asan və biz, vurğulayır, dollar işarəsi vasitəsilə belə kapital SESSION dəyişən etmək. Dollar işarəsi, GET, vurğulayır, SESSION-yalnız dollar işarəsi kimi, vurğulamaq və dollar işarəsi, vurğulamaq POST- əsas dəyər cüt ibarət assosiativ array edir. Belə ki, biz, SESSİYASI vurğulayır, sintaksis kimi dollar işarəsi istifadə edə bilərsiniz bracket, quote, foo, quote, bracket, quote, bərabərdir bar, quote- əsas dəyəri "bar" saxlamaq "foo." Lakin, biz yazmaq və ya sessiya array oxuya bilərsiniz əvvəl, biz xüsusi funksiyası zəng etmək lazımdır sessiya,) (, başlamaq, vurğulamaq - və bu sessiya başlamaq olacaq. Belə bir misal nəzər salaq. Bizim ilk səhifə, hello.php, istifadəçi çıxış bəzi data iclası istifadə edir. Biz bir iclas məlumat əldə edə bilərsiniz əvvəl biz session_start istifadə etmək lazımdır, unutmayın. İndi biz əsas varsa müəyyən etmək üçün PHP-nin isset istifadə etdiyiniz $ _SESSION assosiativ array. Ki, əsas varsa ki, istifadəçi daxil deməkdir belə ki, biz istifadəçi adı göstərilir lazımdır. Ki, əsas müəyyən deyilsə, ki, istifadəçi hələ olmamısınız deməkdir belə ki, biz login.php bir link keçirmək lazımdır. Belə ki, login.php bir nəzər salaq. Down burada, biz bir daxil olan bir HTML forma var. Şəklində fəaliyyət atributu, $ _SERVER ['PHP_SELF'] edir və bu sadəcə, biz forması cari fayl təqdim etmək istəyirəm o deməkdir ki, ki, bu halda, login.php edir. Belə ki, geri bu faylı üst gedək. Istifadəçi formada təqdim, onda $ _POST ['name'] olmalıdır. HTML formaları və post haqqında daha ətraflı məlumat üçün, PHP Web Development video kontrol. Istifadəçi şəklində təqdim etdi ki, halda, biz onlar iclasında daxil yazdığınız dəyəri yazmaq istərdim. İndi biz hello.php üçün istifadəçi yönlendirme bilər. Biz sessiya istifadəçi daxil saxlanılır etdik, çünki, hello.php login.php müəyyən edilmişdir ki, dəyəri daxil olacaq. Belə ki, bu bir web browser kontrol imkan. Birincisi, biz http://localhost/hello.php gedin lazımdır. Biz hələ daxil deyil ki, burada edə bilərsiniz belə ki, login.php bizə yönlendirme olan giriş link basın bildirin. OK, sonra sessiya saxlanılır ediləcək olan, mənim adını yazın lazımdır. Great! İndi biz sessiya vasitəsilə hello.php haqqında login.php mənim daxil edə bilərsiniz. Belə ki, nə istifadəçi çıkıyor haqqında? Yaxşı, istifadəçi daxil etmək üçün, biz sadəcə sessiya adı bir dəyər saxlanılır. Belə ki, həyata istifadəçi daxil, biz sadəcə adı əsas aradan qaldırılması lazımdır sessiya array. Belə ki logout.php, bu son fayl nəzər salaq. Bir daha, biz) (session_start zəng etmək lazımdır biz bağlı bir şey iclası edə bilərsiniz əvvəl. İndi biz sadəcə,) (session_destroy zəng edə bilərsiniz İclasda bütün məlumatların kurtulmanın qayğı olacaq və sonra geri hello.php üçün istifadəçi yönlendirme. Mən Çıxış linki basın əgər, Biz server mən kiməm unudulmuş ki, edə bilərsiniz, və mən artıq daxil edirəm Belə ki, nə burada başlıq altında olub? Biz yalnız gördüm davranış almaq üçün, bizim server 2 şeyi etmək lazımdır. Birincisi, server birtəhər iclasında məlumat saxlamaq lazımdır. Bir veb ibarətdir ki, müxtəlif PHP faylları PHP tərcüməçi ayrı-ayrı Dua kimi icra olunur belə ki, yerli dəyişən onlar arasında ortaq ola bilməz. Əksinə, server bizim sessiya veri lazımdır bir yerdə ki, çox. php faylları əldə edə bilərsiniz. İkincisi, server yalnız tarama sessiya ilə sessiya data birləşmək lazımdır. Mən Facebook daxil zaman, eyni zamanda Facebook daxil digər milyonlarla yəqin ki, var. Amma server mənim data şərik bəzi yol lazımdır Mənim cari sessiya və digər sessiya ilə başqasının data ilə. Neyse, PHP müəllifləri, bizim üçün bu barədə bütün fikir biz bu hər hansı bir özümüz həyata keçirilməsi üçün ehtiyac yoxdur. Amma PHP ismarıcları nə bir nəzər salaq. Mən ilk dəfə session_start olan bir PHP səhifə olarkən, PHP böyük bir təsadüfi dəyər yaradacaq. Session_destroy adlı-ya bir üçün bu saytda hər hansı bir PHP pages ziyaret yoxdur müddət-qədər ki, təsadüfi və yəqin ki, unikal dəyəri mənimlə bağlı olacaq. Bu yolla server mənim tarama sessiya müəyyən bir yol var başqasının fərqli olaraq. Biz cari sessiya ID nəzər edə bilərsiniz PHP funksiyası, session_ID istifadə. Burada sadəcə bizim sessiya identifikatoru dəyəri tipi edirik. Yəni biz yenidən nümunə web app daxil əgər, və indi sessid.php gedin, biz simvol bu uzun simli görürsünüz, və mənim sessiya üçün cari identifikator var, ki, server mən kiməm takip saxlanılması necə var. OK, lakin biz yalnız yarısı problem həll etdik. Əlbəttə, server indi mənə müəyyən bir yol var, Mən başqa səhifəsini ziyarət zaman, server həmin tanıdan təkrar etmək lazımdır daha yeni bir yaradan çox. Mən foo.php yerli dəyişən elan əgər Unutmayın, və sonra, bar.php ziyarət bar.php foo.php yaşananları bilmədən heç bir yol var. Belə ki, default php sessiya həyata keçirilməsi browser server Xatırladaq ki, tələb edir sessiya ID istifadə etmək. Bu cookie şəklində həyata keçirilir. A cookie-bir dadlı snack-olmaqla yanaşı sadəcə kompüter bir kiçik mətn faylı bir server web browser vasitəsilə yaza bilərsiniz ki,. , PHP session_start vasitəsilə mənim Unikal sessiya ID yaradır sonra belə bu bir yerli mətn faylı və ya cookie ki identifikatoru saxlamaq üçün web browser demək olacaq. Sonra web browser hər sorğu ki identifikatoru daxil olacaq bu server edir ki. Belə ki, həqiqətən, web server mən kiməm xatırlayaraq deyil. Əksinə, web browser sadəcə unikal identifikatoru xatırlayaraq edir PHP tərəfindən yaradılan və sonra daim server xatırladan nə identifikator. Mənim istifadəçi adı kimi yol, informasiya server Mənim web browser saxlanılır. Brauzer sadəcə PHP informasiya saxlanılır harada server deyir belə PHP onu geri ala bilərsiniz. Belə ki, PHP, həqiqətən, bu məlumat saxlanılması olduğu sual, begs? Mənim cari olaraq, PHP sizin sessiya məlumatın / tmp, və ya 'temp' qovluq daxilində bir fayl. PHP müəyyən edə bilər ki, fayl adı sessiya ID daxildir fayl oxumaq və yalnız sessiya ID vasitəsilə yazmaq üçün. Bütün hüquqlar. Belə ki, Chrome ayıklama Şəbəkə nişanı açmaq bildirin sağ üst açarı icon vasitəsilə. İndi yenidən hello.php rəhbərlik edək. Nin hello.php üçün HTTP sorğu basın bildirin və sonra Başlıkları basın. Burada biz, cookie header PHPSESSID adlı düyməsini ehtiva bilərsiniz və ya PHP sessiya ID-ilə biz gördük ki, eyni uzun string ki, bir dəyər biz sessid.php ziyarət zaman. Bu brauzer istifadə olunmalıdır nə sessiya ID server xatırladan dəqiq necə. Bu HTTP header daxil oldu. Bütün hüquqlar. Geri terminal rəhbərlik edək. Nin PHP ismarıcları sessiya məlumat saxlanılması yerləşir / tmp, gedin imkan verir. Əmin olun ki, bu müvəqqəti qovluq daxilində, burada eyni dəqiq sessiya ID olan bir fayl var. Biz bu fayl açmaq, biz PHP disk mənim sessiya təmsil necə görə bilərsiniz. Burada string "Tommy", adı 'əsas üçün saxlanılır olunur biz gözləyirdik məhz budur. Və PHP sessiyalarının ümumi var. Nə biz yalnız gördüm sessiyanın yalnız default həyata keçirilməsi idi. Əslində, bir çox saytlarda bu u mənim davranışı dəyişmək daha səmərəli PHP sessiyaları saxlamaq üçün performansını yaxşılaşdırılması maraq. My name Tommy və bu CS50 edir. [CS50.TV]