Автор работы: Пользователь скрыл имя, 30 Сентября 2013 в 10:37, курсовая работа
Доставка заказа. После отправки заказа с покупателем связывается продавец и уточняет место и время, в которое следует доставить заказ. Доставка осуществляется либо собственной курьерской службой, либо компанией, предоставляющей услуги доставки, либо по почте - посылкой или бандеролью.
Введение 3
1. Постановка задачи 4
2. База данных 5
3. Функционал сайта 6
3.1. Главная страница 6
3.2. Регистрация 9
3.3. Просмотр списка товаров 11
3.4. Просмотр товара 13
3.5. Отправка в корзину 14
3.6. Личный кабинет 15
3.7. Панель менеджера 16
3.7.1. Управление типами товаров 16
3.7.2. Управление товарами 18
3.7.3. Новые заказы 19
3.7.4. Выполненные заказы 21
3.7.5. Статистика 23
3.8. Панель администратора 26
4. Права доступа 27
Заключение 29
Список литературы 30
Приложение А 31
Приложение Б 37
Приложение В 42
STATUS_DEF=false;
alert("Введите корректный
UserForm.phone_number.focus();
}
return STATUS_DEF;
}
</script>
Если STATUS_DEF=true, то выполняется процедура регистрации (Замечание: если такого логина еще нет в базе).
3.3. Просмотр списка товаров
Рис. 6 – Просмотр товаров
На рис. 6 отображен список товаров типа «Корпуса». Как видно из изображения, разрешено сортировать и фильтровать отбор товаров по таким критериям как: по столбцам, по цене, по наличию на складе, по наличию изображений.
Нажатие на ссылку «Подробнее» направит пользователя на страницу с описанием товара.
Список разбит на страницы, по 20 товаров на каждой.
Реализация формирования фильтра:
<form id="sortmethod" name="sel_goods"
method="get" action="" onchange="document.forms.sel_
<?
if ($_GET['id'])
{
$num=$_GET['id'];
print "<input type='hidden' name='id' value=$num>";
$tiptovar=MYSQL_QUERY("select nazvanie from tip_tovara where id_tipa=$num");
$maxmin_query=mysql_query("
while ($maxmin_arr=mysql_fetch_
{
$maxsumm=$maxmin_arr[0];
$minsumm=$maxmin_arr[1];
}//А если таковых не нашлось, то
if ($maxsumm=="") $maxsumm=0;
if ($minsumm=="") $minsumm=0;
while($tip = mysql_fetch_array($tiptovar))
print "<nobr>Тип: $tip[0] ";
if (!$_GET['goodsid'])//
{
$rcount_query=mysql_query("
while ($rcount_arr=mysql_fetch_
$rcount=$rcount_arr[0];
?>//Сортировка
/ Сортировать по
<select name="sort">
<option value="tovari.nazvanie" <? if (($_GET['sort'])=="tovari.
<option value="tovari.cena" <? if (($_GET['sort'])=="tovari.
<option value="tovari.kol_sklad" <? if (($_GET['sort'])=="tovari.kol_
</select>
/</nobr> <nobr>Цена от
<input type="input" name="summin" value="<? if ($_GET['summin']) print $_GET['summin']; else print $minsumm ?>" style="width:60px"> до
<input type="input" name="summax" value="<?
if (($_GET['summax']>=$_GET['
/</nobr> <nobr><input type="checkbox" name="showzero" <? if (($_GET['showzero'])=="on") print " checked ";?>>Нет на складе
/ <input type="checkbox" name="showpic" <? if (($_GET['showpic'])=="on") print " checked " ?>>Только с изображениями</nobr> <input type="submit" value="Отобразить">
<?
//Получаем значения полей
if ($_GET['sort'])
$method=$_GET['sort'];
else $method="tovari.nazvanie";
if ($_GET['numpage'])
$numpage=$_GET['numpage'];
else $numpage=0;
if ($_GET['summin'])
$minsumm=$_GET['summin'];
if (($_GET['summax']>=$_GET['
$maxsumm=$_GET['summax'];
if ($_GET['showzero']=="on")
$showzero="on";
else $showzero="off";
if ($_GET['showpic']=="on")
$showpic="on";
else $showpic="off";
}
}
?>
</form>
Вывод товаров осуществляется через функцию. Реализация:
if (($_GET['id']) && (!$_GET['goodsid']))//Выводить только если открыт список товаров
{
$id=$_GET['id'];
ShowGoods("tovari","$id","$
}
Сама функция вынесена в приложение.
3.4. Просмотр товара
Нажатие на ссылку «Подробнее» направит пользователя на страницу с описанием товара.
Рис. 7 – Описание товара
В данном окне отображается полное описание выбранного товара. Нажатие на картинку увеличит ее, повторное нажатие – уменьшит.
Реализация:
<script language = "JavaScript">
var bigsize = "300"; //Увеличенная высота
var smallsize = "100"; //Стандартная высота
function changeSizeImage(im)
{
if(im.height == bigsize) //Изменяем высоту в зависимости от текущей
im.height = smallsize;
else im.height = bigsize;
}
</script>
Поле с количеством товара и кнопкой «В корзину» доступно только зарегистрированным пользователям. Посетителям, менеджерам и администратору оно недоступно.
Реализация:
if (isset($_SESSION['id_klienta']
{
$login=$_SESSION['login'];
if (($_SESSION['metka']!='
if (($_GET['id']) && ($_GET['goodsid'])) //Если смотрим товар
{
$id=$_GET['id'];
$goodsid=$_GET['goodsid'];
print '<form action="actions.php" method="get">';
print "<input type='hidden' name='id' value=$id>";
print "<input type='hidden' name='goodsid' value=$goodsid>";
print "<input type='hidden' name='basket' value=add>";
print "Количество:
<input type='text' name='count' id='count' value='0' size='1'>
<input type='submit' value='В корзину'></form>"; //Выводим форму покупки
}
}
3.5. Отправка в корзину
Чтобы отправить товар в корзину, пользователь должен нажать на клавишу «В корзину», введя при этом количество товара, удовлетворяющее условию:
0<Количество товара<Товара на складе
Это условие проверяется и в случае несоответствия пользователю выводится соответствующее сообщение.
Если все верно:
Рис. 8 – Сообщение пользователю
Перемещаясь по товарам на сайте, пользователь набирает корзину товаров. Как только пользователь решать, что все нужные товары выбраны, он должен перейти в личный кабинет.
3.6. Личный кабинет
Рис. 9 – Личный кабинет
В личном кабинете пользователь может отредактировать товары в корзине: удалить те, которые считает лишними. Автоматически ведется расчет итоговой суммы, которую покупатель должен заплатить за товар. Доставка в расчет не входит.
Если покупателя все устраивает, он нажимает кнопку «Отправить»:
Рис. 10 – Сообщение пользователю
Заказ из корзины перемещается в «Отправленные заказы», что говорит о том, что список передам сотрудникам магазина, но доставка еще не выполнена. Пользователь может выбрать определенный заказ и просмотреть его содержимое.
Таблица «Выполненные заказы» содержит в себе заказы, которые были отправлены покупателю. Пользователь может выбрать определенный заказ и просмотреть его содержимое.
Реализация таблиц с товарами приведена в приложении.
Реализация отправки заказа:
f (isset($_POST['accept'])) //Если нажали кнопку Отправить
{
include "dbconnect.php";
$id_korzini=$_POST['id_
$testing=mysql_query("select * from tovari_korz where id_korzini='".$id_korzini."'")
if (count(mysql_fetch_row($
{
$data_pok=date("d.m.y H:i"); //Дата покупки
mysql_query("update korzina set status='podtverjden', data_pok='".$data_pok."'
where id_korzini='".$id_korzini."'")
header('Location: cabinet.php?r=2');
}
}
3.7. Панель менеджера
3.7.1. Управление типами товаров
Если на сайт входит пользователь с меткой менеджера, то он автоматически перемещается в панель управления менеджера, где сосредоточены все функции управления контентом и заказами.
Рис. 11 – Панель менеджера, Управление типами товаров
На странице «Управление типами товаров» менеджер может добавлять или удалять требуемые типы товаров. Если есть товары, принадлежащие удаляемому типу, то удалить его не получится.
Рис. 12 – Сообщение пользователю
Типы товаров разделены постранично, так же их можно отсортировать по различным колонкам.
Реализация формирования запроса сортировки:
<form id="tipselector" name="sel_tip"
method="get" action="" onchange="document.forms.sel_
Добавление типов товаров (Сортировать по
<select name="goodtype">
<option value="tip_tovara.nazvanie" <? if (($_GET['goodtype'])=="tip_
<option value="tip_tovara.id_tipa"
<? if (($_GET['goodtype'])=="tip_
</select>):
<?
//Определяем значения переменным
if ($_GET['goodtype'])
$method=$_GET['goodtype'];
else $method="tip_tovara.nazvanie";
if ($_GET['numpage'])
$numpage=$_GET['numpage'];
else $numpage=0;
?>
</form>
Вывод таблицы осуществляется функцией:
ShowTable("tip_tovara","id_
Реакция на действия пользователя(удаление, добавление типов) реализована следующим образом:
if ($_GET['r']==1) //Удаление
{
?>
<script>
window.alert("Удалено успешно");
</script>
<?
}
if ($_GET['a']==1) //Добавление
{
?>
<script>
window.alert("Добавлено успешно");
</script>
<?
}
Значения, получаемые с помощью $_GET возвращаются со страницы actions.php с помощью header, где хранится код реакции на нажатия тех или иных кнопок.
Код, содержащийся в actions.php приведен в приложении.
3.7.2. Управление товарами
Перейдя по ссылке «Управление товарами» менеджер сможет добавлять товары в категории, добавлять к ним описания, а так же просматривать имеющиеся товары. Возможна сортировка по различным столбцам. Список так же разделен на страницы.
Рис. 13 – Товары
Если хотя бы одно поле из
подменю добавления товаров не заполнено,
товар не добавится. Если товар добавится,
то в столбце «Опис.» появится
рядом с товаром клавиша «Доб.»
В данном окне можно будет добавить информацию о характеристиках товара, гарантии, производителе. Нажатие кнопки «Обновить запись» добавит эту информацию в базу данных. Далее следует форма добавления изображений к товару. Нажатием кнопки «Обзор» запускается диалог выбора изображения.
Имеется проверка формата изображения: допускается изображение только формата .jpg/.jpeg и объема менее 1 Мб.
Кнопка «Загрузить» добавит изображение на сайт. Так же в этом окне отображаются все изображения данного товара, их можно удалить. Когда все изменения проделаны нужно нажать кнопку «Закрыть» или просто закрыть окно.
Рис. 14 – Описание товара
Реализация выбора типа товара:
$content='<select name="tip_tovar">'; //Собираем select
include "dbconnect.php"; //Подключаемся к БД
$res = mysql_query('select id_tipa, nazvanie from tip_tovara order by nazvanie');
$kost=0;
while ($row = mysql_fetch_array($res)) //Заполняем select с оглядкой на выбранное значение
{
$content.= '<option value="'.$row["id_tipa"].'"';
if ($kost==0) {$number=$row["id_tipa"]; $kost++;}
if ($row["id_tipa"]==$_GET["tip_
{$content.= ' selected'; $kost++;} else
if (($row["id_tipa"]==$_GET['
{$content.= ' selected'; $kost++;}
$content.= '>'.$row["nazvanie"].'</