Июнь 2010
Самоучитель по креативному веб-дизайну. Книга 4, стр.11
пример, для
ПРАКТИКУМ
т. е. Web-страницы с расширением
// Определить URL-адрес Web-страницы с гиперссылкой,
// которая
$fromPage = getEnv (‘rHTTP REFERER») ;
// Убедиться, что страница со ссылкой содержит URL-адрес, с которого
// допускается переходить на страницы из раздела с ограниченным доступом
// Web-сайта
if ((substr($?romPage,0,30) !~
«http://www. nvbiznet. com/hwdtt/») and
(substr($fromPage/0,26) !=
«http://nvbiznet. com/hwdtt/»))
// Если переход выполняется с недопустимой
// об ошибке
// страницы страницу входа на сайт
exit;
‘}’»:
52 6 Глава 10. РНР4
жатия на гиперссылку, находящуюся на любой странице в каталоге «/hwdtt»
Web-сайта NVBizNet. com, функция
http://www. NVBizNet. com/hwdtt/ ИЛИ http://NVBizNet. com/hwdtt/.
Для применения
ся содержимое
функции header о в предпоследней
Использование
Самоучитель по креативному веб-дизайну. Книга 4, стр.12
сайт. . Н | Один из методов
чения сохранения переменными их значений от запроса к запросу, — передача
Еще
установлен на диске D, файлы
D:\PHP\sessiondata.
Используя переменные сеансов вместо cookie-наборов, вы исключаете
ру только
Самоучитель по креативному веб-дизайну. Книга 4, стр.13
Глава 10. РНР4 5 2 7
ПРАКТИКУМ
са (PHPSESSID).
(включая PHPSESSID) В заголовке
должен
Таким образом, если вы планируете
.хранения
в начале
следующий код:
Если
вызов функции session_start( ) продолжит
session__start() сгенерирует
10.9.
52 8 t Глава 10. PHP4
После
сеанса и предупреждения PHP-процессора об использовании
в кавычки и без
ные ($s_firstName, $s_lastName, $s_address И $s_phoneNumber):
session_register («$s firstName» , «$s lastName» , «$s_address» ,
11 $s_phoneNumber») ;
?>
После регистрации переменной ее значение,
цию session__register () нужно вызывать до передачи PHP-процессором любого
содержимого (даже
(Вызов функции session_registe r о для
ных на Web-страницах
жащийся в начале
sessionjstarto, которая
ближе к концу сценария входа на сайт в файле chptiOTip07Login. php вызывается
функция session_register() , которая
ных и присваивает двум из них имя пользователя и пароль, введенные в элементах
chptiOGetPi2.php
ные данные, выводимые на экран
Создание
В предыдущих советах в этой главе вы научились использовать встроенную
функцию fopen о для
функция? gets () может
А теперь
Самоучитель по креативному веб-дизайну. Книга 4, стр.14
print() . В результате
мых товаров.
Глава 10. РНР4 52 9
здания
ца с перечнем
База
всеми операциями с данными в базе данных SQL и организует
(выбранного из длинного
РНР содержит встроенные
но и редактировать данные, хранящиеся в нескольких
зах данных, в частности
Самоучитель по креативному веб-дизайну. Книга 4, стр.15
Независимо от типа
Для создания базы
ги. В качестве
CREATE DATABASE hwdtt;
Синтаксис оператора
CREATE
После
53 0 Глава 10. РНР4
час
низованных в виде
Самоучитель по креативному веб-дизайну. Книга 4, стр.16
лей и паролей каждая строка в таблице
пароль, при этом
роль — в другом столбце одной и той же строки.
USE hwdtt;
CREATE TABLE webSiteUsers
Синтаксис
CREATE
(
последнего столбца>]) Ц
Очевидно,
сать с помощью
INSERT
INSERT
Синтаксис
INSERT
VALUES{значение1,значение2,…fзначение!*);
SELECT
Для
ки, в которых имя пользователя и пароль
SELECT
WHERE
Глава 10. РНР4 53 1
Если
рос возвращает значение «0м, которое означает, что в таблице не содержится
В следующем
Вывод на Web-странице результатов запроса в базу данных SQL в HTML-таблице
вить соединение с СУБД с помощью
базой
правки
PHP-сценарию передавать на выполнение
Самоучитель по креативному веб-дизайну. Книга 4, стр.17
mysqi_fetch_array(), которая считывает
ПРАКТИК Ш
Предположим,
Web-странице
содержащейся в базе
mysqi connect () следующего вида:
$link = mysql
$db
той же системе, что и Web-сервер) или строку с IP-адресом
ные два параметра, $db_user и $db_pass,
теля и пароль,
вателя $db_user=»root» И паролем $db_j>ass=»",)
В функции mysqi_connect () PHP-процессор присваивает соединению с
СУБД
53 2 Глава 10. РНР4
попытка установить соединение не удалась. Поскольку время от времени случа —
ются ошибки, с помощью оператора if проверьте
в случае необходимости выведите на экран сообщение об ошибке. Если попытка
установки соединения
if (!mysql
{
//Операторы,
//базы данных
}
else
{
//Обработка
}
Сервер
пользоваться. В приведенном
$iin k — идентификатор соединения с базой
но выполненной
верить данные, возвращаемые PHP-функцией (в данном примере функцией
mysqi seiect_db()),
пешно. Функция mysqi_seiect_db() возвращает tru e при
После успешной установки соединения с СУБД MySQL и выбора
кцию mysqi query
$resul t = mysql
В приведенном примере, в котором
products, параметр
ORDER BY description. Как и ранее,
соединения с базой
mysqi_connect (), вызов которой находится в начале сценария. Функция
mysqi_query () возвращает fals e (если СУБД по какой-то причине не смогла выполнить переданный ей SQL-оператор) или указатель на место,
Для считывания
выбрал из таблицы
mysqi fetch_array о для
Глава10.РНР4 533
// Определить
$fields = mysql_num fields ($result) ;
// Начать определение HTML-таблицы
echo «»;
// Вывести на экран названия столбцов в виде заголовков HTML-таблицы
echo «
for ($i = 0; $i
{
echo «» . mysql fieldjiame($result, $i) . «»;
$fieldType[$i] = mysql_field type($result, $i) ;
}
echo «
«;
// Вывести в HTML-таблице результаты запроса
while
{
echo «
for ($i = 0; $i
{
if ($fieldType[$i] <> «string»)
els e
echo «
echo «$array[$i]
«;
}
echo «
«;
}
echo «» ;
Полный
ной редакции
любого запроса. Сценарий выводит на экран
щаются в строки таблицы.
Использование
При создании Web-сайта с доступом
не могут
Самоучитель по креативному веб-дизайну. Книга 4, стр.18
они часто произносят. К сожалению,
сочетания также
пользователем.
С помощью
534 Глава 10. РНР4
членов сайта и во избежание частых звонков с просьбой
ПРАКТИКУМ
на рис.
Как указано в тексте в нижней
Самоучитель по креативному веб-дизайну. Книга 4, стр.19
Для генерации
function generatePassword()
{
// Выбрать
mt_srand ((double)microtime() * 1000000);
$passwordLength = mt_rand (5, 8) ;
Глава10.РНР4 535
// Установить
// ASCII-коды 48-57 включительно — символы от 0 до 9
// ASCII-коды 65-90 включительно — символы от А до Z
// ASCII-коды 97-122 включительно — символы от а до z
$lowerBound = 48;
$upperBound = 122;
// Исключить специальные символы
$excludeSymbols =
array(‘:’,';•,’•.,•?•,,•@’,•[•,chr(92),']! ,’А’,’ ‘,’ч ‘) ;
// Создать случайный пароль
$i=0;
$password = «» ;
while ($i
{
mt_srand ((double)microtime() * 1000000);
$letter = chr
if (!in
{
$password.= $letter;
$i++;
}
} ‘..’ •
return $password;
}
Далее
системное время и (случайно сгенерированный) пароль в таблицу usemames
базы данных сайта.
При входе посетителя на сайт
дит имя пользователя и пароль в таблице базы данных, он «активизирует»
содержащийся в PHP-сценарии
да на сайт
Web-страницы с формами и PHP-сценариями, описанными в этом совете, на —
ходятся в файле
ства РУССКОЯЗЫЧНОЙ редакции
Использование РНР и MySQL
В совете «Использование РНР и дискового
доступа к Web-сайту» выше в этой главе вы научились
помощью РНР и текстового
53 6 / ‘ Глава 10. РНР4
• При каждом добавлении в файл
• Удаление и редактирование
ле выполняется
• Сетевые
ке удалить
целью
сто просмотреть содержимое файла и узнать
За счет
Самоучитель по креативному веб-дизайну. Книга 4, стр.20
ПРАК ИКУМ
Для использования таблицы MySQL в качестве
CREATE TABLE siteAccessList
{username VARCHAR(30) PRIMARY KEY
password VRACHAR(15) NOT NULL) ;
Приведенный
а атрибут
Глава10.РНР4 . 537
INSERT
INSERT INTO siteAccessList
INSERT
(Чтобы незарегистрированные пользователи сайта не могли