КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
PHPғасессиялардыңтетiгiнiңiскеасыруы.Кез келген сессия аты бар арнайы қызметтiк файл құратын ағымдағы сессиямен сабақтас барлық мәлiметтердi кейiннен жазып алған тиiстiID сессия () ) session_starti функциясы арқылы ашылады. Бұл файлдардың орналастыруын орын PHPның күйге келтiрулерiнен тәуелдi болады. Сiз егер дегенмен сессияның өз скрипттерiнде қолданыңыз, уақытша файлдар, өйткенi анда уақытпен бұған директорияға тазалауға кейде ұмытпаңыз керексiз файлдардың көрнектi саны жинала аламыз. Бұл функциялар сонымен бiрге ағымдағы сессияның жалғасы үшiн қолданылады. Сайып келгенде, ол ағымдағы сессияның мәлiмет қолданушы әрбiр бетте шақыруы керек. PHPларға (SID қысқартып) ID сессияның берiлуiн екi әдiс ескерiлген: GET әдiс арқылы. Келушi сонда келесi түрдiң адрестi жолын өз броузерiнде көредi: http://server.com/main.php ме?PHPSESSID=bdd95bcd4e1e2ef5ec57fc83a69bba86Cookieлерден кейiн. Бұл жерде, сәйкесiнше келушi сессия, SIDтiң болуының белгiлерiн көрмей Cookie арқылы берiледi Сессиялары бар жұмыстағы келесi адым - сессияға деректер жазбасы. Бұл () ) session_registerдiң функциясымен шұғылданады. Ол мәннiң ағымдағы сессиясының файлына көрcетiлген сiз кез келген уақытта пайдалана алатын айнымалы сақтайды. Сессияға деректер тiркеуi шамамен төмендегiше көрiнуi керек: () ) session_start; (name, birth) session_register; "Вася Пупкин" "сi $name =лар; "4 наурыз" $birth =лер; Бiз ендi осы сайтты кез келген бетте ат бойынша келушiге сұрай аламыз. () ) session_registerдiң керi функциясы ағымдағы сессиядан мәлiметтерi алып тастайтын () ) session_unregisterдiң функциясы болып табылады. Бұл функциялар сирек болды ендi қолданылады, бiрақ өте пайдалы кейде болады. Мысалы, егер сiз үлкен сан сессияға керексiз мәндер ендi одан алып тастау мүмкiн ағымдағы сессияның файлын қайта жүктемесiнiңiз одан алып тастау мүмкiну үшiн айнымалы тiркесеңiз, сол жағдайда. Сессиялары бар жұмыстың қосымша функциялары session_id Бiз сессиялармен жиi жұмыс iстегенде IDді анықтауға керек болады. Бұл ағымдағы сессияны нәтиже ретiнде ID қайтаратын () ) session_idтiң тиiстi атауы бар функция шұғылданады. Функция бұл осы функция көмегiмен бiз файл жазып алған сессиялары бар ағымдағы сессия ID салыстыратын сайттағы келушiлердiң есептеуiн тетiк ("Сайтта қазiр" бапты қара) осы уақытта негiзделген. session_name Мысалы, оның громозкостиы және сүйiктiлiк артынан сессия IDтердi пайдаланатында жағдайлар 7542b069d57510a99eaeb31391b15cbf бiзге түрдiң сессиясының idi өйткенiiс жүзiнде ештеңе айтпайды болады. Осы жағдайда ақылдырақ екi рөлмен орындай алған қолдану функциясы session_nameлер болып қалыптасады. Бiрiншiден, ол ағымдағы (үндемеу бойынша - PHPSESSIDке) сессияның аты қайтара алады. Осы жағдайда ол дәлелдерсiз қолдану керек. Екiншiден, бұл функциялар ағымдағы сессияның аты орната алады. Мысалды қарап шығамыз: () ) session_start; () ) echo session_name; "MySession" session_name ); () ) echo session_name; Осы мысалды шығарады: PHPSESSIDMySession Сессияның атаулары қорқынышты IDке қарағанда әрине, әлдеқайда жақсы қабылданады. session_destroy() ) session_destroyнiң функциясының сессиясының жұмысын бiтiредi. Ол ағымдағы сессиямен сабақтас файлды құртады, бұл ыңғайлы болып келеді. Бiрақ мәселе бұл жерде пайда болады: жиi бiздi сессияны тап жоюға керегін бiлмеймiз. Мысалы, егер осы сессиялар барлық сайттың беттерiмен қолданылса, онда бiз нақтылы бетте сессияны жоя алмаймыз, қалай беттiң өзi сайтта келушiмен соңғы қарап шығылған бет болатынын өйткенi бiлмеймiз. Егер бiз сессияның әсерiн беттiң өзiнде тоқтатуы керек болғанын алдын ала бiлсек қолдану осы функцилер сондықтан жағдай тек қана болуы мүмкiн.
|