Реєстрація змінних сесії
Реєстрація змінних сесії
Однак від самого ідентифікатора та імені сесії нам користі для вирішення наших завдань небагато. Ми ж хочемо передавати і зберігати протягом сесії наші власні змінні (наприклад, логін і пароль). Для того щоб цього досягти, потрібно просто зареєструвати свої змінні:
session_register (ім’я_змінної1,
ім’я_змінної2, ...);
Увага! session_register є застарілою і у версії PHP 6.0 взагалі вилучена. Її використання вкрай не бажано. Замість session_register слід використовувати $_SESSION.
Зауважимо, що реєструються не значення, а імена змінних. Зареєструвати змінну достатньо один раз на будь-якій сторінці, де використовуються сесії. Імена змінних передаються функції session_register () без знаку $. Усі зареєстровані таким чином змінні стають глобальними (тобто доступними з будь-якої сторінки) протягом даної сесії роботи з сайтом.
Зареєструвати змінну також можна, просто записавши її значення в асоціативний масив $ _SESSION, тобто написавши
$_SESSION ['Ім'я_змінної'] =
'Значення_змінної';
У цьому масиві зберігаються всі зареєстровані (тобто глобальні) змінні сесії.
Доступ до таких змінних здійснюється за допомогою масиву $_SESSION ['ім'я_змінної'] (або $HTTP_SESSION_VARS ['ім'я_змінної'] для версії PHP 4.0.6 і більш ранніх). Якщо ж в налаштуваннях php включена опція register_globals, то до сесійних змінних можна звертатися ще й як до звичайних змінних, наприклад так: $ім'я_змінної.
Якщо register_globals = off (відключені), то користуватися session_register () для реєстрації змінних переданих методами POST або GET, не можна, тобто це просто не працює. І взагалі, не рекомендується одночасно використовувати обидва методи реєстрації змінних, $_SESSION і session_register ().
Приклад реєстрація змінних
Зареєструємо логін і пароль, які вводяться користувачем на сторінці авторизації.
<?
session_start ();
// Створюємо нову сесію або
// Відновлюємо поточну
if (! isset ($_GET ['go'])){
echo "<form>
Login: <input type=text name=login>
Password: <input type = password
name = passwd>
<input type=submit name=go value=Go>
</ Form> ";
} Else {
$_SESSION ['Login']=$_ GET [' login '];
// Реєструємо змінну login
$_SESSION ['Passwd']=$_ GET [' passwd '];
// Реєструємо змінну passwd
// Тепер логін і пароль - глобальні
// Змінні для цієї сесії
if ($_GET ['login']==" pit "&&
$_GET ['Passwd']==" 123 ") {
Header ("Location: secret_info.php");
// Перенаправляємо на сторінку
// Secret_info.php
} Else echo "Невірний введення,
спробуйте ще раз <br> ";
}
print_r ($_SESSION);
// Виводимо всі змінні сесії
?>