99137

Создание Web-сайта на языке PHP и MySQL

Курсовая

Информатика, кибернетика и программирование

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

Русский

2016-08-01

6.39 MB

2 чел.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ   РОССИЙСКОЙ ФЕДЕРАЦИИ

НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ

УНИВЕРСИТЕТ

Кафедра   ___________________________________________________________________________

                                                                                      

Заведующий кафедрой

_______________                     _____________

   (подпись)                                   (фамилия, и., о.)

_________________

(дата)

Создание Web-сайта на языке PHP и MySQL

(наименование темы проекта или работы)

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

                _____________________________________________________________________________

            (вид документа - проект дипломный, курсовой, исследовательская работа или часть и т.п.)

КОНСУЛЬТАНТЫ:

РУКОВОДИТЕЛЬ:

  1.   По____________________________
  2.  

_______________                     _____________

   (подпись)                                   (фамилия, и., о.)

_________________

(дата)

_______________                     Леснов И. В.

   (подпись)                                                 (фамилия, и., о.)

                                                                      ________________

(дата)

  1.   По____________________________

_______________                     _____________

   (подпись)                                                   (фамилия, и., о.)

_________________

(дата)

СТУДЕНТ

_______________                    Горбачева А.Ю.      

   (подпись)                                                (фамилия, и., о.)

________________                  ____11-СТ____

(дата)                                            (группа или шифр)

  1.   По____________________________

_______________                               _____________

   (подпись)                                                (фамилия, и., о.)

_________________

(дата)

Проект защищен ______________________

Протокол №         ______________________

С оценкой             ______________________

РЕЦЕНЗЕНТ

_______________                     _____________

   (подпись)                                   (фамилия, и., о.)

_________________

(дата)

2013

Оглавление

1. Техническое задание 3

1.1. Основание назначения разработки 3

1.2. Формулировка задачи 3

1.3. Что необходимо для изучения PHP 4

1.4. Выбор состава технических и программных средств 5

2. Теоретическая часть 7

2.1. О PHP 7

2.2. Синтаксис языка PHP 7

2.3. PHP переменные. 8

2.4. Операторы языка PHP 9

2.5. Типы данных 13

2.6. Строковые функции PHP 15

2.7. Проверка корректности данных 16

2.8. Передача переменных в PHP 17

2.9. PHP и MySQL. Совместная работа 18

2.9.1. Язык SQL 18

2.9.2. Команды языка SQL 18

2.9.3. Взаимодействие PHP и MySQL 19

3. Практическая часть 22

3.1. Структура сайта 22

3.2. Структура страницы 23

3.3. База данных 25

3.4. Дизайн сайта 26

3.5. Коды страниц. 30

3.6. Визуальное представление сайта 38

3.7. Администраторская часть. 41

4. Вывод 52

5. Использованная литература 53


  1.  

Изм.

Лист

№ докум.

Подпись

Дата

Лист

3

КП.НГТУ.ИРИТ.11-СТ

Техническое задание

  1.  Основание назначения разработки

Курсовая работа является результатом подведения итогов по курсу «Информационные технологии». Назначением разработки является изучение и последующее закрепление и углубление знаний и навыков по программированию на скриптовом языке создания WEB-приложений  PHP и работой с базой данных MySQL.

  1.  Формулировка задачи

Разработать WEB-сайт, построенный с помощью языка PHP, который будет предоставлять полезную структурированную информацию пользователям. Сайт должен быть прост в использовании и предельно понятен для пользователей.

Целью данного курсового проекта является создание WEB-сайта на PHP с использованием баз данных MySQL. Для реализации главной задачи необходимо выработать оптимальную структуру Web-сайта, определить наиболее подходящее графическое оформление его компонентов - дизайн сайта. Сайт должен состоять из взаимосвязанных разделов с четко разделенными функциями.

В рамках данного курсового проекта был создан сайт, посвященный дизайну интерьера.  Название сайта - «Desing».

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

Структура сайта определяется внешней и внутренней структурой.

Внешняя структура сайта состоит из:

  1.  Шапки сайта (располагается заголовок сайта);
  2.  Области контента (публикуется основная информация);
  3.  Области меню (прописываются названия категорий, а также последние добавления);
  4.  Подвала (содержит служебную информацию).

Внутренняя структура сайта должна определяться следующими элементами:

  1.  Главная страница. На ней необходимо поместить ознакомительную информацию.
  2.  Страницы, содержащие информацию о каждой категории статей и собственно списки этих статей.
  3.  Страницы, отвечающие за сами статьи.
  4.  На каждой странице должно размещаться навигационное меню с категориями статей, последними добавленными статьями.
  5.  Блок администратора, через который осуществляется добавление, изменение и удаление всей представленной на сайте информации (категорий, статей, пояснительных текстов).

Дизайн сайта должен отражать тематику данного проекта, а также привлекать потенциальных посетителей сайта.

Дизайн сайта создать с использованием CSS – каскадных таблиц стилей.  Язык стилей СSS предназначен для задания эффектов и форматирования web-страниц.

Таблица стилей содержит набор правил (стилей), описывающих оформление сайта в целом (дизайн сайта) её отдельных страниц, и отдельных ее фрагментов.

Информационный сайт – сайт, который содержит исчерпывающую информацию по некоторой предметной области. Целью является  представление информации в Интернете, сервис и поддержка клиентов, оказание информационных услуг. Важно правильно объединить дизайн сайта и размещаемую на нем информацию,  оптимизировать и скорректировать текстовые и графические материалы для Web-сайта. С одной стороны, информация на сайте должна быть максимально полной и исчерпывающей, с другой стороны, текстовый материал должен быть правильно организован. Вся текстовая информация, предоставленная на сайте, должна быть легко управляема, обновляема и удаляема. Для обеспечения данных условий, контент должен храниться в базе данных, в данном случае используется база данных  MySQL.

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

  1.  Разработка структуры php-файлов сайта;
  2.  Соединение сайта с базой данных mysql;
  3.  Извлечение из базы информации;
  4.  Подключение блоков к сайту;
  5.  Наполнение сайта текстовым содержание, путём ручного ввода данных в базу данных mysql;
  6.  Создание администраторского раздела сайта;
  7.  Наполнение сайта содержимым через администраторский раздел;
  8.  Установка пароля на администраторскую зону;
  9.  Реализация возможности редактирования/добавления/удаления данных в базе данных через администраторскую зону сайта;

  1.  Что необходимо для изучения PHP

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

Самое замечательное в PHP является то, что это веб-ориентированный язык. Языка, специально предназначенных для использования в интернете, освоив данный язык, вы получите много возможностей в области создании сайтов. Самым главным достоинств PHP является то, что его можно сочетать с HTML кодом. То – есть PHP код можно внедрят непосредственно в HTML теги, или наоборот HTML теги можно внедрят в PHP код, что и делает его замечательным языком.

Он достаточно прост в изучении и очень сильно упрощает процесс создания сайтов. Благодаря языку php и базы данных MySql можно уместить в 2-ух файлах огромное количество страниц. Язык php позволяет легко менять дизайн сайта. Ведь лучше изменить

Изм.

Лист

№ докум.

Подпись

Дата

Лист

4

КП.НГТУ.ИРИТ.11-СТ

данные в одном файле, чем в нескольких тысяч. Не так ли? Поэтому многие разработчики используют php при разработке web-сайтов.

Изм.

Лист

№ докум.

Подпись

Дата

Лист

5

КП.НГТУ.ИРИТ.11-СТ

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

Что необходимо для изучения php?

Для изучения языка php в отличие от html, css, javascript необходим сервер. Сервер нам понадобиться для отладки и тестирования скриптов. Тестировать свои скрипты на удаленном сервере весьма неудобно, так как необходимо постоянное подключение к интернету, и нормальны скорость соединения с интернетом. Чтобы мы могли тестировать наши скрипты на нашем локальном компьютере без необходимости подключения к интернету, мы можем установить, локальны сервер на нашем компьютере.

  1.  Выбор состава технических и программных средств

Выбор хорошей среды разработки приложений - одна из первоочередных задач любого разработчика. Отладка, дополнение кода, проверка синтаксиса – самые важные компоненты редактора, которые сильно экономят время и силы программиста. Для разработки был выбран редактор Adobe Dreamweaver CS4.  

