- •1. Основы
- •1.2 Идентификаторы ресурсов
- •2.1.1 Простейшая программа на языке html
- •2.1.2 Тэговая модель документа.
- •2.2.3 Комментарии
- •2.2.4 Тэги тела документа
- •2.2.6 Центрирование элементов документа
- •2.2.9 Ссылки в html-документе
- •2.2.10 Изображения внутри html-документа
- •2.2.11 Создание карты изображений
- •2.2.12 Фоновые рисунки
- •2.2.13 Горизонтальная линия
- •2.2.14 Добавление стилей в html-документ
- •2.3.2 Синтаксис
- •2.3.3 Тэги Формы
- •2.3.4 Меню выбора в формах
- •2.4.2 Основные атрибуты таблицы
- •3.2Синтаксис и элементы css
- •3.2.1 Добавление стилей css в html-документ
- •3.2.2 Группирование
- •3.2.3 Наследование
- •3.2.4 Селекторы
- •3.2.5 Классы
- •3.2.6 Идентификаторы
- •I {text-decoration:line-through;}
- •Http://css.Find-info.Ru/css/003/css.Htm - ogl
- •Http://css.Find-info.Ru/css/003/css.Htm - ogl
- •4. Язык JavaScript
- •4.2 Синтаксис JavaScript
- •4.2.1 Типы данных
- •Преобразование типов данных
- •4.2.2 Переменные и константы
- •4.2.3 Идентификаторы
- •4.2.4 Область действия переменных
- •4.2.5 Комментарии
- •4.3.1 Оператор for...In
- •4.3.2 Оператор new
- •4.3.3 Ключевое слово this
- •4.3.4 Оператор with
- •4.4.1 Объекты и Свойства
- •4.4.2 Функции и Методы
- •4.4.3 Определение методов
- •4.4.4 Создание Новых Объектов
- •4.4.5 Определение методов
- •4.5 Использование Встроенных Объектов и Функций
- •4.5.1 Объект Date
- •4.5.2 Объект Array
- •4.5.3 Объект String
- •4.5.4 Объект Math
- •4.6.1 Объект window
- •4.6.2 Объект document
- •4.6.3 Коллекции объекта document
- •4.6.4 Объект event
- •4.6.5 Объект history
- •4.6.6 Объект location
- •4.6.7 Объект navigator
- •5.1.2 Некоторые преимущества рнр
- •5.1.3 Вставка в html
- •5.1.5 Комментарии
- •5.1.6 Идентификаторы
- •5.1.7 Переменные, объявляемые пользователем
- •5.1.8 Типы переменных
- •5.1.9 Приведение типов
- •5.1.10 Переменные переменных
- •5.1.11 Константы
- •5.1.12 Знаки операций
- •5.1.13 Функции
- •5.2 Поддержка баз данных в рнр
- •Int mysql_affected_rows ([resource идентификатор_соединения])
- •Int mysql_num_rows(resource результат)
- •5.3 Отслеживание сеанса
- •If (! sessionjs_registered('hits')) :
- •Void session_set_save_handler (string open, string close, string read, string write, string destroy, string go)
- •Ip char(30) not null,
- •Include("init.Inc ");
- •Include("init.Inc");
- •ViewStats( );
- •5.4 Объектно-ориентированные возможности рнр
- •Is_subclass_of( )
Void session_set_save_handler (string open, string close, string read, string write, string destroy, string go)
Шесть параметров session_set_save_handler( ) соответствуют шести функциям, вызываемым сеансовыми функциями РНР. Хотя имена этих функций могут быть произвольными, каждая функция должна получать жестко заданный набор параметров. Перед тем как переходить к рассмотрению примера, просмотрите таблицу 1 — в ней описаны назначение всех шести функций и их параметры.
Чтобы использовать функцию session_set_save_handler( ), необходимо присвоить параметру session.save_handler в файле php.ini значение user.
Таблица 5.9 – Шесть параметров функции session_set_save_handler( )
Параметр |
Описание |
sess_close( ) |
Вызывается при завершении сценария, в котором реализуются сеансовые функции. Не путайте эту функцию с функцией sess_destroy( ), предназначенной для уничтожения сеансовых переменных. Функция sess_close( ) вызывается без параметров |
sess_destroy($идент_ceaнca) |
Удаляет все сеансовые данные. Параметр определяет удаляемый сеанс |
sess_gc($срок_действия) |
Удаляет все сеансы с завершенным сроком действия. Срок определяется параметром $срок_действия, значение которого задается в секундах. Параметр читается из файла php.ini и соответствует значению session.gcjifetime |
sess_open($путь, $имя) |
Вызывается при инициализации нового сеанса функцией session_start( ) или session_register( ). Два параметра читаются из файла php.ini и соответствуют значениям session.save_path и session.name |
sess_read($ключ) |
Используется для выборки значения сеансовой переменной, определяемой заданным ключом |
sess_write($ключ, $значение) |
Используется для сохранения сеансовых данных. Любые данные, сохраненные функцией sess_write( ), позднее могут быть прочитаны функцией sess_read( ). Параметр $ключ соответствует имени сеансовой переменной, а параметр $значение — значению, связываемому с заданным ключом |
Теперь рассмотрим пример реализации сеансовых функций на базе MySQL.
Реализация сеансовых функций на базе MySQL
<?
// Реализация сеансовых функций на базе MySQL
// Хост, имя пользвателя и пароль
$host = "localhost"; $user = "root"; $pswd = "";
// Имена таблицы и базы данных
$db = "users";
$session_table = "user session data";
// Прочитать значение sess.gc_lifetime из файла php.ini
$sess_life = get_cfg_var("sess.gc_lifetime");
// Функция : mysql_sess_open() Назначение: подключение к серверу MySQL и выбор базы данных.
function mysql_sess_open($save_path. $session_name) {
GLOBAL $host. $user, $pswd, $db;
@mysql_connect($host, $user, $pswd) or die("Can't connect to MySQL server!");
@mysql_select_db($db) or die("Can't select session database!");
}
// Функция: mysql_sess_close() Назначение: в реализации на базе MySQL эта функция не используется.
// Тем не менее, она Обязательно* должна быть определена.
function diysql_sess_close() {
return true:
}
// Функция: mysql_sess_read() Назначение: загрузка информации из базы данных MySQL.
function mysql_sess_read($key) {
GLOBAL $session_table:
$query = "SELECT value FROM $session_table WHERE sess_key = '$key'";
$result = mysql_query( $query);
if (list($value) = mysql_fetch_row($result)) :
return $value;
endlf;
return false;
}
// Функция: mysql_sess_write( ) Назначение: запись информации в базу данных MySQL.
function mysql_sess_write($key, $val) {
GLOBAL $sess_life, $session_table;
$expiratlon = time() + $sess_life;
$query = "INSERT INTO Ssession_table VALUES('$key', '$expiration', '$value')";
$result = mysql_query($query);
// Если запрос на вставку данных завершился неудачей
// из-за присутствия первичного ключа в поле sess_key, выполнить обновление.
if (! $result) :
$query = "UPDATE $session_table SET sess_expiration = '$expiration', sess_value='$value'
WHERE sess_key = '$key'";
$result = mysql_query($result);
endif;
}
// Функция: mysql_sess_destroy() Назначение: удаление из таблицы всех записей с ключом, равным $sess_id
function mysql_sess_destroy($sess_id) {
GLOBAL $session_table;
$query = "DELETE FROM $session_table WHERE sess_key = '$sess_id'";
$result = mysql_result($query);
return $result;
}
// Функция: mysql_sess_gc() Назначение: удаление всех записей, у которых
// срок жизни < текущее время - session.gc_lifetime
function mysql_sess_gc($max_lifetime) {
GLOBAL $session_table;
$query = "DELETE FROM $session_table WHERE sess_expiration < ".time();
$result = mysql_query($query);
return mysql_affected_rows();
session_set_save_handler("mysql_sess_open", "mysql_sess_close","mysql_sess_read", "mysql_sess_write", "mysql_sess_destroy", "mysql_sess_gc");
?>
После того как эти шесть функций будут зарегистрированы в программе, их можно вызывать по абстрактным именам (sess_close( ), sess_destroy( ), sess_gc( ), sess_open( ), sess_read( ) или sess_write( )). Такой подход удобен тем, что можно создать сколько угодно реализаций и переключаться между ними, вызывая ses-sion_set_save_handler( ) по мере необходимости.
http.html://doks.gorodok.net/996Журнал посещений сайта
Статистические сведения о посетителях сайта приносят немалую пользу. Сохранение информации о посетителях широко практикуется на сайтах рекламных web-агентств и порталов, а также на многих других сайтах, желающих получить дополнительные сведения о своих посетителях. Хотя системы учета бывают невероятно сложными, даже относительно простая система ведения учета открывает немало интересных возможностей. Покажем, как реализовать простейший журнал посещений на базе РНР, MySQL и cookie.
Как было сказано ранее, система будет относительно простой — посещения будут отслеживаться только для индексной страницы сайта. При появлении нового посетителя сценарий РНР проверяет, существует ли на компьютере посетителя cookie. Если cookie находится, значит, пользователь посещал сайт в течение определенного интервала времени (который задается администратором сайта в инициализационном файле), и сценарий не учитывает новое посещение. Если cookie отсутствует или интервал между посещениями превысил заданную величину, информация сохраняется в таблице MySQL, а на компьютер посетителя создается cookie.
Прежде всего необходимо создать таблицу MySQL для хранения информации:
create table visitors (
browser char(85) NOT NULL,