Создание сайта адресно-телефонного справочника на php

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1014,24 Кб
  • Опубликовано:
    2014-03-18
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Создание сайта адресно-телефонного справочника на php

ВВЕДЕНИЕ

На сегодняшний день информационные технологии достигли такого развития, что компьютеры есть практически в каждом доме. Часто люди не имеют даже телевизора, так как считают, что компьютер способен заменить и телевидение, и радио, и другие средства массовой информации. Это связано с тем, что в последние годы сильно распространилась глобальная сеть Интернет. Новые разработки позволили сделать услуги Интернет-провайдеров доступными, качественными и обеспечить высокую скорость работы для пользователей. Не оставили данный факт без внимания и работники сферы торговли, услуг и рекламы. Пользуясь сетью Интернет, можно донести информацию о своих продуктах и услугах до сотен тысяч людей в день. Каждую минуту в Интернете находятся миллионы людей - кто-то для развлечения, кто-то для работы, кто-то ищет необходимую информацию. Все эти факты породили новое ответвление информационных технологий - web-дизайн, разработка web-страниц. [8]

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

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

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

Объект исследования: информационные ресурсы сети Интернет.

Предмет исследования: структура, содержание, оформление Web-сайта.

Цель исследования: создание Web-сайта в виде электронного справочника.

Задачи исследования:

определить и проанализировать предпочтения пользователей в предметной области; изучить различные Интернет-ресурсы по данной проблеме;

выявить проблемы, связанные с получением информации по данной теме в сети Интернет;

изучить литературу по вопросу создания Web-сайт;

изучить требования, предъявляемые к созданию Web-сайтов;

познакомиться со структурными элементами Web-страниц;

проанализировать имеющиеся программные средства, предназначенные для создания Web-сайтов и выбрать оптимальное из них;

найти и отобрать материал для наполнения содержания Web-сайта; создать Web - сайт; представить учебное исследование и защитить его.

1. СОВРЕМЕННЫЕ ИНТЕРНЕТ-ТЕХНОЛОГИИ

.1 История создания web-страниц

С развитием информационных технологий и созданием персонального компьютера появилась проблема хранения информация и доступа к ней других пользователей. Это привело к развитию сети и позже к созданию World Wide Web - Всемирной паутины Интернет. Она, прежде всего, использовалась научными учреждениями, правительствами и военными, как средство обмена простой информацией «старого» образца. Так что документы тех времен были очень простыми. В конце концов, ученым и академикам нет особого дела до привлекательности web-страниц. Но Интернет развивался, вскоре и «простые» пользователи стали пользоваться его услугами. Встал вопрос о том, как размещать информацию в сети. Был разработан язык HTML - язык гипертекстовой разметки страниц, который позволил размещать информацию структурировано, удобно для поиска и красиво с эстетической точки зрения.

Сразу после создания Всемирной паутины, Первый в мире web-сайт появился 6 августа 1991 года. #"724856.files/image001.gif">

Рисунок 2.1 - Окно загрузки пакета «Денвер»

2.2 Основные характеристики MYSQL

- это система управления реляционными базами данных.

В реляционной базе данные хранятся в отдельных таблицах, благодаря чему достигается выигрыш в скорости и гибкости. Таблицы связываются между собой при помощи отношений, благодаря чему обеспечивается возможность объединять при выполнении запроса данные из нескольких таблиц. SQL как часть системы MySQL можно охарактеризовать как язык структурированных запросов плюс наиболее распространенный стандартный язык, используемый для доступа к базам данных.

Программное обеспечение MySQL - это ПО с открытым кодом.

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

Технические возможности СУБД MySQL

ПО MySQL является системой клиент-сервер, которая содержит многопоточный SQL-сервер, обеспечивающий поддержку различных вычислительных машин баз данных, а также несколько различных клиентских программ и библиотек, средства администрирования и широкий спектр программных интерфейсов (API).

Безопасность

Система безопасности основана на привилегиях и паролях с возможностью верификации с удаленного компьютера, за счет чего обеспечивается гибкость и безопасность. Пароли при передаче по сети при соединении с сервером шифруются. Клиенты могут соединяться с MySQL, используя сокеты TCP/IP, сокеты Unix или именованные каналы (named pipes, под NT)

Вместимость данных

