- •Технология организации баз данных и знаний
- •Методические указания к выполнению лабораторных работ
- •Методические указания к выполнению лабораторных работ
- •Предисловие
- •Библиографический список
- •Лабораторная работа № 1 Тема №1. ИнсталляцияMySqLи создание локального сервера
- •1. Цель работы
- •2. Основные технические возможности
- •3. Описание установки
- •4. Порядок выполнения работы
- •5. Содержание отчета
- •Лабораторная работа № 1
- •6. Содержание отчета
- •Лабораторная работа № 2 Тема №1. Создание баз и таблиц данных
- •1. Цель работы
- •2. Основные сведения
- •3. Программа работы
- •4. Указания к выполнению работы
- •3. Программа работы
- •00 Проверка моего домена с именем Moy.Loc
- •4. Указания к выполнению работы
- •5. Содержание отчета
- •3. Указания к выполнению работы
- •Задание 2: Разработать html-форму с методом Post
- •Тема №2. Передача значений переменным в сценариях php. Использование возможностей метода get без html-формы для передачи значений переменных в сценариях php
- •Тема №3. Создание формы и рнр-сценария в одном файле
- •Задание 1: Получение данных из текстового поля
- •I курсив
- •Тема №4. Использование чисел. Управляющие структуры
- •Тема №5. Использование управляющей структурыswitch
- •Тема № 6. Использование регулярных выражений в сценариях рнр
- •Проверка ошибок
- •Задание 1. Вывод информации о ошибочно заполненных полях формы
- •Задание 2. Использование функций пользователя для контроля полей формы
- •Задание 3. Проверка ограничений в текстовом поле.Lab6_0_2.Php
- •Задание 4. Специфика имени пользователя. Lab6_0_3.Php
- •Задание 5. Специфика имени пользователя с помощью JavaScript. Lab6_0_4.Php
- •Тема №7. Работа с массивами
- •Задание 1. Означивание массива и вывод на экран. Lab7_0.Php.
- •Задание 4. Сортировка массива.Lab7_3.Php.
- •Тема №8. Функции в сценариях рнр
- •Задание 1. Вложенные функции.Lab8_0_0.Php
- •Задание 2. Объявление функций внутри других функций.Lab8_0.Php
- •Задание 3. Возврат значений функцией.Lab8_1.Php
- •Задание 4. Возврат нескольких значений функцией.Lab8_2.Php
- •Задание 5. Возвращение функцией нескольких величин.Lab8_3.Php
- •Задание 6. Рекурсивные функции .Lab8_4.Php
- •Задание 7. Функции-переменные.Lab8_5.Php
- •Задание 8. Построение библиотек функций.Lab8_6_0.Php.
- •Задание 9. Построение шаблона сайта.Lab8_7_0.Php.
- •Тема №9. Использование файлов для хранения данных в сценариях рнр
- •Создание сценария загрузки.
- •Задание 3. Сохранение пользовательских данных в текстовом файлеLab9_5.Php
- •Задание 4. Сохранение пользовательских данных в текстовом файлеLab9_6_0.Php
- •Тема № 10. Работа с каталогами в сценариях рнр
- •Тема №11. Создание панели управления файлами
- •Задание 1. Разработать форму и сопутствующее ей приложение для панели управления файлами.
- •Тема № 12.Работа с базой через монтторMySql и PhpMyAdmin
- •Задание 1. Создать базу данных через командную строку
- •Задание 3. Вставка данных в базу данных
- •Задание 4. Создание командных файлов и файлов сценариев для вставки данных в базу данных.
- •Тема № 13. Извлечение данных из базы данных
- •Задание 1. Оператор выборки данныхSelect
- •Задание 2. Извлечение данных по определенному критерию
- •Задание 3. Извлечение данных из нескольких таблиц
- •Задание 4. Поиск несоответствующих строк
- •Задание 5. Использование псевдонимов имен таблиц (as)
- •Задание 6. Извлечение данных в определенном порядке
- •Задание 7. Группировка и агрегирование данных
- •Задание 8. Обновление записей в базе данных (update)
- •Задание 10. Удаление записей, таблиц и базы данных (delete)
- •Тема № 14.Php и MySql. Доступ к базе данных MySql из Web с помощью рнр
- •Задание 1. Изучение работы архитектуры Web-баз данных
- •Задание 2. Проверка и фильтрация данных, исходящих от пользователя. Использование объектно-ориентированного синтаксисаPhp
- •Задание 3. Внесение новой информации в базу данных. Проверка и фильтрация данных, исходящих от администратора
- •Задание 4. Создание и удаление баз данных
- •Содержание
Задание 2. Использование функций пользователя для контроля полей формы
Ниже на рис. 3.44 показана форма ввода содержащая поле для ввода Email и в программе рис. 3.45 показано каким образом контролируется ввод информации в указанное поле.
Рис. 3.44. Форма ввода для листинга приведенного на рис. 3.45.
Листинг программы Lab6_0_1.php, содержащий функцию пользователя для проверки корректности адреса электронной почты.
Рис. 3.45. Листинг программы Lab6_0_1.php для формы на рис. 3.44.
Рис. 3.46. Продолжение листинга программы Lab6_0_1.php для формы на рис. 3.44.
В функции пользователя Val_email использованы стандартные функции:
- Функция int strlen( string $st ) определяет длину строки;
- Функция string trim( string $st [, string $charlist] ) удаляет ведущий и концевые символы строки.
Если пользователь (в форму на рис. 3.44) введет информацию как показано на рис. 3.47, и нажмет кнопку , то реакция пользовательской функцииVal_email показана на рис. 3.48.
Рис. 3.47. Форма с введенной информацией.
Обратите внимание, что после нажатия кнопки нижнее сообщение на рис. 3.47 исчезнет.
Рис. 3.48.Сообщение об ошибке сгенерированное пользовательской функцией.
Если пользователь исправит ошибку (рис. 3.49 ) и вновь нажмет , то ответ из программыLab6_0_1.php показан на рис. 3.50.
Рис. 3.49. Исправление в поле Email введенное пользователем.
Рис. 3.50. Сообщение о правильности ввода контролируемое функциейval_email().
Ответьте на вопрос. Существует ли в реальности такой адрес Email, приведенный на рис, 3.49. ?
Задание 3. Проверка ограничений в текстовом поле.Lab6_0_2.Php
Очень часто встречается ситуация, когда надо написать регистрацию на ресурсе, который вы поддерживаете. В силу каких-либо причин выдвигаются требования к введенной информации. Например, как проверить, что пользователь ввел в качестве ника (nickname, login) слово, состоящее только из букв латинского алфавита и цифр.
Проверку условия приведена внутри кода (рис. 3.51), чтобы было понятно, что и куда писать:
<?php
$user = $_POST['username'];
if(!preg_match("/^[a-zA-Z0-9]+$/", $user)) {
echo "Имя пользователя задано в неправильном формате";
} else {
echo "Имя пользователя задано в правильном формате";
}
?>
Рис. 3.51. Проверка специфичного имени пользователя.
Разбирем само регулярное выражение.
Так как регистрационное имя пользователя должно состоять из латинских букв, а также цифр, то надо написать символьный класс, который будет удовлетворять этому условию: [a-zA-Z0-9].
В этот символьный класс входит три интервала, первый интервал a-z (все символы от маленькой буквы a до маленькой буквы z), второй интервал A-Z (аналогично, но с большими буквами), третий интервал 0-9 (цифры от 0 до 9). Мы описали только одну букву, из которой может состоять регистрационное имя, но таких букв может быть... а теперь как раз надо ответить на вопрос, сколько таких букв может быть?
Если Ваш ответ будет: “Да сколько угодно”, то вы неправы.
Регистрационное имя должно состоять минимум из одной буквы! и это обязательное условие при прохождении регистрации, поэтому надо данный факт описать. Вспоминаем про квантификаторы: [a-zA-Z0-9]+
Плюс '+', как раз тот квантификатор, который говорит, что в строковой переменной $user должен быть минимум один символ, который соответствует условию.
Далее надо сказать регулярному выражению, что условию должна соответствовать вся строка, от начала до конца, поэтому добавляем в регулярное выражение символ начала строки '^' в начале регулярного выражения и символ конца строки '$' в конец: ^[a-zA-Z0-9]+$
Теперь надо объяснить функции preg_match, что строка ^[a-zA-Z0-9]+$ является регулярным выражением, надо поставить ограничители, для этого и ставлится слеш '/':
preg_match("/^[a-zA-Z0-9]+$/",$user)
Полный листинг сценария в котором использовано ограничение для вводимого имени приведено на рис. 3.52 (файл Lab6_0_2.php).
Рис. 3.52. Листинг программы Lab6_0_2.php (проверка имени пользователя).
Рис. 3.53. Конец листинга программы Lab6_0_2.php.
Ниже на рис. 3.54 приведена форма ввода для листинга программы из рис. 3.52 - 3.53.
Рис. 3.54. Заполненная форма. Программа Lab6_0_2.php.
Если будет нажата кнопка , то результат показан на рис. 3.55.
Рис. 3.55. Результат работы программы Lab6_0_2.php.
Если пользователь введет информацию, как показано на рис. 3.56, то результат приведен на рис. 3.57.
Рис. 3.56. Заполненная форма. Программа Lab6_0_2.php.
В введенном имени присутствуют русские буквы, поэтому реакция будет следующей.
Рис. 3.57. Результат работы программы Lab6_0_2.php.