Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 1077

.pdf
Скачиваний:
4
Добавлен:
30.04.2022
Размер:
750.04 Кб
Скачать

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

По Фаренгейту

<input type="text" name="f">

По Цельсию

<input type="text" name="c"> <input type="submit"

value="Перевести ">

</form>

</pre>

</body>

</html> _END;

function sanitizeString($var)

{

$var = stripslashes($var); $var = htmlentities($var); $var = strip_tags($var); return $var;

}

?>

Когда файл index.php будет открыт в браузере, то результат будет сходным с рис. 1.

Рис. 1. Результаты работы программы, взаимодействующей с веб-формой

19

Если проанализировать данную программу, то в первой строке анализируются переменные $c и $f на тот случай, если их значения не были отправлены программе. В следующих двух строках извлекаются значения либо из поля f, либо из поля c. Эти поля предназначены для ввода значений температуры по Фаренгейту или по Цельсию. Если пользователь введет оба значения, то значение по Цельсию будет проигнорировано, а переведено будет значение по Фаренгейту. В качестве меры безопасности в программе также используется новая пользовательская функция sanitizeString(), которая будет рассмотрена позже.

В следующей части кода (блок if…elseif…) проверяется, какую именно температуру ввел пользователь – по шкале Фаренгейта или по шкале Цельсия – и осуществляется соответствующее преобразование. Если пользователь не ввел данные, то переменной $out присваивается пустая строка.

Для предотвращения результатов перевода в вещественное число в обоих переводах вызывается PHP-функция intval(), представляющая результат в виде целого числа.

Теперь после выполнения всех арифметических вычислений, программа выдает HTML-код, который начинается с базовых элементов <head> и <title> и содержит вводный текст, предшествующий отображению значения переменной $out. Если перевода температуры не осуществлялось, переменная $out будет иметь значение NULL, и выводиться на экран не будет.

Затем следует форма, настроенная на отправку данных файлу index.php (то есть самой программе) с использованием метода POST. Внутри формы содержатся два поля для ввода температуры как по Фаренгейту, так и по Цельсию. Затем отображается кнопка отправки данных имеющая надпись «Перевести», и форма закрывается.

После вывода HTML-кода, закрывающего документ, программа завершается функцией sanitizeString(), которая обезвреживает вводимые данные с точки зрения безопасности.

20

Функция stripslashes() удаляет экранирование символов с помощью слэш-символов (\).

Функция htmlentities() используется для удаления из строки нежелательного HTML-кода. Например, если пользователь введет <b>hi</b>, то данный код заменится строкой <b>hi</b>, которая отображается как простой текст и не будет интерпретироваться как теги HTML.

Функция strip_tags() удаляет все HTML-теги из строки. Все эти функции сосредоточены в специально созданной

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

1.3. Задание на лабораторную работу № 13

Задание № 1. Составить программу, работающую с текстовым файлом. Она должна выводить на экран его содержимое, количество строк и символов в файле и осуществлять с ним операции, предусмотренные соответствующим вариантом.

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

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

его на экран.

3. Программа должна менять все символы '?’ в файле на

‘!’.

4.Программа должна менять все символы в строке, номер которой указан в программе на случайные цифры.

5.Программа должна проверять соответствие в тексте числа открывающих и закрывающих скобок и выводит на экран сообщение (совпадает / не совпадает).

6.Программа должна выводить на экран число символов

всамой длинной строке файла и ее номер.

21

7.Программа должна менять все символы в строках файла с нечетным количеством символов на единицы.

8.Программа должна менять каждую 5-ю строчку в файле на текст «#####».

9.Программа должна выводить число пробелов в тексте

файла.

10.Программа должна выводить на экран число символов

встроке, номер которой сгенерирован датчиком случайных чисел.

11.Программа должна считать количество строк в файле,

длина которых меньше значения, указанного в программе и выводить его на экран.

12.Программа должна менять все символы в нечетных строках файле на восклицательные знаки.

13.Программа должна менять на вопросительные знаки

все символы в строке, номер которой сгенерирован датчиком случайных чисел.

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

15.Программа должна подсчитать количество строк в

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

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

17.Программа должна заменить все запятые в файле точ-

ками.

18. Программа должна подсчитать количество строк, где не встречается символ '#' и вывести результат на экран.

Задание № 2. Создайте программу, которая загружает 3 изображения из файла (каждое загружается из отдельного поля ввода) и добавляет к каждому подпись с именем файла (подпись можно оформить с помощью тегов <div> и <p> или ка- ким-то другим способом). Изображения есть в каталоге с заданием на лабораторную работу.

