Знайте, Intuit, лекция, разрешение за достъп с помощта на сесии

Работа с сесии

Създаване на сесията

Първото нещо, което трябва да направите, за да работи с сесии (ако вече са определени от администратора на сървъра), този механизъм работи сесии. Ако конфигурацията на променлива session.auto_start сървъра е настроен на "0" (ако session.auto_start = 1. След сесията ще се стартира автоматично), а след това всеки сценарий, в който искате да използвате данните за сесията. Тя трябва да започне с командата

След получаване на тази команда, сървърът създава нова сесия и възстановява тока въз основа на идентификационния номер на сесията. предава при поискване. Как става това? PHP интерпретатор търси променлива, която съхранява идентификатор на сесия (по подразбиране е PHPSESSID) за първи път през бисквитките. след това в променливите премина с помощта на пост-и Get-заявки. Ако се установи, идентификатор, потребителят се счита за идентифицирани, заменяйки всички адреса и експониране бисквитки. В противен случай, потребителят се счита за нов, генериран нов уникален идентификационен номер, а след това направи номинация URL замяна и бисквитки за него.

Екип session_start () трябва да бъде извикана във всички скриптове, които ще използват сесийни променливи. и да извличат всяка информация на браузъра. Това се дължи на факта, че бисквитките са определени само за показване на информация на екрана.

Вземи идентификатора на текущата сесия, можете да използвате функцията за session_id ().

Можете да посочите име, използвайки session_name функции за визуализация на сесия ([imya_sessii]). Това трябва да стане преди инициализация сесия. Вземи името на текущата сесия, можете да използвате една и съща функция, наречена без параметри: session_name ();

Пример 12.2. Създаване на сесията

Преименуване на файла index.html, за обработка на PHP-скриптове. Index.php например, създаване на сесия и да видим какво ще се получи идентификационния номер и име.

Пример 12.2. Създаване на сесията

Ако направим същото и с authorize.php на файла, стойностите на изходните променливи (ID сесия и името му) ще бъдат същите, ако отида при него с index.php и да не се затвори преди това прозореца на браузъра (ако идентификаторът на сесията ще се промени).

Регистрирайте сесийни променливи

Въпреки това, сами по себе си име и име на сесията, ние използваме, за да реши проблемите ни малко. Искаме да изпращате и запаметявате за нашите собствени сесийни променливи (например потребителско име и парола). За да се постигне това, просто трябва да регистрират своите променливи:

Имайте предвид, че стойностите не се записват, и имена на променливи. Регистрирайте променлива само веднъж на всяка страница, където се използва сесия. Имената на променливите се предават session_register () функция, без да е знак $. Всички регистрирани по този начин да станат глобални променливи (т.е., достъпни от всяка страница) за тази сесия работа със сайта.

Регистрирайте променлива също могат да бъдат просто писмено своята стойност в асоциативен масив $ _SESSION. т.е. писане

Този масив съдържа всички регистрирани (т.е. глобалните) променливи на сесията.

Достъпът до тези променливи се извършва с помощта масив $ _SESSION на [ 'var_name'] (или $ HTTP_SESSION_VARS [ 'variable_name'] за версия PHP 4.0.6 и по-рано). Ако настройката е включена в опция PHP register_globals. след това да променливите на сесия може да бъде достъпен дори и като обикновени променливи, като това: $ променлива.

Когато изключите register_globals = (инвалиди), а след това използвайте session_register (), за да се регистрирате променливите преминали, за да публикувате метод или да получите, не е възможно, т.е. тя просто не работи. И като цяло, не се препоръчва да се използват и двата метода едновременно регистриране на променливите. $ _SESSION и session_register (). (Тъй като PHP 5.3.0 не се препоръчва session_register функция, за да се регистрирате сесийни променливи (), и освен това, тъй като версия PHP 6.0.0, тази функция ще бъде на разположение, вместо да се регистрират сесийни променливи, препоръчваме да използвате масив $ _SESSION ..)

Пример 12.3. Регистрирайте променливи

Обявата 12.3a. authorize.php

Сега, след като стигна до secret_info.php на страницата. и на всяка друга страница на сайта, ние можем да работим с влязъл потребителското име и паролата, които ще се съхраняват в масив $ _SESSION на. По този начин, ако промените кода на тайните страници (имайте предвид, че ние сме го преименува в secret_info.php), както следва:

Обявата 12.3b. secret_info.php

Какво получаваме в браузъра на тайна страница от следните неща:

В резултат на това, ние получаваме списък с променливи. регистриран на authorize.php, а в действителност, много тайна страница.

Обявата 12.3c. 2-ра версия secret_info.php