Версия для печати. Взято с сайта phpsql.ru

На главную   Назад   Вперед

Вывод "имени пользователя"

Создание сообщения Рады видеть снова, <имя пользователях> с помощью Cookies

Пользователю будет приятно видеть сообщение вида "Рады видеть снова, <имя пользователя> -оно будет способствовать возвращению пользователей на сайт. Если вы скажете сайту свое имя, оно будет использовано в приветствии.

Чтобы продемонстрировать один из способов создания такого сообщения, мы напишем сценарий, хранящий данные в Cookies и отображающий их, если Cookie доступно:

<?php
if (isset($_REQUEST["user_name"]))  {
setcookie("stored_user_name", $_REQUEST["user_name"], time() + 604800, "/"); 
$_COOKIE["stored_user_name"] = $_REQUEST["user_name"]; 
}
if (isset($_COOKIE["stored_user_name"]))  {
$user = $_COOKIE["stored_user_name"]; 
print "Рады вас видеть снова, <b>$user</b>!"; 
} else { 
?>
<form method="post">
User name: <input type="text" name="user_name" />
</form>
<?php
}
?>
Доступ и хранение Cookies - это два отдельных механизма. Вы можете читать Cookies, отправляемые клиентом через массив $_СООК1Е. Он работает так же, как и массивы $_POST и $_GET.

Для установки Cookies нужно использовать функцию setcookie(), которой нужно передать три основных параметра:
• Имя Cookie - этот сценарий использует stored_user_name.
• Значение Cookie.
• Срок действия Cookie в формате Unix timestamp. Этот скрипт использует time()+604800-7 дней с момента установки Cookies.
Также вы можете передать три дополнительных параметра:
• Путь к местам сайта, где Cookie будет действовать, - работает как каталог, например, вы хотите, чтобы Cookies действовали только для каталога /content/ вашего сайта, используйте /content/ в качестве значения этого параметра. Если вы хотите, чтобы Cookies действовали по всему сайту, используйте /.
• Домен, для которого действуют Cookies, - предположим, что у вас есть узлы www . example . com и sales . example . com, и вы хотите, чтобы Cookies были действительны для обоих узлов, - ус-тановите . example. com в качестве значения этого параметра.
• Если последний параметр равен 1, то браузер должен передавать Cookies только по защищенному соединению (HTTPS).

Что может быть не так?
Рассмотрим несколько проблем, часто встречающихся при получении Cookies:

• Вы отправляете данные в браузер пользователя перед вызовом setcookie (). Запрос на установку Cookies - это HTTP-заголовок сервера, поэтому ваш сценарий ничего не должен выводить до вызова setcookies (). Если у вас включены предупреждения, РНР сообщит вам об ошибке. Довольно часто программисты сталкиваются с проблемой наличия пробельных символов до • Браузер пользователя не принимает Cookies - если пользователь отключил прием Cookies, вы об этом даже не узнаете. Максимум, что вы можете сделать, - это использовать is set () для проверки существования элементов массива $_С00КIЕ [ ]. Иногда сам браузер может отвергать Cookies, причиной этому может быть неправильный домен.

• Кто-либо пытается передать неверные параметры - Cookies могут быть легко сфабрикованы, не доверяйте получаемым из Cookies значениям.

• Вы пытаетесь сохранить массив в Cookies - перед сохранением массива в Cookies его нужно сериализировать

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