Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Программирование систем с сервисами БД

Работа добавлена на сайт samzan.net:


Министерство образования и науки, молодежи и спорта Украины

Донецкий национальный техническйи университет

Кафедра прикладной математики и информатики

Отчет

по лабараторной работе №1

по предмету

«Программирование систем с сервисами БД»

Выполнил:

студент гр. ПСоз11

Новиков Богдан

Донецк 2012


Тема: "Разработка на PHP CGI-сценария, формирующего и обрабатывающего формы документов HTML"

Цель: разработать единый CGI-сценарий для обработки запросов, приходящих при заполнении разработанных форм по методам GET и POST

Вариант: 10

Требования:

1. Разработать форму с различными полями ввода, опций с одиночным и множественным выбором и групп кнопок radiobox и checkbox, которая должна быть утверждена преподавателем.

2. Разработать единый CGI-сценарий для обработки запросов, приходящих при заполнении разработанных форм по методам GET и POST,  возвращающий пользователю ответы в кодировке Win или KOI-8 в виде:

  • текстового документа;
  • документа в формате HTML;
  • переадресации ссылки с ответом пользователю.

2. CGI-программа должна вначале генерировать форму для заполнения, а потом произвести обработку данных формы.

  1. Все нецифровые данные должны обязательно включать в себе символы и слова русского /украинского языка.

Кодировка: cp1251 (windows-1251)

В ходе работы была написан слудующий скрипт (index.php) :

<?php

header('Content-Type: text/html; charset=cp1251');

 

$docTpl = <<<EOL

<!DOCTYPE html>

<html>

   <head>   

       <title>Printer magazine</title>

       <meta http-equiv="Content-Type"  content="text/html; charset=cp1251" >

       <style>

           .error{

               color:red;

           }

       </style>

   </head>

   <body>

       {doc}

   </body>

</html>     

EOL;

 

$formTpl = <<<EOL

<form method="post" action="">

   {printer_brend_errors}

   <label for="m_printer_brend">Марка принтера</label>

   <select name="printer_brend" id="m_printer_brend">

       <option value="">-- выберете --</option>

       <option>XEROX</option>

       <option>CANON</option>

       <option>OPTIMA</option>

       <option>HP</option>

       <option>OTHER</option>

   </select>

    

   <br/>

 

   {printer_model_errors}

   <label for="m_printer_model">Модель принтера</label>

   <input type="text" name="printer_model" value="{printer_model_value}" placeholder="" id="m_printer_model" />

    

   <br/>

 

   {printer_sku_errors}

   <label for="m_printer_sku">SKU принтера</label>

   <input type="text" name="printer_sku" value="{printer_sku_value}"  placeholder="" id="m_printer_sku" />

 

   <br/>

 

    

   {printer_delivery_errors}

   <label for="m_printer_delivery">Тип доставки</label>

   <fieldset id="m_printer_delivery" >

 

       <input id="m_printer_delivery_one" type="radio" name="printer_delivery" checked="checked" value="s1"  />

       <label for="m_printer_delivery_one">На склад</label>

       <br/>

 

       <input id="m_printer_delivery_two" type="radio" name="printer_delivery"  value="s2"  />

       <label for="m_printer_delivery_two">К двери</label>

        

   </fieldset>

    

   <br/>

    

   {printer_dop_errors}

   <label for="m_printer_delivery">Дополнительная информация</label>

   <textarea id="m_printer_delivery" name="printer_dop" id="">{printer_dop_value}</textarea>

 

   <br/>

    

   <label for="m_printer_dst">Дополнительный комплектация</label>

   <fieldset id="m_printer_dst" >

       {printer_dst_y1_errors}

       <input type="checkbox" name="printer_dst_y2" id="m_printer_dst_y1" />

       <label for="printer_dst_y1">Комплект катриджей</label>

       <br/>

        

       {printer_dst_y2_errors}

       <input type="checkbox" name="printer_dst_y1" id="m_printer_dst_y2" />

       <label for="printer_dst_y2">Заправочная установка</label>

       <br/>

   </fieldset>

   <br/>

    

   <input type="submit" name="sb" value="Заказать" />

</form>

EOL;

 

 

$formFields = array(

   'printer_brend',

   'printer_model',

   'printer_sku',

   'printer_delivery',

   'printer_dop',

   'printer_dst_y1',

   'printer_dst_y2',

);

$onlyFields = array(

   'printer_brend',

   'printer_model',

   'printer_sku',

   'printer_delivery',

   'printer_dop',

);

 

 

$formErrors = array();

 

 

if( isset($_POST['sb'])  ){

   //process delivery

   $is_error  = false;

   foreach ($onlyFields as $field){

       if( empty($_POST[ $field ]) ){

           $formErrors[ $field ] .= 'Это поле обязательно для заполнения!';

           $is_error = true;

       }

   }

    

   if(!$is_error){

       Header('Location: /success.html');

   }

}

 

$htmlForm = $formTpl;

foreach($formFields as $field){

   $htmlForm = str_replace(

           array(  '{'. $field .'_value}', '{'. $field .'_errors}' ),

           array( $_POST[ $field ], (isset($formErrors[ $field ])? '<div class="error">'.$formErrors[ $field ].'</div>' :'') ),

           $htmlForm

   );

  

}

 

$docHtml = str_replace('{doc}', $htmlForm  ,$docTpl);

 

exit($docHtml);

Результат работы скрипта:

  1. Вывод формы:



  1. Оповещения о ошибочных данных


  1. Уведомление о сохранении данных



1. нуля Нам требуются- Торговый представитель 25 человек Мед
2. Геопластика ~ вертикальная планировка подлежащих озеленению территорий с целью архитектурного и художес
3. Петрозаводск ул
4. да или нет Стимульный материал
5. Notes which she hs written s young girl
6. Расчетно-графическая работ
7. КАК ПОХУДЕТЬ СТРАТЕГИЯ ПОБЕДЫ НАД ВЕСОМ Вступление Каждый человек страдающи
8. Учет расчетов с подотчетными лицами
9. Xes Its velocity is constnt nd equl to 12 m-s
10. Противоречие к учению Толстова Розанов находит и в поступках самого писателя когда тот помогал голодающим
11. Зарубежная литература 2 курс IV семестр Рекомендуемое количество часов на освоение рабочей программы уч
12. ЗВЕЗДЫ НОВОГО ВЕКА 2223 февраля 2014 г
13. УТВЕРЖДАЮ.2
14. Влияние темперамента на профессиональный выбор учащихся
15. Лабораторная работа N 28 ИЗМЕРЕНИЕ УДЕЛЬНОГО ЗАРЯДА ЭЛЕКТРОНА МЕТОДОМ МАГНЕТРОНА Движение электро
16.  Х Т Больная В 78 л
17. Дошкільна освіта Додаткова кваліфікація вихователь з правом навчання іноземної мов
18. Эфиры в синтетических смазочных материалах
19. Для предприятия фирмы они выступают как оплата приобретенных факторов производства
20. і Сфера вживання прийменників у діловій мові необмежена