Файл: Разработка Web-сайта с использованием технологии PHP и MS SQL.pdf
Добавлен: 28.03.2023
Просмотров: 359
Скачиваний: 6
СОДЕРЖАНИЕ
1.1 Описание предметной области. Постановка задачи
1.2.Выбор средств / методологии проектирования. Выбор СУБД
1.3. Проектирование и создание базы данных
1.4. Подготовка для работы с языком PHP
1.5 Оценка экономической эффективности проекта
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
ПРИЛОЖЕНИЕ 1 – Структура тестовой БД.
ПРИЛОЖЕНИЕ 2 – Логическая структура БД для домашней библиотеки.
ПРИЛОЖЕНИЕ 3 – Скрипты создания таблиц и связей в БД library.
<?php
//PHP код будет здесь
?>
Любой файл, содержащий php-код, должен иметь расширение «.php».
Еще одной особенностью PHP является возможность оставлять комментарии. Комментарии дают возможность пояснить написанный код и никак не влияют на исполнение скрипта. Есть несколько методов дать комментарии: для однострочного комментария можно использовать «//», блок комментариев пишется внутри «/ * … * /». Например,
<?php
// комментарий
/*
блок
комментариев
*/
?>
В PHP используются переменные – это некие контейнеры, в которых хранится информация. Переменные в зависимости от типа могут содержать текстовые значения, числа, массивы или значение другой переменной.
Имя переменной должно состоять из букв латинского алфавита, также оно может содержать цифры и символ нижнего подчеркивания. Важно помнить, что цифры могут содержаться в имени переменной, но не первым символом. Перед именем переменных ставится $. Например:
$name
$user_name
$name11
$name_11
$myname
$Myname
Переменные $Myname и $myname – это разные переменные, то есть PHP учитывает регистр.
Для того чтобы присвоить переменной определенное значение нужно использовать оператор присваивания =. Пример:
$name = «Анастасия»;
$age = 26;
В PHP как и в других языках программирования, есть операторы, то есть наборы символов, выполняющих операции в коде. Например, чтобы присвоить значение переменной, используется оператор присваивания =. Именно оператор определяет действия, которые необходимо выполнить.
Существуют арифметические (Рисунок 19), строковые (Рисунок 20), логические операторы (Рисунок 21), операторы присваивания (Рисунок 22), сравнения (Рисунок 23), инкремента и декремента (Рисунок 24), оператор вывода, условные операторы и оператор switch.
Рисунок 19 – Арифметические операторы
Рисунок 20 – Строковые операторы
Рисунок 21 – Логические операторы
Рисунок 22 – Операторы присваивания
Рисунок 23 – Операторы сравнения
Рисунок 24 – Операторы инкремента и декремента
Чтобы вывести что-то на экран необходимо использовать оператор вывода echo. Например, выведем на экран значения переменных:
<?php
$name = "Анастасия";
$age = 26;
$city = "Самара";
echo $name;
echo "<br>";
echo $age;
echo "<br>";
echo $city;
echo "<br>";
echo "Меня зовут ".$name.", мне ".$age." лет, я живу в городе ".$city.".";
?>
После выполнения скрипта, в браузере появится следующий результат:
Анастасия
26
Самара
Меня зовут Анастасия, мне 26 лет, я живу в городе Самара.
Условные операторы – это набор команд, которые используются для выполнения определенных действий, прописанных в коде, в случае выполнения/невыполнения заданных условий.
if (выражение) блок_выполнения
else блок_выполнения1
Конструкция if...else читается следующим образом: если выполнено условие (т.е. выражение = true), то выполнить действия из блока_выполнения, иначе (т.е. выражение = false) – действия из блока_выполнения1. Использование оператора else не обязательно. Пример:
<?
$names = array("Иван","Петр","Семен");
if ($names[0]=="Иван") {
echo "Привет, Ваня!";
$num = 1;
$account = 2000;
} else {
echo "Привет, ".$names[0].
" А мы ждали Ваню :(";
}
if ($num) echo "Иван первый в списке!";
else echo "Иван НЕ первый в списке?!";
$bax = 30;
if ($account > 100*$bax+3)
echo "Эта строка не появится на экране,
так как условие не выполнено";
else echo "Зато появится эта строка!";
?>
Switch – это еще одна конструкция, позволяющая проверять истинность выражения и в зависимости от этого выполнять различные действия. Можно перевести название, отражающее суть данного оператора, как "переключатель". Switch очень похож на набор операторов if: в зависимости от значения переменной, он переключается между различными блоками выполнения. Структура switch показана ниже:
switch (выражение или переменная){
case значение1:
блок_действий1
break;
case значение2:
блок_действий2
break;
...
default:
блок_действий_по_умолчанию
}
Существует восемь простых типов данных, поддерживаемых PHP.
Скалярные типы:
- boolean (логический);
- integer (целый);
- float (с плавающей точкой);
- string (строковый).
Смешанные типы:
- array (массив);
- object (объект).
Специальные типы:
- resource (ресурс);
- NULL.
В отличие от других языков программирования, в PHP не принято открытое объявление типа переменной. Тип присваивает интерпретатор во время исполнения кода в зависимости от контекста, в котором используется переменная.
В PHP существуют конструкции, позволяющие выполнять повторяющиеся действия - циклы.
Простой цикл while выполняет код, пока выражение определяется как True. Значение выражения проверяется каждый раз перед выполнением цикла.
<?
//эта программа напечатает все четные цифры
$i = 1;
while ($i < 10) {
if ($i % 2 == 0) print $i;
// печатаем цифру, если она четная
$i++;
// и увеличиваем $i на единицу
}
?>
Цикл do..while схож с циклом while, но истинность выражения проверяется в конце, а не в начале цикла. За счет этого код внутри цикла будет выполнен не менее одного раза.
Структура:
do {блок_выполнения} while (выражение);
<?
// эта программа напечатает число 12, несмотря на то
// что условие цикла не выполнено
$i = 12;
do{
if ($i % 2 == 0) print $i;
// если число четное, то печатаем его
$i++;
// увеличиваем число на единицу
}while ($i<10)
?>
Функция форматного вывода printf() производит форматирование и выводит результаты в браузер или консоль.
<?php
$day = 2;
$month = 3;
$year = 2003;
printf("%02d/%02d/%04d", $day, $month, $year);
?>
Большое внимание стоит уделять проверке корректности данных, вводимых пользователем, так как необработанные ошибки, возникающие при вводе неверных данных, приводят к сбою в работе самого скрипта. Например, при создании формы для отправки письма, в случае если электронный адрес получателя будет вводить пользователь, важно сделать как минимум две вещи:
1. Проверить, что поле, в которое вносится адрес электронной почты, непустое;
2. С помощью регулярного выражения проверить соответствие введенного адреса.
Кроме пользовательских ошибок, следует также предусмотреть ситуации умышленного введения некорректных данных, например, скриптов. Для этого, прежде чем отправлять переменную на сервер, вводимый текст необходимо обработать функциями удаления HTML-тегов и обратных слешей. Получается, что минимальная обработка заключается в следующем:
- проверка на непустую строку
- проверка соответствию шаблону
- обработка строки функцией htmlspecialchars для удаления HTML-тегов
- обработка строки функцией stripslashes для удаления обратных слешей.
Передача переменных в PHP.
PHP предоставляет нам возможность передавать данные из одной формы в другую, что позволяет нам создавать сложные структуры сайтов и обработки информации. Мы различаем два способа передачи переменных: GET и POST. При использовании любого из этих способов, важно сначала запустить сессию (session_start()). Рассмотрим эти способы подробнее.
Передача переменных при помощи метода GET. Данный метод передачи переменных применяется в PHP для передачи переменных в следующий php файл при помощи адресной строки. То есть переменные передаются сразу через адресную строку браузера.
Передача переменных в PHP при помощи метода POST. Данный способ позволяет скрыто передавать переменные с одного файла в другой. Обычно для этих целей используются два файла. В первом находится форма для ввода исходных данных, а во втором исполнительный файл, который принимает переменные.
Основные функции для работы с БД MS SQL.
sqlsrv_connect() – используется для подключения к MS SQL Server. По умолчанию используется Windows-аутентификация. Имеет два параметра: название сервера и строка для подключения. Пример:
$serverName = "localhost";
$connectionInfo = array( "Database"=>"library", "UID"=>"adm", "PWD"=>"adm","CharacterSet" => "UTF-8");
@$on_link = sqlsrv_connect( $serverName, $connectionInfo);
sqlsrv_query() – используется для формирования запроса на сервер. Имеет два обязательных параметра: используемое соединение (результат функции sqlsrv_connect()) и строка запроса. Так же могут быть использованы другие параметры: список параметров для передачи в запрос и доп. опции. Пример использования:
$sql = "SELECT id, last_name+', '+name as name from [library].[dbo].[authors] order by name";
$result_select = sqlsrv_query(@$on_link, $sql);
sqlsrv_fetch_array() – используется для обработки получаемой строки, возвращает строку с данными как массив. Имеет один обязательный параметр - источних данных (например, результат функции sqlsrv_query). Так же присутствуют дополнительные параметры: тип массива (по умолчанию принимает значение SQLSRV_FETCH_BOTH), порядок обработки строк (по умолчанию SQLSRV_SCROLL_RELATIVE) и ссылка на индекс строки при использовании определенных значений в предыдущем параметре. Например:
while ($row = sqlsrv_fetch_array($result_select, SQLSRV_FETCH_ASSOC)) {
echo $row['id'] .", ".$row['name']; };
sqlsrv_fetch_object() – используется для возвращения строки данных в качестве объекта. Имеет один обязательный параметр - источних данных (например, результат функции sqlsrv_query). Так же имеет три дополнительных параметра. В моей работе данные параметры не пригодились. Пример использования:
while( $obj = sqlsrv_fetch_object($result_select)) {
echo $obj-> id.", ".$obj-> name."<br />"
sqlsrv_errors() – возвращает последнюю возникшую ошибку операции группы функций sqlsrv. Больше используется на этапе разработки, отладки или тестирования.
ПРОЕКТИРОВАНИЕ WEB-САЙТА ДЛЯ ДОМАШНЕЙ БИБЛИОТЕКИ
Начальные настройки php и запуск локального сервера.
На самом деле, подружить php и MS SQL не так то просто. Для начала необходимо установить сам php. Я воспользовалась свободным приложением от Microsoft - Web Platform Installer. Его я скачала с сайта Microsoft. После установки php согласно инструкции, необходимо дополнительно установить библиотеку для работы php с MS SQL. Но сначала нужно опредилить, какая версия библиотеки должна быть установлена. Для этого я воспользовалась так же справкой Microsoft к устанавливаемой библиотеке (Рисунок 25).
Рисунок 25 - Справка Microsoft
У меня установлен PHP Version 7.4.1, соответствено мне необходима версия 4.0. Установила библиотеки в нужную директорию. Далее переходим в файл php.ini для добавления этих библиотек. Сразу включаем воспроизведение ошибок и логирование с помощью строчек:
display_errors = On
display_startup_errors = On
log_errors = On
Раскомментируем строчку:
extension_dir="C:\Program Files\iis express\PHP\v7.4\ext\"
И добавляем строчки с путями до файлов с библиотеками:
extension=php_pdo_sqlsrv_74_nts.dll
extension=php_pdo_sqlsrv_74_ts.dll
extension=php_sqlsrv_74_nts.dll
extension=php_sqlsrv_74_ts.dll
Теперь php готов к работе с MS SQL. Но, так как php является серверным языком, то прежде чем начать создание сайта, необходимо настроить локальный сервер на машине, на которой будет запускаться сайт (любой ПК, физический или виртуальный сервер). Для этого воспользуемся стандартными средствами, предоставляемыми Microsoft, а именно Диспетчер служб IIS. При необходимости устанавливаем ПО и начинаем настройку Пула приложений. Задаем имя новуму пулу и выбираем среду, в которой он будет работать. В нашем случае подойдет стандартная среда .Net v4.03.30319 (Рисунок 26).
Рисунок 26 – создание пула приложений
Далее переходим к созданию сайта. Вносим название сайта, выбираем созданный нами пул приложений, указываем физический путь (корневая папка будущего сайта), и прописываем незанятый порт для подключения (Рисунок 27). Так как сайт будет внутренним, для личного использования, то оставляю протокол http.
Рисунок 27 – окно добавления сайта
Теперь мы можем приступить к созданию самого сайта. Для начала нужно определиться с разметкой сайта. Я выбрала табличную форму, как наиболее простую и универсальную. Таблица на страницах будет стандартно состоять из всего одной колонки и двух строк. В верхней строке всегда будет располагаться «шапка» сайта со ссылкой для перехода на стартовую страницу. Вторая строка является основным информативным полем. Так, на стартовой странице во второй строке содержатся два раскрывающихся блока – Администрирование и Отчеты (Рисунок 28).
Рисунок 28 – Внешний вид домашней страницы
Так же, для единообразия стиля создаем .css файл для описания стилей. С помощью CSS прописываем стандартный стиль элементов сайта. Там же описываем класс для раскрывающихся блоков. Файл .css имеется в Приложении 4, вместе с остальным проектом.