Автор работы: Пользователь скрыл имя, 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
}
$content.= '</select> ';
echo $content;// Выводим select
//Получаем значения select
if ($_GET['tip_tovar'])
$number=$_GET['tip_tovar']; else
if ($_GET['number'])
$number=$_GET['number'];
Реализация вывода изображений приведена в приложении.
3.7.3. Новые заказы
На вкладке «Новые заказы» менеджер может отсортировать, просмотреть, отгрузить и отменить заказы.
Рис. 15 – Новые заказы
Реализация кнопки «Отгрузить»:
if (isset($_POST['send_zak'])) //Если нажали Отгрузить
{
include "dbconnect.php"; //Подключились к БД, заполнили параметры
$id_korzini=$_POST['id_
$data_otpr=date("d.m.y H:i");
//Обновили статус корзины
mysql_query("update korzina set status='otpravlen',
data_pok='".$data_otpr."' where id_korzini='".$id_korzini."'")
$tovar_minus=mysql_query("
while($row_tovar=mysql_fetch_
mysql_query("update tovari set kol_sklad=kol_sklad-'".$row_
header('Location: orders_new.php?r=2');
}
Реализация кнопки «Отменить заказ»:
if (isset($_POST['del_zak'])) //Если нажали Отменить заказ
{
include "dbconnect.php";
$id_korzini=$_POST['id_
$delete=mysql_query("delete from korzina where id_korzini='".$id_korzini."'")
header('Location: orders_new.php?r=1');}
Нажатие кнопки «Открыть» откроет список товаров, заказанный покупателем. Реализация открытия окна:
<script>
function rnum(n)
{//Откроем посередине экрана
var leftvar = (screen.width-700)/2; //Расстояние слева
var topvar = (screen.height-400)/2; //Расстояние сверху
newWin = window.open('user_basket.php?
newWin.focus();
}
</script>
Рис. 16 – Выписка по невыполненному заказу
В выписке будет отмечено, что товары еще не огружены, а так же выведена контактная информация о заказчике и данные о товаре.
3.7.4. Выполненные заказы
После нажатия кнопки «Отгрузить» на вкладке «Новые заказы» обработанный заказ переместится и будет отображен на вкладке «Обработанные заказы». Так же, в личном кабинете пользователя, чей заказ был выполнен, обновится таблица выполненных заказов.
На данной вкладке так же можно просмотреть список заказанных товаров:
Рис. 17 – Выписка по выполненному заказу
На странице с обработанными
заказами реализована сортировка по
столбцам, а так же разделение списка
по страницам для упрощения
Рис. 18 – Обработанные заказы
Реализация количества
выполненных товаров и
<form id="readyselector" name="sel_order"
method="get" action="" onchange="document.forms.sel_
Выполнено заказов:
<?
include "dbconnect.php"; //Подключились к БД
$res=mysql_query('select count(id_korzini) from korzina where status="otpravlen"');
while ($row=mysql_fetch_array($res))
$rcount=$row[0];
print $rcount." "; //Вывели количество выполненных заказов и начали формировать select
?>
(Сортировать по
<select name="ready">
<option value="klient.iniciali_
<option value="korzina.data_pok" <? if (($_GET['ready'])=="korzina.
<option value="korzina.id_korzini" <? if (($_GET['ready'])=="korzina.
<option value="korzina.summa"<?
if (($_GET['ready'])=="korzina.
</select>)
<?
// Определили переменные и их значения
if ($_GET['ready'])
$method=$_GET['ready'];
else $method="klient.iniciali_
if ($_GET['numpage'])
$numpage=$_GET['numpage'];
else $numpage=0;
?>
</form>
3.7.5. Статистика
Рис. 19 - Статистика
На вкладке «Статистика» менеджер
может просмотреть информацию по
магазину: сколько типов товаров,
наименований, единиц на складе, а так
же на какую сумму хранится товара.
Помимо этого предоставлена
Реализация статистики:
<table width="100%" border="0">
<tr>
<td width="20%"></td>
<td align="center">Всего типов товаров:
<?
include "dbconnect.php"; //Подключились к БД
$res=mysql_query('select count(id_tovara) from tovari where kol_sklad="0"');
while ($row=mysql_fetch_array($res))
$rcount=$row[0];
$tquery=MYSQL_QUERY("select count(id_tipa) from tip_tovara");
while($trez = mysql_fetch_array($tquery))
print $trez[0]; //Посчитали типы
?>
</td>
<td width="20%"></td>
</tr>
<tr>
<td></td>
<td align="center">Всего наименований:
<?
$tquery=MYSQL_QUERY("select count(id_tovara) from tovari");
while($trez = mysql_fetch_array($tquery))
print $trez[0]; //Посчитали наименования
?>
</td>
<td></td>
</tr>
<tr>
<td></td>
<td align="center">Общее число единиц товаров на складе:
<?
$kol=0;
$tquery=MYSQL_QUERY("select kol_sklad from tovari");
while($kol_arr = mysql_fetch_array($tquery))
$kol+=$kol_arr[0]; //Считаем общее число товара на складе
print $kol.' единиц';
?>
</td>
<td></td>
</tr>
<tr>
<td></td>
<td align="center">Товаров на
<?
$summ=0;
$tquery=MYSQL_QUERY("select kol_sklad,cena from tovari");
while($kol_arr = mysql_fetch_array($tquery))
$summ+=$kol_arr[0]*$kol_arr[1]
print $summ.' руб.';
?>
</td>
<td></td>
</tr>
<tr>
<td></td>
<td align="center">
<form id="readyselector" name="sel_order" method="get"
action="" onchange="document.forms.sel_
Кончившиеся товары
(Сортировать по
<select name="goodtype">
<option value="tovari.nazvanie" <? if (($_GET['goodtype'])=="tovari.
<option value="tovari.id_tovara" <? if (($_GET['goodtype'])=="tovari.
<option value="tovari.cena" <? if (($_GET['goodtype'])=="tovari.
</select>):
<?
//Определяем значения
if ($_GET['goodtype'])
$method=$_GET['goodtype'];
else $method="tovari.nazvanie";
if ($_GET['numpage'])
$numpage=$_GET['numpage'];
else $numpage=0;
?>
</form>
<?
ShowTable("tovari","id_tovara"
?>
</td><td></td></tr>
</table>
Реализация вывода таблицы представлена в приложении.
3.8. Панель администратора
Рис. 20 – Панель администратора
Пользователь с меткой администратора, заходя на сайт автоматически перемещается в панель администратора. В данной панели предоставляется возможность просмотра всех пользователей сайта, их удаление, добавление/отмена прав менеджера. Для удобства поиска реализована сортировка по столбцам и разделение на страницы.
Реализация управления правами менеджера:
if (isset($_POST['addprivileges']
{
include "dbconnect.php"; //Подключились к БД
$userid=$_POST['userid'];
$numpage=$_POST['numpage'];
$sort=$_POST['sort'];
if ($_POST['priv']=="Отменить") //Если отменяем права
mysql_query("update klient set metka='' where id_klienta=".$userid."");
if ($_POST['priv']=="Добавить") //Если добавляем права
mysql_query("update klient set metka='manager' where id_klienta=".$userid."");
header('Location: admin.php?numpage='.$numpage.'
}
Все остальные решения идентичны рассмотренным ранее.
4. Права доступа
Очевидно, что необходимо предусмотреть защиту от несанкционированного доступа к материалам сайта посетителей, не имеющих должных на это прав.
Защита в данном случае основа на проверке авторизации и аутентификации пользователей.
Доступ был разграничен
- Посетители сайта, которые не
зарегистрированы, имеют возможность
просматривать главную
- Зарегистрированные и вошедшие под своим логином и паролем пользователи получают доступ к форме отправки товара в корзину, главной странице и к личному кабинету.
- Менеджеры имеют доступ к главной странице и панели менеджера. Совершать покупки и посещать личный кабинет они не могут.
- Администратор имеет доступ к главной странице и к панели администратора. Совершать покупки он так же не имеет прав.
Таким образом, необходимо проверять, вошел ли пользователь и есть ли у него права менеджера или администратора.
Пример реализации (личный кабинет):
session_start(); //Открыли сессию
if (isset($_SESSION['id_klienta']
{
$login=$_SESSION['login'];
if (($_SESSION['metka']!='
{
(код страницы)
}
//Если условия не выполнились отказать во ходе, вернуть на главную страницу
else
header('Location: index.php');
}
else
header('Location: index.php');
Реализация входа на сайт:
session_start();//Открыли сессию
if (isset($_GET['login']) && isset($_GET['password'])) //Если введен логин и пароль
{
include "dbconnect.php";//Подключаемся к БД
$login=$_GET['login'];
$password=$_GET['password'];
$query = "select `id_klienta`,`iniciali_klienta
$sql = mysql_query($query);//Выберем из БД пользователя с таким логином и паролем
if (mysql_num_rows($sql)==1) //Если такой пользователь есть
{
$row = mysql_fetch_assoc($sql);
$_SESSION['id_klienta']=$row['
$_SESSION['iniciali_klienta']=
$_SESSION['metka']=$row['
$_SESSION['login']=$login;
if ($_SESSION['metka']=='manager'
header("Location: manager.php"); //Перешлем его в панель менеджера
else
if ($_SESSION['metka']=='
header("Location: admin.php"); //Перешлем его в панель администратора
else //Просто пользователя вернем на главную
header("Location: index.php");
}
else //И тех, кто не смог войти тоже вернем на главную
{
header("Location: index.php");
}
}
//Если выходим из учетной записи
if (isset($_GET['logout'])) {
session_unset();
session_destroy();
header("Location: index.php");
exit();
}
Заключение