Создание интернет-магазина с форумом и административной частью

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

Создание интернет-магазина с форумом и административной частью

Оглавление

Введение

Глава 1. Техническое задание

Глава 2. Технический проект

2.1 Описание схемы данных

2.2 Клиентская часть

2.3 Описание классов и файлов программы

Приложение A. Исходный код

Приложение Б. Снимки страниц

Введение


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

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

Глава 1. Техническое задание


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

1.2.   Функциональные требования:

1.      Возможность просмотра каталога товаров.

2.      Наличие наименования товара в каталоге товаров.

.        Наличие описания товара в каталоге товаров.

.        Наличие стоимости товара в каталоге товаров.

.        Возможность регистрации новых пользователей.

.        Возможность добавить адрес пользователя.

.        Возможность указать способ оплаты.

.        Наличие корзины товаров.

.        Наличие наименования товара в корзине товаров.

.        Наличие цены выбранного товара в корзине товаров.

.        Возможность просматривать общую стоимость выбранных товаров.

.        Возможность добавлять товары в корзину товаров.

.        Возможность удалять товары в корзину товаров.

1.3.   Нефункциональные требования:

1.      Одинаково быстрая работа на разного рода устройствах (ПК, телефоны, смартфоны, планшетные компьютеры).

2.      Работа в современных браузерах Internet Explorer 5.5 и выше, Mozilla Firefox 7.01 и выше, Safari 5.1.7 и выше, Google Chrome 13.0.772.0 (быстрая загрузка страниц).

.        Проект должен быть написан на языке программирования PHP.

.        Использовать базы данных MySQL версии 5.0 и выше.

.        Работать на веб-сервере Apache.

.        Веб-сайт должен иметь пользовательскую часть.

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

.        Не хранить пароли в БД в открытом виде.

.        Клиентские требования для Windows: Windows XP с пакетом обновления 2 или более поздней версии; Windows Vista; Windows 7; Windows 8.

.        Клиентские требования для Mac: Mac OS X 10.6 или более поздняя версия.

.        Клиентские требования для Linux: Ubuntu 10.04+; Debian 6+; OpenSUSE 11.3+; Fedora Linux 14.

.        Наличие процессора для Windows: Intel Pentium 4 или более поздней версии.

.        Наличие процессора для Mac: Intel.

.        Наличие процессора для Linux: Intel Pentium 3/Athlon 64 или более поздней версии.

.        Свободное место на диске для Windows: 100 МБ.

.        Свободное место на диске для Mac: 100 МБ.

.        Свободное место на диске для Linux: 100 МБ.

.        Клиентские требования к ОЗУ для Windows: 128 МБ.

.        Клиентские требования к ОЗУ для Mac: 128 МБ.

.        Клиентские требования к ОЗУ для Linux: 128 МБ.

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

Глава 2. Технический проект


2.1 Описание схемы данных


2.1.1 Таблица Client

В таблице содержится информация о клиентах. Таблица имеет поля:

id - первичный ключ, name - имя клиента, password - пароль, fname - имя, sname - фамилия, email - адрес email, address - адрес, phone_number - номер телефона.

.1.2 Таблица Staff

В таблице содержится информация о сотруднике. Таблица имеет поля:

id - первичный ключ, name - имя клиента, password - пароль, type - тип, fname - имя, sname - фамилия.

.1.3 Таблица Items

В таблице содержится информация о товарах. Таблица имеет поля:

id - первичны ключ, name - имя, price - цена, description - описание.

.1.4 Таблица Cart

В таблице содержится информация о корзине товаров. Таблица имеет поля:

id - первичный ключ, client - внешний ключ, current - является ли корзина текущей.

.1.5 Таблица Items_on_cart

В таблице содержится информация о товарах содержащихся в корзине товаров. Таблица имеет поля:

id - первичный ключ, items_id - внешний ключ - товар, cart_id - внешний ключ - корзина.

2.2 Клиентская часть


.2.1 Главная страница

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

.2.2 Корзина

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

.2.3 Регистрация пользователя

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

Класс для установки подключения к базе данных и выполнения запросов SQL

Класс имеет 1 статическое поле для хранения подключения к БД.

Класс реализует следующие методы:

.3.1.1 setDataBaseConnect - Метод для установки нового пдключения к базе данных, путем содания нового объекта класса PDO

.3.1.2 select - Метод для выполнения запросов на выборку данных из БД. Если подключение не было установленно ранее устанавливает его. Метод принимает два параметра: строку SQL-запроса и не обязательный массив неименованных параметров запроса. Метод возвращает выбранные строки в виде массива объектов. В случае ошибки возвращается значение false.

2.3.1.3 insertOrUpdate - Метод для выполнения запросов на вставку или обновление данных в БД. Если подключение не было установленно ранее устанавливает его.

Метод принимает два параметра: строку SQL запроса и массив неименованных параметров запроса.

.3.1.4 delete - Метод для удаления данных в БД. Если подключение не было установленно ранее устанавливает его. Метод принимает два параметра: строку SQL запроса и не обязательный массив неименованных параметров.

.3.1.5 getLastId - Метод получения значения первичного ключа из вставленных объектов.

.3.2 Класс Cart

Класс для организации работы корзины.

Класс реализует следующие методы:

.3.2.1 addNewCart - Метод создания новой корзины для покупок. Возвращает идентификатор созданной корзины.

.3.2.2 addNewItem - метод добавления товара в текущую корзину покупок. Возвращает идентификатор созданного товара.

.3.2.3 loadCurrentCart - Метод получения из базы данных текущей корзины. Возвращает объект - данные о текущей корзине.

.3.2.4 cartItemsCount - Метод получения числа элементов в корзине. Возвращает число элементов в корзине.

.3.2.5 removeCart - Метод удаления корзины из БД. Принимает идентификатор корзины.

.3.2.6 loadItemsFromCart - Делает корзину неактивной после совершения покупки.

.3.2.7 deleteItemsFromCart - Метод удаления товаров из корзины. Принимает массив идентификаторов товаров.

.3.2.8 addItemsOnCart - Метод добавления товаров в корзину. Если текущей корзины нет, создает новую корзину. Принимает массив с идентификаторами товаров.

.3.2.9.commitCart - Метод подтверждения заказа корзины.

.3.3 Класс Registration

Класс реализует возможность регистрироваться на сайте.

В классе реализованы следующие методы:

.3.3.1 userRegistration - Метод добавления нового пользователя. Прежде чем добавить, проверяет, не занято-ли введенное имя. Возвращает будевы значения в случае успеха или неудачи.

.3.3.2 managerRegistration - Метод добавления нового менеджера. Прежде чем добавить, проверяет, не занято-ли введенное имя. Возвращает будевы значения в случае успеха или неудачи.

.3.3.3 supervisorRegistration - Метод добавления супервизоров. Прежде чем добавить, проверяет, не занято-ли введенное имя. Возвращает будевы значения в случае успеха или неудачи.

.3.3.4 deleteManager - Метод удаления менеджера из БД. Принимает идентификатор менеджера.

.3.3.5 selectManagers - Метод получения прокси списка менеджеров. В случае ошибки возвращается значение false.

.3.3.6 selectManager - Метод выбора менеджера. Принимает идентификатор менеджера. В случае ошибки возвращается значение false.

2.3.3.7 updateManagerWithPassword - Метод обновления данных менеджера.

.3.4 Класс Auth

Класс для реализации аутентификации пользователей.

В классе реализованы следующие методы:

.3.4.1 isAuth - Проверяет наличие пользователя с заданным логином, если информация совпадает, то сессия возвращает true, если не совпадает, то возвращает false.

.3.4.2 authentification - Обрабатывает POST и GET запросы на вход и выход из системы. Обрабатывает запрос на вход и выход из системы (логин пользователя). Если запрос верен, то возвращается true, если не верен, то возвращается false.

.3.4.3 isAuthStaff - Проверяет наличие персонала с заданным логином, если информация совпадает, то сессия возвращает true, если не совпадает, возвращается false.

.3.4.4 authentificationStaff - Обрабатывает POST и GET запросы на вход и выход из системы администратора. Обрабатывает запрос на вход и выход из системы (логин персонала). Если запрос верен, то возвращается true, если не верен, то возвращается false.

.3.5 Описание файлов:

.3.5.1 Папка pattern

В данной папке содержатся файлы шаблонов.

.3.5.2 index. php - Основные точки входа в систему. В части магазина сначала проводится авторизация, а затем обрабатываются GET запросы с подстановкой необходимых шаблонов. В административной части по идентичной схеме работает admin. php. Форум же после проверки авторизации использует автоматический вызов контроллеров у Классов-сущностей.

.3.5.3 finder. js - При нажатии на кнопку с идентификатором finder, у блока идентификатором new_message CSS свойству display присваивается значение block. При щелчке на кнопку с идентификатором finder_close, у блока с идентификатором new_message CSS свойству display присваивается значение none. Таким образом реализован показ окна нового сообщения.

Приложение A. Исходный код


А.1. Класс DataBaseConnect

<? phpDataBaseConnect {public $dbc;DATA_BASE_TYPE = "mysql";USER = "lesha";PASSWORD = "password";HOST = "localhost";DATA_BASE = "s_shop";public function setDataBaseConnect ($user, $password, $host, $dataBase) {:: $dbc=newPDO (self:: DATA_BASE_TYPE. ": host=$host; dbname=$dataBase;=utf8",$user, $password);

}public function select ($sqlString, $params = array ()) {(! isset (self:: $dbc)) {:: setDataBaseConnect (self:: USER,self:: PASSWORD,self:: HOST,self:: DATA_BASE);

}{

$statment = self:: $dbc->prepare ($sqlString);

$statment->execute ($params);

$statment->setFetchMode (PDO:: FETCH_OBJ);

$resultObjArray = array ();($obj = $statment->fetch ()) {

$resultObjArray [] = $obj;

}$resultObjArray;

} catch (PDOException $exc) {false;

// throw new Exception ('SELECT ERROR');

}

}public function insertOrUpdate ($sqlString, $params) {(! isset (self:: $dbc)) {:: setDataBaseConnect (self:: USER,self:: PASSWORD,elf:: HOST,self:: DATA_BASE);

}{

$statment = self:: $dbc->prepare ($sqlString);

$statment->execute ($params);true;

} catch (PDOException $exc) {false;

// throw new Exception ('INSERT OR UPDATE ERROR');

}

}public function delete ($sqlString, $paramsArray) {(! isset (self:: $dbc)) {:: setDataBaseConnect (self:: USER,self:: PASSWORD,self:: HOST,self:: DATA_BASE);

}{

$statment = self:: $dbc->prepare ($sqlString);

$statment->execute ($paramsArray);true;

}(PDOException $exc) {false;

// throw new Exception ('DELETE ERROR');

}

}

}

? >? >.2. Класс Auth.

<? phpAuth{$user;$password;SELECT_USER = "SELECT id, name, password FROM clients WHERE name =? AND password =?";SELECT_MANAGER = "SELECT id, name, password, type FROM staff WHERE name =? AND password =?";public function isAuth ($user, $password) {

$password = md5 ($password);

$result = DataBaseConnect:: select (self:: SELECT_USER, array ($user, $password));(count ($result) == 1) {

$_SESSION ['user'] = $result [0] - >name;

$_SESSION ['id'] = $result [0] - >id;

$_SESSION ['auth'] = true;true;

}return false;

}public function authentification () {(isset ($_GET ["logout"])) {($_SESSION ["user"], $_SESSION ["id"], $_SESSION ["auth"]);

}(isset ($_POST ["auth"])) {($_POST ["auth"] == true) {:: isAuth ($_POST ["login"], $_POST ["password"]);($_POST ["auth"], $_POST ["login"], $_POST ["password"]);

}

}

}public function isAuthStaff ($user, $password) {

$password = md5 ($password);

$result = DataBaseConnect:: select (self:: SELECT_MANAGER, array ($user, $password));(count ($result) == 1) {

$_SESSION ['userM'] = $result [0] - >name;

$_SESSION ['idM'] = $result [0] - >id;

$_SESSION ['typeM'] = $result [0] - >type;

$_SESSION ['authM'] = true;true;

}return false;

}public function authentificationStaff () {(isset ($_GET ["logoutM"])) {($_SESSION ["userM"],$_SESSION ["idM"],$_SESSION ["authM"],$_SESSION ["typeM"]);

}(isset ($_POST ["authM"])) {($_POST ["authM"] == true) {:: isAuthStaff ($_POST ["loginM"], $_POST ["passwordM"]);($_POST ["authM"], $_POST ["loginM"], $_POST ["passwordM"]);

}

}

}

}

? >

A.3. Класс Cart.

<? phpCart {$currantCart;NEW_CART = "INSERT INTO `s_shop`. `cart` (`id`, `client`, `current`) VALUES (NULL,?, '1')";LOAD_CURRENT_CART = "SELECT id FROM cart WHERE client =? AND current = 1";DISABLE_CART = "UPDATE `s_shop`. `cart` SET current = '0' WHERE id =?";LOAD_ITEMS_FROM_CART = "SELECT items_on_cart. id AS id, name, price, description, img_url FROM items, items_on_cart WHERE cart_id =? AND item_id = items. id";ADD_ITEM_ON_CART = "INSERT INTO `s_shop`. `items_on_cart` (`item_id`, `cart_id`, `id`) VALUES (?,?, NULL)";REMOVE_CART_ITEMS = "DELETE FROM items_on_cart WHERE cart_id =?";REMOVE_CART = "DELETE FROM cart WHERE id =?";REMOVE_ITEM_FROM_CART = "DELETE FROM items_on_cart WHERE id =?";CART_TO_COMMIT = "INSERT INTO commits (client, address, date, commit, cart, total_cost) VALUES (?,?,?, 0,?,?)";function addNewCart () {:: insertOrUpdate (self:: NEW_CART, array ($_SESSION ['id']));DataBaseConnect:: getLastId ();

}static function addToCart ($item_id) {

$currentCart = self:: loadCurrentCart ();($currentCart == false) {

$currentCart = self:: addNewCart ();

}:: insertOrUpdate (self:: ADD_ITEM_ON_CART, array ($item_id, $currentCart));

}static function loadCurrentCart () {

$result = DataBaseConnect:: select (self:: LOAD_CURRENT_CART, array ($_SESSION ['id']));(count ($result)! = 0) {$result [0] - >id;

}false;

}static function cartItemsCount () {

$cart = self:: loadCurrentCart ();($cart! = false) {

$result = DataBaseConnect:: select (self:: LOAD_ITEMS_FROM_CART, array ($cart));

$count = count ($result);($count! = 0) {$count;

}false;

}false;

}static function removeCart ($cart_id) {:: delete (self:: REMOVE_CART_ITEMS, array ($cart_id));:: delete (self:: REMOVE_CART, array ($cart_id));

}static function disabledCart ($cart_id) {:: insertOrUpdate (self:: DISABLE_CART, array ($cart_id));

}static function loadItemsFromCart () {

$cart = self:: loadCurrentCart ();($cart! = false) {

$result = DataBaseConnect:: select (self:: LOAD_ITEMS_FROM_CART, array ($cart));

$count = count ($result);($count! = 0) {$result;

}false;

}false;

}static function deleteItemsFromCart ($items_id_array) {($items_id_array as $temp) {:: delete (self:: REMOVE_ITEM_FROM_CART, array ($temp));

}

}static function addItemsOnCart ($items_id_array) {

$currentCart = self:: loadCurrentCart ();($currentCart == false) {

$currentCart = self:: addNewCart ();

}($items_id_array as $temp) {:: insertOrUpdate (self:: ADD_ITEM_ON_CART, array ($temp, $currentCart));

}

}static function commitCart ($address, $totalCoast) {

$currentCart = self:: loadCurrentCart ();($currentCart! = false) {

$date = date ("Y-m-d H: i: s");:: insertOrUpdate (self:: CART_TO_COMMIT, array ($_SESSION ['id'], $address, $date, $currentCart, $totalCoast));:: disabledCart ($currentCart);

}

}

}

? >.4. Класс Items.

<? phpItems {SET_ITEM = "INSERT INTO items (name, price, description, img_url) VALUES (?,?,?,?)";SELECT_EDITABLE_ITEM = "SELECT * FROM items WHERE id =?";SELECT_ALL_ITEMS = "SELECT * FROM items";UPDATE_ITEM = "UPDATE items SET name =?, price =?, description =?, img_url =? WHERE id =?";

// const NEW_ITEM = "INSERT INTO items (name, price, description, img_url) VALUES (?,?,?,?)";static function setItem ($name, $price, $description, $img_url) {:: insertOrUpdate (self:: SET_ITEM, array ($name, $price, $description, $img_url));

}static function selectEditableItem ($id) {

$proxy = DataBaseConnect:: select (self:: SELECT_EDITABLE_ITEM, array ($id));(count ($proxy) > 0) {$proxy [0];

}static function selectItems () {

$proxy = DataBaseConnect:: select (self:: SELECT_ALL_ITEMS);$proxy;

}static function updateItem ($id, $name, $price, $description, $img_url) {:: insertOrUpdate (self:: UPDATE_ITEM, array ($name, $price, $description, $img_url, $id));

}

}

? >.5. Класс Registration.

<? phpRegistration {NEW_USER = "INSERT INTO clients (name, password, fname, sname, email, address, phone_number) VALUES (?,?,?,?,?,?,?)";SELECT_USER_NAMES = "SELECT name FROM clients WHERE name =?";NEW_MANAGER = "INSERT INTO staff (name, password, type, fname, sname) VALUES (?,?, 'manager',?,?)";NEW_SUPERVISER = "INSERT INTO staff (name, password, type, fname, sname) VALUES (?,?, 'superviser',?,?)";SELECT_STAFF_NAMES = "SELECT name FROM staff WHERE name =?";DELETE_MANAGER = "DELETE FROM staff WHERE id =? AND type = 'manager'";SELECT_MANAGERS = "SELECT * FROM staff WHERE type = 'manager'";SELECT_MANAGER = "SELECT * FROM staff WHERE type = 'manager' AND id =?";UPDATE_MANAGER_WITOUT_PASSWORD = "UPDATE staff SET name =?, fname=?, sname =? WHERE id =? AND type = 'manager'";UPDATE_MANAGER_WITH_PASSWORD = "UPDATE staff SET name =?, password =?, fname=?, sname =? WHERE id =? AND type = 'manager'";public function userRegistration ($name, $password, $fname, $sname, $email, $address, $phone_number) {

$result = DataBaseConnect:: select (self:: SELECT_USER_NAMES, array ($name));(count ($result) > 0) {false;

}:: insertOrUpdate (self:: NEW_USER, array ($name, md5 ($password), $fname, $sname, $email, $address, $phone_number));true;

}public function managerRegistration ($name, $password, $fname, $sname) {

$result = DataBaseConnect:: select (self:: SELECT_STAFF_NAMES, array ($name));(count ($result) > 0) {false;

}:: insertOrUpdate (self:: NEW_MANAGER, array ($name, md5 ($password), $fname, $sname));true;

}public function supervisorRegistration ($name, $password, $fname, $sname) {

$result = DataBaseConnect:: select (self:: SELECT_STAFF_NAMES, array ($name));(count ($result) > 0) {false;

}:: insertOrUpdate (self:: NEW_SUPERVISER, array ($name, md5 ($password), $fname, $sname));true;

}public function deleteManager ($id) {:: delete (self:: DELETE_MANAGER, array ($id));

}public function selectManagers () {DataBaseConnect:: select (self:: SELECT_MANAGERS);

}public function selectManager ($id) {

$result = DataBaseConnect:: select (self:: SELECT_MANAGER, array ($id));$result [0];

}public function updateManagerWithoutPassword ($id, $name, $fname, $sname) {:: insertOrUpdate (self:: UPDATE_MANAGER_WITOUT_PASSWORD, array ($name, $fname, $sname, $id));

}public function updateManagerWithPassword ($id, $name, $password, $fname, $sname) {:: insertOrUpdate (self:: UPDATE_MANAGER_WITH_PASSWORD, array ($name, $password, $fname, $sname, $id));

}

}

? >.6. Файл index.

<? php_start ();_autoload_register ();:: authentification ();_start ();_once ("pattern/authBlock. php");

$authContent = ob_get_clean ();

// Блок корзины($_POST ['delete_cart_items']) {(count ($_POST ['cheked_items']) > 0) {:: deleteItemsFromCart ($_POST ['cheked_items']);

}

}($_POST ['add_to_cart']) {(count ($_POST ['cheked_items']) > 0) {:: addItemsOnCart ($_POST ['cheked_items']);

}

}($_POST ['bye_cart_items']) {:: commitCart ($_POST ['address'], $_POST ['total']);

}

// Конец блока корзины

// Начало блока регистрации

$regres = "";(! $_SESSION ['auth']) {($_POST ['new_user']) {

$reg=Registration:: userRegistration ($_POST ['name'],$_POST ['password'],$_POST ['fname'], $_POST ['sname'], $_POST ['email'], $_POST ['address'], $_POST ['phone_number']);($reg) {

$regres = "Registration SUCESFULL";

}{

$regres = "This USERNAME is not available";

}

}

}

// Конец блока регистрации(isset ($_GET ['cart'])) {_start ();(! $_SESSION ['auth']) {

$items = SShop:: getItems ();_once ("pattern/items. php");

}{

$items = Cart:: loadItemsFromCart ();_once ("pattern/cart. php");

}

$content = ob_get_clean ();

} else if (isset ($_GET ['registration'])) {_start ();(! $_SESSION ['auth']) {_once ("pattern/registration. php");

}{

$items = SShop:: getItems ();_once ("pattern/items. php");

}

$content = ob_get_clean ();

}{

$items = SShop:: getItems ();_start ();_once ("pattern/items. php");

$content = ob_get_clean ();

}_once ("pattern/pattern. php");

? >.7. Файл auth Block/Pattern.

<form action="index. php" method="post">

<? php if ($_SESSION ['auth']! = true) {? >: <input name="login" type="text" />: <input name="password" type="text" />

<button type="submit" name="auth" value="true" >Send</button><br />

<br />: <strong>GUEST! </strong><br />have account? <a href=". /? registration=true">registration</a>

<? php echo $regres;? >

<? php } else {? >

<a href=". /? logout=true">log out</a>

<br />: <strong><? php echo $_SESSION ['user'];? ></strong>

<? php }? >

</form>.8. Файл cart/Pattern.

<form method="POST" action=". /? cart=true">

<table>

<td id="img">Picture</td><td>Name</td><td>Description</td><td>Price</td><? php if ($_SESSION ['auth']) {? ><td></td><? php }? >

</tr>

<? php

$total = 0;($items! = false) {($items as $item) {

? >

<tr>

<td><img width="128" height="128" src="<? php echo $item->img_url;? >" /></td><td><? php echo $item->name;? ></td><td><? php echo $item->description;? ></td><td>$<? php echo $item->price;? ></td><td><input type="checkbox" name="cheked_items [] " value="<? php echo $item->id;? >" /></td>

</tr>

<? php

$total = $total + (int) $item->price;

}

}

? >

<? php

? >

</table>

<input type="hidden" name="total" value="<? php echo $total;? >" />

<? php echo "Total coast: $". $total;? >

<br />Payment info: <input style="width: 100%; " type="text" placeholder="Your address" name="address" />

<button name="delete_cart_items" type="submit" value="true">Delete</button>

<button name="bye_cart_items" type="submit" value="true">Buy</button>

</form>.9. Файл items/Pattern.

<form method="POST" action=". /">

<? php if ($_SESSION ['auth']) {? ><button type="submit" value="true" name="add_to_cart">add to cart</button><? php }? >

<table>

<tr>

<td id="img">Picture</td><td>Name</td><td>Description</td><td>Price</td><? php if ($_SESSION ['auth']) {? ><td></td><? php }? >

</tr>

<? php($items as $item) {

? >

<tr>

<td><img width="128" height="128" src="<? php echo $item->img_url;? >" /></td><td><? php echo $item->name;? ></td><td><? php echo $item->description;? ></td><td>$<? php echo $item->price;? ></td><? php if ($_SESSION ['auth']) {? ><td><input type="checkbox" name="cheked_items [] " value="<? php echo $item->id;? >" /></td><? php }? >

</tr>

<? php

}

? >

<? php

? >

</table>

</form>.10. Файл patters/Pattern.

<! DOCTYPE HTML>

<html>

<head>

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

<title>'s

</title>

</head>

<body>

<div id="header">

<a href=". /"><h1>Tolbin's MMMMMSHOP</h1></a>

<h2>Your paradise, my problem. </h2>

<? php$authContent;

? >

</div>

<div id="central">

<div id="menu">

<ul>

<li>

<a href=". /"><span>Main Stock</span></a>

</li>

<? php if ($_SESSION ['auth'] == true) {? >

<li>

<a href=". /? cart=true"><span>Shop Cart (<? php

$count = Cart:: cartItemsCount ();($count == false) {

$count = 0;

}$count;

? >)

</span>

</a>

</li>

<? php if ($_SESSION ['authM'] == true) {? >

<li>

<a href=". /admin. php"><span>Admin</span></a>

</li>

<li>

<a href=". /admin. php? commits=true"><span>Commits</span></a>

</li>

<li>

<a href=". /admin. php? commitsold=true"><span>CommitSold</span></a>

</li>

<? php if (strcasecmp ($_SESSION ['typeM'], 'supervisor') == 0) {? >

<li>

<a href=". /admin. php? itemsList=true"><span>Items List</span></a>

</li>

<li>

<a href=". /admin. php? newItem=true"><span>New Item</span></a>

</li>

<li>

<a href=". /admin. php? managerList=true"><span>Manager List</span></a>

</li>

<li>

<a href=". /admin. php? managerNew=true"><span>New Manager</span></a>

</li>

<? php }? >

<? php }? >

</ul>

</div>

<div id="content">

<? php echo $content;? >

</div>

</div>

</body>

</html>.11. Файл registration/Pattern.

<form>

<style>

. reg input [type=text] {: 100%;

}

</style>

<input type="text" placeholder="Your login" name="name" />

<input type="text" placeholder="Your password" name="password" />

<input type="text" placeholder="Your e-mail" name="email" />

<input type="text" placeholder="Your firstname" name="fname" />

<input type="text" placeholder="Your secondname" name="sname" />

<input type="text" placeholder="Your address" name="address" />

<input type="text" placeholder="Your phone number" name="phone_number" />

<button type="submit" name="new_user" value="true">registration</button>

</form>.12. Файл style/Pattern.{: 0;: 0;: #333;

}

#central {: 1024px;color: #fff;: 50px auto;: relative;

}

#central #menu {: absolute;: - 50px;: 1024px;color: #333;: 50px;

}

#central #menu ul{: inline-block;: 0;: 0;

}

#central #menu ul li {: block;: left;: 10px;

}

#central #menu ul li: hover{color: #fff;

}

#central #menu ul li span {: block;: 100%;: 10px;

}

#central #menu ul li a {decoration: none;weight: bold;: #fff;

}

#central #menu ul li a: hover {: #a00;

}

#header {color: #fff;: 100%;: relative;bottom: 25px;

}

#header h1 {: 10px;: #a00;decoration: none;

}

#header a h1 {decoration: none;: #a00;

}

}

#content table {: 2px solid #333;: 100%;

}

#content table td {: 1px solid #333;align: middle;

}

#content table #img {: 128px;

}

#content table tr. header{align: center;

}

#content button {: 100%;: #000;: #fff;

}

Приложение Б. Снимки страниц


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


Рисунок 2 - Страница регистрации

Похожие работы на - Создание интернет-магазина с форумом и административной частью

 

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