
- •Методические указания к выполнению лабораторных работ Предисловие
- •Библиографический список
- •Лабораторная работа № 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. Создание и удаление баз данных
- •Содержание
4. Указания к выполнению работы
Если Вы не получили окно показанное на рис. 2.31, а получили что-то подобное, как показано например, на рис. 2.32, то Вы скорее всего скопировали в файл index.php информацию из рис. 2.30, что не рекомендуется, т. к. при правке Вы могли допустить неточность.
Рис. 2.32. Предупреждение после модификации кода файла index.php.
Чтобы проверить это предположение закомментарим /* */ введенную часть текста (рис. 2.33).
<html>
<body>
<p> New Проверка моего домена с именем Moy.loc </p>
<? echo "Проверка вставки PHP кода в содержимое HTML" ?><br>
<?
/* комментарий в стиле СИ
$db = mysql_connect("localhost","people","12345");
mysql_select_db ("my_base",$db);
$result = mysql_query ("SELECT * FROM lesonss ", $db);
$num = mysql_num_rows ($result);
echo "Всего лекций в базе My_base, в таблице Lessons пока - $num";
*/
?>
</body>
</html>
Рис. 2.33. Использование блокового комментария в php (строки 7 и 13).
Более подробно использование комментариев в языке PHP приведено далее.
На данном этапе после сохранения изменений и перезапуска Вы увидите уже привычный экран (рис. 2.29). Значит ошибка внутри вставленного кода.
Для простейшей отладки приведите текст программы к виду (рис. 2.34).
<html>
<body>
<p> New 1Проверка моего домена с именем Moy.loc </p>
<? echo "Проверка вставки PHP кода в содержимое HTML" ?><br>
<?
$db = mysql_connect("localhost","people","12345") or die ("Нет соединения". mysql_error());
mysql_select_db ("my_base",$db)or die ("Нет доступа к базе".mysql_error());
$result = mysql_query ("SELECT * FROM lesonss ", $db) or die ("No доступа к табл".mysql_error())
//$num = mysql_num_rows ($result);
//echo "Всего лекций в базе My_base, в таблице Lessons пока - $num";
?>
</body>
</html>
Рис. 2.34. Использование строкового комментария в php (строки 10 и 11) и функции mysql_error().
Обратите внимание, что точка перед функцией mysql_error() поставлена не случайно.
После проведенных манипуляций Вы получите на экране (рис. 35)
Рис. 2.35. Ошибка, выданная функцией mysql_error() из строки 9 кода на рис. 2.14.
Ошибка заключается в неправильном написании слова lesonss в 9-ой строке кода представленного на рис. 2.34. Таблицы с таким названием в базе данных My_Base нет, а есть таблица с именем lessons.
Таким образом, правильный текст программы следующий (рис. 2.36):
<html>
<body>
<p> New Проверка моего домена с именем Moy.loc </p>
<? echo "Проверка вставки PHP кода в содержимое HTML" ?><br>
<?
$db = mysql_connect("localhost","people","12345");
mysql_select_db ("my_base",$db);
$result = mysql_query ("SELECT * FROM lessons ", $db)
$num = mysql_num_rows ($result);
echo "Всего лекций в базе My_base, в таблице Lessons пока - $num";
?>
</body>
</html>
Рис. 2.36. Правильный код index.php.
Используем данный код (рис. 2.36) для проверки функции mail.
$v = mail ("admin@moy.com","Привет", "Проверка функции MAIL"), которая позволяет переслать информацию с сервера клиенту (ам). Текст программы приобретет вид (рис. 2.37).
<html>
<body>
<p> New Mail Проверка моего домена с именем Moy.loc </p>
<? echo "Проверка вставки PHP кода в содержимое HTML" ?><br>
<?
$db = mysql_connect("localhost","people","12345");
mysql_select_db ("my_base",$db);
$result = mysql_query ("SELECT * FROM lessons ", $db);
$num = mysql_num_rows ($result);
echo "Всего лекций в базе My_base, в таблице Lessons пока - $num";
$v = mail ("admin@moy.com","Привет","Проверка функции MAIL");
?>
</body>
</html>
Рис. 2.37. Код index.php использующий обратную связь.
Первый параметр функции mail – это адрес получателя.
Второй параметр функции – это тема письма.
Третий параметр функции – это содержание письма
В качестве получателя использован адрес, сформированный в предыдущей лабораторной работе. Поэтому при загрузке файла Index.html на исполнение, функция mail будет автоматически слать сообщение по указанному адресу.
Если программу представленную на рис. 2.2 сохранить и перейти в Вашем браузере (например, в Internet Explorer) по адресу http://moy.loc/ , то Вы получите следующее окно (рис. 2.38).
Рис. 2.38. Окно браузера.
Аналогичный вариант Вы получите и в окне другого браузера (рис. 2.38a).
Рис. 2.38a. Окно браузера.
Для того чтобы проверить ушло ли сообщение, необходимо перейти в папку куда Вы установили сервер (в нашем случае это C:\WebServers) и найти в ней подпапку с именем !sendmail (рис. 2.39).
Рис. 2.39. Папка !sendmail для хранения сообщений по Email.
Если открыть эту папку, то в ней увидим полученное письмо (рис. 2.40).
Рис. 2.40. Возможный состав папки.
Имя письма состоит из даты отправки и времени получения. Расширение .eml, указывает к какому типу файлов относится данный файл.
Если раскрыть этот файл, то мы увидим следующее содержимое (рис. 2.41).
Рис. 2.41. Содержимое письма.