Разработка сайта интернет-магазина

Автор работы: Пользователь скрыл имя, 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

Вложенные файлы: 1 файл

Курсовая работа ТИП.doc

— 2.04 Мб (Скачать файл)

}

$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_korzini'];

$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("select kolichestvo,id_tovara from tovari_korz where id_korzini='".$id_korzini."'");

while($row_tovar=mysql_fetch_row($tovar_minus)) //Отгрузили со склада, обнов. количество

mysql_query("update tovari set kol_sklad=kol_sklad-'".$row_tovar[0]."' where id_tovara='".$row_tovar[1]."'");

header('Location: orders_new.php?r=2');

}

Реализация кнопки «Отменить  заказ»:

if (isset($_POST['del_zak'])) //Если нажали Отменить заказ

{

include "dbconnect.php";

$id_korzini=$_POST['id_korzini']; //Удалили корзину

$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?mode=new&id='+n,'formWindow', 'left='+leftvar+',top='+topvar+',width=700,height=400,toolbar=no,menubar=no,location=no,directories=no,scrollbars=yes'); //Открыли, передали информацию

newWin.focus();

}

</script>

Рис. 16 – Выписка по невыполненному заказу

 

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

 

3.7.4. Выполненные заказы

После нажатия кнопки «Отгрузить»  на вкладке «Новые заказы» обработанный заказ переместится и будет отображен  на вкладке «Обработанные заказы». Так же, в личном кабинете пользователя, чей заказ был выполнен, обновится  таблица выполненных заказов.

На данной вкладке так  же можно просмотреть список заказанных товаров:

Рис. 17 – Выписка по выполненному заказу

 

На странице с обработанными  заказами реализована сортировка по столбцам, а так же разделение списка по страницам для упрощения нахождения требуемых данных.

Рис. 18 – Обработанные заказы

 

Реализация количества выполненных товаров и сортировки:

<form id="readyselector" name="sel_order" method="get" action=""  onchange="document.forms.sel_order.submit();">

Выполнено заказов:

<?

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_klienta" <? if (($_GET['ready'])=="klient.iniciali_klienta") print " selected " ?>>фамилии клиента</option>

<option value="korzina.data_pok" <? if (($_GET['ready'])=="korzina.data_pok") print " selected " ?>>дате выполнения</option>

<option value="korzina.id_korzini" <? if (($_GET['ready'])=="korzina.id_korzini") print " selected " ?>>номеру заказа</option>

<option value="korzina.summa"<? if (($_GET['ready'])=="korzina.summa") print " selected " ?>>сумме</option>

</select>)

<?

// Определили переменные  и их значения

if ($_GET['ready'])

$method=$_GET['ready'];

else $method="klient.iniciali_klienta";

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_order.submit();">

Кончившиеся товары

(Сортировать по 

<select name="goodtype">

<option value="tovari.nazvanie" <? if (($_GET['goodtype'])=="tovari.nazvanie") print " selected " ?>>названию</option>

<option value="tovari.id_tovara" <? if (($_GET['goodtype'])=="tovari.id_tovara") print " selected " ?>>номеру</option>

<option value="tovari.cena" <? if (($_GET['goodtype'])=="tovari.cena") print " selected " ?>>цене</option>

</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","2","0",$method,$numpage,$rcount); //Функция вывода таблицы

?>   

</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.'&sort='.$sort.'');

}

Все остальные решения идентичны рассмотренным ранее.

 

4. Права доступа

 

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

Защита в данном случае основа на проверке авторизации и аутентификации пользователей.

Доступ был разграничен следующим  образом:

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

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

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

- Администратор имеет доступ к главной странице и к панели администратора. Совершать покупки он так же не имеет прав.

Таким образом, необходимо проверять, вошел ли пользователь и есть ли у него права менеджера или  администратора.

Пример реализации (личный кабинет):

session_start(); //Открыли сессию

if (isset($_SESSION['id_klienta'])) //Вошли ли на сайт

{

$login=$_SESSION['login'];

if (($_SESSION['metka']!='manager') && ($_SESSION['metka']!='administrator')) //Нет ли меток

{

(код страницы)

}

//Если условия не  выполнились отказать во ходе, вернуть на главную страницу

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`,`metka` from `klient` where `login`='{$login}' and `parol`='{$password}'";

$sql = mysql_query($query);//Выберем из БД пользователя с таким логином и паролем

if (mysql_num_rows($sql)==1) //Если такой пользователь есть

{

$row = mysql_fetch_assoc($sql);

$_SESSION['id_klienta']=$row['id_klienta']; //Проставим метку, что пользователь вошел

$_SESSION['iniciali_klienta']=$row['iniciali_klienta'];

$_SESSION['metka']=$row['metka']; //Метка прав доступа

$_SESSION['login']=$login;

if ($_SESSION['metka']=='manager') //Если вошел менеджер

header("Location: manager.php"); //Перешлем его в панель менеджера

else

if ($_SESSION['metka']=='administrator') //Если вошел администратор

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();

}

 

Заключение

Информация о работе Разработка сайта интернет-магазина