КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Загрузкa файла с помощью формы и сценария
Теперь, когда вы создали форму и сценарий для загрузки файла, проверим, как все это работает.
Запустите свой Web-браузер, в поле ввода Адрес введите http://localhost/php/Lab9_0.php и нажмите клавишу Enter. Браузер загрузит страницу Загрузка файла (рис. 3.130). Нажмите кнопку Обзор. На экране появится диалог Выбор файла. В качестве файла пересылки укажите файл "W:\home\localhost\www\php\img\footer.jpg" (рис. 3.132). Рис. 3.132. Выбор файла для отсылки на сервер.
Используя этот диалог, найдите на своем компьютере любой файл с изображением размером не более 2 Мбайт, выберите его и нажмите кнопку Открыть. Диалог Выбор файла закроется, а имя выбранного файла с полным путем будет помещено в поле ввода Файл для загрузки (рис. 3.133). Нажмите кнопку Загрузить на сервер(рис. 3.133). Рис. 3.133. HTML форма на экране.
По окончании загрузки в рабочем окне браузера появится сообщение об успешном ее завершении (Рис. 3.134). Рис. 3.134. Сообщение об успешном завершении загрузки файла.
Чтобы убедиться, что файл действительно был загружен, выполните следующие действия: Выберите команду меню браузера Файл/Открыть. На экране появится диалог Открыть (рис. 3.135) Рис. 3.135. Диалог Открыть
В поле ввода Открыть введите полный путь к загруженному файлу, в нашем случае это w:/tmp/footer.jpg, и нажмите клавишу Enter. Или в поле Адрес браузера укажите file://localhost/W:/tmp/footer.jpg и на экране получите следующее (рис. 3.136) Окно браузера отобразит загруженный на ваш Web-сервер файл.
Рис. 3.136. Файл, который был загружен с использованием созданного сценария
Если в программе Lab9_0.php указать другой обработчик (например, Lab9_2.php, рис. 3.137) и переслать этот же файл: "W:\home\localhost\www\php\img\footer.jpg"
<?PHP $myfile_size = $_FILES["myfile"]["size"];//Размер файла $myfile_type = $_FILES["myfile"]["type"];//Тип файла $error_flag = $_FILES["myfile"]["error"]; $myfile_name = $_FILES["myfile"]["name"];//Имя файла if ($myfile_name!="") { echo "Можно копировать файл myfile=".$_FILES["myfile"]["tmp_name"]." <br> ";
if(@copy($_FILES["myfile"]["tmp_name"], "w:/tmp/".$_FILES["myfile"]["name"])) { echo("Файл успешно загружен <br>"); $myfile = $_FILES["myfile"]["tmp_name"]; $fp = fopen($myfile,"r"); $content = fread($fp, filesize($myfile)); fclose($fp); // Вывод содержимого файла на экран print($content); } else { echo("Ошибка. Невозможно скопировать файл!!"); } } else { die ("Файл не обнаружен!!"); } ?> <html> <head> <title>Lab9_2 Загрузка файла</title> </head> <body> <h2>Загрузка файла завершена успешно</h2> <p>Вы отправили файл <? echo "$myfile_name";?> </p> <p>Размер файла: <? echo "$myfile_size";?> байт </p> <p>Тип файла: <? echo "$myfile_type";?> </p> <p>Результат получен в обработчике Lab9_2.php </p> </body> </html> Рис. 3.137. Файл, который был загружен с использованием созданного сценария
Запуск модифицированной программы Lab9_0.php приводит к следующему результату (рис. 3.138). Рис. 3.138. Файл, который был загружен с использованием созданного сценария Lab9_2.php
Задание 2. Автоматическая отправка данных по электронной почте. Lab9_4.php.
Вывести пользовательские данные в браузере несложно, но вряд ли это можно назвать содержательной обработкой пользовательского ввода. Один из способов обработки информации заключается в ее отправке по электронной почте -- например, администратору сайта.
В следующем разделе, создается небольшая форма (рис. 3.139), в которой пользователь вводит информацию и комментарии по поводу сайта. После ввода информации данные форматируются соответствующим образом (рис. 3.140) и передаются стандартной функции PHP mail(). Функция mail() отправляет сообщение заданному адресату по электронной почте.
Рис. 3.139. Форма ввода
Синтаксис функции mail ().
boolean mail (string получатель, string тема, string сообщение [, string доп_заголовки])
В параметре тема передается тема сообщения. Параметр сообщение содержит текст сообщения, а необязательный параметр доп_заголовки предназначен для включения дополнительной информации (например, атрибутов форматирования HTML), пересылаемой с сообщением.
В системе UNIX функция mail() использует утилиту sendmail. В Windows эта функция работает лишь при наличии установленного почтового сервера или если функция mail() связана с работающим сервером SMTP. Эта задача решается модификацией переменной SMTP в файле php.ini.
Если вы сделали все необходимое и функция mail() работает в вашей системе, попробуйте выполнить следующий фрагмент (конечно, адрес webserver@example.com заменяется вашим настоящим адресом электронной почты). <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <title>Lab9_4 Отправка по Email</title> </head> <body bgcolor="#ffffff" text="#000000" link="#cbda74" vlink="#808040" alink="#808040"> <p>Lab9_4.php</p>
<? function sendMail($name,$email,$feedback)//пользовательская функция, //используюшая стандартную функцию Email //$name - Фамилия, имя клиента //$email - Email клиента //$feedback -мнение клиента { $toaddress = 'feedback@example.com'; $subject = 'Обратная связь от Web-сайта'; $mailcontent = 'ФИО клиента: '.$name."\n" .'Email-адрес клиента: '.$email."\n" ."Комментарии клиента: \n".$feedback."\n"; $fromaddress = 'From: webserver@example.com';
echo ("<br>Сообщение на Mail <br>".$mailcontent."<br>"); // кому тема сообщение отправитель mail($toaddress, $subject, $mailcontent, $fromaddress) or die("Could not send email!"); // echo ("После вызова функции nl2br<br>"); //функция nl2br заменяет в переданной ей строке все //символы новой строки (\n) на символ <br/>. echo ("Сообщение <br>".nl2br($mailcontent).""); return true; } // конец тела функции
// тело основной пограммы $name = $_POST['name']; $seenform=$_POST['seenform']; $email=$_POST['email']; $feedback=$_POST['feedback'];
// Создать форму $form = " <form action=\"Lab9_4.php\" method=\"post\"> <input type=\"hidden\" name=\"seenform\" value=\"z\"> <b>Пожалуйста, сообщите Ваше мнение о нашей работе.</b><br> Фамилия, имя:<br> <input type=\"text\" name=\"name\" size=\"20\" maxlength=\"20\" value=\"$name\"><br> Ваш Email:<br> <input type=\"text\" name=\"email\" size=\"20\" maxlength=\"40\" value=\"$email\"><br> Ваше мнение:<br> <textarea name=\"feedback\" rows=\"3\" cols=\"30\"></textarea><br> <input type=\"submit\" value=\"Отправить мнение\"> </form>";//конец создания формы
if ($seenform!= "z"): // Заполнялась ли форма ранее? print "$form"; // Первая прорисовка формы else: // Пользователь заполнил форму. Проверить введенные данные. $error_flag = "n"; //признак что ошибок при заполнении формы нет if ($name == ""): //поле имени не содержит информацию print "<font color=\"red\"> Вы забыли ввести Ваше имя </font><br>"; $error_flag = "y";//признак наличия ошибки else: if ($email == ""):// поле адреса не содержит информацию $error_flag = "y"; print "<font color=\"red\">Укажите правильный email address! Он не должен быть пустым.</font><br>"; else: //Преобразовать все алфавитные символы в адресе электронной почты $email = strtolower(trim($email));// к нижнему регистру endif; //if ($email == "") endif; //if ($name == "")
if(!empty($_POST['email'])): //Убедиться в правильности синтаксиса адреса электронной почты //Будем считать, что стандартный адрес электронной почты выглядит так: //admin@mail.ru //Адрес состоит из двух частей это: // admin - имя пользователя. // mail.ru - домен, доменное имя. //Их разделяет знак @(собака). //Имя пользователя - может состоять из букв разного регистра, //цифр, знаков подчёркивания, точек, минусов. //Доменное имя - так же может состоять из букв разного //регистра, цифр, знаков подчёркивания, точек, минусов.
if(preg_match("|^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,6}$|i", $_POST['email'])): echo $_POST['email']. " Email - Правильный."; $error_flag = "n"; sendMail($name,$email,$feedback); //отсылка почты else: $error_flag = "y"; echo $_POST['email']. " Email - НЕправильный.<br>"; print "<font color=\"red\"> Пример правильного возможного email: admin@mail.ru</font><br>"; endif; else: //echo "Вы не ввели email.".$error_flag; if ($error_flag == "y"): // Если флаг ошибки $error_flag установлен, то // echo "заново отобразить форму."; print "$form"; else: // Обработать данные пользователя print "<br>Данные введены правильно<br>"; sendMail($name,$email,$feedback); endif; endif; //if(!empty($_POST['email'])) endif; ?> </body> </html> Рис. 3.140. Файл Lab9_4.php для создания формы ввода и отправки данных по электронной почте.
Пусть пользователь ввел в форму (рис. 3.139) следующую информацию (рис. 3.141). Рис. 3.141. Заполненная форма (файл Lab9_4.php). Если пользователь использует кнопку , то программа проверит исходные данные и в случаи их правильности вызовет пользовательскую функцию sendMail(), которая подготовит данные для пересылки и вызовет стандартную функцию mail() и пользовательские данные отправляются по адресу, определяемому переменной $toaddress. Затем в браузере выводится сообщение для пользователя. Рис. 3.142. Сообщение для пользователя (файл Lab9_4.php, функция sendMail()). В теле функции sendMail() использована стандартная функция nl2br, которая заменяет в переданной ей строке все символы новой строки (\n) на символ <br/>. Таким образом после оператора echo ("Сообщение <br>".nl2br($mailcontent).""); будет выведено сообщение вида (рис. 3.143)
Рис. 3.143. Сообщение для пользователя (файл Lab9_4.php, функция nl2br()).
Задание 3.Сохранение пользовательских данных в текстовом файле Lab9_5.php
Пользовательские данные сохраняются в текстовом файле для последующего статистического анализа, поиска и т. д. -- короче, любой обработки по вашему усмотрению. В листинге 3.144, как и в предыдущих примерах, данные формы обрабатываются в одном сценарии. Пользователю предлагается ввести четыре объекта данных: имя, адрес электронной почты, язык и профессию. Введенная информация сохраняется в текстовом файле lab9_5.txt. Элементы данных разделяются символами «вертикальная черта» (|).
Листинг 9.18. Сохранение пользовательской информации в текстовом файле. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <title>Lab9_5 Запись в текстовый файл</title> </head> <body> <p>Lab9_5.php Запись ввода в текстовый файл lab9_5.txt</p>
<?PHP //тело основной программы $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT']; //Например, DOCUMENT_ROOT= W:/home/localhost/www $name = $_POST['name']; $seenform=$_POST['seenform']; $email=$_POST['email']; $job=$_POST['job']; $language=$_POST['language'];
// Создать форму $form = " <form action=\"Lab9_5.php\" method=\"post\"> <input type=\"hidden\" name=\"seenform\" value=\"z\"> <b>Укажите Ваши данные!<br> <?php /*?> <?php Внимание! Тег b не закрываем */?> Фамилия, имя:<br> <input type=\"text\" name=\"name\" size=\"20\" maxlength=\"20\" value=\"$name\"><br> Ваш Email:<br> <input type=\"text\" name=\"email\" size=\"20\" maxlength=\"40\" value=\"$email\"><br>
Ваш предпочитаемый язык:<br> <select name=\"language\"> <option value=\"\">Выберите язык: <option value=\"English\">Английский <option value=\"Spanish\">Испанский <option value=\"Italian\">Итальянский <option value=\"French\">Французкий </select><br> Ваше занятие:<br> <select name=\"job\"> <option value=\"\">Кто Вы?: <option value=\"student\">Студент <option value=\"programmed\">Программист <option value=\"manager\">Менeджер <option value=\"slacker\">Пенсионер </select><br> <input type=\"submit\" value=\"Зафиксировать в файле\"> </form>";
if ($seenform!= "z"): // Заполнялась ли форма ранее? print "$form"; // echo " Первая прорисовка формы"; //exit; else://Заполнили форму. Проверить введенные данные. $error_flag = "n"; //признак что ошибок нет if ($name == ""): // Убедиться в том, что поле имени содержит информацию print "<font color=\"red\"> Вы забыли ввести Ваше имя</font><br>"; $error_flag = "y";//признак наличия ошибки else: //Убедиться в том, что поле адреса содержит информацию if ($email == ""): $error_flag = "y"; print "<font color=\"red\">Укажите правильный email address! Он не должен быть пустым.</font><br>"; else: // Преобразовать все алфавитные символы в адресе // электронной почты к нижнему регистру $email = strtolower(trim($email)); endif; //if ($email == "") endif; //if ($name == "")
if(!empty($_POST['email'])and $error_flag == "n"): //Убедиться в правильности синтаксиса адреса электронной почты //Будем считать, что стандартный адрес электронной почты выглядит так: // admin@mail.ru //Адрес состоит из двух частей это: // admin - имя пользователя. // mail.ru - домен, доменное имя. //Их разделяет знак @(собака). //Имя пользователя - может состоять из букв разного //регистра, цифр, знаков подчёркивания, точек, минусов. //Доменное имя - так же может состоять из букв разного //регистра, цифр, знаков подчёркивания, точек, минусов.
if(preg_match("|^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,6}$|i", $_POST['email'])): //echo $_POST['email']. " Email - Правильный.<br>"; $error_flag = "n"; echo "Данные введены. Можно формировать файл lab9_5.txt<br>";
$fd = fopen($DOCUMENT_ROOT."/../lab9_5.txt", 'ab'); echo 'Открыть файл для добавления<br>Путь=' .$DOCUMENT_ROOT."/../lab9_5.txt".'<br>Результат открытия='.$fd.'<br />';
if (!$fd): // ошибка открытия файла echo '<p><strong> Файл lab9_5.txt не доступен. <br></strong> </p></body></html>'; exit;//выход из программы endif; //Убедиться, что во введенных данных не встречается вертикальная черта. $name = str_replace("|", "", $name); $email = str_replace("|", "", $email); // Построить строку с пользовательскими данными $user_row = $name." ".$email."|".$language." ".$job."\n"; fwrite($fd, $user_row) or die("Could not write to file!"); fclose($fd); print "<br>Спасибо что уделили время для ответов на вопросы"; print "<br>Строка в файле ".$user_row; else://шаблон Email не точен $error_flag = "y"; echo $_POST['email']. " Email - НЕправильный.<br>"; print "<font color=\"red\"> Пример правильного возможного email: admin@mail.ru</font><br>"; endif; else: //echo "Вы не ввели email.".$error_flag; if ($error_flag == "y"): // Если флаг ошибки $error_flag установлен, то заново отобразить форму.; print "$form"; endif; //if ($error_flag == "y"): endif; //if(!empty($_POST['email'])) endif; ?> </body> </html> Рис. 3.144. Файл Lab9_5.php, запись данных в текстовый файл.
Обратите внимание на фрагмент: $name = str_replace("|", "", $name); $email = str_replace("|", "", $email);
В данном фрагменте мы проверяем, что пользователь не включил в имя или адрес электронной почты символы «вертикальная черта» (|). Функция str_replace() удаляет эти символы, заменяя их пустой строкой. Если бы это не было сделано, пользовательские символы | нарушили бы структуру файла данных и существенно затруднили (а то и сделали невозможным) его правильную обработку. При работе с относительно малыми объемами информации вполне можно обойтись текстовыми файлами. Однако при большом количестве пользователей или объеме сохраняемой информации для хранения и обработки данных, введенных в форме, лучше воспользоваться базой данных. Эта тема подробно рассматривается далее в лабораторных.
Согласно кода программы, показанного на рис. 3.144 на экран будет выведена форма рис. 3.145. Заполненная форма ввода показана на рис. 3.146, а результат работы программы (при условии, что пользователь ввел правильные данные) показан на рис. 3.147 и рис. 3.148.
Рис. 3.145. Форма ввода для кода Lab9_5.php.
Рис. 3.146. Заполненная форма ввода для кода Lab9_5.php. Если пользователь использует кнопку , то будет создан текстовый файл по адресу:
Рис. 3.146a. Результат кода Lab9_5.php. Файл Lab9.txt
Рис. 3.147. Результат кода Lab9_5.php.
В коде программы показанной на рис. 3.144 использована функция $fd = fopen($DOCUMENT_ROOT."/../lab9_5.txt", 'ab'); которая в данном примере используется для открытия файла для добавления в него информации. Первым параметром указывается файл - $DOCUMENT_ROOT."/../lab9_5.txt", который должен быть открыт. Второй параметр - 'ab' – режим открытия файла (в данном случае режим 'ab' предполагает не только открытие для добавления в конец файла, но и создание файла, если он отсутствовал по указанному пути).
В примере для указания пути к файлу использована встроенная переменная $_SERVER['DOCUMENT_ROOT'. Эта переменная указывает на основание дерева документов используемого вами Web-сервера. Символ .. обозначает родительский каталог корневого каталога документов. В целях безопасности этот коталог находится вне дерева документов, чтобы этот файл не был доступен в WEB, кроме как только через разработанный Вами интерфейс. Этот путь называется относительным, поскольку он описывает позицию в файловой системе относительно корня документов.
Запись в файл в PHP осуществляется функцией: fwrite($fd, $user_row).
Где $fd – номер ресурса возвращенного функцией fopen, а $user_row – значение записываемое в файл.
Задание 4. Сохранение пользовательских данных в текстовом файле Lab9_6_0.php В данном задании создается форма ввода (рис. 3.148) предназначенная для заказа товара. Рис. 3.148. Форма ввода, реализованная в коде Lab9_6_0.php.
Листинг программы для реализации формы представлен ниже.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <title>Lab9_6_0 Запись в текстовый</title> </head> <body> <p>Lab9_6_0.php Запись в текстовый файл Lab9_6_1.txt</p> <h1>Автозапчасти </h1> <h2>Форма заказа</h2> <form action="Lab9_6_1.php" method=post> <table border=0> <tr bgcolor=#cccccc> <td width=150>Товар</td> <td width=15>Количество</td> </tr> <tr> <td>Автопокрышки</td> <td align=left><input type="text" name="tireqty" size=3 maxlength=3></td> </tr> <tr> <td>Машинное масло</td> <td align=left><input type="text" name="oilqty" size=3 maxlength=3></td> </tr> <tr> <td>Свечи зажигания</td> <td align=left><input type="text" name="sparkqty" size=3 maxlength=3></td> </tr> <tr> <td>Адрес доставки</td> <td align=center><input type="text" name="address" size=40 maxlength=40></td> </tr> <tr> <td colspan=2 align=center><input type=submit value="Отправить заказ"></td> </tr> </table> </form> </body> </html> Рис. 3.149. Код HTML (Lab9_6_0.php) для реализации формы рис. 3.148. Обработчик формы (как показано в теле кода формы на рис. 3.149) находится в файле Lab9_6_1.php (рис. 3.150).
Листинг обработчика. Файл Lab9_6_1.php. <?php // создать короткие имена переменных $tireqty = $_POST['tireqty']; //Автопокрышки $oilqty = $_POST['oilqty']; //Машинное масло $sparkqty =$_POST['sparkqty'];//Свечи зажигания $address = $_POST['address']; //Адрес доставки $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT']; //DOCUMENT_ROOT: W:/home/localhost/www ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <title>Автозапчасти - Результаты заказа</title> </head> <body> <h1>Автозапчасти Lab9_6_1</h1> <h2>Результаты заказа</h2> <?php $date = date('H:i, jS F'); echo '<p>Заказ обработан в '.$date.'</p>'; if ($oilqty<0 or $oilqty<0 or $sparkqty<0): echo '<p><font color=\"red\">Заказ не принят!</font></p>'; echo 'Отрицательное число в элементах заказа<br></body></html>'; exit; endif;
echo '<p>Список вашего заказа: </p>';
$totalqty = 0; $totalqty = $tireqty + $oilqty + $sparkqty; echo 'Заказано товаров: '.$totalqty.'<br />';
if($totalqty == 0): //{ echo 'Вы ничего не заказали на предыдущей странице!<br />'; exit; //} endif;
if ($tireqty>0) echo $tireqty.' автопокрышек <br />'; if ($oilqty>0) echo $oilqty.' бутылок с маслом<br />'; if ($sparkqty>0) echo $sparkqty.' свечей зажигания<br />';
$totalamount = 0.00;//Итого по заказу define('TIREPRICE', 100); //стоимость автопокрышеки define('OILPRICE', 10); //стоимость бутылки с маслом define('SPARKPRICE', 4);
$totalamount = $tireqty * TIREPRICE + $oilqty * OILPRICE + $sparkqty * SPARKPRICE;
$totalamount=number_format($totalamount, 2, '.', ' ');
echo '<p>Итого по заказу: '.$totalamount.'</p>'; echo '<p>Адрес доставки: '.$address.'</p>';
$outputstring = $date."\t" .$tireqty." автопокрышек\t" .$oilqty." бутылок с маслом\t" .$sparkqty." свечей зажигания\t\$" .$totalamount."\t".$address."\n"; //В качестве разделителя значений использован символ //горизонтальной табуляции "\t". В качестве разделителя //строк использована управляющая последовательность "\n"
//открыть файл для добавления //@$fp = fopen($DOCUMENT_ROOT."/../lab9_6_1.txt", 'ab'); //Верхний fopen откроет правильно, как и следующий оператор //но путь нахождения файла будет различен. @$fp = fopen($DOCUMENT_ROOT."/php/lab9_6_1.txt", 'ab');
/* echo 'Lab9_6_1 Открыть файл lab9.txt для добавления Путь='.$DOCUMENT_ROOT."/php/lab9_6_1.txt".' <br>Результат открытия='.$fp.' gettype(fp)='.gettype($fp).' <br />'; //открыть файл lab9_6_1.txt для добавления //Путь=W:/home/localhost/www/php/lab9_6_1.txt //Результат открытия=Resource id #3 gettype(fp)=resource */ if (!$fp) {echo '<p><strong>В настоящий момент ваш запрос не может быть обработан.<br>' 'Пожалуйста, попытайтесь позже.</strong></p></body></html>'; exit;} //запись в файл fwrite($fp, $outputstring, strlen($outputstring)); fclose($fp);//закрытие файла echo '<p>Заказ записан в файл (путь): '.$DOCUMENT_ROOT.'/php/lab9_6_1.txt.</p>'; ?> </body> </html> Рис. 3.150. Код обработчика Lab9_6_1.php, для реализации формы рис. 3.148. Если пользователь заполнит форму информацией вида: Рис. 3.151. Пример заполненной формы. и использует кнопку , то реакция обработчика Lab9_6_1.php будет следующей (рис. 3.152).
Рис. 3.152. Реакция обработчика на ошибочные действия пользователя при заполнении формы. Если пользователь использует кнопку и приведет форму к виду (рис. 3.153), Рис. 3.153. Пример заполненной формы. реакция обработчика, после нажатия кнопки “Отправить заказ” показана на рис. 3.154. Введенная информация будет записана а текстовый файл функцией
fwrite($fp, $outputstring, strlen($outputstring));
Этот вызов указывает PHP на необходимость записи строки из переменной $outputstring в файл на который указывает $fp. Третий параметр функции strlen($outputstring) указывает на длину записи, заносимой в файл.
Например, состав текстового файла после добавления информации из формы показанной на рис. 3.153, представлен на рис. 3.155.
Рис. 3.154. Реакция обработчика на действия пользователя при заполнении формы.
продожение записи в файле Lab9_6_1.txt Рис. 3.155. Состав файла Lab9_6_1.txt после заполнения формы.
Закрытие файла производится с помощью следующей функции:
fclose($fp);//закрытие файла Вероятность ошибки при закрытии файла намного меньше, чем при открытии файла, но она существует.
Дата добавления: 2014-12-07; Просмотров: 498; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |