Вход

РАЗРАБОТКА ЭЛЕКТРОННОЙ АПТЕКИ НА PHP

Рекомендуемая категория для самостоятельной подготовки:
Дипломная работа*
Код 239891
Дата создания 16 апреля 2016
Страниц 68
Мы сможем обработать ваш заказ (!) 29 марта в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
4 220руб.
КУПИТЬ

Описание

Электронная аптека это программное обеспечение для удобства просмотра и покупок препаратов. ...

Содержание

PHP и MySQL
Почему нужно выбирать PHP.
Что такое MySQL
Возможности MySQL
Таблицы в MySQL
Первичный ключ
Cascading Style Sheets
JavaScript
Правила работы интернет аптеки
Условия и правила покупки в интернет-аптеке
Создание базы данных для сайта
Описание базы данных
Структура таблиц
Описание таблиц
Схема базы данных
SQL запросы для создания таблиц
Создание сайта
Назначение скриптов
Описание интерфейса
Заключение
Библиография
Приложения

Введение

Электронная аптека это программное обеспечение для удобства просмотра и покупок препаратов. Существуют множества плюсов электронной аптеки:
• необязательно иметь в наличии товар, но обязательно иметь надёжных поставщиков.
• не нужно иметь помещение для продаж, достаточно склада.
• по скольку это электронная аптека, ей можно управлять из любой точки земли, главное наличие интернета.
• с электронной аптекой появляется возможность расширить рынок покупателей, вплоть до мирового рынка.
• не нужно нанимать персонал, всю работу может делать один человек.
• обслуживать сайт можно в любое время суток, не мешая покупателям выбирать препараты.
На данный момент у нас в стране нет хорошего и удобного сайта с медицинскими препаратами. Мы же хотим сделать его доступным для пользователя; соответствующи й целям клиента; содержать полезную, уникальную, актуальную информацию для потенциальных клиентов; удобным; корректно отображался всеми браузерами и размерами мониторов.
Прежде чем приступить к созданию базы данных и сайта аптеки, рассмотрим подробнее основные задачи, которые он должен будет осуществлять. Начнем с того, для какого круга лиц предназначен сайт, и что им необходимо знать для осуществления покупки.
Аптека осуществляет просмотр препаратов, аппаратов и типов препаратов.
Основными задачами являются:
• - создание БД.
• - создание сайта на PHP, для работы с БД
• - вывести список при помощью PHP;
Варианты использования системы
При взаимодействии пользователя с системой, она выполняет ряд работ, которые образуют вариант использования системы. Рассмотрим каждый вариант использования по отдельности.
Вход в систему осуществляется двумя способами:
• - Администратор;
• - Пользователь.
Возможности пользователей:
1. Просматривать список товаров.
2. Осуществлять поиск по каталогу
3. Просматривать список категорий.
Администратор сайта имеет большой перечень преимуществ:
1. Редактировать
2. Добавлять
3. Осуществлять поиск по сайту.
4. И удалять данные.
База Данных - это совокупость связных таблиц которые хранят данные, данные представляют из себя записи о конкретных компонентах, например о аптеках, препаратах, вобщем обо всем, что есть на вашем сайте.
PHP (англ. PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста»; первоначально Personal Home Page Tools — «Инструменты для создания персональных веб-страниц») — скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений. 

Фрагмент работы для ознакомления

/img/<?php echo $product_row['foto'] ;?>" alt="" width="178" height="141"></span><?php echo $product_row['nazv_prep']; ?> </a></span></li> <?php } ?>Этот скрипт связывает 2 таблицы preparati и kategorii для того что бы из таблицы preparati вывести только поля с индексом равные «аппарты» в таблице kategorii. Выводися фотография аппарата, его название, а при нажатии на любой товар передаётся id, благодаря которому мы попадаем именно на описание того аппарата, который выбрали.Скрипт conectare.php<?phpheader( 'Content-Type: text/html; charset=utf-8' ); mysql_connect("localhost","root","")or die('нет связи с сервером!'); mysql_select_db("bd")or die("не существует БД"); mysql_set_charset( 'utf8' ) ?>Скрипт начинается с header, который используется для отправки HTTP заголовка. Затем мы указываем путь к базе данных, если нет связи с сервером, то увидим соответствующее сообщение. После указывается какая база данных должна подключаться. И в конце устанавливаем кодировку. Рассмотрим скрипт new_produkt.php<?phpinclude("conectare.php");include_once ('function.php');$page = (int) (!isset($_GET["page"]) ? 1 : $_GET["page"]);$limit = 3;$startpoint = ($page * $limit) - $limit;$statement = "`preparati`";$sql = "SELECT * FROM {$statement} WHERE month(date) = month(now()) and year(date) = year(now()) LIMIT {$startpoint} ,{$limit}";//$sql="SELECT * FROM preparati WHERE month(date) = month(now()) and year(date) = year(now()) LIMIT 8";$res=mysql_query($sql) or die(mysql_error());?> <?php while($product_row = mysql_fetch_array($res)){?> <div class="tie tie-margin1"> <div class="tie-indent"> <div class="wrapper"> <div class="fleft" style="width:46%"> <span class="image"><a href="product.php?id_product=<?php echo $product_row['id'] ;?>"><img src="./img/<?php echo $product_row['foto'] ;?>" alt="<?php echo $product_row['nazv_prep'] ;?>" title="<?php echo $product_row['nazv_prep'] ;?>" width="178" height="178"></a></span><br clear="all"><br clear="all"> </div> <div class="fleft" style="width:53%"> <br><a class="name" href="product.php?id_product=<?php echo $product_row['id'] ;?>"><strong><?php echo $product_row['nazv_prep'] ;?></strong></a><br clear="all"><br clear="all"><span class="price-text">Price:  </span> <span class="price"><?php echo sprintf("%0.2f",$product_row['tena'] );?></span><br clear="all"><br clear="all"><div class="btn1"></div> <br><br clear="all"> </div> </div> <div class="wrapper"> <br><div class="description"><br><strong>Details:</strong><?php echo $product_row['opisanie'] ;?><a href="product.php?id_product=<?php echo $product_row['id'] ;?>"> ... more info</a></div></div> </div> </div> <?php } ?>После подключение к базе данных задаётся sql запрос, который выбирает из таблицы preparati только те препараты, которые были занесены в базу данных в этом месяце и выводит только их. Они выводятся при помощи цикла, выводит всю необходимую для пользователя информацию. Все передаётся через идентификационный ключ.Следующий скрипт specials.php<?phpinclude('conectare.php');$sql_product="SELECT * FROM preparati WHERE discount>0";$product_specials=mysql_query($sql_product) or die(mysql_error());?><?php while($product_row = mysql_fetch_array($product_specials)){$tena = $product_row['tena'];$discount = $product_row['discount'];$price_with_salary = $tena - (($discount / 100) * $tena);$prise_discount = sprintf("%0.2f", $price_with_salary);?> <br class="clearBoth"><div class="specialsListBoxContents centeredContent back" style="width:100%;"><div class="product-col"><div class="inner"><div class="img"><a href="product.php?id_product=<?php echo $product_row['id']; ?>"><img src="./img/<?php echo $product_row['foto'] ;?>" alt="<?php echo $product_row['nazv_prep'] ;?> " width="178" height="141"></a></div> <div class="prod-info"><a class="name" href="product.php?id_product=<?php echo $product_row['id'] ;?>"><?php echo $product_row['nazv_prep'] ;?> </a><div class="text"><?php echo $product_row['opisanie'] ;?></div> <div class="wrapper box2"><div class="price"><strong><span class="normalprice"><?php echo sprintf("%0.2f",$product_row['tena'] );?> </span><span class="productSpecialPrice"><?php echo $prise_discount ?></span></strong></div><div class="button"><a href="product.php?id_product=<?php echo $product_row['id'] ;?>"><img src="./img/button_goto_prod_details.gif" alt="посмотреть дополнительную информацию" title=" посмотреть дополнительную информацию " width="80" height="25"></a></div></div> </div></div> </div></div><?php } ?>Этот скрипт выводин на экран только те препараты и медицинские аппараты, которые имеют скидку. В таблице preparati в поле discount указывается процент скидки, после этого по формуле считается цена препарата уже со скидкой и выводится она на экран, а старая цена перечёркнута. Это делается для того, что бы клиент видел разницу в цене со скидкой и без.Рассмотрим скрипты из панели управления, первая страница это index.php <form class="form-signin"action='testreg.php' method="post"> <h2 class="form-signin-heading">Please sign in</h2> <input type="text" class="input-block-level" placeholder="login" name='login'> <input type="password" class="input-block-level" placeholder="Password" name='password'> </label> <button class="btn btn-large btn-primary" type="submit">Sign in</button> </form>Создаётся небольшая форма с 2 полями, в которых мы вводим логин и пароль, после чего нажимаем на кнопку войти.<?phpsession_start();echo $_POST['login'];echo $_POST['password'];if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} }if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }if (empty($login) or empty($password)){exit ("Вы не заполнили все поля, вернитесь назад и заполните их!");}$login = stripslashes($login);$login = htmlspecialchars($login);$password = stripslashes($password);$password = htmlspecialchars($password);$login = trim($login);$password = trim($password);include_once ('../conectare.php');$ip=getenv("HTTP_X_FORWARDED_FOR");if (empty($ip) || $ip=='unknown') { $ip=getenv("REMOTE_ADDR"); }mysql_query ("DELETE FROM oshibka WHERE UNIX_TIMESTAMP() - UNIX_TIMESTAMP(date) > 900");$result = mysql_query("SELECT col FROM oshibka WHERE ip='$ip'");$myrow = mysql_fetch_array($result);if ($myrow['col'] > 2) {exit("Вы набрали логин или пароль неверно 3 раза. Подождите 15 минут до следующей попытки.");}$password = md5($password);//шифруем пароль$password = strrev($password);// для надежности добавим реверс$password = $password."b3p6f";$result = mysql_query("SELECT * FROM users WHERE login='$login' AND password='$password'"); $myrow = mysql_fetch_array($result);if (empty($myrow['id'])){$select = mysql_query ("SELECT ip FROM oshibka WHERE ip='$ip'");$tmp = mysql_fetch_row ($select);if ($ip == $tmp[0]) {$result52 = mysql_query("SELECT col FROM oshibka WHERE ip='$ip'");$myrow52 = mysql_fetch_array($result52);$col = $myrow52[0] + 1; mysql_query ("UPDATE oshibka SET col=$col,date=NOW() WHERE ip='$ip'");}else {mysql_query ("INSERT INTO oshibka (ip,date,col) VALUES ('$ip',NOW(),'1')");}exit ("Извините, введённый вами логин или пароль неверный.");}else { $_SESSION['password']=$myrow['password']; $_SESSION['login']=$myrow['login']; $_SESSION['id']=$myrow['id'];if (isset($_POST['save'])){setcookie("login", $_POST["login"], time()+9999999);setcookie("password", $_POST["password"], time()+9999999);}} echo "<html><head><meta http-equiv='Refresh' content='0; URL=preparati.php'></head></html>";?>На данный скрипт мы попадаем если ввели неверно логин или пароль или если не заполнили все поля. Вся процедура работает на сессиях. Именно в ней хранятся данные пользователя, пока он находится на сайте. Очень важно запустить их в самом начале страницы. Заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную. Затем заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную. Если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт. Если логин и пароль введены,то обрабатываем их, чтобы теги и скрипты не работали, т.к. неизвестно, что туда введут. Подключаемся к базе. Проверка на подбор паролей, после чего удаляем ip-адреса ошибавшихся 3 раза при входе на 15 минут. После этого извлекается из базы количество неудачных попыток входа за последние 15 минут у пользователя с данным ip, если таковых попыток больше трех, то выдаем сообщение "Вы набрали логин или пароль неверно 3 раза. Подождите 15 минут до следующей попытки.". Далее шифруем пароль. Каждое действие записывается в таблице oshibka, что бы администратор мог всё увидеть. Если пароли совпадают, то запускаем пользователю сессию. После чего он попадает в панель управления.При удачном входе в панель управления попадаем на страницу preparati.php<?php session_start(); if (!isset($_SESSION['login'])) { echo "<html><head><meta http-equiv='Refresh' content='0; URL=index.php'></head></html>"; exit(); } include("../conectare.php"); $res=mysql_query("Select * from preparati") or die(mysql_error()); ?> <table class="table table-bordered"> <tr> <th> название товара </th> <th> цена </th> <th> описание </th> <th> категории </th> <th> действие </th> </tr> <?php while($product_row = mysql_fetch_array($res)){?> <tr> <td><?php echo $product_row['nazv_prep'] ;?></td> <td><?php echo sprintf("%0.2f",$product_row['tena'] );?> </td> <td> <?php echo $product_row['opisanie'] ;?></td> <td><?php $sql2='Select tip_prep From kategorii where id='.$product_row['id_kateg']; $category2=mysql_query($sql2); $category_row=mysql_fetch_array($category2); echo $category_row['tip_prep']; ?></td> <td> <a href="../admin/udal_tov.php?id=<?php echo $product_row['id']; ?>"><img src="../img/udal.bmp"></a> <a href="../admin/red_tov.php?id=<?php echo $product_row['id']; ?>"><img src="../img/izm.bmp"> </td> </tr> <?php } ?> </table>После подключения к базе данных создаётся таблица, в который можно увидеть название товара, его цену, описание, категорию, в которую он входит и действия которые можно совершить над данными записями. Для вывода названия, цены и описания используются php вставки, которые при помощи цикла выводят из базы данных информацию на сайт. Категория передаётся через id в таблицу praparati и под соответвующим названием препарата выводит необходимую категорию соответвующую определённому препарату.В колонке действие мы можем выбрать 2 варианта, первый из них это изменения препарата, при его выборе попадаем на скрипт red_tov.php <?phpsession_start();if (!isset($_SESSION['login'])) { echo "<html><head><meta http-equiv='Refresh' content='0; URL=index.php'></head></html>"; exit();}include("../conectare.php");$res=mysql_query("Select * from preparati") or die(mysql_error());?> <?php $id=$_GET['id']; include("../conectare.php"); $res=mysql_query("select * from preparati where id='$id'"); $row=mysql_fetch_array($res); ?> <form method="post" name="form" action="obnov_tov.php"> <table class="table table-bordered"> <tr> <tr> <th> название товара </th> <td> <input type="text" id="nazv_prep" size="25" value="<?php echo $row['nazv_prep'];?>" name="nazvprep"> </td> </tr> <tr> <th> цена </th> <td> <input type="text" size="25" value="<?php echo $row['tena'];?>" name="tena"> </td> </tr> <tr><th> описание </th> <td> <input type="text" size="25" value="<?php echo $row['opisanie'];?>" name="opisanie"> </td> </tr> <input type="hidden" value="<?php echo $row['id'];?>" name="id"> <tr> <th>категории </th> <td> <div class="controls"> <select name="id_kateg" style="width:200px;"> <?php include('../conectare.php'); $kategorii = mysql_query("select * from kategorii"); if ($kategorii) { while ($kategorii_row = mysql_fetch_array($kategorii)) { echo '<option value="' . $kategorii_row['id'] . '">' . $kategorii_row['tip_prep'] . '</option>'; } } ?>Этот скрипт вылавливает id выбранную администратором и выводит в выбранный с нами препарат. Для удобства администратору, выбранное поля заполнены тем препаратом, который вы выбрали, т.к. вы можете изменить много полей и пока вы дойдёте до последнего поля можете забыть, что тут хотели изменять, а так всё видно и не нужно вписывать всё заново, достаточно изменить уже существующее. После изменения и нажатия кнопки изменить вы попадаете на скрипт preparati.php, но до этого мы попадаем на red_tov.php, где происходит изменение, но администратор этого не видит.<?php$nazv_prep=$_POST["nazvprep"];$tena=$_POST['tena'];$opisanie=$_POST['opisanie'];$id_kateg=$_POST['id_kateg'];$id=$_POST['id'];$sql_obnov="update preparati set nazv_prep='$nazv_prep', tena='$tena', opisanie='$opisanie', id_kateg='$id_kateg' where id=".$id;include("../conectare.php");mysql_query($sql_obnov) or die (mysql_error());header("Location:http://localhost/diplom/admin/preparati.php");?>Посредством метода POST улавливаем из ассоциированного массива $_POST[nazvprep]; и присваиваем его переменой $nazv_prep. Так происходит со всеми методами Post. После этого создаётся sql запрос, который задаёт через переменные новые данные и обновляет их при помощи функции update. И уже после этого вы попадаете на preparati.php. Но это всё происходит незаметно даже для администратора, он сразу попадает на preparati.php. Вторым действие на данном скрипте является удаление, при нажатии на соответствующий значок, удаляется запись, но вы остаётесб на этой странице, а само удаление происходит в скрипте udal_tov.php<?php$id=$_GET['id'];?><?phpinclude("../conectare.php");$result = mysql_query ("DELETE FROM preparati WHERE id='$id'");if ($result){ echo "Удаление прошло успешно!"; echo "<html><head><meta http-equiv='refresh' content='0; URL=preparati.php'></head></html>";}else{ echo "Udalenie ne proshlo!";}?> Методом GET, при нажатие на кнопку удалить обрабатывается файл udal_tov.php и при помощи простого sql запроса удаляет необходимые данные выловив их по id номеру.Поиск препаратов осуществляется при помощи скрипта poisk.php<?phpsession_start();if (!isset($_SESSION['login'])) { echo "<html><head><meta http-equiv='Refresh' content='0; URL=index.php'></head></html>"; exit();}include("../conectare.php");$res=mysql_query("Select * from preparati") or die(mysql_error());?> <table class="table table-bordered"> <?php $slovo=$_POST['slovo']; require_once('../conectare.php'); $res=mysql_query("SELECT * FROM kategorii inner join preparati on kategorii.id=preparati.id_kateg where nazv_prep like '%$slovo%' or tip_prep like '%$slovo%'") or die(mysql_error()); if(!mysql_num_rows($res)) { echo "Ничего не найдено по запросу <font color='red'> $slovo"; } else while($row=mysql_fetch_array($res)) { echo "<table><tr><td>$row[nazv_prep]  </td>  <td>      </td><tr><td>$row[tip_prep]  </td>  <td>     </td> <td>$row[opisanie]  </td>  </tr></table>" ;} ?>При помощи sql запроса совершается поис препаратов из базы данных и выводится на сайт.Описание интерфейса Сайт запускается по ссылке http://localhost/diplom/, вы падаете на главную страницу. Сверху у нас поиск. Ниже навигационное меню, в котором можно выбрать домашнюю страницу на которой вы и находитесь, новые препараты, специальные товары, все препараты, контакты и о компании. Слева вы видите меню категорий, для удобства нахождения необходимого препарата, а справа меню аппараты, оно выведено отдельно. Рисунок 3. Главная страницаПри выборе любой из категорий вы попадаете на страницу содержащую только данную категорию. Рисунок 4. категорииПри нажатии на один из препаратов, откроется дополнительная и более полная информация о нём. На которой видно фото, которое можно при необходимости увеличить, название препарата, его цена и подробное описание.Рисунок 5. Подробная информация о препарате.При выборе в меню новые продукты мы попадаем на страницу, где можем увидеть только самые новые и последние товары внесённые на сайт. Эти продукты сортируются по дате и времени заполнения. Сортировка происходит по sql запросу, который и выводит их. По этому пользователь будет видеть начиная с самых новых препаратов. Если же пользователь хочет просмотреть все товары, то необходимо зайти на соответствующую вкладку все продукты(all product), где он сможет это всё увидеть. Рисунок 6. Новые товарыПри выборе в меню специальные, попадаем на страницу со специальными препаратами, у которых есть какая то скидка. Можно увидеть название товара, его старую цену, которая перечёркнута и новую цену, после вычитания из неё процента скидки.Рисунок 7. Специальные товары.Рисунок 8. Специальные товары, в левом менюРисунок 9.

Список литературы

1. Шкрыль А.А., “PHP – это просто. Программируем для web-сайта.” Петербург, 2007.
2. Бардзелл Джеффри, “Macromedia Dreamweaver 8 с ASP, ColdFusion и PHP.”, 2007.
3. Васвани Викрам, “Полный справочник по MySQL.”, Издательский дом «Вильямс», 2006.
4. Владимир Дронов, “PHP, MySQL и Dreamweaver MX 2004.” Разработка интерактивных Web-сайтов.
5. Мишель Е. Дэвис и Джон А. Филлипс, “Изучаем PHP и MySQL”. 2008.
6. Джордж Шлосснейгл, “Профессиональное программирование на PHP”.
7. Квентин Зервас, “Создание приложений на PHP”, 2009.
8. Александр Мазуркевич, Дмитрий Еловой, “PHP: настольная книга программиста”, 2003.
9. Луис Аргерих, Ванкиу Чой, Джон Коггсхол, “Профессиональное PHP программирование”, 2006.
10. Денис Колисниченко, “Профессиональное программирование на PHP”, 2007.
11. Стив Суэринг, Тим Конверс, Джойс Парк, “PHP и MySQL. Библия программиста”, 2010.
12. Люк Веллинг, Лора Томсон, “MySQL. Учебное пособие”, 2005.
13. Рэнди Джей Яргер, Джордж Риз, Тим Кинг. “MySQL и mSQL. Базы данных для небольших предприятий и Интернета”, 2000.
14. Ларри Ульман, “MySQL. Руководство по изучению языка”, 2004.
15. Поль Дюбуа, “MySQ”, 2001.
16. Э. Кастро, “HTML и CSS для создания Web-страниц “, 2006.
17. Дэвид Флэнаган, “JavaScript подробное руководство”, 2008.
18. В. Царев, А. Кантарович “Электронная коммерция: учебник для вузов.”
Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00509
© Рефератбанк, 2002 - 2024