Основные функциональные средства управления сеансом

Термином сеанс обозначается ситуация, когда пользователь посещает сайт. В РНР существует множество способов управления сеансом.

1. Хранение информации на клиенте.

Данные не должны храниться на клиенте по ряду причин:

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

- пользователи зачастую отключают файлы персональных настроек

1. Данные должны храниться на сервере.

Где именно они хранятся, значения не имеет. Это может быть СУБД, текстовый файл и т.д.

Чтобы ассоциировать данные с конкретным пользователем, потребуется идентификационный номер сеанса – ключ, который связывает пользователя с его данными.

Как запомнить сведения о пользователе?

1. Один из вариантов – использование ip-адреса пользователя.

У способа существуют ограничения, например – прокси-сервера.

2. Создание собственного уникального идентификатора.

Пример.

<?

$rand(time()*1000000);

$session_id=md5(uniqid(rand());?>

Как сделать идентификатор сеанса доступным для всех станиц приложения?

1. Использовать файлы персональных настроек.

<?php

$session_id =md5(uniqid(rand());

setcookie(“session_id ”, $session_id, time()+3600);?>

2. Использовать ручную перезапись URL

Необходимо передавать при переходе по страницам идентификатор сеанса методами POST/GET ил поместить его в URL. Для этого нужно изменить все фреймы, все формы и все ссылки.

<?

print “<frame src=”page.php?session_id=”.$session_id.”>”;

print “<input type= “hidden” name=’session_id’ value=”.$session_id.”>”;

print “<a href=”page.php?session_id=”.$session_id.”>TEXT</a>”;?>

3. Использование собственных средств РНР – сессий.

<?

session_start();

$session_id =md5(uniqid(rand());

session_register(“$session_id”);?>

В зависимости от типа запроса вызов функции mysql_query() может приводить к различным последствиям. При успешном выполнении команды SELECT возвращается идентификатор результата, который впоследствии передается функции mysql_result() для последующего форматирования и отображения результатов запроса.

Получение и обработка результатов запроса

Функция mysql_result() используется в сочетании с mysql_query() для получения набора данных.

Синтаксис функции

Int mysql_result(int result, int record)

Пример.

@mysql_connect(“doc200”, “login”, “pwd”)

or die (“Нет подключения к серверу!”);

@mysql_select_db(“id”, “pwd”)

or die (“База данных не может быть выбрана!”);

$query =”SELECT Name FROM User”;

$result=mysql_query($query);

$i=0;

while ($i<mysql_num_rows($result))

{ print mysql_result($result, $i).”<br>”;

$i++;

}

Отсоединение от БД

После завершения работы с сервером баз данных соединение нужно закрыть.

Синтаксис функции

int mysql_close(int link)

Пример.

@mysql_connect(“doc200”, “login”, “pwd”)

or die (“Нет подключения к серверу!”);

@mysql_select_db(“id”, “pwd”)

or die (“База данных не может быть выбрана!”);

$query =”SELECT Name FROM User”;

$result=mysql_query($query);

$i=0;

while ($i<mysql_num_rows($result))

{ print mysql_result($result, $i).”<br>”;

$i++;

}

mysql_close();


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: