Основы создания информационных ресурсов на языке PHP

  • Вид работы:
    Методичка
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    21,34 Кб
  • Опубликовано:
    2013-10-29
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Основы создания информационных ресурсов на языке PHP

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

Уфимский государственный авиационный технический университет

Кафедра экономической информатики









ОСНОВЫ СОЗДАНИЯ ИНФОРМАЦИОННЫХ РЕСУРСОВ НА ЯЗЫКЕ РНР

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к лабораторным работам по курсу «Мировые информационные ресурсы»








Уфа 2006

Составитель: Е.И. Филосова

ББК

УДК 519.682

Методические указания к лабораторным работам по курсу «Мировые информационные ресурсы» для студентов специальности 080801 «ПРИКЛАДНАЯ ИНФОРМАТИКА (В ЭКОНОМИКЕ)» / Уфимский государственный авиационный технический университет; Составитель Е.И. Филосова, Уфа, 2006 - 24с.

В методических указаниях представлены лабораторные работы по изучению раздела «Основы создания информационных ресурсов на языке РНР» курса «Мировые информационные ресурсы». Представлены примеры, контрольные вопросы и задания для самостоятельной работы. Методические указания могут быть так же использованы в курсовом и дипломном проектировании.

Ил. 0, табл. 7 , Библиогр.: 7 назв.

© Уфимский государственный авиационный технический университет, 2006

Содержание

1. Общие положения

1.1 Основы синтаксиса

1.2 Переменные. Константы

1.3 Операторы

1.4 Типы данных

1.4.1 Тип array (массив)

1.5 Условные операторы

1.5.1 Оператор if        

1.5.2 Оператор switch

1.6 Циклы

1.6.1 Цикл с предусловием while

1.6.2 Цикл с постусловием do... while

1.6.3 Цикл со счетчиком for

1.6.4 Цикл перебора массива foreach

1.7 Операторы передачи управления

1.8 Операторы включения

1.9 Формы в HTML-документах

1.10 Тег FORM - контейнер форм

1.11 Тег INPUT и способы его использования

1.11.1 Однострочные поля ввода

1.11.2 Поле ввода пароля

1.11.3 Скрытое текстовое поле

1.11.4 Независимые переключатели

1.11.5 Зависимые переключатели

1.11.6 Кнопка отправки формы

1.11.7 Кнопка сброса

1.11.8 Кнопка отправки с индивидуальным рисунком

1.11.9 Загрузка файлов

1.12 Ввод многострочного текста. Тег TEXTAREA

1.13 Списки выбора. Тег SELECT

1.13.1 Списки с единственным выбором

1.13.2 Списки множественного выбора

1.14 Обработка запросов с помощью РНР

2. Задание

2.1 Вывод на экран и переменные в РНР

2.2 Работа с условными операторами и операторами цикла в РНР

2.3 Передача параметров по ссылке, передача параметров из формы

2.4 Создание формы для обработки заказов электронного магазина

3. Требования к отчету

4. Контрольные вопросы

1. Общие положения

Цель работы - овладеть основными приемами создания и обработки web-документов с помощью языка серверного скриптования PHP.

РНР (официальное название "PHP: Hypertext Preprocessor") лучше всего охарактеризовать как работающий на стороне сервера встроенный язык Web-сценариев, позволяющий разработчикам быстро и эффективно строить динамические web-приложения.

.1 Основы синтаксиса

РНР может встраивается в HTML-код следующим способом: первый вариант <?php ?>, сокращенный вариант <? ?>.

Программа на РНР - это набор команд (инструкций). В РНР инструкции разделяются точкой с запятой.

<html>

<head>

<title>Пример</title>

</head>

<body>

<?php"Привет, это PHP-скрипт!";

?>

</body>


Часто при написании программ возникает необходимость делать какие-либо комментарии к коду, которые никак не влияют на сам код, а только поясняют его. РНР поддерживает несколько видов комментариев: в стиле Си, C++ и оболочки Unix. Символы // и # обозначают начало однострочных комментариев, /* и */ - соответственно начало и конец многострочных комментариев.

