PHP SQL
PHP SQL .ru
  Главная  Уроки  PHP  MySQL  jQuery  RegEx  CSS  Книги  Форум  
 Функции


  На главную

  Назад  Вперед

  Печать

Храним данные в сессии

Интерфейс пользователя обычно организован так, что пользователь вводит какие-то данные в одну или несколько форм. Иногда нам нужно помнить эти данные, пока открыто окно браузера (например, список товаров корзины интернет-магазина). Технически это можно реализовать с помощью скрытых полей формы, но в большинстве случаев это сложно и неудобно.

РНР обладает встроенной системой сессий, позволяющей вам сохранять и использовать данные с привязкой к браузеру. Сессии сохраняют некоторые настройки (ID сессии) в Cookies, но основные данные хранятся на вашем сервере. Для запуска сессии нужно выполнить функцию session_start(), а получить доступ к переменным сессии можно через массив $_SESSION.

Рассмотрим форму, использующую сессии для сбора, анализа и редактирования данных. Начнем с простого сценария формы. Первая часть запускает сессию и извлекает существующие переменные сессии:

<?
session_start() ;
$name = $_SESSION["name"];
$color = $_SESSION["color"];
?>
Возможно, вам нужны другие переменные, но вы всегда сможете вернуться к этой части и добавить нужные вам переменные. Когда мы выводим форму, мы используем эти старые значения в качестве значений по умолчанию:
print ’<form action="sessionview.php" method="post">’;
print “Как вас зовут? “;
print ’<input name~"name" type="text" value="’  . $name .  ’" /><br/>’;
print “Какой ваш любимый цвет? “;
print ’<input name="color" type="text" value="’  . $color . ’" /><br/>’; 
print ’<input type="submit"/ >’;
print ’<input type=”submit" name="clear" value="Очистить" />’; 
?>
Заметьте, что мы используем дополнительную кнопку для очистки значений сессий. Сценарий session view .php сохраняет данные формы и позволяет пользователю редактировать значения. Первым делом мы запускаем сессию и проверяем, переданы ли name и color как данные формы. Если они есть, то мы используем их как переменные сессии:
<?
session_start();
if  ($__REQUEST [ "name" ] )   {
$_SESSION["name"]  = $_REQUEST["name"];
}
if  ($_REQUEST["color"] )   {
$_SESSION["color"]  = $_REQUEST["color"]; 
}
?>
Следующая часть проверяет, нажал ли пользователь кнопку Clear Details. В этом случае мы используем unset () для очистки значений сессии:
if ($_REQUEST["clear"]) { unset($_SESSION["name"]); unset($_SESSION["color"]) ;
}
Теперь мы знаем, что массив $_SESSI0N содержит все корректные значения, поэтому мы можем вывести информацию пользователя на основании этих значений:
$name = $_SESSION["name"]; 
$color = $_SESSION["color"]; 
if ($name)   {
  print "Ваше имя <b>$name</b>.<br />"; 
}
if  ($color)   {
print "Ваш любимый цвет <b>$color</b>.<br />"; 
}
Наконец, мы предоставим пользователю шанс вернуться назад и отредактировать данные или очистить значения. Для этого выведем следующие ссылки:
<?
print ’<a href="sessionform.php">Edit details</a>’;
print ’ <a href="sessionview.php?clear=l">Clear values</a>’;
?>
Как видите, работать с сессиями довольно просто.

Что может быть не так?
Поскольку session_start () устанавливает Cookies (идентификатор сессии), то до вызова этой функции вы не должны ничего выводить в браузер пользователя. В противном случае клиент не сможет принять идентификатор сессии и сервер не сможет ассоциировать клиента с сессией.

 
Предыдущая   На главную   Следующая          

Алексей   06.12.2011 в 08:46
А как быть со значением

Алексей   06.12.2011 в 08:47
Селект или ОПТИОН !!!! И почему вашем надо переписывать перименнные по руски !!!!!!!! ИДИОТЫ

Ваш комментарий:

'

Реклама на сайте | Обмен ссылками | Ссылки | Контакты
Добавить статью | Добавить исходник
2010-2014 © phpsql.ru