Dreamweaver - программа для создания Web-страниц. Ее возможности шире по сравнению с обычными функциями подобных редакторов.

  Adobe Dreamweaver включает самые прогрессивные возможности и технологии, с помощью которых можно создавать динамичные и современные веб-сайты, соответствующие сегодняшним стандартам. Данное приложение позволяет не только с легкостью проектировать дизайн сайта, используя визуальные методы, но и предоставляет необходимые средства для продуктивной разработки веб-приложений. Тут присутствует полная поддержка формата CSS, с функцией проверки его совместимости с различными браузерами, функциональный редактор кода веб-страниц и возможность работать с такими технологиями, как: XML, JavaScript, PHP, Adobe ColdFusion, ASP и ASP.NET.

Для того, чтобы создать сайт на PHP с использованием  MySQL, необходимо установить на локальный компьютер, где будет разрабатываться сайт, необходимое программное обеспечение.

В данном курсовом проекте использовался Денвер (джентльменский набор Web-разработчика) - набор дистрибутивов и программная оболочка, предназначенные для создания и отладки сайтов (веб-приложений, прочего динамического содержимого интернет-страниц) на локальном ПК (без необходимости подключения к сети Интернет) под управлением ОС Windows.


Базовый (основной) пакет Денвера включает в себя следующее:

  1.  Инсталлятор, встроена поддержка установки Денвера на флеш-накопитель, т.е. Ваши сайты можно переносить с одного компьютера на другой и продолжить разработку.
  2.  Apache, SSL, SSI, mod_rewrite, mod_php.
  3.  PHP5 с поддержкой GD, MySQL, sqLite.
  4.  MySQL5 с поддержкой транзакций.
  5.  

Изм.

Лист

№ докум.

Подпись

Дата

Лист

6

КП.НГТУ.ИРИТ.11-СТ

Система управления виртуальными хостами, основанная на шаблонах. Для создания нового хоста, Вам нужно лишь добавить директорию в каталог /home, вносить правки в конфигурационные файлы не нужно.

  1.  Схемы именования директорий многих популярных хостеров поддерживаются по умолчанию, новые можно добавить без труда.
  2.  Система управления запуском и завершением всех компонентов Денвера.
  3.  phpMyAdmin — система управления MySQL через Web-интерфейс.
  4.  Эмулятор sendmail и SMTP-сервера (отладочная «заглушка» на localhost:25, складывающая приходящие письма в /tmp в формате .eml); поддерживается работа совместно с PHP, Perl, Parser и т.д.


  1.  Теоретическая часть
  2.  

Изм.

Лист

№ докум.

Подпись

Дата

Лист

7

КП.НГТУ.ИРИТ.11-СТ

О PHP

Главной областью применения PHP является написание сценариев, которые работают на стороне сервера. Помимо различных операций с содержимым ваших html-документов, с помощью PHP можно форматировать HTTP-заголовки, устанавливать cookie, управлять аутентификацией, а также перенаправлять пользователя на другие страницы. PHP предоставляет великолепные возможности по доступу к базам данных, позволяет интеграцию с различными внешними библиотеками. Это позволит вам делать практически все, что вы захотите - от генерации PDF-документов до подробного парсинга в XML.

Основные  достоинства PHP:

  1.  Весь код обрабатывается и исполняется на стороне сервера
  2.  Поддерживает работу с множеством СУБД (MySQL, Oracle, PostgreSQL и т.д.)
  3.  Является программным обеспечением с открытым исходным кодом
  4.  Работает на разных платформах (Windows, Linux, Unix подобных)
  5.  PHP очень прост для освоения
  6.  Много возможностей по расширению возможностей языка
  7.  Поддержка различных веб-серверов

Таким образом, выбирая в качестве языка программирования PHP, вы получаете огромные возможности по использованию языка, свободу выбора понравившегося веб-сервера и операционной системы. Более того, у вас появляется выбор между использованием объектно-ориентированного программирования (ООП) или процедурного или же их сочетания.

  1.  Синтаксис языка PHP

Самое замечательное в PHP является то, что это веб-ориентированный язык. Язык, специально предназначены для использования в интернете, освоив данный язык, вы получите много возможностей в области создании сайтов. Самым главным достоинств PHP является то, что его можно сочетать с HTML кодом. То – есть php код можно внедрят непосредственно в HTML теги, или наоборот HTML теги можно внедрят в PHP код, что и делает его замечательным языком.

PHP скрипты выполняется на сервере, а результат виде HTML кода отправляется обратно в браузер.

PHP скрипты всегда начинается с <?php и заканчивается ?>, также можно использовать и какую сокращенную форму <? и заканчивается ?>.

Все, что внутри этих тегов будет признан код PHP, все, что за пределами этих тегов PHP будет признан как обычный HTML. PHP код может быть размещен в любом месте документа. Самым главным достоинств PHP является то, что его можно сочетать с HTML кодом. То – есть php код можно внедрят непосредственно в HTML теги, или наоборот HTML теги можно внедрят в php код, что и делает его замечательным языком.

<?php

Изм.

Лист

№ докум.

Подпись

Дата

Лист

8

КП.НГТУ.ИРИТ.11-СТ

 //PHP код будет здесь

?>

Любой файл страницы вашего сайта, который содержит php код, должен иметь расширение «.php», например index.php.

Комментарии в PHP