Важным элементом каждого языка являются переменные, константы и операторы, применяемые к этим переменным и константам.

.2 Переменные. Константы

Переменная в РНР обозначается знаком доллара, за которым следует ее имя. Например: $my_var. Имя переменной чувствительно к регистру, т.е. переменные $my_var и $My_var различны.

Имена переменных соответствуют тем же правилам, что и остальные наименования в РНР: правильное имя переменной должно начинаться с буквы или символа подчеркивания с последующими в любом количестве буквами, цифрами или символами подчеркивания.

Для хранения постоянных величин, т.е. таких величин, значение которых не меняется в ходе выполнения скрипта, используются константы. Для определения константы существует специальная функция define(). Ее синтаксис таков:("Имя_константы", "Значение_константы", [Нечувствительность_к_регистру])

По умолчанию имена констант чувствительны к регистру. Для каждой константы это можно изменить, указав в качестве значения аргумента Нечувствительность_к_регистру значение True. Существует соглашение, по которому имена констант всегда пишутся в верхнем регистре. Получить значение константы можно, указав ее имя. В отличие от переменных, не нужно предварять имя константы символом $. Кроме того, для получения значения константы можно использовать функцию constant () с именем константы в качестве параметра.

1.3 Операторы

Операторы позволяют выполнять различные действия с переменными, константами и выражениями.

Таблица 1 - Арифметические операторы

Обозначение

Название

Пример

+

Сложения

$а + $b

-

Вычитание

$а - $b

*

Умножение

$a*$b

/

Деление

$а / $b

%

Остаток от деления

$а % $b

Конкатенация (сложение строк)

$с = $а.$b


Таблица 2 - Операторы присваивания

Обозначение

Описание

Пример

=

Переменной слева от оператора будет присвоено значение, полученное в результате выполнения каких-либо операций с правой стороны

$а =($b = 4) +5; ($а будет равна 9, $b четырем)

+=

Прибавляет к переменной число и затем присваивает ей полученное значение

$а += 5; ( то же, что и $а = $а + 5;)

.=

Сокращенно обозначает комбинацию операций конкатенации и присваивания (сначала добавляется строка, потом полученная строка записывается в переменную)

$b = "Привет"; $b.= "всем"; В результате: $b="Привет всем"


Таблица 3 - Логические операторы

Обозначение

Название

Пример

Описание

аnd &&

И

$а and $b $а && $b

$а и $b истинны (True)

оr ||

Или

$а or $b $а || $b

Хотя бы одна из переменных $а или $b истинна (возможно, что и обе)

хоr

Исключающее или

$а хоr $b

Только одна из переменных истинна.

!

Инверсия (NOT)

!$а

Если $а=Тruе, то !$a=False и наоборот


Таблица 4 - Операторы сравнения

Обозначение

Название

Пример

Описание

Равенство

$а == $b

Значения переменных равны

===

Эквивалентность

$а === $b

Равны значения и типы переменных

!=, <>

Неравенство

$а != $b, $а <>$b

Значения переменных не равны

!==

Неэквивалентность

$а != = $b

Переменные не эквивалентны

Меньше

$а<$b


Больше

$а>$b


<=

Меньше или равно

$а <= $b


>=

Больше или равно

$а >= $b



Таблица 6 - Операторы инкремента и декремента

Обозначение

Название

Описание

Пример

++$а

Пре-инкремент

Увеличивает $а на единицу и возвращает $а

<? $а=4; echo "Должно быть 5:" .++$а; echo "Должно быть 5:" .$а++; echo "Должно быть 6:" .$а; echo "Должно быть 5:" .--$а; echo "Должно быть 5:" .$а--; echo "Должно быть 4:" .$а; ?>

$а++

Пост-инкремент

Возвращает $а, затем увеличивает $а на единицу


--$а

Пре-декремент

Уменьшает $а на единицу и возвращает $а


$а--

Пост-декремент

Возвращает $а, затем уменьшает $а на единицу



1.4 Типы данных

