Главная · Карта сайта · Поиск · Статьи · Компьютерные курсы · Обучающие программы · Открытые проекты · Веб-программирование · Создание интернет-сайта · Полезные ссылки · Глоссарий · Контакты · Декабрь 09 2016 20:23:38
Последнее опубликованное

Что такое Model-View-Controller
Pattern Model-View-Controller

Как создать свой веб-сайт
Как создать свой сайт в интернете

Разное
Статистика

Шаблон одностраничного приложения на PHP


Рассмотрим шаблон или макет простейшей программы на PHP, работающей по принципу запрос-ответ и состоящей из одной страницы. Работу такого приложения можно организовать следующим образом:

  1. Если страница с приложением вызывается первый раз (запрос не содержит параметров), то на экране появляется форма для ввода исходный параметров запроса.

  2. Если запрос к странице содержит значения параметров, то это означает, что пользователь их уже ввел и отправил на сервер, к примеру, нажатием на кнопку submit. В этом случае программа проверяет корректность введенных данных. Если все нормально, то программа осуществляет их обработку и формирует HTML разметку для отображения результатов. В противном случае на экран выводится список обнаруженных ошибок.

Шаблон такого вида приложения приведен ниже.

<?php
   //массив для хранения ошибок исполнения
   $errors = array();     

   //Если имеет место возврат формы с параметрами, то
   if (isset($_REQUEST["callback"]))
    {
      //если данные корректны, то
      if (validate_data())
          //выполняем обработку данных           
          process_data();
      else
          {
           //иначе выводим список ошибок
           display_errors();
           //и предоставляем возможность их исправить
           display_form();   
          } 
    }   
   else 
       //вывод элементов пользовательского интерфейсы
       display_form();   


   //функция проверки исходных данных
   function validate_data()
   {
     //ссылка на глобальный массив с ошибками
     global $errors;

     //Если что-то неверно, то добавляем в массив описание ошибки
     if (...)
        $errors[]="описание ошибки"; 

     //Если ошибок нет, то проверка завершилась корректно
     return (count($errors)==0) ? true : false;
   }      

   //Вывод списка ошибок
   function display_errors()
   {
     global $errors;
     
     foreach ($errors as $err)
     {
       echo $err, "<br/>";  
     }
   }
 
   //Функция обработки данных 
   function process_data()
   {
     //Извлечение параметров из http запроса
     //(массив $_REQUEST объединяет в себе массивы $_GET и $_POST)
     $param = $_REQUEST["param_name"];
   }

   //Вывод формы
   function display_form()
   {
     echo "<form method='post'>";
     //Для каждого параметра добавляем соответствующий элемент управления
     echo "<textarea name='param_name' cols='100' rows='8'></textarea>";

     //добавляем кнопку подтверждения ввода 
     echo "<input type='submit' value='Выполнить'/>";

     //добавляем скрытый элемент для определения того,
     //вызывается ли страница первый раз или возвращается повторно
     echo "<input name='callback' type='hidden' value='data'/>";
     echo "</form>";
   } 
?> 

Обратите внимание, что в коде процедуры display_form() для создаваемой формы атрибут action не определен, поскольку контейнером и обработчиком формы является одна и та же страница. Элемент callback типа hidden используется как раз для того, чтобы узнать, вызывается ли страница впервые или имеет место обработка введенных в форму параметров. Безусловно, для этих целей можно использовать любой видимый элемент формы, но следует учитывать, что в сложных приложениях набор пользовательских элементов может быть в каждом случае разным, поэтому завязываться на имя конкретного “контрола” не стоит. Значения всех элементов управления, в том числе и скрытых автоматически помещаются в http запрос в момент отправки формы на сервер. Использовать скрытые элементы можно также для целей сохранения параметров сеанса веб-приложения, передавая их в запросе в качестве значений этих элементов. Такой способ может быть альтернативой использования cookies, поскольку последние могут быть запрещены клиентом.

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

<?php
   //массив для хранения ошибок исполнения
   $errors = array();     

   //вывод элементов пользовательского интерфейсы
   display_form();

   //Если имеет место возврат формы с параметрами, то
   if (isset($_REQUEST["callback"]))
      //если данные корректны, то
      if (validate_data())
          //выполняем обработку данных           
          process_data();
      else
          //иначе выводим список ошибок
          display_errors();
...

А так может выглядеть формирование формы с подстановкой в качестве значений по умолчанию параметров HTTP запроса:

   function display_form()
   {
     //Определение значений элементов формы по умолчанию на основе
     //введенных ранее значений.
     $param_default = isset($_REQUEST["param_name"]) ? $_REQUEST["param_name"] : "";

     echo "<form method='post'>";
     echo "<textarea name='param_name' cols='100' rows='8'>".$param_default."</textarea>";
     echo "<input type='submit' value='Выполнить'/>";
     echo "<input name='callback' type='hidden' value='data'/>";
     echo "</form>";
   } 

Обратите внимание, что программа работает с массивом $_REQUEST, поскольку чаще всего не важно, какой метод GET или POST был использован для обращения. Если вы хотите, чтобы к вашему приложению могли обращаться только с использованием GET или только с использованием POST, то $_REQUEST следует заменить на $_GET или $_POST соответственно.

Примеры одностраничных PHP приложений на сайте codingcraft.ru:
Сервис отладки регулярных выражений.
Сервис для изучения SQL запросов.

Читать далее: PHP и базы данных.



Компьютерные курсы и курсы программирования
Основы программирования

Курс для начинающих программистов на C# и VB.NET.

SQL 25™

Построение SQL запросов и работа с базой данных.

C# Quick Guide™

Программирование на C#. Краткое руководство.

RegEx

Применение регулярных выражений.

Plug-in архитектура

Примеры программной Plug-in архитектуры.

XML и его расширения

Язык разметки XML и его расширения с примерами.

HTML и разметка гипертекста

Языки HTML, XHTML и CSS с примерами разметки.

Основы веб-дизайна

Основы веб-дизайна: решения типовых задач верстки.

Программирование на PHP

Руководство по программированию на PHP для начинающих.

Справочные материалы

Шаблоны проектирования
Каталог шаблонов проектирования программных компонентов.

Рефакторинг кода
Каталог приемов рефакторинга программного кода.

Гость
Имя

Пароль



Забыли пароль?
Запросите новый здесь
.
Coding Craft. Все права защищены © 2011. Проект Инициативного Народного Фронта Образования - ИНФО-проект.