22

Задание № 3. Создать программу на PHP, работающую с веб-формами. Данные для расчета величин должны вводиться через поля веб-формы. Рекомендуется добавить сценарий JavaScript, который проверяет корректность ввода данных для новой записи (например, все ли поля заполнены).

1. Написать программу, которая вычисляет силу тока в электрической цепи (I=U/R). Если величина сопротивления превышает 1 000 Ом, то результат должен быть выведен в килоомах.

2. Написать программу вычисления площади S круга ра-

диуса R (S=π·R2).

3. Написать программу, которая вычисляет величину сопротивления в электрической цепи. Цепь состоит из двух параллельно соединенных сопротивлений. (r=(r1·r2)/(r1+r2)).

4. Написать программу, которая вычисляет стоимость покупки с учетом скидки. Скидка 1 % предоставляется, если сумма покупки больше 300 рублей, 2 % - если сумма больше 500 рублей, 3 % - если сумма больше 1000 рублей. Информация о предоставленной скидке (процент и величина) должна быть выведена с помощью компонентов Label.

5. Написать программу, которая вычисляет стоимость покупки по цене и количеству. При этом вводится денежная сумма, предложенная на оплату. Если сумма больше, то указать размер сдачи.

6. Написать программу, которая определяет количество теплоты (Q), необходимое для нагревания тела или выделяемое им при охлаждении, если известна удельная теплоемкость вещества (с), масса тела (m), начальная (t1) и конечная (t2) температура тела. Для вычисления использовать формулу Q = c·m·(t2-t1). Удельная теплоемкость некоторых материалов: золото – 130, серебро – 250, железо – 460, вода – 4200 дж/(кг · градус).

7. Написать программу, которая вычисляет сопротивление проводника R по заданным удельному сопротивлению p,

23

длине проводника L, площади поперечного сечения проводника S. R = p·L/S. Значения удельных сопротивлений некоторых веществ при 20 С: серебро – 0,016, золото – 0,024, железо –

0,10, ртуть – 0,96.

8. Написать программу, которая вычисляет работу электрического тока (А) на участке цепи, если известно напряжение на концах этого участка (U), сила тока (I), время, в течение ко-

торого совершалась работа (t).

A=U·I·t. 1 джоуль = 1 вольт ·

1 ампер · 1 секунда.

 

9. Написать программу,

которая вычисляет количество

теплоты (Q), выделяемое проводником, если известны: сила тока I, сопротивление проводника R, время t. Q = I2 ·R·t.

10. Написать программу, которая вычисляет площадь трапеции (площадь равна произведению полусуммы ее оснований на высоту).

11. Написать программу, которая вычисляет давление на глубине жидкости P, если известны: высота столба жидкости (h), плотность жидкости (ρ), ускорение свободного падения (g). P = h∙ρ∙g.

12.Написать программу, которая вычисляет скорость при равноускоренном движении v, если известны: начальная скорость (v0), время движения (t), ускорение (a). v = v0 + a∙t.

13.Написать программу, которая рассчитывает ускорение

a, если известны: начальная скорость (v0), время движения (t), текущая скорость (v). a = (v-v0) / t.

14. Написать программу, которая рассчитывает потенциальную энергию тела, поднятого над землей (Ep), если известны: масса тела (m), ускорение свободного падения (g), высота

(h). Ep = m∙g∙h.

15.Написать программу, которая рассчитывает работу при перемещении тела по наклонной плоскости (A), если известны: сила (F), перемещение (S), косинус угла наклона плос-

кости (cos α). A = F∙S∙cos α.

16.Написать программу, которая рассчитывает период колебаний пружинного маятника (T), если известны: число π,

24

масса груза маятника (m), коэффициент упругости пружины

(k). T 2 mk .

17. Написать программу, которая рассчитывает силу взаимодействия зарядов по закону Кулона (F), если известны: коэффициент пропорциональности (k), расстояние между зарядами (R), электрические заряды (q1 и q2). F = k∙q1∙q2/R2.

18. Написать программу, которая рассчитывает напряженность поля точечного электрического заряда (E), если известны: коэффициент пропорциональности (k), точечный заряд (q), радиус поля (R). E = k∙q/R2

2. ЛАБОРАТОРНАЯ РАБОТА № 14. СОЗДАНИЕ БАЗЫ ДАННЫХ В MYSQL. РАБОТА С БАЗОЙ

ДАННЫХ MYSQL В PHP

2.1. Общие методические указания по выполнению лабораторной работы

Цели работы:

изучить основные операторы и команды MySQL;

создать простую базу данных средствами MySQL;

разработать веб-приложение для связи с базой данных средствами PHP.

Среда выполнения и отладки:

Текстовый редактор Notepad++, веб-браузер (Firebox, Internet Explorer, Opera или др.).

2.2. Теоретические сведения

Доступ к MySQL из командной строки

Работать с MySQL можно тремя основными способами:

используя командную строку;

используя веб-интерфейс (например, утилиту из состава

пакета Denwer phpMyAdmin);

25

– используя язык программирования (например, PHP). Рассмотрим первый вариант.

Если MySQL установлена в составе пакета Denwer, то можно запустить исполняемый файл mysql.exe в каталоге

WebServers\usr\local\mysql-5.5\bin (где WebServers – каталог,

куда был установлен Denwer) со следующими ключами:

Z:\WebServers\usr\local\mysql-5.5\bin\mysql –u root

Эта команда предписывает MySQL зарегистрировать пользователя под именем root без пароля. После ее выполнения на экране появится окно командной строки.

Для того, чтобы убедиться, что все работает должным образом можно ввести следующую команду:

SHOW databases;

По данной команде будет выдан список баз данных доступный текущему пользователю. Если еще ни одной базы не было создано, на экране появится лишь список баз созданных по умолчанию – information_schema и т.д.

Синтаксис команд MySQL

Как видно из предыдущего примера, в конце команды MySQL ставится точка с запятой. Она используется для окончания текущей команды и, соответственно, отделения команд друг от друга. Если забыть поставить данный символ, то MySQL выдаст приглашение и будет ожидать его ввода.

Таким образом, можно вводить длинные команды, разбивая их на несколько строк. Можно также вводить короткие команды в одной и той же строке, разделяя их точкой с запятой. После нажатия клавиши Enter интерпретатор получит все эти команды в едином пакете и выполнит их в порядке следования.

26

На экране могут появляться шесть разных приглашений MySQL, позволяющих определить, на каком именно этапе многострочного ввода находится пользователь (табл. 4).

 

Таблица 4

Приглашения к вводу команды MySQL

 

 

Приглашение

Значение

MySQL

 

mysql>

MySQL готова к работе и ждет ввода ко-

 

манды

->

Ожидание следующей строки команды

‘>

Ожидание следующей строки строкового

 

значения, которое начиналось с одинарной

 

кавычки

“>

Ожидание следующей строки строкового

 

значения, которое начиналось с двойной

 

кавычки

`>

Ожидание следующей строки строкового

 

значения, которое начиналось с символа

 

засечки (`)

/*>

Ожидание следующей строки коммента-

 

рия, который начинался с символов /*

Отмена команды

Если пользователь, набрав часть команды, решил, что ее вообще не следует выполнять, то можно ввести комбинацию символов \c и нажать Enter. Тогда содержимое строки будет проигнорировано и на экран выведется приглашение на ввод новой команды:

mysql>dfsdfdsfd\c

mysql>

Команды MySQL

В табл. 5 приведен список наиболее востребованных ко-

манд MySQL.

27

 

 

 

Таблица 5

 

Основные команды MySQL

 

 

 

 

Команда

 

Параметры

Назначение

 

 

 

 

ALTER

 

База данных, таб-

Внесение изменений

 

 

лица

в базу данных или

 

 

 

таблицу

BACKUP

 

Таблица

Создание резервной

 

 

 

копии таблицы

\c

 

 

Отмена ввода

CREATE

 

База данных, таб-

Создание базы дан-

 

 

лица

ных или таблицы

DELETE

 

(Выражение с уча-

Удаление строки из

 

 

стием таблицы и

таблицы

 

 

строки)

 

DESCRIBE

 

Таблица

Описание столбцов

 

 

 

таблицы

DROP

 

База данных, таб-

Удаление базы дан-

 

 

лица

ных или таблицы

EXIT (Ctrl+C)

 

 

Выход

GRANT

 

(Пользователь

Изменение привиле-

 

 

подробности)

гий пользователя

 

 

 

 

INSERT

 

(Выражение с дан-

Вставка данных

 

 

ными)

 

QUIT (\q)

 

 

То же самое, что и

 

 

 

EXIT

 

 

 

 

RENAME

 

Таблица

Переименование

 

 

 

таблицы

SHOW

 

(Множество эле-

Список сведений об

 

 

ментов для вывода

элементах

 

 

в виде списка)

 

UPDATE

 

(Выражение с дан-

Обновление суще-

 

 

ными)

ствующей записи

USE

 

База данных

Использование ука-

 

 

 

занной базы данных

 

28