Начиная с MySQL версии 3.23, где используется новый тип таблиц, максимальный размер таблицы доведен до 8 миллионов терабайт (263 bytes). Однако следует заметить, что операционные системы имеют свои собственные ограничения по размерам файлов. Ниже приведено несколько примеров:

32-разрядная Linux-Intel - размер таблицы 4 Гб.

- Solaris 2.7 Intel - 4 Гб

Solaris 2.7 UltraSPARC - 512 Гб

- WindowsXP - 4 Гб

Как можно видеть, размер таблицы в базе данных MySQL обычно лимитируется операционной системой. По умолчанию MySQL-таблицы имеют максимальный размер около 4 Гб. Для любой таблицы можно проверить/определить ее максимальный размер с помощью команд SHOW TABLE STATUS или myisamchk -dv table_name. Если большая таблица предназначена только для чтения, можно воспользоваться myisampack, чтобы слить несколько таблиц в одну и сжать ее. Обычно myisampack ужимает таблицу по крайней мере на 50%, поэтому в результате можно получить очень большие таблицы.

.2.1 Создание базы данных phones в MYSQLсостоит из двух частей: серверной и клиентской.

Сервер MySQL постоянно работает на компьютере. Клиентские программы (например, скрипты PHP) посылают серверу MySQL SQL-запросы через механизм сокетов (то есть при помощи сетевых средств), сервер их обрабатывает и запоминает результат. То есть скрипт (клиент) указывает, какую информацио он хочет получить от сервера баз данных. Затем сервер баз данных посылает ответ (результат) клиенту (скрипту).

Почему всегда передается не весь результат? Очень просто: дело в том, что размер результирующего набора данных может быть слишком большим, и на его передачу по сети уйдет чересчур много времени. Да и редко когда бывает нужно получать сразу весь вывод запроса (то есть все записи, удовлетворяющие выражению запроса). Например, нам может потребоваться лишь подсчитать, сколько записей удовлетворяет тому или иному условию, или же выбрать из данных только первые 10 записей. Механизм использования сокетов подразумевает технологию клиент-сервер, а это означает, что в системе должна быть запущена специальная программа - MySQL-сервер, которая принимает и обрабатывает запросы от программ. Так как вся работа происходит в действительности на одной машине, накладные расходы по работе с сетевыми средствами незначительны (установка и поддержание соединения с MySQL-сервером обходится довольно дешево).труктура MySQL трехуровневая: базы данных - таблицы - записи. Базы данных и таблицы MySQL физически представляются файлами с расширениями frm, MYD, MYI. Логически - таблица представляет собой совокупность записей. А записи - это совокупность полей разного типа. Имя базы данных MySQL уникально в пределах системы, а таблицы - в пределах базы данных, поля - в пределах таблицы. Один сервер MySQL может поддерживать сразу несколько баз данных, доступ к которым может разграничиваться логином и паролем. Зная эти логин и пароль, можно работать с конкретной базой данных. Например, можно создать или удалить в ней таблицу, добавить записи и т. д. Обычно имя-идентификатор и пароль назначаются хостинг провайдерами, которые и обеспечивают поддержку MySQL для своих пользователей.

Прежде всего, необходимо на локальном диске, выделенном под хранение web-сайтов и средств их разработки (создается при установке «Денвера») создать папку с названием сайта (рабочим - в моем случае это spravka.kz). В дальнейшем это имя будет запрашиваться из командной строки браузера. «Денвер» необходимо перезапустить и можно работать с сайтом.

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

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

<?php('BASENAME', 'phones');('HOSTNAME', 'localhost');('USERNAME', 'root');('PASSWORD', '');

@mysql_connect(HOSTNAME, USERNAME, PASSWORD) or

exit('Ошибка при подключении к базе данных.');