РНР поддерживает восемь простых типов данных. Четыре скалярных типа:(логический). Этот простейший тип выражает истинность значения, т.е. переменная этого типа может иметь только два значения - истина TRUE или ложь FALSE;(целый). Этот тип задает число из множества целых чисел. Целые могут быть указаны в десятичной, шестнадцатеричной или восьмеричной системе счисления, по желанию с предшествующим знаком «-» или «+». Если используется восьмеричная система счисления, нужно предварить число 0 (нулем), для использования шестнадцатеричной системы нужно поставить перед числом 0х;(с плавающей точкой);(строковый). Строка - это набор символов. В РНР символ - это то же самое, что байт, это значит, что существует ровно 256 различных символов. Строка в РНР может быть определена с помощью одинарных или двойных кавычек. Самым важным свойством строк в двойных кавычках является обработка переменных.

Два смешанных типа:

• array (массив);

• object (объект).

И два специальных типа:

• resource (ресурс);

• NULL.

В РНР не принято явное объявление типов переменных.

1.4.1 Тип array (массив)

Массив в РНР представляет собой упорядоченную карту - тип, который преобразует значения в ключи. Определить массив можно с помощью конструкции array() или непосредственно задавая значения его элементам.

Определение при помощи array()([key] => value, [keyl] => valuel, ... )

Языковая конструкция array () принимает в качестве параметров пары ключ => значение, разделенные запятыми. Символ => устанавливает соответствие между значением и его ключом. Ключ может быть как целым числом, так и строкой, а значение может быть любого имеющегося в РНР типа. Числовой ключ массива часто называют индексом. Индексирование массива в РНР начинается с нуля. Значение элемента массива можно получить, указав после имени массива в квадратных скобках ключ

Если для элемента ключ не задан, то в качестве ключа берется максимальный числовой ключ, увеличенный на единицу. Если указать ключ, которому уже было присвоено какое-то значение, то оно будет перезаписано. Если максимальный ключ - отрицательное число, то следующим ключом массива будет ноль (0).

<?php // массивы $аrr и $arr1 эквиваленты

$аrr = аrrау(5 => 43, 32, 56, "b" => 12);

$arr1 = array(5 => 43, 6 => 32, 7 => 56, "b" => 12);

?>

Для работы с массивами можно применять следующие функции:

Таблица 7 - Функции работы с массивами

Название

Обозначение

Пример

range

Заполняет список целыми числами

array_reverse

Расстановка элементов массива в обратном порядке

$arr = array_reverse($arr); // теперь $arr = array(9, 8, 7, 6, 5, 4);

shuffle

Перемешивание элементов массива

shuffle($A); /* теперь в массиве arr числа 4,5,6,7,8,9 в случайном порядке*/

sort

Сортировка массива по возрастанию

$A = array("One", "Two", "Tree", "Four"); sort($A); // выводит "0:Four 1:One 2: Tree 3: Two "

rsort

Сортировка массива по убыванию

asort($A); // выводит " 0:Two 1:Tree 2:One 3:Four "

asort

Сортировка ассоциативного массива по возрастанию

$A=array("a"=>"Zero","b"=>"Weapon","c"=>"Alpha","d"=>"Processor"); asort($A); //c=>Alpha d=>Processor b=>Weapon a=>Zero

arsort

Сортировка ассоциативного массива по убыванию

arsort($А); // a=>Zero b=>Weapon d=>Processor c=>Alpha

ksort

Сортировка массива по возрастанию ключей

ksort($A); // a=>Processor b=>Alpha c=>Weapon d=>Zero

krsort

Сортировка массива по убыванию индексов

krsort($A); // d=>Zero c=>Weapon b=>Alpha a=>Processor

unset

удаляет элемент массива

unset($arr[l]); //теперь $arr = array(5, 6, 7, 8, 9);

reset

Производит сброс курсора массива

Устанавливает внутренний курсор массива на его начало и возвращает значение начального элемента

end

Производит перенос курсора в конец массива

Устанавливает внутренний курсор массива на последний элемент и возвращает значение начального элемента

next

Производит перенос курсора вперед

Возвращает значение элемента, на котором в данный момент находится курсор, и перемещает курсор массива на следующий элемент

Название

Обозначение

Пример

prev

Производит перенос курсора назад

Возвращает значение элемента, на котором в данный момент находится курсор, и перемещает курсор массива на предыдущий элемент

current

Определение текущего элемента массива

Возвращает значение элемента, на котором в данный момент находится курсор массива, при этом не сдвигая курсор

key

Возвращает индекс текущего элемента массива


array_keys

Возвращает список из ключей массива

$arr = array(0 => 100, "color" => "red", 15); array_keys($arr); //возвратит array(0, "color", 1)

array_values()

Переиндексирует массив


Sizeof count

Возвращает число элементов массива


array_sum

Возвращает сумму всех элементов массива

$arr = array(2,4,6,7); echo "Сумма: ".array_sum($arr); // Сумма: 19

array_slice

Получение части массива

$input = array("a", "b", "c", "d", "e"); $output = array_slice($input, 2); // "c", "d", "e" $output = array_slice($input, 2, -1); // "c", "d" $output = array_slice($input, 0, 3);// "a", "b", "c"

array_search in_array

Поиск значения в массиве

If (in_array(“b”,$input)) echo “Да”; $k= array_search(“b”,$input); // выведет 1

array_splice

Удаляет часть массива



1.5 Условные операторы

.5.1 Оператор if

Этот оператор позволяет выполнять фрагменты кода в зависимости от условия. Структуру оператора if можно представить следующим образом:(выражение) блок_выполнения

Оператор else расширяет if на случай, если проверяемое в if выражение является неверным, и позволяет выполнить какие-либо действия при таких условиях. Структурa оператора if, расширенного с помощью оператора else:(выражение) блок_выполнения else блок_выполнения1- это комбинация else и if. Как и else, он расширяет if для выполнения различных действий в том случае, если условие, проверяемое в if, неверно. Но в отличие от else, альтернативные действия будут выполнены, только если elseif - условие является верным. Структуру оператора if, расширенного с помощью операторов else и elseif, можно представить следующим образом:

(выражение) блок_выполнения;(выражение1) блок_выполнения1;


Пример

<?

$names = array("Иван","Петр","Семен");($names[0]=="Иван")

{"Привет, Ваня!";

$num = 1;

}($num) echo "Иван первый в списке!";($num > 100) echo "Эта строчка не появится на экране, так как условие не выполнено";

?>

1.5.2 Оператор switch

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

(выражение или переменная) {значение1:

блок_действий1;;значение2:

блок_действий2;;

…:

блок_действий_по_умолчанию;

}

Пример

<?

$names = array("Иван","Петр","Семен");

switch ($names[0]){"Иван":"Привет, Ваня!";

break;"Петр":"Привет, Петя!";;"Семен":"Привет, Сеня!";

break;:"Привет, $names[0]";

}

?>

}

1.6 Циклы

.6.1 Цикл с предусловием while

Структура:(выражение) { блок_выполнения }

Пример. Эта программа напечатает все четные цифры:

<?

$i = 1;($i < 10) {($i % 2 == 0) print $i; // печатаем цифру, если она четная

$i++; // увеличиваем $i на единицу

}

?>

1.6.2 Цикл с постусловием do... while

Структура:{блок_выполнения} while (выражение);

Пример.

<? // эта программа напечатает число 12, несмотря

//на то что условие цикла не выполнено

$i = 12;{($i % 2 == 0) print $i; // если число четное, то печатаем его

$i++; // увеличиваем число на единицу

} while ($i<10)

?>

1.6.3 Цикл со счетчиком for

Структура:(выражение1;выражение2;выражение3) {блок_выполнения}

Все четные цифры можно вывести с использованием цикла for таким образом:

<?php($i=0; $i<10; $i++) {($i % 2 == 0) print $i; // печатаем четные числа

}

?>

1.6.4 Цикл перебора массива foreach

Синтаксис:

foreach ($array as $value) {блок_выполнения}

либо($array as $key => $value) {блок_выполнения}

В первом случае формируется цикл по всем элементам массива, заданного переменной $аггау. На каждом шаге цикла значение текущего элемента массива записывается в переменную $value, и внутренний счетчик массива передвигается на единицу (так что на следующем шаге будет виден следующий элемент массива). Внутри блока_выполнения значение текущего элемента массива может быть получено с помощью переменной $value. Выполнение блока_выполнения происходит столько раз, сколько элементов в массиве $ array.

Вторая форма записи в дополнение к перечисленному выше на каждом шаге цикла записывает ключ текущего элемента массива в переменную $кеу, которую тоже можно использовать в блоке_выполнения. Когда foreach начинает исполнение, внутренний указатель массива автоматически устанавливается на первый элемент.

Пример.

<?php

$names = array("Иван","Петр","Семен");($names as $val) { // выведет всем приветствие"Привет, $val <br>";

}

foreach ($names as $k => $val) {

// кроме приветствия, выведем номера в списке, т.е. ключи"Привет, $val ! Ты в списке под номером $k <br>";

}

?>

1.7 Операторы передачи управления

Оператор break заканчивает выполнение текущего цикла, будь то for, foreach, while, do...while или switch. Break может использоваться с числовым аргументом, который говорит, работу скольких управляющих структур, содержащих его, нужно завершить.

Оператор continue позволяет пропустить дальнейшие инструкции из блока_выполнения любого цикла и продолжить выполнение с нового круга. Continue можно использовать с числовым аргументом, который указывает, сколько содержащих его управляющих конструкций должны завершить работу.

1.8 Операторы включения

Оператор include позволяет включать код, содержащийся в указанном файле, и выполнять его столько раз, сколько программа встречает этот оператор. Включение может производиться любым из перечисленных способов:'имя_файла'; или include $file_name; или include ("имя_файла") ;также позволяет включать в программу и исполнять какой-либо файл. Основное отличие require и include заключается в том, как они реагируют на возникновение ошибки. Include выдает предупреждение, и работа скрипта продолжается. Ошибка в require вызывает фатальную ошибку работы скрипта и прекращает его выполнение.

1.9 Формы в HTML-документах

Формы предназначены для отправки информации CGI-приложению, то есть нашему сценарию. Форма в HTML-документе реализуется тегом-контейнером FORM, в котором задаются все управляющие элементы - поля ввода, кнопки и т.д. Простая форма ввода имени:

<form action="#"656159.files/image001.gif">

Измените страницу с формой так, чтобы пользователь мог выбрать приветствие, нажав кнопку зависимой фиксации:

Привет Здравствуйте Рад Вас снова видеть Добрый день

Добавьте кнопку для очистки введенных данных.

2.4 Создание формы для обработки заказов электронного магазина

По разобранному примеру создания книжного магазина разработать форму для работы следующих магазинов (по указанию преподавателя):

Магазин автозапчастей

Мебельный магазин

Магазин продуктовый

Магазин игрушек

Магазин бытовой техники

Компьютерный магазин

Аптека

Магазин канцтоваров

Форму заказа для покупателей (orderform.html) книжного магазина можно представить следующим образом:

<html>

<head>

<title>КНИЖНЫЙ МАГАЗИН</title>

</head>

<body>

<h1> КНИЖНЫЙ МАГАЗИН </h1>

<h2>Форма заказа</h2>

<form action="processorder.php" method=post>

<table border=0>

<tr bgcolor=#cccccc>

<td >Название</td>

<td >Количество</td>

</tr>

<tr>

<td> Сказки Андерсона</td>

<td align=center><input type="text" name="scazki" size=3 maxlength=3></td>

</tr>

<tr>

<td> Стихи А.С.Пушкина</td>

<td align=center><input type="text" name="ctixi" size=3 maxlength=3></td>

</tr>

<tr>

<td> Журнал «Бизнес» </td>

<td align=center><input type="text" name="zurnal" size=3 maxlength=3></td>

</tr>

<tr>

<td colspan=2 align=center><input type=submit value="Отправить заказ"></td>

</tr>

</table>

</form>

</body>

</html>

Для обработки формы можно создать файл, аналогичный processorder.php:

<html>

<head>

<title>Книжный магазин - Результаты заказа</title>

</head>

<body>

