Июнь 2010
Самоучитель по креативному веб-дизайну. Книга 4, стр.21
После ввода
$db_host = «localhost»;
$db_user = «root»;
$db_pass = «»;
$dbjname = «hwdtt» ;
// Установить соединение с СУБД MySQL
$link = mysql
// Выбрать базу данных с таблицей siteAccessList
mysql_select db ($db name, $link) ;
// Сформировать запрос и передать его на выполнение СУБД
$query = «SELECT
«WHERE username = \»$username\» «. «AND password = \»$password\»";
$result = mysql
// Определить количество строк в результатах
// имя/пароль присутствует в файле,
//в точности 1 строку. В противном
// обнаружит,
if (mysql_num_rows ($result) == 0)
header («Location: ChptlOTipllAccessDenied. php»);
else
header («Location: ChptlOTipllLoginSuccessful. php»);
?>
После
сценарий вызывает функцию
Содержащую СПИСОК ЧЛеНОВ Сайта (В Приведенном
ет СУБД
сайт. После вызова в сценарии функции mysqqi_query о, передающей запрос на исполнение
Функция mysqi num_rows()
СУБД в результате
538 Глава 10. РНР4
mysql query () . ЕСЛИ фуНКЦИЯ mysqljrmm_rows () В Операторе if-els e ВОЗВраща —
ет значение «1″ , посетитель
если функция возвращает значение «0м, сценарий
к содержимому
поскольку
Web-страница с формой входа на сайт и PHP-страница с сценарием входа на
сайт, описанные в этом совете, находятся в файле chptiOTipii. zip, который можно выгрузить из сайта
(http://www. diasoft. kiev. ua).
Исключение
Для передачи результатов
ваться методами GET
ния пар имя/значение в конец
Предположим, например, что
посетителя
жем, с именем
па к сайту. До входа на сайт переменная $s_usemame не содержит значения (т. е.
не определена),
session_start() ;
i f (!isset($s_username))
{
header(«Location: http://www. NVBizNet. com/HWDTT/
LoginScreen. htm»);
exit ;
{
?>
К сожалению,
страницы, которая находится в разделе
менной $s_username равным «Konrad»:
http://www. NVBizNet. com/HWDTT/Loggedln. php? s username=Konrad
Глава 10. РНР4 53 9
Поскольку при проверке в начале
ПРАКТИКУМ
Самоучитель по креативному веб-дизайну. Книга 4, стр.22
этом молено с помощью
if ($HTTP_SERVER_VARS["argcM] != 0)
{
header(«Location: $PHP_SELF»);
exit;
}
?>
За счет
Использование РНР и MySQL для отслеживания
положения посетителя на Web-сайте
о посетителях
сайтов, совместимые с рекомендациями
Самоучитель по креативному веб-дизайну. Книга 4, стр.23
Если провайдер не включит
определенным
CREATE TABLE UsageLog
(visitor_I P TEXT,
page_URL TEXT,
54 0 Глава 10. РНР4
DT_retrieved TIMESTAMP,
referrer URL TEXT, session_I D TEXT,
session_view s INTEGER) ; [ НИ
Цосле
function recordPageHit($db_host,$db_user,$db_pass,$db_name,$sessionID)
{
global
// Для
// URL
// URL
$referer = explode("?",
// Вызвать
if (connectToDB
{
// Вставить
// посетитель
// чество посещений за сеанс в столбце
$query = "UPDATE usageLog " .
"SET session_views = session views + 1 ".
"WHERE session ID '= '$sessionID' ".
" AND page_URL = ' $PHP_JSELF' " ;
$result = executeQuery($query);
// Проверить присутствует ли оператор UPDATE в строке для страницы.
// Если нет, вставить в таблицу
// содержать
if (!mysql_affected_rows ($link) )
{
$query = "INSERT INTO usageLog " .
" (visitor
"VALUES ('$REMOTE_ADDR' , '$PHP_SELF', ".
"'$referer[0]‘,’$sessionID’,1)»;
$result = executeQuery($query);
}
}
return;
}
?>
Скопируйте
MySQL в начале функции recordPageHito) на свой
chptiOTipi3.zip из сайта
//www. diasoft. kiev. ua).
chptiOTipi3.zip) содержит операторы,
лов РНР-СТранИЦ ДЛЯ Организации Сеанса И ВЫЗОВа фуНКЦИИ recordPageHit() .
Глава10.РНР4 54 1
Обратите
Самоучитель по креативному веб-дизайну. Книга 4, стр.24
зуется одна и та же встроенная
Определение
В предыдущем совете вы научились
PHP-сценарии (некоторые из которых
функции)
чение сеанса, в некоторых
DATE_FORMAT(DT_retrieved, ‘ %m/%d/%y %T’) ‘Date & Time’
FROM usageLog,
WHERE (TO_DAYS(NOW()) — TO_DAYS (DT retrieved) )
GROUP BY vistor_IP, session_ID;
Каждый компьютер в сети
Internet-провайдер назначает пользователю IP-адрес из «банка» контролируемых им адресов.
страницы пользуется IP-адресом,
IP-адрес. Тем не менее,
Самоучитель по креативному веб-дизайну. Книга 4, стр.25
При получении посетителем доступа к сайту
тер
на соответствие
54 2 Глава 10. РНР4
компьютера,
запроса
Web-сервер обрабатывает
содержащемуся в поле
если между сетевым пользователем и сетью
Web-сервер
русов и другого
Самоучитель по креативному веб-дизайну. Книга 4, стр.26
запрошенную страницу браузеру.) Тем не менее, с точки зрения >^еЬ-сервера
PHP-сценарий не имеет
теля из поля
IP-адрес
К i счастью,
IP-адресе
тического
visitor_I P таблицы
//Прокси-сервер
// возвращает
$visitor_IP = getenv(«HTTP_XJFORWARDED_FOR»);
// Если
// поля REMOTE_ADDR в заголовке запроса
if ( ($visitor_JCP == null) or ($visitor IP ==»"))
$visitor_IP = getenv(«REMOTE_ADDR»);
else
{
// Отформатировать IP-адрес в виде
list ($proxy_IP, $visitor_IP) = split (‘ [,] ‘ , $visitor_IP) ;
$visitor IP = ltrim($visitor_IP) ;
}
Исходный
(chptiOTipi4insert о) , котоая
(включая реальный IP-адрес), находится в архиве chptiOTipi4.zip, который
можно выгрузить из сайта
(http://www. diasoft. kiev. ua).
Глава 10. РНР4 54 3
Предотвращение
PHP-идентификатора
При использовании переменных с значениями
можно воспользоваться либо
session__start о. При работе с cookie-наборами Web-браузер сохраняет их в
cookie-файле на жестком
установке РНР. По умолчанию
пользовать путь
СеанСОВ МОЖНО ВЫЗВатЬ
Сеансовый
ет функцию session_start() , когда переменная $PHPSESSID не определена, она помещает в переменную
ция session_start( ) в сценарии
равным n d06205502dlbb3a0f2553bac4de763ad».
анса D:\PHP\SessionData\sess_d06205502dlbb3a0f2553bac4de763ad, В КОТОРОМ
session register () .)
Если
$PHPSESSID уже содержит
Самоучитель по креативному веб-дизайну. Книга 4, стр.27
HTML & Web Design Tips & Techniques
f;
if ($heading <> «»)
echon$heading» ;
return;
}
?>
По аналогии,
function endHTML()
С
echo ‘ i
Created by Konrad King.
© 2001 — all rights reserved!’;
echo «
Самоучитель по креативному веб-дизайну. Книга 4, стр.28
ции, создающей
открытии
Использование
При
Internet, как правило,
торого пользователь имеет возможность зарегистрироваться на FTP-сервере.
файлов и удалять, переименовывать и создавать файлы и каталоги.
ПРАКТИКУМ
равным «file» , как показано в следующем фрагменте кода:
Глава 10. РНР4 54 7
Элемент fil e формы
текста путь к файлу на локальном
Самоучитель по креативному веб-дизайну. Книга 4, стр.29
справа от элемента формы и в диалоговом
выбрать файл для
Internet
та type в начальном дескрипторе
.
После нажатия
PHP-сценарий, адрес которого содержится в атрибуте action дескриптора
Самоучитель по креативному веб-дизайну. Книга 4, стр.30
HTML and Web Design Tips & Techniques
Добро пожаловать, посетитель!
Текущее время в Киеве: ,
дата: .
При каждом обновлении
(раз в сутки)