Как написать приложение на php
И PHP , и Javascript можно встраивать в HTML-страницы .
Прочитав эту статью о PHP программировании, вы узнаете :
Сценарный язык vs программный язык
Программный язык | Сценарный язык |
Предлагает свойства, необходимые для разработки полноценных приложений. | В основном используется для выполнения рутинных задач. |
Перед исполнением код нужно компилировать. | Код исполняется без компиляции. |
Необязательно встраивать в другие языки. | Обычно встраивается в другие программные среды. |
Как расшифровывается PHP?
PHP расшифровывается как Personal Home Page ( персональная домашняя страница ), но сейчас всё чаше используется Hypertext Preprocessor .
PHP-код можно встраивать в HTML или использовать в CMS и веб-фреймворках.
Что такое PHP?
- Статичных сайтов;
- Динамических сайтов;
- Веб-приложений.
PHP-скрипты могут быть выполнятся только на тех серверах, где установлен интерпретатор данного языка.
Клиентским компьютерам, осуществляющим доступ к PHP-скриптам , понадобится только браузер. PHP-файл содержит теги, и имеет расширение .php .
Синтаксис PHP
PHP-файл также может содержать HTML и клиентские скрипты JavaScript .
- Знание HTML будет преимуществом при изучении PHP . Можно учить PHP и без знания HTML , но желательно знать хотя бы основы;
- СУБД для приложений, работающих с применением БД ;
- Для реализации более сложных задач потребуется связка JavaScript и XML .
На рисунке, приведенном ниже, демонстрируется базовая архитектура веб-приложения и процесс обработки запросов сервером. Это важно знать при изучении PHP программирования с нуля:
Зачем нужен PHP?
- PHP бесплатен и предлагает открытый исходный код;
- Изучить его проще, нежели JSP , ASP и т. д.;
- Большое сообщество разработчиков;
- Большинство хостингов поддерживают PHP , чего не скажешь об ASP , для которого необходима поддержка IIS ;
- PHP постоянно обновляется;
- PHP предлагает встроенную поддержку MySQL . Также PHP можно использовать с:
- Postgres ;
- Oracle ;
- MS SQL Server ;
- ODBC ;
- PHP – кроссплатформенный язык. Это означает, что вы можете реализовать свое приложение на нескольких ОС , включая Windows , Linux , Mac OS и других.
Для чего используется PHP и какова его доля на рынке?
На основе PHP работает более 20 миллионов сайтов и веб-приложений:
ASP – Active Server Pages.
JSP – Java Server Pages.
CFML – Cold Fusion Markup Language.
В таблице ниже язык программирования PHP сравнивается с различными серверными языками.
Файловые расширения PHP
Чтобы сервер мог распознавать PHP-файлы , сохранять документы нужно с расширением .php . В прошлом к PHP-расширениям также относились:
PHP был разработан для работы с HTML , следовательно, его можно встраивать в HTML-код :
В web программировании PHP можно создавать файлы без использования HTML-тегов , и это будет считаться чистым кодом. Сервер выполняет PHP-код и выводит результат в браузер как HTML-код .
Сами PHP-теги не чувствительны к регистру, но настоятельно рекомендуется использовать нижний регистр:
Мы расцениваем строки PHP-кода как выражения. Они оканчиваются точкой с запятой ( ; ). Если у вас будет только одно выражение, то точку с запятой можно опустить. Если выражений больше одного, то каждая строка должна завершаться точкой с запятой.
PHP Hello World
Приведённая ниже программа является простым PHP-приложением , которое выводит “ Hello World! ” в браузере.
Резюме
- Язык программирования PHP расшифровывается как Hypertext pre-processor ;
- PHP выполняется на стороне сервера. Это исключает необходимость установки дополнительного программного обеспечения на устройства пользователей;
- PHP-файлы необходимо сохранять с расширением .php ;
- PHP распространяется с открытым исходным кодом и поддерживается на многих платформах.
Пожалуйста, опубликуйте свои комментарии по текущей теме материала. Мы очень благодарим вас за ваши комментарии, подписки, дизлайки, отклики, лайки!
Дайте знать, что вы думаете по этой теме статьи в комментариях. За комментарии, отклики, лайки, подписки, дизлайки низкий вам поклон!
Это руководство поможет вам написать программу «Hello, World!» на PHP. Вы узнаете, как правильно открывать и закрывать блоки PHP в своем коде, а также научитесь использовать различные типы комментариев.
Требования
На вашем компьютере вам понадобится установка PHP и локальная среда разработки. Создать все необходимые для работы условия вам поможет наше руководство Настройка локальной среды разработки PHP 7.4.
Написание программы «Hello, World!»
Давайте приступим к написанию программы «Hello, World!». С помощью командной строки откройте текстовый редактор, например nano, и создайте новый файл:
Как только текстовый файл откроется в окне терминала, введите код нашей программы:
Давайте рассмотрим компоненты этого кода по порядку.
Весь PHP-код помещен в блок, который начинается с <?php и заканчивается ?>.
echo – это языковая конструкция. За ключевым словом echo следует аргумент – список выражений, разделенных запятыми. С помощью echo вы можете сказать PHP, что ему нужно отображать или выводить все, что находится между ключевым словом echo и конечной точкой с запятой.
После написания программы нажмите клавишу X, удерживая CTRL, чтобы выйти из nano. Когда будет предложено сохранить файл, нажмите Y.
Как только вы выйдете из nano, вы попадете обратно в свою оболочку.
Наша простая программа «Hello, World!» готова.
Как запустить программу «Hello, World!»
Теперь программа готова к запуску. Чтобы запустить ее, используйте команду php с именем файла программы:
Запустив hello.php, вы получите в терминале следующий результат:
Давайте рассмотрим более подробно, что именно делала программа.
- Он вызывал языковую конструкцию echo.
- Строковое значение Hello, World! было передано этой конструкции. В данном примере строка Hello, World! также является аргументом, поскольку это значение передается другой части кода, например конструкции или функции.
Кавычки по обе стороны от Hello, World! не выводятся на экран: они используются, чтобы сообщить PHP, что этот фрагмент кода содержит строку. Проще говоря, кавычки обозначают начало и конец строки.
Поскольку программа была успешно обработана, вы можете быть уверены, что PHP установлен правильно и что синтаксис программы не содержит ошибок. Прежде чем углубляться в сам код, давайте подробнее рассмотрим блок кода PHP.
Расширение кода PHP
Всё, что в файле .php находится за пределами тегов PHP, рассматривается как HTML или обычный текст. Изначально язык PHP был написан для расширения функциональных возможностей HTML. Имея это в виду, вы можете поместить в файл несколько блоков кода PHP. При этом все, что находится за пределами блоков, будет отображаться как HTML или обычный текст.
Обновите свой файл hello.php:
Сохраните файл и перезапустите его. Вы получите такой результат:
Если вы внимательно посмотрите на код, вы заметите, что Hi 8host и How are you doing? находятся за пределами блоков кода PHP и поэтому при запуске программы отображаются как простой текст.
Теперь наш файл содержит два блока кода PHP. Первый блок включает в себя как начальный и конечный теги, а второй блок, находящийся в конце файла, не включает закрывающий тег. С чем это связано?
Закрывающий тег блока (?>) включать не нужно, если блок идет в конце файла. Если файл заканчивается блоком кода PHP, этот блок рекомендуется не закрывать тегом. Дело в том, что любой символ, идущий после закрывающего тега (даже пробел), будет выводиться на экран в виде HTML или обычного текста, а это может вызвать неожиданные последствия для работы приложения. Например, функции типа перенаправления не будут обрабатываться, если что-нибудь было выведено в браузер. Если ваш файл содержит только код PHP, никогда не включайте закрывающий тег PHP.
По мере усложнения кода полезно оставлять заметки для себя и других. Это можно сделать с помощью комментариев.
Добавление комментариев в PHP
Комментарий в коде – это строка, которая не будет выполняться как часть программы. Ее единственная цель – предоставить информацию человеку, который смотрит на код. Иногда код читается гораздо медленнее, чем пишется – многих разработчиков до сих пор шокирует эта разница во времени. Следовательно, очень важно, чтобы код был как можно более легким для чтения. Этого можно добиться несколькими способами:
- Следуйте стандартам написания кода. Стандарт – это набор руководящих принципов и передовых практик для четкой и последовательной организации и форматирования кода. В PHP наиболее часто применяются стандарты PHP-FIG (Framework Interop Group).
- Быстро читаемый код лучше, чем быстро написанный код. Используйте описательные переменные вместо сокращений. Думайте не о том, сколько строк кода вы напишете, а о том, сколько времени потребуется, чтобы посторонний разработчик прочитал эти строки и понял, что делает эта программа.
- Пишите комментарии. Хотя это не обязательно, если вы следовали двум предыдущим пунктам. В целом же ваш код должен быть понятным другим людям, а комментарии объясняют, почему что-то происходит именно так, а не иначе.
В PHP есть два типа комментариев: однострочные и многострочные. Однострочные комментарии могут начинаться в любом месте строки и заканчиваться либо в конце строки, либо в конце блока кода (в зависимости от того, что наступит раньше).
Сохраните и запустите файл. Вы увидите:
Первый комментарий начинается в середине строки. Заключительная кавычка и точка с запятой идут после «Hello», а остальная часть строки закомментирована. Комментирование одной или нескольких строк кода часто используется при отладке – это позволяет проверить, как программа реагирует на удаление определенных элементов кода.
Второй комментарий предлагает дополнительный вариант ответа. Следующим шагом развития вашего проекта может быть возможность выбирать ответ из списка предложенных вариантов. В таком случае комментарий используется как напоминание о других опциях.
Многострочные комментарии начинаются с символов /* и заканчиваются */. Интерпретатор PHP проигнорирует любой текст или код внутри этих символов. Чтобы потренироваться, давайте превратим последнюю строку в многострочный комментарий:
Документирование с помощью DocBlocks
Существует особый тип многострочного комментария, который называется DocBlock. Это уникальный способ документирования функциональности конкретного файла, класса, метода или других структурных элементов кода. DocBlock начинается и заканчивается, как и любой другой многострочный комментарий (/ * * /), однако он предназначен для предоставления конкретных деталей о конкретном элементе. Эти сведения не только предоставляют обзор кода для разработчиков, но также могут использоваться редактором кода (или IDE).
DocBlock состоит из нескольких частей. Первая часть – это краткое описание элемента (либо более подробное описание, если требуется больше контекста).
Лучше стремиться писать ясный и простой для понимания код. Но если нужно пояснить какое-то место в коде, обязательно используйте комментарии – они помогут описать дополнительный контекст, улучшить понимание кода и логику, лежащую в основе кода.
Заключение
В этом руководстве вы написали простую программу «Hello, World!» на PHP. Также мы поговорили о блоках кода PHP, тегах и видах комментариев.
Создайте файл с именем hello.php в корневом каталоге веб-сервера ( DOCUMENT_ROOT ) и запишите в него следующее:
<html><head>
<title>Тестируем PHP</title>
</head>
<body>
<?php echo '<p>Привет, мир!</p>' ; ?>
</body>
</html>
Эта программа чрезвычайно проста, и для создания настолько простой странички даже необязательно использовать PHP. Все, что она делает, это вывод Hello World , используя инструкцию PHP echo . Заметьте, что файл не обязан быть выполняемым или ещё как-то отличаться от других файлов. Сервер знает, что этот файл должен быть обработан PHP, так как файл обладает расширением ".php", о котором в настройках сервера сказано, что подобные файлы должны передаваться PHP. Рассматривайте его как обычный HTML-файл, которому посчастливилось заполучить набор специальных тегов (доступных также и вам), способных на кучу интересных вещей.
Цель примера - показать формат специальных тегов PHP. В этом примере мы использовали <?php в качестве открывающего тега, затем шли команды PHP, завершающиеся закрывающим тегом ?> . Таким образом можно где угодно "запрыгивать" и "выпрыгивать" из режима PHP в HTML файле. Подробнее об этом можно прочесть в разделе руководства Основной синтаксис.
Замечание: Замечание о переводах строк
Переводы строк немногое означают в HTML, однако считается хорошей идеей поддерживать HTML в удобочитаемом виде, перенося его на новую строку. PHP автоматически удаляет перевод строки, идущий сразу после закрывающего тега ?> . Это может быть чрезвычайно полезно, если вы используете множество блоков PHP-кода или подключаете PHP-файлы, которые не должны ничего выводить. В то же время, это может приводить в недоумение. Можно поставить пробел после закрывающего тега ?> и тогда пробел будет выведен вместе с переводом строки, или же вы можете специально добавить перевод строки в последний вызов echo/print из блока PHP-кода.
Замечание: Пара слов о текстовых редакторах
Существует множество текстовых редакторов и интегрированных сред разработки (IDE), в которых вы можете создавать и редактировать файлы PHP. Список некоторых редакторов содержится в разделе » Список редакторов PHP. Если вы хотите порекомендовать какой-либо редактор, посетите данную страницу и попросите добавить редактор в список. Использование редактора с подсветкой синтаксиса может быть очень большим подспорьем в вашей работе.
Замечание: Пара слов о текстовых процессорах
Текстовые процессоры (StarOffice Writer, Microsoft Word, Abiword и др.) в большинстве случаев не подходят для редактирования файлов PHP. Если вы всё же хотите использовать какой-либо из них для тестового скрипта, убедитесь, что сохраняете файл как простой текст (plain text), иначе PHP будет не в состоянии прочесть и запустить ваш скрипт.
Замечание: Пара слов о Блокноте Windows
При написании скриптов PHP с использованием встроенного Блокнота Windows необходимо сохранять файлы с расширением .php . (Блокнот автоматически добавит расширение .txt , если вы не предпримете указанные ниже меры.) Когда во время сохранения файла вас попросят указать его имя, введите имя файла в двойных кавычках (например, " hello.php "). Кроме этого, можно кликнуть на выпадающее меню "Текстовые документы" в диалоговом окне сохранения файла и выбрать в нем пункт "Все файлы". После этого можно вводить имя файла без кавычек.
Теперь, когда вы успешно создали работающий PHP-скрипт, самое время создать самый знаменитый PHP-скрипт! Вызовите функцию phpinfo() и вы увидите множество полезной информации о вашей системе и настройке, такой как доступные предопределённые переменные, загруженные PHP-модули и параметры настройки. Уделите некоторое время изучению этой важной информации.
Рис. 4.3. Эта же страница, только оформленная в виде файла с расширением *.php
Браузеры понимают расширение *.php и интерпретируют такие веб- страницы так же, как и HTML-страницы. Как видим, здесь уже нельзя просто вставлять HTML-текст. Все, что будет содержать веб-страница, нужно выводить на нее командами echo, а текст обязательно брать в кавычки. Так же видно, что в данном случае теги <html>, <body> не обязательны (но, при желании и их можно добавить на страницу с помощью команды echo). На рис. 4.4 показан исходный текст этой веб-странице при попытке его просмотреть в браузере.
Рис. 4.4. Попытка увидеть PHP-код программы с рис. 4.3 при просмотре исходного текста веб-страницы в браузере
Видно, что в браузер передаются только результаты работы команды echo PHP-программы. Оба способа написания PHP-программ (в отдельных PHP-файлах или внутри HTML-страницы) эквивалентны друг другу. Но написание PHP- кода в файле с расширением *.php позволяет нам проверить текст программы на наличие ошибок. Для этого можно использовать файл php.exe, находящийся в папке “Z:\usr\local\php5\” Denwer-а. Чтобы проверить на наличие ошибок, например, программу “ex4_01.php”, нужно в командной строке файлового менеджера набрать:
Если в программе есть ошибки, то php.exe сообщит нам об этом с указанием номеров строк, в которых содержатся ошибки.
Автоматическое генерирование текста страницы
В вышеприведенном примере программы всего лишь выводит текстовую строку. Но для этого не нужен язык программирования. Приведем более сложный текст программы, в котором она генерирует такой текст страницы, который сложно создать вручную.
Программа выведет на экран все целые числа с 1 до 200, выделив красным цветом простые числа.
На рис. 4.5 приведен текст веб-страницы (файл ex4_02.html) и окно браузера при выводе этой страницы на экран.
Рис. 4.5. PHP-программа выделяет красным цветом простые числа
Здесь мы уже видим достаточно сложную программу, в которой есть функция, циклы, условные операторы, переменные. Видно, что синтаксис языка PHP очень похож на синтаксис языка C, однако есть и отличия.
Во-первых, все имена переменных в PHP-программах должны начинаться со знака доллара “$”. Во-вторых, типы переменных не обязательно объявлять - PHP сам поймет, что это за переменная по тому значению, которое мы в нее записываем.
Еще одной особенностью языка PHP по сравнению с другими языками является требование, чтобы все условия в условных операторах обязательно брались в скобки. Нельзя написать так:
Попробуйте разобраться сами, как работает программа на рисунке 4.5. Скажем лишь, что функция “prost” возвращает 0, если число не простое, и 1, если число простое (ни на что не делится, кроме единицы и самого себя). Также отметим, что “%” в выражении “$n % $i” означает “остаток от деления числа $n на число $i”.
Для полноты картины приведем и исходный текст страницы (рисунок 4.6) при попытке просмотра его из окна браузера (так можно увидеть результат выполнения PHP-программы).
Рис. 4.6. Попытка просмотра текста программы с рис. 4.5 в браузере
На рис. 4.7 приведена программа (файл ex4_03.php), которая выводит на экран список поселков городского типа Харьковской области, хранящийся на сервере в файле “kh.txt”.
Рис. 4.7. PHP-программа, которая читает данные из файла и выводит их на веб-страницу
В этом примере мы знакомимся с некоторыми функциями PHP для работы с файлами (fopen открывает файл, fgets читает из файла одну строку, fclose закрывает файл, feof возвращает значение “истина”, если все строки из файла уже прочитаны).
Здесь специально используются простые конструкции языка PHP, которые есть и в других языках программирования. Более сложные и красивые функции PHP, которые позволяют сделать текст программы еще короче, изучите сами в процессе приобретения опыта в
Еще в этой программе мы видим цикл while (такой же, как и в C/C++), а также восклицательный знак перед условием, который на PHP означает отрицание.
Модифицируем программу так, чтобы она выводила на экран только поселки, начинающиеся с буквы “Б” (файл ex4_04.html, рис. 4.8).
Рис. 4.8. Модификация PHP-программы с рисунка 4.7, которая выводит на веб-страницу только поселки, начинающиеся на букву “Б”
Поясним новые особенности языка программирования PHP, которые встретились нам в этом примере.
Переменная $s содержит текстовую строку. Текстовая строка на языке PHP - это массив букв. У массива есть длина (ее значение можно узнать с помощью функции strlen($s)). Индексы любого массива на языке PHP начинаются с нуля. Поэтому, чтобы обратиться к первой букве строки $s, нужно написать $s[0]. Чтобы обратиться ко второй букве строки $s, нужно написать $s[1] и т.д. Чтобы обратиться к последней букве строки $s, нужно написать $s[strlen($s)-1]. Если в программе нужно последовательно перебрать все буквы строки $s и что-то с ними сделать, то можно организовать цикл от 0 до strlen($s)-1, примерно вот так:
И уже в теле цикла можно обращаться к буквам строки $s как $s[$n].
В вышеприведенном примере мы просто проверяем, равна ли первая буква строки $s букве “Б”. Здесь “==” - логический оператор, который возвращает “истина”, если $s[0] равно “Б” (точно так же равенство проверяется и в языке C/С++).
Приведем пример еще одной программы (см.рис. 4.9), которая выводит на веб-страницу название текущего дня недели. Для разнообразия пусть это будет не *.hml, а *.php файл (файл ex4_05.php).
$myday=array("воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота");
Рис. 4.9. Программа выводит на веб-страницу текущий день недели
Рассмотрим текст этой программы. Вначале объявлен массив с именем $myday, содержащий 7 строк:
$myday=array("воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота");
Как уже было сказано, нумерация элементов массивов на языке PHP начинается с нуля. Чтобы обратиться к элементу массива, нужно написать его имя, а затем в квадратных скобках - значение индекса (номера элемента). Если написать $s = $myday[0], то в $s будет записано слово “воскресенье”. Если же написать, например, $s=$myday[3], то в $s будет записано слово “среда”. Если в переменной $k находится число 6, и, если написать $s=$myday[$k], то в $s будет записано слово “суббота”.
Далее в тексте программы в переменную, названную нами $today, заносится результат выполнения функции getdate(). Функция getdate() является стандартной функцией PHP (пустые скобки свидетельствуют о том, что у этой функции нет входных параметров), а результатом ее
работы является ассоциативный массив данных о текущей дате.
По мере практической необходимости Вы самостоятельно разберетесь с особенностями работы с простыми, ассоциативными и многомерными массивами на PHP. Здесь же скажем лишь, что ассоциативный массив отличается от обычного тем, что в качестве индексов массива используются не цифры, а ключевые слова, заданные при объявлении массива. Например, ассоциативный массив можно объявить вот так:
В данном случае в массиве $a есть четыре ячейки. В первые три ячейки с именами imya, familiya и gorod мы занесли строки текста, а в четвертую ячейку с именем denxr мы занесли число. На PHP так можно делать.
Есть и чуть более компактный способ объявить этот массив:
Результат будет таким же. Вообще же PHP, как правило, предоставляет несколько альтернативных возможностей добиться нужного результата. Не обязательно знать все из них.
Теперь, обратиться к полям объявленного массива $a можно, например, вот так:
На веб-страницу будет выведена надпись “Ponomarenko 1970”. А можно и так (без кавычек в именах индекса):
Ассоциативные массивы очень удобны в использовании. Однако возникает один вопрос. Как в цикле for перебирать ячейки такого массива? Если речь идет об обычном массиве, у которого ячейки нумеруются с 0 до, например, 1000, то проблем нет. А как перебрать все ячейки ассоциативного массива?
Разработчики языка, конечно же, позаботились об этом. В PHP предусмотрен специальный оператор цикла foreach, который перебирает все элементы ассоциативного массива. Использовать foreach можно примерно так:
При этом PHP последовательно переберет все поля массива $a.
Имя поля можно будет брать из $pole, а его значение - из $v. В этом примере на экран будет выведена надпись:
imya=Nikolay, familiya=Ponomarenko, gorod=Kharkov, denxr=1970,
Если требуется изменять в цикле foreach значения ячеек массива, то нужно ставить символ & перед названием соответствующей переменной:
Цикл foreach - это, пожалуй, самое большое отличие синтаксиса языка PHP от других си-подобных языков.
Вернемся теперь к программе на рисунке 4.9. Строка “$day=$today[wday];” означает, что в переменную $day мы заносим значение ячейки массива $today с индексом “wday”. Это номер дня недели, число с возможными значениями от 0 до 6 (см. описание функции getdate() в справочнике).
В последней строке программы командой echo выводится на веб- страницу значение ячейки массива $myday (туда мы занесли названия всех дней недели) с номером ячейки, равным $day (там у нас номер дня недели).
В языке PHP есть функция print_r(), которая позволяет вывести на экран заданный массив с названиями и значениями его ячеек. На рис. 4.10 приведена программа (файл ex4_06.php), которая выводит на экран значения массивов $myday и $today из предыдущего примера.
$myday=array("воскресенье", "понедельник", "вторник","среда", "четверг", "пятница", "суббота");
Здесь <pre> .. </pre> - это тег HTML, который выводит текст моноширинным шрифтом с сохранением всех пробелов и переводов строки.
Как видно, у простого массива $myday, объявленного нами, PHP автоматически пронумеровал индексы от 0 до 6. Видны также все названия индексов (имен ячеек) массива $today, который содержит результат работы функции getdate().
Обращаться из программы к ячейкам ассоциативного массива $today можно как с использованием кавычек: $today[“year”], так и без использования кавычек: $today[year].
Обработка запросов к серверу на PHP
Одно из основных назначений PHP - обработка запросов к серверу, поступающих от веб-страниц или других серверов. На рис. 4.11 приведен текст такой страницы (файл ex4_07.html) с новыми для нас тегами <form> .. </form> и <input>, а на рис. 4.12 - окно браузера при загрузке этой страницы.
Рис. 4.12. Окно браузера после загрузки веб-страницы с рис. 4.11
Внутри тега <form> .. </form> мы видим несколько тегов <input> (элемент формы), отличающихся разным значением атрибута type.
Именно значение атрибута type определяет внешний вид элемента формы и его назначение. Значение type=”text” задает текстовую строку ввода. В этом случае атрибут size=”50” означает, что в строке будет максимум 50 букв. Атрибут name понадобится нам при обработке данных на сервере и мы вернемся к нему позже.
Значение type=”password” также задает строку ввода. Однако буквы, которые пользователь будет вводить, будут отображаться на экране звездочками (символами “*”).
Значение type=”checkbox” задает элементы с “галочками”, которые можно устанавливать независимо друг от друга. При этом наличие атрибута checked (без значения) указывает браузеру, что “галочка” должна стоять в элементе уже при загрузке веб-страницы.
Значение type=”radio” задает элемент переключатель (кружочек с точечкой или без). Среди всех элементов типа radio с одинаковыми атрибутами name только один может быть установлен. Чтобы выбрать, какой из них будет установлен по умолчанию, используется атрибут checked (как и для checkbox).
И, наконец, type=”submit” задает кнопку, при нажатии на которую данные формы (значения ее элементов) будут отправлены на сервер.
На рис. 4.13 приведен пример заполненных данных для формы на рис. 4.12.
Рассмотрим теперь программу primer.php, которая будет обрабатывать данные формы (рис. 4.14, файл primer.php).
PHP - очень удобный язык для обработки данных форм. Все, что можно, делается автоматически и все полученные методом POST от веб- страницы данные помещаются в специальный ассоциативный массив с именем $_POST. Названия индексов этого массива соответствуют именам тегов <input> (атрибут name). Чтобы проверить, что передано из веб- страницы в элементе формы с значением тега name=”oleg” нужно просто обратиться к ячейке $_POST[‘oleg’]. Точно так же и со всеми остальными элементами формы.
В приведенном примере на экран командами echo выводятся ФИО и пароль. Затем проверяется, была ли установлена галочка в элементе формы с именем ‘cofe’ и, если да, то выводится надпись “Извините, кофе нет!”.
Далее проверяется, был ли выбран элемент radio со значением “var1” (см. рис. 4.11) и, если был, то выводится надпись “Оплата наличными”.
И в завершение примера все данные, полученные от веб-страницы, сохраняются в текстовом файле zakazy.txt. Параметр ‘a’ в функции fopen('zakazy.txt','a') означает, что файл открывается для дозаписи (добавления информации к уже записанной ранее в этот файл).
Можно было бы сохранить каждое данное в файле отдельной командой, но для красоты и краткости текста программы здесь использована функция print_r(). Второй параметр этой функции, равный TRUE, сообщает ей, что нужно не выводить текст на веб-страницу, а передать его на выход функции (в данном случае в пременную $st). На рис. 4.15 приведено
содержимое файла zakazy.txt, соответствующие случаю на рисунке 4.14.
Хорошо видно, что для текстовых элементов формы и паролей на сервер передаются текстовые строки, для элементов типа “checkbox” - текстовая строка “on” (для случая, если галочка установлена), для элементов типа “radio” - значение того элемента, который был выбран.
В заключение по этому примеру отметим, что, если данные с веб- страницы по какой-то причине не были переданы, то массив $_POST окажется пустым. Проверить, не пустая ли та или иная ячейка массива $_POST можно с помощью функции isset($s), которая возвращает TRUE, если переменная $s существует. Чтобы проверить, например, было ли передано на сервер данное с именем “oleg”, нужно проверить isset($_POST[‘oleg’]).
Итак, мы рассмотрели пример отправки данных на сервер методом POST и их обработки там. Рассмотрим теперь простой пример отправки данных на сервер методом GET.
Рис. 4.16. Веб-страница с использованием метода GET
На рис. 4.17 приведен текст программы pr.php, которая обрабатывает запрос, и окно браузера с ответом.
Рис. 4.17. Ответ PHP-программы, обрабатывающей запрос GET
Казалось бы, никакого отличия, кроме того, что данные веб- страницы для метода GET нужно читать из ассоциативного массива $_GET. Однако обратите внимание на адресную строку в браузере. Там значится “localhost/pr.php?nam=Nikolay&year=1970”. Все, что находится после знака “?” и есть данные, переданные от веб-страницы серверу методом GET. Данные для метода GET передаются на сервер прямо в строке URL и разделяются символом “&”. При этом русские буквы могут кодироваться в кодировке UTF8 и быть нечитаемыми, однако PHP делает извлечение этих данных легкой задачей благодаря массиву $_GET.
Недостатком метода GET по сравнению с методом POST является меньший объем данных, которые можно передать на сервер. Однако, иногда метод GET является более удобным, так как позволяет формировать запросы на сервер даже без использования элементов формы. Для этого достаточно в ссылку, на которую нажимает пользователь, вставить URL PHP-программы, после него поставить знак вопроса и указать значения переменных, которые нужно передать этой PHP-программе, оформив их так же, как в строке URL на рис. 4.17.
На рис. 4.18 приведен пример такой веб-страницы, которая отправляет на сервер данные методом GET (файл ex4_09.html) без использования форм. В данном примере используются просто ссылки с интегрированными в них запросами к серверу.
Данные здесь помещены в значения атрибутов href тега <a> .. </a> через символ “?” после пути к файлу PHP-программы. При нажатии на любую из ссылок на сервер методом GET передается одна и та же переменная ponom, но с разными значениями (1 или 2).
Читайте также: