Самоучитель по креативному веб-дизайну. Книга 4, стр.4
реключателей С именем giveOutEmailAddr:
Web-браузер в
if (!isset($giveOutEmailAddr))
{
«свой адрес электронной почты» ;
$formResultsValid = false;
}
не
И,
Windows 98
Windows ME
Windows XP
Macintosh
Unix
Linux
Обратите внимание на квадратные скобки ([]) , которые находятся за
Самоучитель по креативному веб-дизайну. Книга 4, стр.5
ледней выбранной в списке выбора). Это не важно, если в дескрипторе
не
Глава 10. РНР4 51 7
выбора, как и в
ция isset():
if (!isset($currentOS))
{
«которые используете в настоящее время. » ;
$formResultsValid = false;
}
$formRe suits Valid = true;
/*
держащих корректные данные, и выводят имена и «сообщение об ошибке» и ус —
танавливают значение булевой
во внешней РНР-странице.
у
echo «»;
echo «Введенная вами информация передана «.
«на обработку. Спасибо!»;
}
кнопку «Back» **
else
{
echo «
Самоучитель по креативному веб-дизайну. Книга 4, стр.6
сообщение. К
ронного сообщения с
сервера, при необходимости отправки сообщения по электронной почте вы уже
не будете зависеть от наличия в
ПРАКТИКУМ
Перед использованием PHP-функции maii o
путь к программе sendmaii) в файле php. ini.
го
Windows NT,
установить параметры SMPT И sendmail from В
ла, как показано в следующем примере:
[mail function]
SMTP = smtp. lvcablemodem. com ; только для Win32
sendmail_from = kki@NVBizNet. com ; только для Win32
;Только для Unix. Вы
; (по умолчанию: ‘sendmaii —t — i1) .
;sendmail_path =
Для отправки сообщения по
Самоучитель по креативному веб-дизайну. Книга 4, стр.7
ру возможность
• Настроек
• Ключа,
• Ключа
• Товаров, выбранных посетителем на сайте
позволят
К сожалению,
от хранения и считывания
Глава 10. РНР4 52 1
ПРАКТИКУМ
те следующий
// Создать
// «тестового» cookie-набора
$today = getDate();
$dateString = $today[•month'].» «.$today['mday '].» ,
$today['year'];
// Попытаться установить cookie-набор 1
setCookie(«TestCookie», $dateString);
// Остальная
Если вы передаете
.рпр, а индексная
сценария в Web-страницу с расширением. рпр, например, в код страницы
LoginPage. php. Затем в дескриптор
index. htm или defauit. htm)
Далее на PHP-странице, которая загружается в Web-браузер
// Создать строку данных, с которой будет сравниваться
// значение cookie-набора
$today = getDate();
$dateString = $today['month'].» «.$today['mday'].», «.$today['year'];
if (!empty($testCookie))
{
if ($testCookie == $dateString)
{
// Проверить имя пользователя и пароль и если данные верны
// перейти на страницу успешного входа на сайт
header(«Location: Loggedln. htm»);
exit;
}
}
// Если cookie-набор не было установлен, вывести на экран страницу, которая
// предлагает
header(«Location: NeedCookies. htm»);
exit;
?>
Проверку
Web-браузер передает и принимает cookie-набор только в качестве части заголов —
ка Web-страницы.
52 2 Глава 10. РНР4
сценарии
в cookie-файле на жестком диске в компьютере
Самоучитель по креативному веб-дизайну. Книга 4, стр.8
$testcopkie и сравнить его со значением
$testcookie не определена или ее значение не соответствует
браузер не сохранил
Использование РНР и дискового
исключить
имени пользователя и пароля
Для простоты установим
равным «usemame», а второго элемента — «password». Для передачи в РНР-сце —
Самоучитель по креативному веб-дизайну. Книга 4, стр.9
if ($fp = fopen(«с:\\password. txt», «г»))
{
while (feof ($fp) — 0)
{
// Прочитать из файла
$line = trim(fgets($fp,1000));
// Каждая строка в файле
$userPass = split(«,», $line);
// Проверить наличие в файле введенного имени и пароля
if (($userPass[0] == $username) and ($userPass[1] == $password))
{
header («Location: ChptlOTip05LoginSuccessful. htm»);
exit;
}
}
// Введены
}
Если сценарий находит в файле
52 4 Глава 10. РНР4
страницу,
пароль, он передаст
(chptiOAccessDenied. htm) и откажет посетителю в доступе к ресурсам с ограни — ченным доступом.
Чтобы предотвратить
паролей, храните его
те слова
При установке в качестве
Для защиты чувствительной
протокол
ду Web-сервером и Web-браузером.
зер
Самоучитель по креативному веб-дизайну. Книга 4, стр.10
не придется.
префикса «https:// » вместо стандартного «http:// » для
образом,
header(«Location:https://www. NVBizNet. com/LoginScript. php»
вместо
header(«Location:http://www. NVBizNet. com/LoginScript. php»
Глава 10. РНР4 52 5
Предотвращение перехода посетителей по ссылкам на сайт
В предыдущем совете вы узнали,
дит верные имя и пароль,
Самоучитель по креативному веб-дизайну. Книга 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 () может
А теперь