<h1> КНИЖНЫЙ МАГАЗИН </h1>

<h2> РЕЗУЛЬТАТЫ ЗАКАЗА </h2>

<?

$scazki=$_REQUEST[scazki];

$ctixi =$_REQUEST[ctixi];

$zurnal =$_REQUEST[zurnal];"<p>Заказ обработан ";date("H:i, jS F");

echo "<br>";"<p>Ваш заказ составил:";"<br>";$scazki." сказок Андерсона<br>";$ctixi." Книг со стихами Пушкина<br>";

echo $zurnal." журналов<br>";

$totalqty = 0;

$totalamount = 0.00;("zena1", 100);("zena2", 10);("zena3", 4);

$totalqty = $scazki + $ctixi + $zurnal;

$totalamount = $scazki * zena1 + $ctixi * zena2 + $zurnal * zena3;

$totalamount = number_format($totalamount, 2);"<br>\n";

echo "Всего заказано: ".$totalqty."<br>\n";

echo "На сумму: ".$totalamount."<br>\n";

$taxrate = 0.10; // Налог с продаж 10%

$totalamount = $totalamount * (1 + $taxrate);

$totalamount = number_format($totalamount, 2);" С налогом с продаж: ".$totalamount."<br>\n";

</body>

</html>

По аналогии придумайте и рассчитайте скидки на заказ в зависимости от количества и/или суммы покупки. Добавить в форму код, позволяющий получить информацию о том, какие формы рекламы лучше работают или что-то по смыслу вашей работы. Например:

<td>Как вы нас нашли</td>

<td><select name="find">

<option value = "a">Я регулярный покупатель

<option value = "b">По телевизору

<option value = "c">По телефонному справочнику

<option value = "d">Знакомые рассказали

</select>

</td>

Обработайте полученную информацию в файле processorder.php. Например:

switch($_REQUEST[find]) {"a":

echo "<P>Регулярный покупатель.";;"b":"<P>Покупатель увидел рекламу о нас по телевизору.";;"c":"<P> Покупатель нашел нас по телефонному справочнику.";;"c":"<P>Покупатель узнал о нас от знакомых.";;:"<P>Мы на знаем как нашел нас покупатель.";;}

Добавьте в форму таблицу стоимости доставки заказа в зависимости от расстояния:

<table border = 0 cellpadding = 3>

<tr>

<td bgcolor = "#CCCCCC" align = center>Расстояние</td>

<td bgcolor = "#CCCCCC" align = center>Стоимость</td>

</tr>

<?

$distance = 50;($distance <= 250 ) {"<tr>\n <td align = right>$distance</td>\n";" <td align = right>". $distance / 10 ."</td>\n</tr>\n";

$distance += 50;

}

?>

</table>

</body>

</html>

Добавьте в форму заказа запрос адреса клиента, заведите массив для хранения ближайших городов с расстояниями до них, вычислите в файле processorder.php стоимость доставки заказа клиенту.

3. Требования к отчету

Отчет должен содержать:

название и цель работы;

сведения о последовательности её выполнения;

ответы на контрольные вопросы из п.4;

основные этапы работы и результаты их выполнения в виде файла на дискете и отчета с текстами созданных программ.

4. Контрольные вопросы

Какие типы данных поддерживает РНР?

Какие бывают формы условного оператора? Приведите их вид.

Назовите оператор выбора данных. Приведите его общий вид.

Какова структура оператора цикла for? Как выполняется цикл for?

Какова структура цикла с предусловием? Как выполняется этот цикл?

Какова структура цикла с постусловием? Как выполняется этот цикл?

Какой оператор цикла позволяет работать с массивами в РНР?

Какие операторы передачи управления существуют в РНР и чем они различаются?

Какие операторы включения существуют в РНР и чем они различаются?

Какие типы управляющих элементов вы можете назвать?

Какие функции выполняет тег FORM?

Способы использования тега INPUT.

Какие теги позволяют осуществить выбор данных?

Как ввести многострочный текст?

Как обработать данные, переданные с помощью формы в РНР-сценарии?

Похожие работы на - Основы создания информационных ресурсов на языке PHP

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!