@mysql_select_db(BASENAME) or exit('Ошибка при выборе базы

данных.');

?>(скрипт файла base.inc служит для подключения к базе данных

сайта.)

Таблицы базы данных phones:

CREATE TABLE pphone (int(10) unsigned NOT NULL auto_increment,varchar(6) NOT NULL DEFAULT '',varchar(25),int(10),varchar(8),smallint(4) unsigned,KEY (id),number (number),person (person),address (strid,house)

);

CREATE TABLE ophone (int(10) unsigned NOT NULL auto_increment,varchar(6) NOT NULL DEFAULT '',int(10),int(10),varchar(8),smallint(4) unsigned,varchar(50),KEY (id),number (number),office (offid)

);

TABLE street (int(10) unsigned NOT NULL auto_increment,varchar(50),KEY (strid)

);

TABLE office (int(10) unsigned NOT NULL auto_increment,varchar(50),KEY (offid)

);

TABLE auth (smallint(5) unsigned NOT NULL auto_increment,varchar(16) binary NOT NULL DEFAULT '',varchar(32) binary NOT NULL DEFAULT '',datetime NOT NULL DEFAULT '2004-01-01 00:00:00',varchar(20) NOT NULL DEFAULT '',

PRIMARY KEY (authid)

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

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

Рисунок 2.2 - Физическая модель БД

.3 Архитектура проектирования сайта «Spravka.kz»

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

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

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

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

Архитектура сайта должна быть проста и интуитивно удобна. И состоит из Клиентской части, Программной части и Администрирования как показано на рисунке 2.3.

Программная часть архитектуры интернет - магазина рассматривается как взаимосвязь операционной и серверной части.

В операционной части рассматривается среда разработки интернет магазина.

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

Рисунок 2.3 - Архитектура сайта

Разработка операционной части. Данная часть будет разрабатываться на языке php.

.4 Интерфейс разработки web-сайта

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

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

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

средства отображения информации, отображаемая информация, форматы и коды;

командные режимы, язык пользователь-интерфейс;

устройства и технологии ввода данных;

диалоги, взаимодействие и транзакции между пользователем и компьютером;

обратная связь с пользователем;

поддержка принятия решений в конкретной предметной области;

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

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

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

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

Чем проще выполнена верхняя часть страницы, тем легче запомнить название сайта и саму фирму.

Создание таблицы стилей . Файл style.css

В CSS нет тэгов и атрибутов. Хотя многие их так называют.Структура таблицы стилей состоит из ПРАВИЛ. В ПРАВИЛЕ существуют селекторы и блоки объявления стилей. Селекторы в переводе с английского select значит выбор. То есть он выбирает тэг к которому будет применён стиль или стили.

Вот к примеру:

h2{color:#232D37;font-size:15px; }

в нашем случае будет селектором, а все остальное это блок объявления стилей, который всегда заключается в фигурные скобки. Всё вместе будет ПРАВИЛО.

Блок стилей в свою очередь имеет свойства (обозначены зелёным цветом) и значения этих свойств. Свойства перечисляются через точку с запятой.

В этом правиле определяются свойства для всех заголовков с тэгом h2:

• размер шрифта = 15 пикселей• цвет шрифта #232D37

*{ margin: 0; padding: 0; }*

Файл style.css{ font: .10em Arial, "Trebuchet MS", Arial, sans-serif; line-height:

1.6em;

:Параметр позволяет установить одновременно несколько атрибутов стиля шрифта. Значения могут идти в любом порядке, браузер сам определит, какое из них соответствует нужному атрибуту.: Единицы измерения 'em' эквивалентны вычисленному значению свойства 'font-size' (размер шрифта) того элемента, в котором оно используется.: название шрифта.

"Trebuchet MS", Arial, sans-serif: рубленные шрифты (шрифты без засечек или гротески), типичный представитель - Arial;

background: #fff url(images/bg.gif) repeat-x; color: black; }; img { border: 0; }

backgronund: Параметр позволяет установить одновременно до пяти атрибутов стиля фона. Значения могут идти в любом порядке, браузер сам определит, какое из них соответствует нужному атрибуту. Некоторые параметры не поддерживаются браузером Netscape 4.x. Для более подробного ознакомления с аргументами, смотрите свойства каждого параметра отдельно.

#content { width: 1200px; margin: 25px auto; }

Свойство content позволяет вставлять генерируемое содержание в текст веб-страницы, которое первоначально в тексте отсутствует. Применяется совместно с псевдоэлементами :after и :before, они соответственно указывают отображать новое содержимое после или до элемента, к которому добавляются

#logo { margin: 10px 0 20px 0; width: 340px; float: left; }

#logo p { margin: 0; }

: Устанавливает величину отступа от каждого края элемента. Отступом является пространство от границы текущего элемента до внутренней границы его родительского элемента

#menu { float: right; padding: 40px 0 0; margin: 0 0 38px; }

Определяет, по какой стороне будет выравниваться элемент, при этом остальные элементы будут обтекать его с других сторон. Когда значение свойства float равно none, элемент выводится на странице как обычно, при этом допускается, что одна строка обтекающего текста может быть на той же линии, что и сам элемент.

Синтаксис

: left | right | none | inherit

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

#menu li { font-size: 1.1em; display: inline; }

Font-size: Определяет размер шрифта элемента. Размер может быть установлен несколькими способами. Набор констант (xx-small, x-small,small, medium, large, x-large, xx-large) задает размер, который называется абсолютным. По правде говоря, они не совсем абсолютны, поскольку зависят от настроек браузера и операционной системы.

Другой набор констант (larger, smaller) устанавливает относительные размеры шрифта. Поскольку размер унаследован от родительского элемента, эти относительные размеры применяются к родительскому элементу, чтобы определить размер шрифта текущего элемента.

В конечном итоге, размер шрифта сильно зависит от значения свойства font-size у родителя элемента.

Сам размер шрифта определяется как высота от базовой линии до верхней границы кегельной площадки.

#menu li a { float: left; width: 87px; padding: 2px 0 7px; text-align: center; : 0 0 0 10px; color: black; }

#menu li a.current { background: #fff url(images/button.gif) no-repeat; : #fff; }

#menu li a:hover { text-decoration: none; color: #000; background: #fff (images/button_grey.gif) no-repeat; }

.clear { clear: both; }

.caption { background: black url(images/title.gif) no-repeat; padding: 2px 0

18px; height: 35px; color: blue; }

.caption p { margin: 0;

#left { margin: 0 0 20px; clear: left; width: 200px; float: left; }

.box { background: #eee; }

Далее после создания стилей подключаю его в файлу header.inc

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

Далее после подключение файла style.css шаблон сайта делится на два файла header .inc и footer.inc .

Содержание файла header.inc смотрите приложение А

файл footer.inc

<html>

<body>

<div id="footer">

<p>разработчик: Константин Шуйцев<br />

</body>

</html>

Файл header.inc и footer.inc загружаю его в файл index.php

Header.inc

<?php

$title = 'Справка';('header.inc');//верх шаблона

?>.inc

<?php('footer.inc');//низ шаблона

?>

Рисунок 2.4 - Главная страница сайта

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

На сайте телефонного справочника использованы следующие виды поиска:

. Поиск по номеру;

. Поиск по имени;

. Поиск по алфавиту;

. Поиск по организации;

. Поиск по адресу;

Разберем каждый по отдельности.

Поиск по номеру скрипт файла содержится в файле searchx.php.

<?php(isset($_GET['x'])) { $value = urldecode($_GET['x']); //проверка

параметров запроса(empty($_GET['x']))

$err = 'Необходимо указать номер телефона для поиска.';

elseif (preg_match("/[^\d_]+/", $value))

$err = 'В строке запроса следует вводить только цифры номера - без

пробелов и других посторонних символов';(strlen($_GET['x']) > 6)

$err = 'Номер телефона не должен содержать более 6 цифр.';

elseif (substr_count($value, '_') > 1)

$err = 'Допускается только одна произвольная цифра в номере.';(! isset($err)) { //ошибок нет('searchx.inc');загрузка файла 'searchx.inc';; }}

Рисунок 2.5 поиск по номеру

Скрипт файла 'searchx.inc':

<?php('base.inc');

//поиск по частным номерам

$sql = "SELECT number, person, street, house, flat FROM pphone, street street.strid = pphone.strid AND number LIKE '{$value}' ORDER number";

$res = mysql_query($sql) or exit('Ошибка при выполнении запроса к базе

данных.');// mysql_query() посылает один запрос (посылка нескольких

запросов не поддерживается) активной базе данных сервера, на

который ссылается переданный дескриптор

//SELECT названия_нужных_полей FROM название_таблицы WHERE

условие_выборки

$sql2 = "SELECT number, office, street, house, note FROM ophone, office, WHERE office.offid = ophone.offid AND street.strid = ophone.strid number LIKE '{$value}' ORDER BY number";

$res2 = mysql_query($sql2) or exit('Ошибка при выполнении запроса к

базе данных.');

$title = 'Результаты поиска';

include('header.inc');(mysql_num_rows($res) + mysql_num_rows($res2)) {

// mysql_num_rows() возвращает количество рядов результата запроса.

Эта команда работает только с запросами SELECT. Чтобы получить

количество рядов, обработанных функцями INSERT, UPDATE,

DELETE(mysql_num_rows($res)) {

?>

<P>По вашему запросу (поиск по номеру "<STRONG><?php echo

$value ?></STRONG>") найдены следующие записи

(<STRONG>частные номера</STRONG>):</P>

<TABLE WIDTH="100%" CELLPADDING="2" CELLSPACING="1" ="0">

<TR ="head"><TD>Номер</TD><TD>Имя</TD><TD>Адрес</TD></>

<?php while ($row = mysql_fetch_assoc($res)) { ?>

<TR CLASS="data"><TD>

<?php echo $row['number'] ?></TD><TD>//

<?php echo $row['person'] ?></TD><TD>

<?php echo "{$row['street']}, {$row['house']}"; if ($row['flat'])

echo " - ".$row['flat'] ?></TD></TR>//row: Эта функция возвращает одну

строку из результатов запроса. Если результат содержит несколько

строк, то выбраной будет только первая. Результат возвращается сразу

в виде объекта.

<?php } ?>

</TABLE>

<?php

}

//офисные номера

?>

<P>По вашему запросу (поиск по номеру "<STRONG><?php echo

$value ?></STRONG>") найдены следующие записи

(<STRONG>офисные номера</STRONG>):</P>

<TABLE WIDTH="100%" CELLPADDING="2" CELLSPACING="1" ="0">

<TR ="head"><TD>Номер</TD><TD>Организация</TD><TD>Адрес

</TD><TD>Примечание</TD></TR>

<?php while ($row = mysql_fetch_assoc($res2)) { ?>

<TR CLASS="data"><TD><?php echo $row['number']

?></TD><TD><?php echo $row['office'] ?></TD><TD><?php echo

"{$row['street']},{$row['house']}" ?></TD><TD><?php echo $row['note']

?></TD></TR>

<?php } ?>

</TABLE>

<?php

}

?>

<P>Записи упорядочены по номеру абонента.</P>

<?php

} else {

?>

<P>По вашему запросу (поиск по номеру "<STRONG><?php echo

$value ?></STRONG>") записи не найдены.</P>

<?php('notfnd.inc');

}('footer.inc');

?>

Рисунок 2.6 итог поиска по номеру

Поиск по имени. Данный вид поиска осуществляется по имени абонента, скрипт содержится в файле searchn.php

<?php(isset($_GET['n'])) {

$value = urldecode($_GET['n']);

//проверка параметров запроса(empty($value))

$err = 'Необходимо указать имя абонента.';(strlen($value) < 2)

$err = 'Имя абонента не может содержать менее 2 символов.';(strlen($value) > 25)

$err = 'Имя абонента не должно содержать более 25 символов.';

elseif (preg_match("/[^\xC0-\xFF]+/", $value))

$err = 'В строке запроса допускается вводить только символы русского

алфавита.';

if (! isset($err)) { //ошибок нет

include('searchn.inc');; }}

$title = 'Поиск по имени';

include('header.inc');

?>

Рисунок 2.7 поиск по имени абонента

После ввода имени абонента и нажатии кнопки «поиск» скрипт начинает проверку параметров запроса, если ввод имени не противоречит условию поиска, то загружается файл searchn.inc.

<?php('base.inc');//соединение с базой данных

$sql = "SELECT number, person, street, house, flat FROM pphone, street street.strid=pphone.strid AND person LIKE '{$value}%' ORDER  person";

$res = mysql_query($sql) or exit('Ошибка при выполнении запроса к базе

данных.');//запрос к базе данных phone

$title = 'Результаты поиска';('header.inc');(mysql_num_rows($res)) {

?>

<P>По вашему запросу (поиск по имени "<STRONG><?php echo $value

?></STRONG>") найдены следующие записи:</P>

<TABLE WIDTH="100%" CELLPADDING="2" CELLSPACING="1" ="0">

<TR ="head"><TD>Номер</TD><TD>Имя</TD><TD>Адрес</TD></>

<?php($row = mysql_fetch_assoc($res)) {

?>

<TR CLASS="data"><TD><?php echo $row['number']

?></TD><TD><?php echo $row['person'] ?></TD><TD><?php echo

"{$row['street']}, {$row['house']}"; if ($row['flat']) echo " - ".$row['flat']

?></TD></TR>//вывод результата запроса

<?php}?>

</TABLE>

<P>Записи упорядочены по имени абонента.</P>

<?php} else {?>

<P>По вашему запросу (поиск по имени "<STRONG><?php echo $value

?></STRONG>") записи не найдены.</P>

<?php('notfnd.inc');}//загрузка файла('footer.inc');?> //загрузка файла

Поиск по алфавиту. Данный вид поиска состоит из двух частей:

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

Рисунок 2.8 вывод данных по поиску по имени

Файл скрипта searcha.php.

}

} elseif (isset($_GET['s'])) {

$value = urldecode($_GET['s']);

//проверка параметров запроса(! strlen($_GET['s']))

$err = 'Необходимо выбрать первую букву имени абонента для поиска.';

if (! isset($err)) { //ошибок нет('searcha2.inc');;}}

$title = 'Поиск по алфавиту';('header.inc');

?>

<P>Выберите <STRONG>первую букву</STRONG> фамилии

абонента:</P><h4><P>...и просто щелкните по ней.</P>

<br><h2>

<TABLE ALIGN="CENTER" CELLPADDING="4" CELLSPACING="1" ="0">

<TR>

<?php

$alpha = 'А---Б---В---Г---Д---Е---Ж---З---И---К---Л---М---Н---О---П---Р---

С---Т---У---Ф---Х---Ц---Ч---Ш---Щ---Э---Ю---Я';

$arr = explode('-', $alpha);($arr as $a) {($a == '|') {"</TR>\r\n<TR>";

} else {

?>

<TD><A HREF="searcha.php?a=<?php echo urlencode($a) ?>"><?php $a ?></A></TD>

<?php }}

?>

</TR></TABLE>

<?php(isset($err)) {

?>

<P CLASS="error">Внимание! <?php echo $err ?></P>

<?php

}('footer.inc');?>

сайт phones архитектура интерфейс

Рисунок 2.9 поиск по алфавиту

После выбора Буквы загружается файл searcha.inc

<?php

$title = "Поиск по алфавиту";('base.inc');//содинение с базой данных

$sql = "SELECT DISTINCT SUBSTRING(person,1,3) AS abc FROM WHERE person LIKE '{$value}%' ORDER BY abc";// Mysql

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

$res = mysql_query($sql) or exit('Ошибка при выполнении запроса к базе

данных.');('header.inc');(mysql_num_rows($res)) {

?>

<P>Теперь выберите <STRONG>начальные буквы</STRONG>

фамилии абонента:</P><h2>

<TABLE ALIGN="CENTER" CELLPADDING="4" ="15" BORDER="0"></h2>

<TR>

<?php

$f = 0;($row = mysql_fetch_assoc($res)) {"<TD><A =\"searcha.php?s={$row['abc']}\">{$row['abc']}</A></TD>";//

данный запрос формирует первые три буквы фамилии абонента

$f = ($f + 1) % 10;(! $f) echo "</TR>\r\n<TR>";

}

?>

Рисунок 2.10 Поиск по алфавиту с первыми буквами абонента

Если абонент с такими первыми буквами фамилии существует, то происходит выдача запроса фалом searcha2.inc

<?php('base.inc');//связь с базы данных

$sql = "SELECT number, person, street, house, flat FROM pphone, street street.strid=pphone.strid AND person LIKE '{$value}%' ORDER  person";

$res = mysql_query($sql) or exit('Ошибка при выполнении запроса к базе

данных.');

$title = 'Результаты поиска';('header.inc');(mysql_num_rows($res)) {

?>

<P>По вашему запросу (поиск по первым буквам "<STRONG><?php $value ?></STRONG>") найдены следующие записи:</P>

<TABLE WIDTH="100%" CELLPADDING="5" CELLSPACING="1" ="0">

<TR ="head"><TD>Номер</TD><TD>Имя</TD><TD>Адрес</TD></>

<?php($row = mysql_fetch_assoc($res)) {

?>

<TR CLASS="data"><TD><?php echo $row['number']

?></TD><TD><?php echo $row['person'] ?></TD><TD><?php echo

"{$row['street']}, {$row['house']}"; if ($row['flat']) echo " - ".$row['flat']

<?php }?>

</TABLE>

<P>Записи упорядочены по имени абонента.</P>

<?php

} else {

?>

<P>По вашему запросу (поиск по первым буквам "<STRONG><?php $value ?></STRONG>") записи не найдены.</P>

<P>В это трудно поверить, но у тех, чья фамилия начинается на

"<STRONG><?php echo $value ?></STRONG>" домашних телефонов

нет!</P>

<?php} include('footer.inc');?

Рисунок 2.11 результат поиска по алфавиту

Поиск организации:

Скрипт файла

<?php(isset($_GET['o'])) {

$value = $_GET['o'];($value, 'integer');

//проверка параметров запроса(empty($value))

$err = 'Необходимо выбрать название организации.';

if (! isset($err)) { //ошибок нет('searcho.inc'); exit;}('base.inc');

$sql = "SELECT offid, office FROM office ORDER BY office";

$res = mysql_query($sql) or exit('Ошибка при выполнении запроса к базе

данных.');

$title = 'Поиск по организации';('header.inc');

?>

Рисунок 2.12 поиск по организации

Рисунок 2.13 итог поиска по организации

Поиск по адресу: скритп файла searchp.php

<?php(isset($_GET['h']) and isset($_GET['s'])) {

$value = $_GET['s'];($value, 'integer');

$house = urldecode($_GET['h']);

//проверка параметров запроса(empty($value))

$err = 'Необходимо выбрать населенный пункт и улицу.';(empty($house))

$err = 'Необходимо указать обозначение номера дома.';(strlen($house) > 8)

$err = 'Обозначение номера дома не должно содержать более 8

символов.';(preg_match("/['\"%_]+/", $house))

$err = 'В строке запроса содержатся недопустимые символы.';

if (! isset($err)) { //ошибок нет('searchp2.inc');; } else {("Location: searchp.php?s={$value}");; }}(isset($_GET['s'])) {

$value = $_GET['s'];($value, 'integer');

//проверка параметров запроса(empty($value))

$err = 'Необходимо выбрать населенный пункт и улицу.';

if (! isset($err)) { //ошибок нет('searchp1.inc');;}('base.inc');

$sql = "SELECT strid, street FROM street ORDER BY street";

$res = mysql_query($sql) or exit('Ошибка при выполнении запроса к базе

данных.');

$title = 'Поиск по адресу';

include('header.inc');

?>

Рисунок 2.14 Поиск по адресу

Связь клиента с администрацией сайта скрипт фала message.php

(PHP 3, PHP 4, PHP 5)- отправляет почту.

Описание

mail (string to, string subject, string message [, string _headers [, string additional_parameters]])

mail() автоматически отправляет сообщение message получателю to. Можно специфицировать несколько получателей, разделив запятой адреса в to. С помощью этой функции можно высылать Email с присоединением/attachment и содержимое специальных типов.() возвращает TRUE, если почта была успешно принята для доставки, FALSE в ином случае.

<?php(isset($_POST['note'])) { //скрипт вызван из формы

$note = htmlspecialchars($_POST['note'], ENT_QUOTES);

if (empty($note))

$err = 'Необходимо ввести текст сообщения.';(strlen($note) > 2000)

$err = 'Текст сообщения не должен содержать более 2000 символов.';

if (! isset($err)) { //ошибок нет('base.inc');

$sql = "INSERT INTO message (message, date, host) VALUES ('{$note}', (), '{$REMOTE_ADDR}')";

mysql_query($sql) or $err = 'Не удалось отправить сообщение.';

if (! isset($err)) { //ошибок нет('Location: index.php');;

}}}

$title = 'Сообщение администратору';('header.inc');

?>


Администрирование содержит инструменты управления.

В администрировании будут содержаться основные настройки сайта:

Управление;

Просмотреть сообщения

Изменить пароль

Обновить записи

Загрузить файлы

Вход в панель администратора осуществляется через логин и пароль.

Рисунок 2.15 Вход в панель администратора

Скрипт файла www.spravka.kz/admin/login.php

<?php_start();

//регистрация уже есть -> выход

if (isset($_SESSION['logdate'])) {_unset();('Location: login.php');;

}

//проверить пароль(isset($_POST['login']) and isset($_POST['pswd'])) {('login.inc');

}

$title = 'Вход для администратора';

include('header1.inc');

?>

Для вывода строки используется echo. С ее помощью можно выводить текст в кавычках, значения переменных и т.д.

Похожие работы на - Создание сайта адресно-телефонного справочника на php

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!