Будь умным!


У вас вопросы?
У нас ответы:) 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. ВЫСШАЯ ШКОЛА 2000 УДК 7.html
2. Образование облаков и туманов
3. тема намного актуальнее сегодня нежели ранее
4. Кейнсианская теория
5. 1920Комітет юстиції 11
6. Паблик рилейшнз
7. КРЫМСКИЙ УНИВЕРСИТЕТ КУЛЬТУРЫ ИСКУССТВ И ТУРИЗМА Материалы ознакомительной пр.
8. Термодинамический цикл Карно На участке 1~2 этого цикла рабочее тело совершает обратимое адиабатно
9. Бизнесинкубатор далее оператор
10. Тема- Наводнения Выполнил- Студентка 2 курса Очного отделения исторического факультета гру
11. - Теоретикометодические основы экономического механизма инновационной деятельности
12. ЛАБОРАТОРНАЯ РАБОТА 5 УСИЛИТЕЛЬНЫЕ КАСКАДЫ НА ТРАНЗИСТОРАХ Цель работы исследование одиночных усилит
13. Теоретическое наследие М Вебера и проблемы этничности в современной социологии
14. Господь сказал- если Я найду в городе Содоме пятьдесят праведников то ради них пощажу все место
15. Тема- Пьезоэлектрики и их свойства Выполнил- Проверил-
16. Сердце - положение строение значение
17. Есть масса поводов восхищаться лифтами
18. Курсовая работа- Договор ренты и его виды
19. О безналичных расчетах в Российской Федерации
20. тема искусственного освещения на системы общего местного и комбинированного освещения.html