Файлы Cookies
Файл cookie является сообщением от браузера Web-серверу. Браузер сохраняет сообщение в текстовом файле. Это сообщение посылается затем назад на сервер каждый раз, когда браузер запрашивает страницу с сервера.
Основное назначение cookies состоит в идентификации пользователей и возможной подготовке специально настроенной для них страницы Web. При посещении сайта Web, использующего cookies, на сайте может быть предложено заполнить форму, чтобы предоставить такую информацию, как свое имя и возможные интересы. Эта информация упаковывается в cookie и посылается браузеру Web, который сохраняет ее для последующего использования. Когда вы в следующий раз посещаете тот же самый сайт Web, браузер пошлет cookie серверу Web. Сервер может использовать эту информацию, чтобы создать индивидуализированные страницы Web. Поэтому, например, вместо обычной приветственной страницы можно увидеть приветственную страницу со своим именем.
В PHP файлы cookies создают с помощью функции setcookie(). Все данные cookie хранятся в глобальной переменной PHP $_COOKIE и доступны для последующих страниц.
setcookie(name,value,expiration,path,domain,security) – определяет файл cookie, который посылается вместе с остальными заголовками HTTP. Как и другие заголовки, файлы cookie должны посылаться до какого-либо вывода работы сценария (это ограничение протокола). Поэтому требуется, чтобы обращение к функции было помещено до любого вывода, включая теги и любые символы разделители. Если вывод происходит до обращения к этой функции, то setcookie() не выполнится и вернет FALSE. Если setcookie() выполняется успешно, то возвращается TRUE. Это не указывает на то, что пользователь принял cookie.
Параметры setcookie() объясняются в следующей таблице.
Параметр | Описание |
name | Имя cookie. Этот идентификатор хранится в глобальной переменной $_COOKIE и доступен в последующих сценариях |
value | Значение cookie. Значение, связанное с идентификатором cookie. Хранится на компьютере пользователя, поэтому не должно содержать секретной информации |
expiration | Время, когда истекает значение cookie или становится более недоступным. Это время можно задать с помощью функции time(). Файлы cookie без заданного значения времени истечения завершают свое существование при закрытии браузера |
path | Указывает пути доступа на сервере, для которых cookie действителен или доступен. Прямая косая черта "/" говорит, что cookie доступен во всех папках |
domain | Домен, в котором доступен cookie. Если домен не определен, по умолчанию используется хост, на котором создан cookie. Значения domain должны содержать в строке как минимум две точки ".", чтобы быть допустимыми |
security | Указывает, будет ли cookie передаваться через HTTPS. Значение 1 означает, что cookie передается через защищенное соединение. Значение 0 обозначает стандартную передачу HTTP |
Следующий пример демонстрирует, как cookie используется для сохранения имени пользователя посетителя. Вначале требуется ввести имя пользователя, чтобы получить доступ к ограниченному сайту. Когда имя пользователя будет создано, cookie, содержащий его, сохраняется на компьютере пользователя. Доступ в будущем возможен при извлечении cookie с компьютера пользователя.
<?php
if ($_REQUEST[auth] == "no")
{
$msg = "Вы не являетесь пользователем. Зарегистрируйтесь.";
}
// Если пользователь щелкает на кнопке Login, создается cookie,
// содержащий его имя пользователя и IP-адрес
if ($_POST[submit] == "Login")
{
$cookie_name = "user";
$cookie_value = $_POST[uname];
$cookie_expire = time() + 14400;
setcookie($cookie_name,$cookie_value,$cookie_expire,"/");
$formDisplay = "no";
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHMTL 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Страница Web </title>
<style type="text/css">
body {font:10pt arial;color:white}
div#form {background-color:gray;border:solid 1px black;padding:10px}
input {border:solid 2px black}
</style>
<?php
if ($formDisplay == "no")
{
?>
<meta http-equiv='refresh' content='0;url=siteaccess.php?auth=yes'/>
<?php
}
?>
</head>
<body>
<div id="form">
<h4 style="color:red">New User? Create User Name</h4>
<form action="setcookie.php" method="post">
<p>User Name:
<br/>
<input type="text" name="uname" size="7"/>
</p>
<input type="submit" value="Login" name="submit"/>
</form>
<h4 style="color:red">Existing User?
<a style="color:white" href="siteaccess.php?auth=yes">Enter Site</a></h4>
</div>
<br/>
<br/>
<?php
echo "<span style='color:red'>" . $msg . "</span>";
?>
</body>
</html>
Пример 8.2. Файл setcookie.php
siteaccess.php
<?php
// Если пользователь щелкает на кнопке Login,
// создается cookie, содержащий его имя пользователя и IP-адрес
if ($_REQUEST[auth] == "yes" && $_REQUEST[user])
{
echo "Добро пожаловать " . " " . $_COOKIE[user] . " на сайт с ограниченным доступом.
Теперь на вашем жестком диске хранится cookie,
и вы можете обращаться к этому сайту без регистрации при каждом обращении";
}
else
{
header("Location:setcookie.php?auth=no");
}
?>
Пример 8.3.
Лекция 9. Доступ к базам данных
Дата добавления: 2015-08-26; просмотров: 605;