Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Министерство образования и науки, молодежи и спорта Украины Донецкий национальный техническйи университет Кафедра прикладной математики и информатики |
|
Отчет по лабараторной работе №1 по предмету «Программирование систем с сервисами БД» |
|
Выполнил: студент гр. ПСоз11 Новиков Богдан |
|
Донецк 2012 |
Тема: "Разработка на PHP CGI-сценария, формирующего и обрабатывающего формы документов HTML"
Цель: разработать единый CGI-сценарий для обработки запросов, приходящих при заполнении разработанных форм по методам GET и POST
Вариант: 10
Требования:
1. Разработать форму с различными полями ввода, опций с одиночным и множественным выбором и групп кнопок radiobox и checkbox, которая должна быть утверждена преподавателем.
2. Разработать единый CGI-сценарий для обработки запросов, приходящих при заполнении разработанных форм по методам GET и POST, возвращающий пользователю ответы в кодировке Win или KOI-8 в виде:
2. CGI-программа должна вначале генерировать форму для заполнения, а потом произвести обработку данных формы.
Кодировка: 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); |
Результат работы скрипта: