Задание 22.
<?php
//проверяем, если пришли данные из формы
if($_POST['username']) {
setcookie("username",$_POST["username"]);
//создаем элемент массива cookies, чтобы показать приветствие без перезагрузки страницы
$_COOKIE["username"]=$_POST["username"];
echo "Cookie создан<br/>";
}
//если cookies не установлены - отображаем форму для ввода имени
if(!isset($_COOKIE["username"])) {
echo "<form method='POST' action=''>";
echo "Имя:<input type='text' name='username'/>";
echo "<input type='submit'/>";
echo "</form>";
}else{
//иначе отображаем приветствие
echo "Привет, ".$_COOKIE["username"];
}
?>
Задание 23.
<?php
//установка времени действия cookie десять секунд назад удаляет cookie
setcookie("username","",time()-10);
echo 'cookie "username" уничтожен';
?>
Задание 24.
<?php
$user = $_SERVER["PHP_AUTH_USER"];
$password = $_SERVER["PHP_AUTH_PW"];
//если переменные существуют
if(isset($user) && isset($password)) {
echo "Вы зареге\истрировались как: $user с паролем $password";
}else{
//иначе диалог аутентификации
header('WWW-Authenticate: Basic realm="Member Area"');
}
?>
Задания 25-26.
<?php
/*
* Задание 25 - создаем таблицу users в mysql
* и добавляем туда пользователя
*/
/*
* Задание 26
*/
require_once('db_login.php');
$user = $_SERVER["PHP_AUTH_USER"];
$password = $_SERVER["PHP_AUTH_PW"];
//если переменные существуют
if(isset($user) && isset($password)) {
//Подключаемся к базе данных
$connection = mysql_connect($db_host, $user, $password);
if (!$connection) {
die ("Невозможно подключиться к базе данных: " . mysql_error());
}
//Выбираем нужную базу
$db_select = mysql_select_db($db_database);
if (!$db_select) {
die ("Невозможно выбрать БД: " . mysql_error());
}
//Получаем данные пользователя
$query = "SELECT * FROM users WHERE username='".$user."' AND password='".md5($password)."' LIMIT 1";
$result = mysql_query($query);
$result_row = mysql_fetch_row($result);
//Проверяем результат выполнения mysql_fetch_row()
if ($result_row == FALSE) {
//Если не получили данные пользователя - просим перелогиниться
header('WWW-Authenticate: Basic realm="Member Area"');
} else {
//Иначе выводим сообщение
echo "Подключение осуществлено<br/><br/>";
echo "Имя: $result_row[1]<br/>";
echo "Фамилия: $result_row[2]<br/>";
echo "Имя пользователя: $result_row[3]<br/>";
echo "Хэш-значение пароля: $result_row[4]<br/>";
}
}else{
//иначе диалог аутентификации
header('WWW-Authenticate: Basic realm="Member Area"');
}
?>
Задание 27.
<?php
session_start();
require_once('db_login.php');
$user = $_SERVER["PHP_AUTH_USER"];
$password = $_SERVER["PHP_AUTH_PW"];
if (empty($_SESSION['user_id'])) {
//если переменные существуют
if (isset($user) && isset($password)) {
//Подключаемся к базе данных
$connection = mysql_connect($db_host, $user, $password);
if (!$connection) {
die ("Невозможно подключиться к базе данных: " . mysql_error());
}
//Выбираем нужную базу
$db_select = mysql_select_db($db_database);
if (!$db_select) {
die ("Невозможно выбрать БД: " . mysql_error());
}
if (get_magic_quotes_gpc()) {
$user = stripslashes($user);
$password = stripslashes($password);
}
$user = mysql_real_escape_string($user);
$password = mysql_real_escape_string($password);
//Получаем данные пользователя
$query = "SELECT * FROM users WHERE username='" . $user . "' AND password='" . md5($password) . "' LIMIT 1";
$result = mysql_query($query);
$result_row = mysql_fetch_array($result, MYSQL_BOTH);
//Проверяем результат выполнения mysql_fetch_row()
if ($result_row == FALSE) {
//Если не получили данные пользователя - просим перелогиниться
header('WWW-Authenticate: Basic realm="Member Area"');
} else {
//Иначе выводим сообщение
echo "Подключение осуществлено<br/><br/>";
echo "Имя: $result_row[1]<br/>";
echo "Фамилия: $result_row[2]<br/>";
echo "Имя пользователя: $result_row[3]<br/>";
echo "Хэш-значение пароля: $result_row[4]<br/>";
$_SESSION['user_id'] = $result_row['user_id'];
$_SESSION['username'] = $result_row['username'];
}
} else {
//иначе диалог аутентификации
header('WWW-Authenticate: Basic realm="Member Area"');
}
} else {
echo "Вы посетили страницу под логином " . $_SESSION['username'];
}
?>