Комментарий хороший способ, чтобы вставить объяснения кода в простом русском языке, который никоим образом не будет влиять на ваш скрипт. Комментарии помогут другим программистам понять код, который вы написали. Комментарии могут быть написаны несколькими способами (все, что после «//» однострочные комментарий, чтобы сделать блок комментарий используйте «/ * … * /»):

<?php

//Это  комментарий

/*

 Это блок

 комментарий

*/

?>

  1.  PHP переменные.

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

Имя переменной в php должно состоять из букв латинского алфавита, имя переменной также может содержать цифры и символы подчеркивания, но имя переменной не должно начинаться с цифр, то – есть переменная может содержать цифры, но не может начинаться с цифр. Вот это запомните!

Переменные в php всегда начинаются со знака доллара, $ например:

 $name

$user_name

$name12

$name_12

 $age

$myname

$Myname

Переменные $myname и $Myname это разные переменные, то – есть учитывается регистр.

Присваивание значений переменной.

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

Пример:

 

$name = «Иванов»;

$age = 1986;

  1.  Операторы языка PHP

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

Оператор в языке РНР как и в любом другом языке программирования определяет, какие действия необходимо выполнить.

Арифметические операторы

Изм.

Лист

№ докум.

Подпись

Дата

Лист

9

КП.НГТУ.ИРИТ.11-СТ

Строковые операторы


Операторы присваивания

Логические операторы

Операторы сравнения

Изм.

Лист

№ докум.

Подпись

Дата

Лист

10

КП.НГТУ.ИРИТ.11-СТ


Операторы инкремента и декремента

Изм.

Лист

№ докум.

Подпись

Дата

Лист

11

КП.НГТУ.ИРИТ.11-СТ

Оператор вывода echo.

Чтобы вывести что – то на экран мы должны воспользоваться оператором вывода echo.

Давайте рассмотрим конкретный пример, выведем на экран значений переменных.

<?php

$name = "Сергей";

$age = 1986;

echo $name;

echo "<br>";

echo $age;

echo "<br>";

echo "Меня зовут $name, я родился в $age году.";

?>

После выполнения данного скрипта, в браузере мы увидим следующий результат.

Сергей

1986

Меня зовут Сергей, я родился в 1986 году.

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

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

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

else блок_выполнения1

Эту конструкцию if...else можно интерпретировать примерно так: если выполнено условие (т.е. выражение=true ), то выполняем действия из блока_выполнения, иначе – действия из блока_выполнения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 . На русский язык название данного оператора можно перевести как "переключатель". И смысл у него именно такой. В зависимости от того, какое значение имеет переменная, он переключается между различными блоками

Изм.

Лист

№ докум.

Подпись

Дата

Лист

12

КП.НГТУ.ИРИТ.11-СТ

действия. switch  очень похож на оператор if...elseif...else или набор операторов if . Структуру switch  можно записать следующим образом:

switch (выражение или переменная){

case значение1:

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

break;

case значение2:

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

break;

...

default:

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

}


  1.  Типы данных

PHP поддерживает восемь простых типов данных.

Четыре скалярных типа:

  1.  boolean (логический) ;
  2.  integer (целый) ;
  3.  float (с плавающей точкой) ;
  4.  string (строковый).

  1.  Два смешанных типа:
  2.  array (массив) ;
  3.  object (объект).

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

  1.  resource (ресурс) ;
  2.  NULL.

Изм.

Лист

№ докум.

Подпись

Дата

Лист

13

КП.НГТУ.ИРИТ.11-СТ

В PHP не принято явное объявление типов переменных. Предпочтительнее, чтобы это делал сам интерпретатор во время выполнения программы в зависимости от контекста, в котором используется переменная. Рассмотрим по порядку все перечисленные типы данных.

Циклы

В PHP существует несколько конструкций, позволяющих выполнять повторяющиеся действия в зависимости от условия. Это циклы while , do..while.

while

Структура:

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

while  – простой цикл. Он предписывает PHP выполнять команды блока_выполнения до тех пор, пока выражение вычисляется как True (здесь, как и в if , происходит приведение выражения к логическому типу). Значение выражения проверяется каждый раз в начале цикла, так что, даже если его значение изменилось в процессе выполнения блока_выполнения, цикл не будет остановлен до конца итерации (т.е. пока все команды блока_выполнения не будут исполнены).

<?

//эта программа напечатает все четные цифры

   $i = 1;

   while ($i < 10) {

       if ($i % 2 == 0) print $i;  

   // печатаем цифру, если она четная

       $i++;   

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

   }

?>

do... while

Циклы do..while  очень похожи на циклы while , с той лишь разницей, что истинность выражения проверяется в конце цикла, а не в начале. Благодаря этому блок_выполнения цикла do...while гарантированно выполняется хотя бы один раз.

Изм.

Лист

№ докум.

Подпись

Дата

Лист

14

КП.НГТУ.ИРИТ.11-СТ

Структура:

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

<?

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

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

$i = 12;

   do{

       if ($i % 2 == 0) print $i;  

   // если число четное, то печатаем его

       $i++;   

   // увеличиваем число на единицу

   }while ($i<10)

?>

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

include

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

include 'имя_файла';

include ("имя_файла");

Пример. Пусть в файле params.inc у нас хранится набор каких-то параметров и функций. Каждый раз, когда нам нужно будет использовать эти параметры (функции), мы будем вставлять в текст нашей основной программы команду include 'params.inc'.

params.inc

<?php

$user = "Вася";

$today = date("d.m.y");

/* функция date() возвращает дату

и время (здесь – дату в формате

день.месяц.год) */

?>

include.php

<?php

include ("params.inc");

/* переменные $user и $today заданы в файле

params.inc. Здесь мы тоже можем ими

Изм.

Лист

№ докум.

Подпись

Дата

Лист

15

КП.НГТУ.ИРИТ.11-СТ

пользоваться благодаря команде

include("params.inc") */

echo "Привет, $user!<br>";  

   // выведет "Привет, Вася!"

echo "Сегодня $today";      

   // выведет, например, "Сегодня 7.07.05"

?>

Если файл включен с помощью include , то содержащийся в нем код наследует область видимости переменных строки, где появился include . Любые переменные вызванного файла будут доступны в вызывающем файле с этой строки и далее. Соответственно, если include  появляется внутри функции вызывающего файла, то код, содержащийся в вызываемом файле, будет вести себя так, как будто он был определен внутри функции. Таким образом, он унаследует область видимости этой функции.

  1.  Строковые функции PHP

Функция strlen()

Возвращает длину строки, которую принимает в качестве аргумента:

<?

  $string = "Hello, world!!!";

  $string_len = strlen($string);

  echo ($string_len);

?>

Функция trim()

Эта функция принимает в качестве своего единственного аргумента строку, и удаляет из нее пробелы слева и справа.

<?php

  $string = trim("   Hello, world!   ");

?>


Функция форматного вывода printf()

Производит форматирование и выводит результаты в выходной поток (браузер или консоль).

<?php

  $day = 2;

  $month = 3;

  $year = 2003;

  printf("%02d/%02d/%04d", $day, $month, $year);

?>

  1.  Проверка корректности данных

Изм.

Лист

№ докум.

Подпись

Дата

Лист

16

КП.НГТУ.ИРИТ.11-СТ

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

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

Кроме чистых ошибок пользователя, необходимо также исключить ситуации, в которых возможно злонамеренное введение некорректных данных, к примеру, различных скриптов. Для этого вводимый пользователем текст необходимо обработать функциями удаления HTML-тегов (для исключения возможности написания скриптов на JavaScript и Visual Basic) и обратных слешей (для исключения возможности написания скриптов на Perl). Т. о. минимальный набор действий, необходимый для проверки корректности данных, вводимых пользователем, включает следующие этапы:

  1.  проверка того, что пользователь ввел данные
  2.  проверка допустимости вводимых пользователем данных (как правило, осуществляется при помощи регулярных выражений)
  3.  обработка текста, введенного пользователем функцией htmlspecialchars для удаления HTML-тегов
  4.  обработка текста, введенного пользователем функцией stripslashes для удаления обратных слешей.


Проверка на пустоту поля

Проверка того, что пользователь ввел данные, может осуществляться, к примеру, с помощью функции isset:

<?

 $name = $_POST['name'];

 if (!isset($name))

 {

   // если переменная $name не существует просим повторить ввод имени

?>

   <h1> Вы забыли ввести ваше имя </h1>

   <!-- далее следует HTML-код формы, в которой вводится имя -->

<?

 }

 else

 {

   -

 }

Изм.

Лист

№ докум.

Подпись

Дата

Лист

17

КП.НГТУ.ИРИТ.11-СТ

?>

Удаление HTML - тегов и обратных слешей

Вводимый пользователем текст необходимо обработать функциями удаления HTML-тегов (для исключения возможности написания скриптов на JavaScript и Visual Basic) и обратных слешей (для исключения возможности написания скриптов на Perl). К примеру, если переменная $name содержит текст с именем пользователя, то обработка этого текста выглядит так:

<?

 $name = substr($_POST["name"],0,32);

 $name = htmlspecialchars(stripslashes($name));

?>

  1.  Передача переменных в PHP

Передача переменных при помощи метода GET

Данный метод передачи переменных применяется в PHP для передачи переменных в файл при помощи адресной строки. То есть переменные передаются сразу через адресную строку браузера.

Передача переменных в PHP при помощи метода POST

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

  1.  

Изм.

Лист

№ докум.

Подпись

Дата

Лист

18

КП.НГТУ.ИРИТ.11-СТ

PHP и MySQL. Совместная работа

MySQL – это одна из самых популярных и самых распространенных СУБД (система управления базами данных) в интернете. Она не предназначена для работы с большими объемами информации, но ее применение идеально для интернет сайтов, как небольших, так и достаточно крупных.

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

Взаимодействие с базой данных происходит при помощи Системы Управления Базой Данных (СУБД), которая расшифровывает запросы и производит операции с информацией в базе данных. Поэтому более правильно было бы говорить о запросе к СУБД и о взаимодействии с СУБД из Web-приложения. Но так как это несколько усложняет восприятие, далее везде мы будем говорить "база данных", подразумевая при этом СУБД.

  1.  Язык SQL

Для манипуляции данными, хранящимися в базах данных, необходим SQL – структурированный язык запросов. Этот язык дает возможность создавать, редактировать и удалять информацию, хранящуюся в базах данных, создавать новые базы данных и многое другое. SQL является стандартом ANSI (Американский национальный институт стандартов) и ISO (Международная организация по стандартизации).

Функции любой СУБД включают:

  1.  создание, удаление, изменение базы данных (БД);
  2.  добавление, изменение, удаление, назначение прав пользователя;
  3.  внесение, удаление и изменение данных в БД (таблиц и записей);
  4.  выборку данных из БД.
    1.  Команды языка SQL
  5.  CREATE DATABASE

Эта команда создает новую базу данных:

CREATE DATABASE db_name;

  1.  CREATE TABLE

Команда CREATE TABLE создает новую таблицу в выбранной базе данных и которая в простейшем случае имеет следующий синтаксис:

CREATE TABLE table_name [(create_definition, ...)]

  1.  ALTER TABLE

Команда ALTER TABLE позволяет изменить структуру таблицы. Эта команда позволяет добавлять и удалять столбцы, создавать и уничтожать индексы, переименовывать столбцы и саму таблицу. Команда имеет следующий синтаксис:

ALTER TABLE table_name alter_spec


  1.  

Изм.

Лист

№ докум.

Подпись

Дата

Лист

19

КП.НГТУ.ИРИТ.11-СТ

DROP TABLE

Команда DROP TABLE предназначена для удаления одной или нескольких таблиц:

DROP TABLE table_name [ ,table_name,...]

  1.  DROP DATABASE

Команда DROP DATABASE удаляет базу данных со всеми таблицами, входящими в её состав:

DROP DATABASE database_name

  1.  INSERT INTO…VALUES

Команда INSERT…VALUES вставляет новые записи в существующую таблицу. Синтаксис команды:

INSERT INTO table_name VALUES (values,…)

После оператора VALUES в скобках через запятую перечисляются значения соответствующих полей таблицы в соответствии с их типами.

  1.  DELETE

DELETE FROM table_name [WHERE definition]

Команда DELETE удаляет из таблицы table_name записи, удовлетворяющие заданным в definition условиям, и возвращает число удаленных записей.

  1.  SELECT

Команда SELECT предназначена для извлечения строк данных из одной или нескольких таблиц и имеет в общем случае следующий синтаксис:

SELECT column,...

[FROM table WHERE definition]

[ORDER BY col_name [ASC | DESC], ...]

[LIMIT [offset], rows]

  1.  UPDATE

UPDATE table

SET col_name1=expr1 [, col_name2=expr2 ...]

[WHERE definition]

[LIMIT rows]

Команда UPDATE обновляет столбцы таблицы table в соответствии с их новыми значениями в строках существующей таблицы. В выражении SET указывается, какие именно столбцы следует модифицировать и какие величины должны быть в них установлены. В выражении WHERE, если оно присутствует, задается, какие строки подлежат обновлению. В остальных случаях обновляются все строки. Ключевое слово LIMIT позволяет ограничить число обновляемых строк.

  1.  Взаимодействие PHP и MySQL

Построение интерфейса для добавления информации

Разобьем эту задачу на следующие подзадачи:

  1.  установка соединения с БД ;
  2.  выбор рабочей БД ;
  3.  получение списка полей таблицы ;
  4.  отображение полей в html-форму.

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

Установка соединения

Итак, первое, что нужно сделать, - это установить соединение с базой данных. Воспользуемся функцией mysql_connect.

Синтаксис mysql_connect

ресурс mysql_connect ( [строка server

   [, строка username [, строка password

 [, логическое new_link

   [, целое client_flags]]]]])

Данная функция устанавливает соединение с сервером MySQL и возвращает указатель на это соединение или FALSE в случае неудачи.

Выбор базы данных

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

Синтаксис mysql_select_db:

логическое mysql_select_db (

   строка database_name

   [, ресурс link_identifier])

Эта функция возвращает TRUE в случае успешного выбора базы данных и FALSE - в противном случае.

Получение списка полей таблицы

Для получения списка полей таблицы используется команда - mysql_list_fields.

Синтаксис mysql_list_fields

ресурс mysql_list_fields (

   строка database_name,

   строка table_name

 [, ресурс link_identifier])

Изм.

Лист

№ докум.

Подпись

Дата

Лист

20

КП.НГТУ.ИРИТ.11-СТ

Отображение данных, хранящихся в MySQL

Изм.

Лист

№ докум.

Подпись

Дата

Лист

21

КП.НГТУ.ИРИТ.11-СТ

Чтобы отобразить какие-то данные в браузере с помощью PHP, нужно сначала получить эти данные в виде переменных PHP. При работе с MySQL без посредника (такого, как PHP) выборка данных производится с помощью команды SELECT языка SQL:

mysql> SELECT * FROM Artifacts;

mysql_result()

mysql_result() возвращает значение одной ячейки результата запроса. Аргумент field может быть порядковым номером поля в результате, именем поля или именем поля с именем таблицы через точку tablename.fieldname.

Синтаксис mysql_result

смешанное mysql_result (ресурс result,

   целое row [, смешанное field])

Работая с большими результатами запросов, следует задействовать одну из функций, обрабатывающих сразу целый ряд результата (например, mysql_fetch_row(), mysql_fetch_array() и т.д.). Так как эти функции возвращают значение нескольких ячеек сразу, они НАМНОГО быстрее mysql_result(). Кроме того, нужно учесть, что указание численного смещения (номера поля) работает намного быстрее, чем указание колонки или колонки и таблицы через точку.

Вызовы функции mysql_result() не должны смешиваться с другими функциями, работающими с результатом запроса.

Синтаксис mysql_fetch_array

массив mysql_fetch_array ( ресурс result

   [, целое result_type])

Эта функция обрабатывает ряд результата запроса, возвращая массив (ассоциативный, численный или оба) с обработанным рядом результата запроса, или FALSE, если рядов больше нет.

mysql_fetch_array() - это расширенная версия функции mysql_fetch_row(). Помимо хранения значений в массиве с численными индексами, функция возвращает значения в массиве с индексами по названию колонок.

Если несколько колонок в результате будут иметь одинаковые названия, будет возвращена последняя колонка. Чтобы получить доступ к первым, следует использовать численные индексы массива в запросе.


  1.  

Изм.

Лист

№ докум.

Подпись

Дата

Лист

22

КП.НГТУ.ИРИТ.11-СТ

Практическая часть

  1.  Структура сайта

Сайт состоит из двух частей: Общая часть и Администраторская часть.

Общая структура сайта:

  1.  Локальный диск (:Z)/Home/Localhost/www/ php_desing
  2.  admin
  3.  blocks
  4.  Images

add_cat.php

add_article.php

del_cat.php

del_article.php

drop_cat.php

drop_article.php

edit_cat.php

edit_article.php

edit_text.php

index.php

new_cat.php

new_article.php

update_cat.php

update_article.php

update_text.php

style.css

lock.php

  1.  blocks
  2.  db.php
  3.  footer.php
  4.  header.php
  5.  menu.php
  6.  images
  7.  articles

comment.php

index.php

view_cat.php

view_article.php

style.css


  1.  

Изм.

Лист

№ докум.

Подпись

Дата

Лист

23

КП.НГТУ.ИРИТ.11-СТ

Структура страницы

Каждая страница состоит из 5 блоков:

  1.  header.php – шапка сайта, содержит заголовок сайта
  2.  menu.php – навигационное меню, содержит название категорий и последние добавленные статьи. Название категорий и последние добавленные статьи извлекаются из базы данных.
  3.  footer.php – подвал сайта, содержит служебную информацию.
  4.  собственно сама страница, заполненная контентом.

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

Содержание блоков:

  1.  footer.php

<p>Copyright &copy; 2013 Designed by Gorbacheva Alyona</p>

  1.  header.php

<h1><a href="index.php">Design</a></h1>

<h2>The Style of Your Life</h2>

  1.  menu.php

<ul>

 <li>

   <h2>Декор интерьера</h2>

   <ul>

     <?php

$result2 = mysql_query("SELECT * FROM categories",$db);

if (!$result2)

{

echo "<p>Запрос на выборку данных из базы не прошел.<br> <strong>Код ошибки:</strong></p>";

exit(mysql_error());

}

if (mysql_num_rows($result2) > 0)

{

$myrow2 = mysql_fetch_array($result2);

do

{

printf ("<li><a href='view_cat.php?cat=%s'>%s</a></li>",$myrow2["id"],$myrow2["title"]);

}

while ($myrow2 = mysql_fetch_array($result2));

}

else

{

echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";

exit();

}

?>

   </ul>

 </li>

</ul>

<ul>

 <li>

   <h2>Последние статьи</h2>

   <ul>

     <?php

 

$result3 = mysql_query("SELECT id,title FROM data ORDER BY date DESC, id DESC LIMIT 5",$db);

if (!$result3)

{

echo "<p>Запрос на выборку данных из базы не прошел.<br> <strong>Код ошибки:</strong></p>";

exit(mysql_error());

}

if (mysql_num_rows($result3) > 0)

{

$myrow3 = mysql_fetch_array($result3);

do

{

printf ("<li><a href='view_article.php?id=%s'>%s</a></li>",$myrow3["id"],$myrow3["title"]);

}

while ($myrow3 = mysql_fetch_array($result3));

}

else

Изм.

Лист

№ докум.

Подпись

Дата

Лист

24

КП.НГТУ.ИРИТ.11-СТ

{

echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";

exit();

}

?>

   </ul>

 </li>

</ul>

  1.  База данных

Название БД – php_desing. База данных состоит из 6 таблиц (Рис 1).

Таблица categories – определяет и хранит категории, в которых размещаются статьи.

Состоит из 5 полей: id – идентификатор, title – название категории, meta_d – краткое описание, meta_k -  ключевые слова, text – информация о категории.

Таблица userlist – хранит информацию о пользователях, имеющих доступ к администраторской части.

     Состоит из 3 полей: id – идентификатор, user – логин, pass – пароль.

      

Таблица comments – хранит информацию, касающуюся комментариев на страницах со статьями. Состоит из 5 полей: id – идентификатор, post – номер статьи, к которой относится комментарий, author – автор комментария,  text – текст комментария, date – дата добавления комментария.

Таблица comments_setting – определяет описание добавления комментария.

    

Изм.

Лист

№ докум.

Подпись

Дата

Лист

25

КП.НГТУ.ИРИТ.11-СТ

Состоит из 3 полей: id – идентификатор, img – картинка с заданием суммы для проверки посетителя, sum – сумма, рассчитывающаяся на картинке.

Таблица settings – определяет описание главной страницы(index.php).

Cостоит из 6 полей: id – идентификатор, page – страница,  title – название,  meta_d – краткое описание, meta_k – ключевые слова, text – текст, помещающийся на страницу.

Таблица data – хранит все статьи сайта.

Состоит из 10 полей: id – идентификатор, cat – номер категории, к которой относится статья,  meta_d – краткое описание, meta_k – ключевые слова, descriptions – описание статьи, text – текст статьи, date – дата добавления,  title – название, mini_img – миниатюрная картинка.

На рисунке 2 показан структурный вид данной таблицы в базе данных.

Рис. 2

Для извлечения данных из БД, к каждой странице подключается блок db.php, в котором прописывается процедура обращения к базе данных.

<?php

/*Подсоединение к mysqlSERVER*/

$db = mysql_connect ("localhost","siteuser","12345");

mysql_query( 'SET NAMES cp1251' );

/*Выбор базы данных*/

mysql_select_db("php_desing",$db);

?>

  1.  Дизайн сайта

Определяется посредством каскадных таблиц стилей CSS. Для этого, к каждой странице подключается документ style.css

Его содержание:

@charset "windows-1251";

/* CSS Document */

Изм.

Лист

№ докум.

Подпись

Дата

Лист

26

КП.НГТУ.ИРИТ.11-СТ

body {

margin: 20px 0;

padding: 0;

background-image:url(images/fon.jpg);

background-repeat:no-repeat;

background-attachment:fixed;

 

color: #85EEF6;

}

h1, h2, h3, h4, h5, h6 {

font-family: Georgia, "Times New Roman", Times, serif;

font-style: italic;

color: #C3F2F6;

}

p, ul, ol, blockquote {

font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;

font-size: small;

}

h2 {

padding-left: 30px;

background: url(images/img4.gif) no-repeat left center;

}

h3, #colTwo h2 {

padding-left: 25px;

background: url(images/img5.gif) no-repeat left center;

font-size: medium;

}

a {

color: #C3F2F6;

}

a:hover {

text-decoration: none;

color: #FFFFFF;

}

.posted {

padding-top: 10px;

border-top: 1px solid #037881;

font-size: x-small;

}

/* Header */

#header {

width: 710px;

height: 190px;

margin: 0 auto 20px auto;

background: #03666E url(images/img1.jpg);

}

Изм.

Лист

№ докум.

Подпись

Дата

Лист

27

КП.НГТУ.ИРИТ.11-СТ

#header * {

text-decoration: none;

color: #FFFFFF;

}

#header h1 {

float: left;

margin: 0;

padding: 130px 0 0 30px;

}

#header h2 {

float: left;

margin: 0;

padding: 148px 0 0 0;

background: none;

font-size: small;

}

/* Content */

#content {

width: 710px;

margin: 0 auto;

background: url(images/img7.gif) repeat-y;

}

#colOne {

float: left;

width: 400px;

padding: 20px 20px 10px 20px;

background: #03666E;

}

#colTwo {

float: right;

width: 210px;

padding: 25px 20px 0 20px;

background: #03666E;

}

#colTwo ul {

margin-left: 0;

padding-left: 0;

list-style: none;

}

#colTwo h2 {

margin: 20px 0 10px 0;

}

#colTwo ul ul {

