Объектно-ориентированный язык сценариев php, страница 13

PHP – это язык программирования, используемый на стороне сервера, конструкции которого вставляются HTML-текст. В отличие от обычного HTML-текста Web-страницы, программа PHP не передается браузеру, а обрабатывается интерпретатором PHP. Фрагменты HTML-текста остаются при этом без изменений, а операторы PHP выполняются и результат их обработки вставляется в HTML-текст, после чего они все вместе передаются браузеру клиента. Таким образом, для создания серьезного Web-проекта требуются два человека: дизайнер, обладающий тонким дизайнерским чутьем (работа заключается в размещении некоторого ресурса на Web-странице и в создании единого оформительского стиля), и программист, который пишет блоки программы, позволяющие оживить проект, сделать его интерактивным.

Основным недостатком HTML является то, что Web-страницы созданные с мощью HTML статичны, они мертвы и выводят всегда одну и туже информацию, хотя и в очень удобном виде. PHP позволяет убрать эту статичность.

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

Пример 6.5 Охота на слово (файл primer6_6.php)

<?php

$real_word = "bike";

if ($_GET['word'] == "")

{

print "Введите слово";

}

elseif ($_GET['word'] == $real_word)

{

print "Вы победили";

}

else

{

print "Пробуйте еще";

}

?>

<html>

<head>

<title> Охота на слово</title>

</head>

<body>

<form action="?action=submit" method = "GET" >

Я думаю, что загаданное слово: <input type="text" name="word">

<input type="submit" value="Ответ готов">

</form>

</body>

</html>

С начала у нас идет блок PHP команд, в котором мы через переменную $real_word  задаем слово, которое необходимо угадать. У нас также инициализирована переменная $word, в ней хранится значение, которое вводит пользователь. Мы постоянно проверяем, идентичны ли значения этих двух переменных, в случае успеха поздравляем пользователя с победой, если нет, просим попробовать еще раз, а если пользователь забыл ввести слово, просим его выполнить эту несложную операцию. В HTML-блоке мы просто создаем форму(эта форма будет выводиться некоторое количество раз, данные, содержащиеся на ней будут при этом постоянно обновляться), в которой пользователь пробует угадать наше слово.

Обратите внимание на то, что так каку нас отсутствует атрибут ACTION дескриптора FORM. Это связано с тем, что у нас обработчик формы и сама форма располагаются в одном файле.

Более корректное решение: <form action="?action=submit" method = "GET" >. Такое описание "действия" поддерживается последними версиями языка HTML.

 

Перенаправление пользователя

 

Для простоты объяснения, под пользователем будем понимать человека, зашедшего на вашу Web-станицу, а под перенаправлением обыкновенную загрузку другого документа в браузере, без участия в этом процессе самого пользователя.

Программа из предыдущего примера имеет один существенный недостаток: форма полностью выводится на экран, независимо от того, угадал пользователь слово или нет. Из-за того, что страница в основном сделана в статичном варианте, избежать  этого довольно трудно. Однако в случае успеха мы можем перенаправить пользователя на другую страницу, где он увидит текст поздравления.

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

Послав браузеру заголовок "Location", вы перенаправите пользователя на новую страницу. 

Немного модифицируем пример 6.5.

 

Пример 6.6 Перенаправление пользователя с помощью заголовка "Location"

 

<?php

$real_word = "bike";

if ($_GET['word'] == "")

{

print "Введите слово";

}

elseif ($_GET['word']= = $real_word)