margin-left: 25px;

}

Изм.

Лист

№ докум.

Подпись

Дата

Лист

28

КП.НГТУ.ИРИТ.11-СТ

/* Footer */

#footer {

width: 710px;

height: 100px;

margin: 0 auto;

background: url(images/img8.jpg) no-repeat 0px 20px;

}

#footer p {

margin: 0;

padding: 48px 0 0 20px;

font-size: x-small;

color: #FFFFFF;

}

#footer a {

color: #FFFFFF;

}

.article {

border:1px solid #cccccc;

width:95%;

}

.article_title {

background-color: #099;

}

.article_name {

font-weight:bold;

margin-top:7px;

margin-bottom:7px;

}

.article_adds {

font-size:11px;

margin-top:7px;

margin-bottom:7px;

color: #033;

}

.article_view {

font-size:11px;

color: #FFF;

}

.mini {

border: 1px solid #000000;

margin-right: 10px;

margin-top:2px;

}

.article_title2 {

font-family: Georgia, "Times New Roman", Times, serif;

 

Изм.

Лист

№ докум.

Подпись

Дата

Лист

29

КП.НГТУ.ИРИТ.11-СТ

font-style: italic;

color: #FFF;

font-size:18px;

font-weight:bold;

text-align:center;

}

.article_add {

font-size:11px;

margin-top:10px;

margin-bottom:10px;

font-weight:bold;

color: #033;

}

.article_comment {

font-size:13px;

font-weight:bold;

color: #033;

}

.article_comment_add {

font-size:11px;

}

.article_div {

border-top:1px solid gray;

border-bottom:1px solid gray;

margin:15px;

}

.article_div p {

 margin-left:0px;

}

  1.  Коды страниц.

Вся информация, размещенная на страницах сайта, извлекается из базы данных посредством включения в тело страницы PHP-кода.

Код cтраницы index.php

<?php include ("blocks/bd.php");

$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='index'",$db);

if (!$result)

{

echo "<p>Запрос на выборку данных из базы не прошел.<br> <strong>Код ошибки:</strong></p>";

exit(mysql_error());

}

if (mysql_num_rows($result) > 0)

Изм.

Лист

№ докум.

Подпись

Дата

Лист

30

КП.НГТУ.ИРИТ.11-СТ

{

$myrow = mysql_fetch_array($result);

}

else

{

echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";

exit();

}

?>

Изм.

Лист

№ докум.

Подпись

Дата

Лист

31

КП.НГТУ.ИРИТ.11-СТ

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<title><? echo $myrow["title"]; ?></title>

<link href="style.css" rel="stylesheet" type="text/css">

<meta name="description" content="<? echo $myrow["meta_d"]; ?>">

<meta name="keywords" content="<? echo $myrow["meta_k"]; ?>">

</head>

<body>

<!--Шапка сайта-->

<div id="header">

 <?php include ("blocks/header.php");?>

</div>

<!--Контент сайта-->

<div id="content">

 <div id="colOne"> <?php echo $myrow['text']; ?> </div>

 <!--Навигация-->

 <div id="colTwo">

   <?php include ("blocks/menu.php");?>

 </div>

 <div style="clear: both;">&nbsp;</div>

</div>

<!--Подвал сайта-->

<div id="footer"><?php include ("blocks/footer.php");?>

</div>

</body>

</html>


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

<?php include ("blocks/bd.php");

if (isset($_GET['cat'])) {$cat = $_GET['cat']; }

if (!isset($cat)) {$cat = 1;}

/* Проверяем, является ли переменная числом */

Изм.

Лист

№ докум.

Подпись

Дата

Лист

32

КП.НГТУ.ИРИТ.11-СТ

if (!preg_match("|^[\d]+$|", $cat)) {

exit ("<p>Неверный формат запроса! Проверьте URL!");

}

$result = mysql_query("SELECT * FROM categories WHERE id='$cat'",$db);

if (!$result)

{

echo "<p>Запрос на выборку данных из базы не прошел.<br> <strong>Код ошибки:</strong></p>";

exit(mysql_error());

}

if (mysql_num_rows($result) > 0)

{

$myrow = mysql_fetch_array($result);

}

else

{

echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";

exit();

}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<title><? echo "Статьи категории - $myrow[title]"; ?></title>

<link href="style.css" rel="stylesheet" type="text/css">

<meta name="description" content="<? echo $myrow["meta_d"]; ?>">

<meta name="keywords" content="<? echo $myrow["meta_k"]; ?>">

</head>

<body>

<!--Шапка сайта-->

<div id="header">

 <?php include ("blocks/header.php");?>

</div>

<!--Контент сайта-->

<div id="content">

<div id="colOne"> <? echo $myrow["text"]; /*Вывод текста по описанию конкретной категории*/

$result = mysql_query("SELECT id,title,description,date,mini_img,view FROM data WHERE cat='$cat'",$db);

if (!$result)

{

echo "<p>Запрос на выборку данных из базы не прошел. <br> <strong>Код ошибки:</strong></p>";

Изм.

Лист

№ докум.

Подпись

Дата

Лист

33

КП.НГТУ.ИРИТ.11-СТ

exit(mysql_error());

}

if (mysql_num_rows($result) > 0)

{

$myrow = mysql_fetch_array($result);

do

{

printf ("<table align='center' class='article'>

<tr>

<td class='article_title'>

<p class='article_name'><img class='mini' align='left' src='%s'><a href='view_article.php?id=%s'>%s</a></p>

<p class='article_adds'>Дата добавления: %s</p>

</tr>

<tr>

<td>%s <p class='article_view'>Просмотров: %s</p></td>

</tr>

</table><br><br>",$myrow["mini_img"],$myrow["id"],$myrow["title"], $myrow["date"],$myrow["description"], $myrow["view"], $r);

}

while ($myrow = mysql_fetch_array($result));

}

else

{

echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";

exit();

}

?> </div>

 <!--Навигация-->

 <div id="colTwo">

   <?php include ("blocks/menu.php");?>

 </div>

 <div style="clear: both;">&nbsp;</div>

</div>

<!--Подвал сайта-->

<div id="footer">

 <?php include ("blocks/footer.php");?>

</div></body></html>

Код страницы view_article.php. Данная страница отвечает за вывод статьи при нажатии на соответствующую ссылку.

<?php include ("blocks/bd.php");

if (isset($_GET['id'])) {$id = $_GET['id']; }

Изм.

Лист

№ докум.

Подпись

Дата

Лист

34

КП.НГТУ.ИРИТ.11-СТ

if (!isset($id)) {$id = 1;}

$result = mysql_query("SELECT * FROM data WHERE id='$id'",$db);

if (!$result)

{

echo "<p>Запрос на выборку данных из базы не прошел.<br> <strong>Код ошибки:</strong></p>";

exit(mysql_error());

}

if (mysql_num_rows($result) > 0)

{

$myrow = mysql_fetch_array($result);

$new_view = $myrow["view"] + 1;

$update = mysql_query ("UPDATE data SET view='$new_view' WHERE id='$id'",$db);

}

else

{

echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";

exit();

}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<title><? echo $myrow["title"]; ?></title>

<link href="style.css" rel="stylesheet" type="text/css">

<meta name="description" content="<? echo $myrow["meta_d"]; ?>">

<meta name="keywords" content="<? echo $myrow["meta_k"]; ?>">

</head>

<body>

<!--Шапка сайта-->

<div id="header">

 <?php include ("blocks/header.php");?>

</div>

<!--Контент сайта-->

<div id="content">

 <div id="colOne">

   <?

 

printf ("<p class='article_title2'>%s</p><p class='article_add'>Дата добавления: %s</p>%s<p class='article_view'>Просмотров: %s</p>",$myrow["title"],$myrow["date"],$myrow["text"],$myrow["view"]);

?>

   <? echo "<p class='article_comment'>Комментарии к этой статье:</p>";

Изм.

Лист

№ докум.

Подпись

Дата

Лист

35

КП.НГТУ.ИРИТ.11-СТ

$result3 = mysql_query ("SELECT * FROM comments WHERE post='$id'",$db);

if (mysql_num_rows($result3) > 0)

{

$myrow3 = mysql_fetch_array($result3);

do

{

printf ("<div class='article_div'><p class='article_comment_add'>Комментарий добавил(а): <strong>%s</strong> <br> Дата: <strong>%s</strong></p>

<p>%s</p></div>",$myrow3["author"], $myrow3["date"], $myrow3["text"]);

}

while ($myrow3 = mysql_fetch_array($result3));

}

else

{

echo "<p>К этой статье пока нет комментариев.</p>";

}

$result4 = mysql_query ("SELECT img FROM comments_setting",$db);

$myrow4 = mysql_fetch_array($result4);

?>

   <p class='article_comment'>Добавить новый комментарий:</p>

   <form action="comment.php" method="post" name="form_com">

     <p>

       <label>Ваше имя: </label>

       <input name="author" type="text" size="30" maxlength="30">

     </p>

     <p>

       <label>Текст комментария: <br>

         <textarea name="text" cols="32" rows="4"></textarea>

       </label>

     </p>

     <p>Введите сумму чисел с картинки <br>

       <img src="<? echo $myrow4["img"]; ?>" width="80" height="40"></br>

       <br>

       <input style='margin-left:10px;' name="pr" type="text" size="5" maxlength="5">

       </br>

     </p>

     <input name="id" type="hidden" value="<? echo $id; ?>">

     <p>

       <input name="sub_com" type="submit" value="Комментировать">      </p>

   </form>

 </div>

 <!--Навигация!!!!!-->

 <div id="colTwo">

   <?php include ("blocks/menu.php");?>

 </div>

 

Изм.

Лист

№ докум.

Подпись

Дата

Лист

36

КП.НГТУ.ИРИТ.11-СТ

<div style="clear: both;">&nbsp;</div>

</div>

<!--Подвал сайта!!!!!-->

<div id="footer">

 <?php include ("blocks/footer.php");?>

</div>

</body>

</html>

Код страницы comment.php. Файл - обработчик комментарий.

<?php  include ("blocks/bd.php");

if (isset($_POST['author'])) {$author = $_POST['author'];}

if (isset($_POST['text'])) {$text = $_POST['text'];}

if (isset($_POST['pr'])) {$pr = $_POST['pr'];}

if (isset($_POST['sub_com'])){$sub_com = $_POST['sub_com'];}

if (isset($_POST['id'])){$id = $_POST['id'];}

if (isset($sub_com))/*Если нажата кнопка*/

{

if (isset($author)) {trim($author);} /*Если ввели автора, то обрезаем пробелы*/

else {$author = "";}/*Если автора не существует, то переменной автор присваиваем пустую сроку*/

if (isset($text)) {trim($text);}

else {$text = "";}

if (empty($author) or empty($text))/*Если переменная автор или текст пустая, то выводим сообщение об ошибке и возвращает пользователя на шаг назад*/

{

exit ("<p>Вы ввели не всю информацию, вернитесь назад и заполните все поля.<br> <input name='back' type='button' value='Вернуться назад' onclick='javascript:self.back();'>");

}

/*Использование специальных функций для защиты БД*/

$author = stripslashes($author);/*Защита от слешей*/

$text = stripslashes($text);

$author = htmlspecialchars($author);/*Защита от php, html, css кодов*/

$text = htmlspecialchars($text);

$result = mysql_query ("SELECT sum FROM comments_setting",$db);

$myrow = mysql_fetch_array($result);

if ($pr == $myrow["sum"])/*Если введена правильная сумма*/

{

$date = date("Y-m-d");/*формирование переменной date с сегодняшней даты*/

Изм.

Лист

№ докум.

Подпись

Дата

Лист

37

КП.НГТУ.ИРИТ.11-СТ

$result2 = mysql_query ("INSERT INTO comments (post,author,text,date) VALUES ('$id','$author','$text','$date')",$db);

$address = "cassima@mail.ru";

$subject = "Новый комментарий на блоге";

$result3 = mysql_query ("SELECT title FROM data WHERE id='$id'",$db);

$myrow3 = mysql_fetch_array ($result3);

$post_title = $myrow3["title"];

$message = "Появился комментарий к заметке - ".$post_title."\nКомментарий добавил(а): ".$author."\nТекст комментария: ".$text."\nСсылка на заметку: http://localhost/php_desing/view_article.php?id=".$id."";

mail($address,$subject,$message,"Content-type:text/plain; Charset=windows-1251\r\n");/*Функция, отправляющая сообщение*/

echo "<html><head>

<meta http-equiv='Refresh' content='0; URL=view_article.php?id=$id'> <!--Обновление и перенаправление на страницу-->

</head></html>";

exit();

}

else/*Если введена неправильная сумма*/

{

exit ("<p>Вы ввели неверную сумму цифр с картинки на предыдущей странице. <br> <input name='back' type='button' value='Вернуться назад' onclick='javascript:self.back();'>");

}

}

?>


  1.  

Изм.

Лист

№ докум.

Подпись

Дата

Лист

38

КП.НГТУ.ИРИТ.11-СТ

Визуальное представление сайта

Главная страница.


Изм.

Лист

№ докум.

Подпись

Дата

Лист

39

КП.НГТУ.ИРИТ.11-СТ

Страница с категорией «Необычные идеи».


Изм.

Лист

№ докум.

Подпись

Дата

Лист

40

КП.НГТУ.ИРИТ.11-СТ

Страница со статьей из категории «Необычные идеи».


  1.  

Изм.

Лист

№ докум.

Подпись

Дата

Лист

41

КП.НГТУ.ИРИТ.11-СТ

Администраторская часть. 

Отвечает за добавление, изменение и удаление информации на сайт.

Далее будут приведены примеры для добавления, изменения и удаления категорий. Изменение, удаление и добавление статей осуществляется аналогичным образом.

new_cat.php. Страница добавления новой категории.

<? include ("lock.php");  ?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<title>Страница добавления новой категории</title>

<link href="style.css" rel="stylesheet" type="text/css">

</head>

<body>

<!--Шапка сайта-->

<div id="header">

 <?php include ("blocks/header.php");?>

</div>

<!--Контент сайта-->

<div id="content">

 <div id="colOne">

   <form name="form1" method="post" action="add_cat.php">

     <p>

       <label>Введите название категории<br>

         <input type="text" name="title" id="title">

       </label>

     </p>

     <p>

       <label>Введите краткое описание категории<br>

         <input type="text" name="meta_d" id="meta_d">

       </label>

     </p>

     <p>

       <label>Введите ключевые слова для категории<br>

         <input type="text" name="meta_k" id="meta_k">

       </label>

     </p>

     <p>

       <label>Введите полный текст категории с тэгами<br>

         <textarea name="text" id="text" cols="40" rows="20"></textarea>

       </label>

     </p>

     <p>

       <label>

         <input type="submit" name="submit" id="submit" value="Занести категорию в базу">

       </label>

     </p>

   </form>

   <p>&nbsp;</p>

 </div>

 <!--Навигация-->

 <div id="colTwo">

   <?php include ("blocks/menu.php");?>

 </div>

 <div style="clear: both;">&nbsp;</div>

</div>

<!--Подвал сайта-->

<div id="footer">

 <?php include ("blocks/footer.php");?>

</div>

</body>

</html>

add_cat.php. Обрабатывает добавление новой категории

<?php

include ("lock.php");

include ("blocks/bd.php");

if (isset($_POST['title'])) {$title = $_POST['title']; if ($title == '') {unset($title);}  }

/* Если существует в глобальном массиве $_POST['title'] опр. ячейка, то мы создаем простую переменную из неё. Если переменная пустая, то уничтожаем переменную.   */

if (isset($_POST['meta_d']))      {$meta_d = $_POST['meta_d']; if ($meta_d == '') {unset($meta_d);}}

if (isset($_POST['meta_k']))      {$meta_k = $_POST['meta_k']; if ($meta_k == '') {unset($meta_k);}}

if (isset($_POST['text']))        {$text = $_POST['text']; if ($text == '') {unset($text);}}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<title>Обработчик</title>

<link href="style.css" rel="stylesheet" type="text/css">

</head>

<body>

<!--Шапка сайта-->

<div id="header">

Изм.

Лист

№ докум.

Подпись

Дата

Лист

42

КП.НГТУ.ИРИТ.11-СТ

 <?php include ("blocks/header.php");?>

</div>

<!--Контент сайта-->

<div id="content">

 <div id="colOne">

   <?php

if (isset($title) && isset($meta_d) && isset($meta_k) && isset($text))

{

/* Здесь пишем что можно заносить информацию в базу */

$result = mysql_query ("INSERT INTO categories (title,meta_d,meta_k,text) VALUES ('$title', '$meta_d','$meta_k','$text')");

if ($result == 'true') {echo "<p>Ваша категория успешно добавлена!</p>";}

else {echo "<p>Ваша категория не добавлена!</p>";}

}   

else

{

echo "<p>Вы ввели не всю информацию, поэтому категория в базу не может быть добавлена.</p>";

}  

  ?>

 </div>

 <!--Навигация-->

 <div id="colTwo">

   <?php include ("blocks/menu.php");?>

 </div>

 <div style="clear: both;">&nbsp;</div>

</div>

<!--Подвал сайта-->

<div id="footer">

 <?php include ("blocks/footer.php");?>

</div>

</body></html>

del_cat.php. Страница удаления категорий

<?php

include ("lock.php");

include ("blocks/bd.php");?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<title>Страница удаления категории</title>

<link href="style.css" rel="stylesheet" type="text/css">

Изм.

Лист

№ докум.

Подпись

Дата

Лист

43

КП.НГТУ.ИРИТ.11-СТ

</head>

<body>

<!--Шапка сайта-->

<div id="header">

 <?php include ("blocks/header.php");?>

</div>

<!--Контент сайта-->

<div id="content">

 <div id="colOne">

   <p><strong>Выберите категорию для удаления</strong></p>

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

     <?

$result = mysql_query("SELECT title,id FROM categories");      

$myrow = mysql_fetch_array($result);

do

{

printf ("<p><input name='id' type='radio' value='%s'><label> %s</label></p>",$myrow["id"],$myrow["title"]);

}

while ($myrow = mysql_fetch_array($result));

?>

     <p>

       <input name="submit" type="submit" value="Удалить категорию!!!">

     </p>

   </form>

 </div>

 <!--Навигация-->

 <div id="colTwo">

   <?php include ("blocks/menu.php");?>

 </div>

 <div style="clear: both;">&nbsp;</div>

</div>

<!--Подвал сайта-->

<div id="footer">

 <?php include ("blocks/footer.php");?>

</div>

</body>

</html>

drop_cat.php Обработка удаления категории

<?php

include ("lock.php");

include ("blocks/bd.php");

if (isset($_POST['id'])) {$id = $_POST['id'];}

?>

Изм.

Лист

№ докум.

Подпись

Дата

Лист

44

КП.НГТУ.ИРИТ.11-СТ

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<title>Обработчик</title>

<link href="style.css" rel="stylesheet" type="text/css">

</head>

<body>

<!--Шапка сайта-->

<div id="header">

 <?php include ("blocks/header.php");?>

</div>

<!--Контент сайта-->

<div id="content">

 <div id="colOne">

     

        <?php

if (isset($id))

{

$result0 = mysql_query ("SELECT id FROM data WHERE cat='$id'",$db);

if (mysql_num_rows($result0) > 0) {

echo "<p>В категории, которую Вы хотите удалить, есть заметки. Сначала перекиньте их по другим категориям.</p>";

}

else

{

$result = mysql_query ("DELETE FROM categories WHERE id='$id'");

if ($result == 'true') {echo "<p>Ваша категория успешно удалена!</p>";}

else {echo "<p>Ваша категория не удалена!</p>";}

}

}   

else

{

echo "<p>Вы запустили данный фаил без параметра id и поэтому, удалить категорию невозможно (скорее всего Вы не выбрали радиокнопку на предыдущем шаге).</p>";

}

  ?>

 </div>

 <!--Навигация-->  

 <div id="colTwo">

 

<?php include ("blocks/menu.php");?>

   </div>

 

Изм.

Лист

№ докум.

Подпись

Дата

Лист

45

КП.НГТУ.ИРИТ.11-СТ

 <div style="clear: both;">&nbsp;</div>

</div>

<!--Подвал сайта-->

<div id="footer">

<?php include ("blocks/footer.php");?>

</div>

</body>

</html>

edit_cat.php Редактирование категорий

<?php 

include ("lock.php");

include ("blocks/bd.php");

if (isset($_GET['id'])) {$id = $_GET['id'];}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<title>Страница редактирования категории</title>

<link href="style.css" rel="stylesheet" type="text/css">

</head>

<body>

<!--Шапка сайта-->

<div id="header">

 <?php include ("blocks/header.php");?>

</div>

<!--Контент сайта-->

<div id="content">

 <div id="colOne">

   <?

if (!isset($id))

{

$result = mysql_query("SELECT title,id FROM categories");      

$myrow = mysql_fetch_array($result);

do

{

printf ("<p><a href='edit_cat.php?id=%s'>%s</a></p>",$myrow["id"],$myrow["title"]);

}

while ($myrow = mysql_fetch_array($result));

}

else

{

$result = mysql_query("SELECT * FROM categories WHERE id=$id");      

Изм.

Лист

№ докум.

Подпись

Дата

Лист

46

КП.НГТУ.ИРИТ.11-СТ

$myrow = mysql_fetch_array($result);

echo "<h3 align='center'>Редактирование категории</h3>";

print <<<HERE

<form name='form1' method='post' action='update_cat.php'>

        <p>

          <label>Введите название категории<br>

            <input value="$myrow[title]" type="text" name="title" id="title">

            </label>

        </p>

        <p>

          <label>Введите краткое описание категории<br>

          <input value="$myrow[meta_d]" type="text" name="meta_d" id="meta_d">

          </label>

        </p>

        <p>

          <label>Введите ключевые слова для категории<br>

          <input value="$myrow[meta_k]" type="text" name="meta_k" id="meta_k">

          </label>

        </p>

         <p>

          <label>Введите полный текст описании категории<br>

          <textarea name="text" id="text" cols="40" rows="20">$myrow[text]</textarea>

          </label>

        </p>

       

  <input name="id" type="hidden" value="$myrow[id]">

  

        <p>

          <label>

          <input type="submit" name="submit" id="submit" value="Сохранить изменения">

          </label>

        </p>

      </form>

HERE;

}

?>

 </div>

 <!--Навигация-->

 <div id="colTwo">

   <?php include ("blocks/menu.php");?>

 </div>

 <div style="clear: both;">&nbsp;</div>

</div>

<!--Подвал сайта-->

<div id="footer">

Изм.

Лист

№ докум.

Подпись

Дата

Лист

47

КП.НГТУ.ИРИТ.11-СТ

 <?php include ("blocks/footer.php");?>

</div>

</body>

</html>

update_cat.php Обработка удаления категорий

<?php

include ("lock.php");

include ("blocks/bd.php");

if (isset($_POST['title']))  {$title = $_POST['title']; if ($title == '') {unset($title);}}

/* Если существует в глобальном массиве $_POST['title'] опр. ячейка, то мы создаем простую переменную из неё. Если переменная пустая, то уничтожаем переменную.   */

if (isset($_POST['meta_d']))      {$meta_d = $_POST['meta_d']; if ($meta_d == '') {unset($meta_d);}}

if (isset($_POST['meta_k']))      {$meta_k = $_POST['meta_k']; if ($meta_k == '') {unset($meta_k);}}

if (isset($_POST['text']))        {$text = $_POST['text']; if ($text == '') {unset($text);}}

if (isset($_POST['id']))      {$id = $_POST['id'];}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<title>Обработчик</title>

<link href="style.css" rel="stylesheet" type="text/css">

</head>

<body>

<!--Шапка сайта-->

<div id="header">

 <?php include ("blocks/header.php");?>

</div>

<!--Контент сайта-->

<div id="content">

 <div id="colOne">

   <?php

if (isset($title) && isset($meta_d) && isset($meta_k) && isset($text))

{

/* Здесь пишем что можно заносить информацию в базу */

$result = mysql_query ("UPDATE categories SET title='$title', meta_d='$meta_d', meta_k='$meta_k', text='$text' WHERE id='$id'");

if ($result == 'true') {echo "<p>Ваша категория успешно обновлена!</p>";}

else {echo "<p>Ваша категория не обновлена!</p>";}

}   

else

Изм.

Лист

№ докум.

Подпись

Дата

Лист

48

КП.НГТУ.ИРИТ.11-СТ

{

echo "<p>Вы ввели не всю информацию, поэтому категория в базе не может быть обновлена.</p>";

}     

  ?>

 </div>

 

Изм.

Лист

№ докум.

Подпись

Дата

Лист

49

КП.НГТУ.ИРИТ.11-СТ

<!--Навигация-->

 <div id="colTwo">

   <?php include ("blocks/menu.php");?>

 </div>

 <div style="clear: both;">&nbsp;</div>

</div>

<!--Подвал сайта-->

<div id="footer">

 <?php include ("blocks/footer.php");?>

</div>

</body>

</html>


Изм.

Лист

№ докум.

Подпись

Дата

Лист

50

КП.НГТУ.ИРИТ.11-СТ

Главная страница

Страница добавления категории


Изм.

Лист

№ докум.

Подпись

Дата

Лист

51

КП.НГТУ.ИРИТ.11-СТ

Страница редактирования категории

Страница удаления категории


  1.  Вывод

Использование языка PHP при  web-разработке, позволяет создать простой, эффективный, многофункциональный,  безопасный и самое главное динамичный сайт.

В данном курсовом проекте данная возможность языка была реализована.

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

Кроме того, был разработан администраторский блок, через который можно легко добавлять, изменять и удалять информацию с сайта без особых знаний языков Web-разработки.

Дизайн сайта легко реализуется при помощи каскадных таблиц стилей – CSS, а разделение страниц сайта на блоки, во много раз упрощает и экономит время на его изменение.

Изм.

Лист

№ докум.

Подпись

Дата

Лист

52

КП.НГТУ.ИРИТ.11-СТ


  1.  Использованная литература
  2.  http://helloworld.ru/ - Документация и книги по программированию;
  3.  http://htmlbook.ru/ - Самоучитель по HTML и CSS;
  4.  PHP и MySQL для начинающих, видеокурс Евгений Попов.
  5.  http://site-stroy.com/category/php_lesson - Как создать сайт самому
  6.  http://www.intuit.ru/studies/courses/42/42/lecture/1247?page=1#sect2 – Язык программирования PHP. Лекции.
  7.  http://www.php-s.ru/ - Сайт о PHP

Изм.

Лист

№ докум.

Подпись

Дата

Лист

53

КП.НГТУ.ИРИТ.11-СТ


 

А также другие работы, которые могут Вас заинтересовать

36139. БЮДЖЕТНЕ ПЛАНУВАННЯ І КОНТРОЛЬ 283 KB
  Роль Міністерства фінансів України та його органів на місцях у бюджетному плануванні та прогнозуванні. Органи бюджетного контролю: Рахункова палата Державна податкова служба України Державна контрольноревізійна служба. Органи бюджетного контролю: Рахункова палата Державна податкова служба України Державна контрольноревізійна служба. Нормативноправова база завдання принципи методи бюджетного планування Основними юридичними документами які регулюють процес бюджетного планування є: Конституція України де визначено концептуальні...
36140. Подрезание и заострение зуба 491 KB
  Согласно свойствам эвольвентного зацепления прямолинейная, т. е. эвольвентная, часть ИПК и эвольвентная часть профиля зуба колеса располагаются касательно друг к другу только на линии станочного зацепления, начинающейся в точке N.
36141. Анатомия. Ответы к экзамену 1.83 MB
  Мышцы производящие эти движения их кровоснабжение и иннервация. Движения мышцы действующие на суставы их кровоснабжение и иннервация. Движения ребер мышцы производящие эти движения их кровоснабжение и иннервация. Ребра ограничивающие нижнюю апертуру образуют реберную дугу Мышцы груди Мышцы груди разделяются на мышцы начинающиеся на поверхности грудной клетки и на собственные аутохтонные мышцы груди входящие в состав стенок грудной полости.
36142. Нервная система. Классификация нервной системы 586 KB
  мозг делится на ствол мозга полушария большого мозга и мозжечок. В коре полушарий головного мозга осуществляется анализ и синтез различных раздражений внешнего мира. К таким эфферентным нейронам можно отнести нейроны различных отделов мозга посылающие аксоны идущие в составе длинных нисходящих трактов к спинному мозгу. На головном конце животного который при движении вперед соприкасается с различными предметами окружающего мира развиваются органы чувств в связи с чем головные узлы развиваются сильнее остальных являясь прообразом...
36143. Опорно-двигательный аппарат 432.5 KB
  Макроскопически кость состоит из расположенного по периферии компактного вещества substanfia compacta и губчатого вещества siibsianlia spongiosa массы костных перекладин в середине кости. Зтк перекладины расположены не беспорядочно а соответствен ко линиям сжатия и растяжения которые действуют на определенные участки кости. Костномозговая полость находящаяся в толще трубчатой кости выстлана соединительнотканной оболочкой эндостомом endostemn Ячейки губчатого вещества и костномозговая полость в трубчатых костях...
36145. Анатомия. Общие вопросы 1.84 MB
  Знание морфофункциональных особенностей организма ребенка особенно важно так как именно как в период его становления при неправильной организации условий жизни и обучения особенно быстро возникают различные патологические нарушения функций нервной системы опорнодвигательного аппарата сердечно сосудистой системы и др. В образовании каждого органа участвуют различные ткани но одна из них является главной ведущей рабочей мозг нервная ткань. Аристотель различал у животных сухожилия и нервы кости и хрящи. Клавдий Гален описал 7 пар из...
36146. Сердечно-сосудистая система. Шпора 279.5 KB
  Артерии располагаются по ходу нервной трубки и нервов. Кроме того артерии первоначально закладываются в связи с главными нервами: например на верхней конечности в связи с n. Соответственно делению организма на органы растительной и животной жизни артерии делятся на париетальные к стенкам полостей тела и висцеральные к содержимому их т. Артерии туловища сохраняют сегментарное строение: aa.
36147. Внутренние органы 373.5 KB
  Нижняя поверхность языка свободна только в передней части; задняя часть занята мышцами. Три части: pars nasalis pars oralis и pars laryngea. В шейной части пищевода мышцы поперечнополосатые в верхнем отделе грудной части они смешанного типа нижней трети гладкие. Топография 3 части: 1шейную; 2грудную; 3брюшную.