Интерактивное приложение интернет магазина по продаже компьютерных игр (ключей)

PHP скриптовый язык программирования общего назначения интенсивно применяемый для разработки веб-приложений. В области веб-программирования в частности серверная часть PHP один из популярных сценарных языков наряду с JSP Perl и языками используемыми в SP. Благодаря своей простоте скорости выполнения богатой функциональности кроссплатформенности и распространению исходных кодов на основе лицензии PHP.

2015-08-30

1.08 MB

5 чел.


Поделитесь работой в социальных сетях

Если эта работа Вам не подошла внизу страницы есть список похожих работ. Так же Вы можете воспользоваться кнопкой поиск


Оглавление

[1] Оглавление

[2] Введение

[3] Цели и Задачи

[4] Глава 1. Выбор технологий

[5] Глава 2. СУБД

[6] Глава 3. Создание серверной части приложения

[7] Заключение

[8] Список Литературы

[9] Приложение 1. Листинги страниц и скриптов

[10] Приложение 2
БД

[11] Приложение 3
Java-скрипт


Введение 

Интерактивное Web-приложение.

В нашем мире iPad-ов, iPhone-ов, Android-ов и устройств, сфокусированных на приложениях, уже несовременно использовать статический веб-сайт. Если нет механизма для сложного поиска, хотя бы трех способов оплаты покупок и пары страниц с хитрыми Ajax-взаимодействиями,то такой сайт могут назвать «застрявшим в 1990-ых».

Чем же отличается обычный web-сайт от web-приложения? Простейшим определением полностью статического Web-сайта является слово информационный. Классическим примером такого сайта является Википедия, которая задумывалась исключительно как информационный сайт. Внешний вид Википедии не бросается в глаза, не восхищает, она не усыпана всплывающими картинками и картами с полосами прокрутки.

Сайт может быть и динамическим – большинство блогов на wordpress являются информационными сайтами, состоящими из простых неинтерактивных страниц. Это свидетельствует о том, что web-сайт определяется не задействованными технологиями, но тем, каким образом пользователи взаимодействуют с ним.

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

Цели и Задачи 

  1.  Создать интерактивное приложение интернет магазина по продаже компьютерных игр (ключей).
  2.  Контент приложения должен выводится из БД.
  3.  Создать внутрисистемную систему оплаты интернет-магазина, по аналогу  с сервисом Steam.
  4.  Приложение должно отвечать требованиям современного дизайна, верстки, юзабилити.

Глава 1. Выбор технологий 

В этой главе обосновывается выбор, какие технологии для создания интерактивного веб-приложения.

  1.  Серверная ОС

В качестве сервера был выбран ОС Debian  на базе Unix, т.к. 67,6% всех серверов в мире используют системы на базе Unix; OC Debian используется на 35% мировых серверов, в то время, как Windows сервер используется только на 33,6% машин.

Кроме того, основными преимуществами Debian по сравнению с Windows являются:

  •  cтабильность;
  •  большое количество пакетов;
  •  свободное программное обеспечение;
  •  множество поддерживаемых архитектур;
  •  легкость в настройке;
  •  бесплатен.
  1.  HTTP(Web) – сервер

Apache, так же по статистике является самым популярным HTTP сервером и занимает долю в размере 65,4%, в то время, как Microsoft-IIS всего 15%.

Основными достоинствами Apache считаются надёжность и гибкость конфигурации. Он позволяет подключать внешние модули для предоставления данных, использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и т. д. Поддерживает IPv6.Так же бесплатен (Свободное ПО).

  1.  СУБД – MySQL

MySQL — свободная реляционная система управления базами данных. Разработку и поддержку MySQL осуществляет корпорация Oracle, получившая права на торговую марку вместе с поглощённой Sun Microsystems, которая ранее приобрела шведскую компанию MySQL AB. Продукт распространяется как под GNU General Public License, так и под собственной коммерческой лицензией. Помимо этого, разработчики создают функциональность по заказу лицензионных пользователей. Именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.

Исторически MySQL развивался именно как база для web, где режим работы довольно специфичен - подавляющее число запросов это простые SELECT из больших баз, от множества пользователей, обновлений и вставок - мало, хранимые процедуры, триггеры и т.п. - тоже редко используются. Поэтому не смотря на то, что MySQL не является самым оптимальным вариантом СУБД, как, например MS SQL, он однозначно более всего подходит именно для создания веб-приложений простого и среднего уровня, где нет необходимости работать с очень большими объемами данных или пользоваться расширенным функционалом.

       В итоге кросс-платформенность, открытая лицензия и простота использования делает     MySQL самой популярной СУБД для создания средних интерактивных web-приложений.

  1.  Язык разработки web-приложения. – PHP.
    PHP— скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов.

В области веб-программирования, в частности серверная часть, PHP — один из популярных сценарных языков (наряду с JSP, Perl и языками, используемыми в ASP.NET).

Благодаря своей простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов на основе лицензии PHP.

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

  •  автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;
  •  взаимодействие с большим количеством различных систем управления базами данных (MySQL, MySQLi, SQLite, PostgreSQL, Oracle (OCI8), Oracle, Microsoft SQL Server, Sybase, ODBC, mSQL, IBM DB2, Cloudscape и Apache Derby, Informix, Ovrimos SQL, Lotus Notes, DB++, DBM, dBase, DBX, FrontBase, FilePro, Ingres II, SESAM, Firebird / InterBase, Paradox File Access, MaxDB, Интерфейс PDO);
  •  автоматизированная отправка HTTP-заголовков;
  •  работа с HTTP-авторизацией;
  •  работа с cookies и сессиями;
  •  работа с локальными и удалёнными файлами, сокетами;
  •  обработка файлов, загружаемых на сервер;
  •  работа с XForms.

В настоящее время PHP используется сотнями тысяч разработчиков. Согласно рейтингу корпорации TIOBE, базирующемся на данных поисковых систем, в июне 2013 года PHP находился на 5 месте среди языков программирования. К крупнейшим сайтам, использующим PHP, относятся Facebook, Wikipedia и др.

Входит в LAMP — распространённый набор программного обеспечения для создания и хостинга веб-сайтов (Linux, Apache, MySQL, PHP).

  1.  Дополнительный софт для разработки интерактивного веб-приложения:
    5.1
    Artisteer 

Artisteerэто программа для создания шаблонов сайтов популярных систем управления содержимым (CMS), таких как Joomla, Wordpress, Blogger, Drupal, DotNetNuke, кроме того с его помощью можно быстро создавать простые статические сайты с уникальным дизайном.  Основные плюсы данного визуального редактора – простота и скорость создания шаблона, автоматическое создание карты сайта, пропись мета-тегов, генерация файлов .css, создание «резиновых» шаблонов, генерация ВАЛИДНОГО кода; т.е. шаблон созданый в Artisteer можно экспортировать в другие визуальные редакторы, такие как Dreamweaver. Очень мало подобных программ способно генерировать действительно валидный код.

  1.  Dreamweaver CC

это визуальный HTML-редактор компании Adobe. , является эталоном визуальных редакторов, имеет встроенную подсветку синтаксиса языков программирования (в том числе html,java-script,php и т.д.), быстрое меню вставки элементов, возможности организации иерархической структуры.



Глава 2. СУБД

MySQL с графическим интерфейсом phpmyadmin

Рисунок 1. «Панель входа СУБД MySQLphpmyadmin”»

Рисунок 2. «Стартовая панель управления СУБД MySQLphpmyadmin”»

Рассмотрим БД “mybase”.

Рисунок 3. «Содержание базы данных “mybase”»

Структура БД mybase состоит из трех таблиц:

В таблице users хранятся данные о пользователях системы, в неё включены поля id(int), login(логин, varchar), password(пароль, varchar),
fio(ФИО, varchar), email(электронная_почта, varchar), balance(баланс пользователя, int), где id является уникальным первичным ключом.


Рисунок 4 «Структура таблицы
users»


В таблице
stuff хранятся данные о товарах, в неё включены поля ids(id товара int), name(имя, varchar), description(описание, varchar), price(цена, varchar),  где ids является уникальным, первичным ключом. (тип данных цены обусловлен возможным выводом в как в формате числа, так и в формате «xxx руб.» или «ххх уе.»)

Рисунок 5 «Структура таблицы “stuff”»

В таблице payments хранятся данные о платежах, в неё включены поля id_pay(id платежа) , id_client(id пользователя совершившего платеж), id_stuff( id купленного товара).


Рисунок 6 «Структура таблицы “
payments”»

Целостность таблиц

Рисунок 7 «Связи таблицы “payments”»

Поля id_client и id_stuff являются вторичными ключами и соотносятся с первичными ключами соответствующих полей в таблицах users и stuff, правила внешних ключей – ON DELETE RESTRICT ON UPDATE RESTRICT, это запрещает удалять или обновлять записи таблицы, если в главной строчке есть соответствующий родитель. Это сделано для того, что бы запретить  изменять таблицу платежей, ведь может возникнуть такой случай, когда товар или пользователь может удалится из системы и из-за этого возникнет путаница в истории платежей, которая поэтому должна быть независима от подобных действий.

Таким образом таблица payments имеет отношение к таблицам users и stuff как «один ко многим», и с наличием правил соотношения ключей образует оптимальную целостность таблиц web-приложения.


Глава 3. Создание серверной части приложения

Соединение с БД реализуется следующим скриптом:


Скрипт соединения с БД:

<?php

   $db = mysql_connect ("localhost","Admin","Admin1");

   mysql_select_db ("mybase",$db);

   ?>

Этот скрипт содержится в файле bd.php, который подключается на всех страницах, где требуется соединение с БД.

Связь с базой данных реализуется в нескольких страницах в различных скриптах:

запрос на получение логинов пользователей из таблицы users, для проверки наличия зарегистрированных пользователей с таким именем:

SELECT id FROM users WHERE login='$login'

Запрос на сохранение пользовательских данных при регистрации:

INSERT INTO users (login,password,email,fio,balance)

VALUES('$login','$password','$email','$fio','$balance')

Запрос на изменение баланса при покупке товара:
"UPDATE users SET balance=".$bb." WHERE id=".$bid
Запрос на запись платежа в историю платежей:
"INSERT INTO payments  VALUES(NULL, '$bs', '$bid')"

Запрос на получение информации о товарах:

SELECT * FROM stuff

Глава 4. Java-script.

Джава-скрипты являются основными функциями обеспечивающими активность на стороне клиента, в то время как php скрипты обеспечивают активность на стороне сервера.

Пример Java-скрипта, реализующего выход:

код кнопки:

<button onclick='myWindow()'>Выйти</button>
код скрипта:
<
script>

function myWindow() {

var w = window.open('exit.php', 'Выход')}

</script>

Функция скрипта открывает новую страницу (обработчик выхода) с заголовком «Выход».
Скрипт последнего изменения страницы
shop.php
<script language=\"Javascript\">

<!--

document.write('данная страница изменялась:'+ document.lastModified + '<br>')

 //-->

</script>

Заключение

Выполненные задачи:

  •  Создано интерактивное приложение интернет-магазина по продаже компьютерных игр(ключей)
  •  Создана внутрисайтовая система оплаты.

Приложение отвечает современным требованиям, является кросс-браузерным; макет является «резиновым», что позволяет взаимодействовать с приложением на устройствах с любым разрешением экрана, соблюдены все основные принципы юзабилити.

Выводы:
Приложение было создано на базе комплекса
LAMP (Linux-Apache-MySQL-PHP), и соответствует всем основным техническим и стилистическим требованиям, в дальнейшем, при соответствующей модернизации может быть внедрено как независимая система простого интернет-магазина или в качестве плагинов\базы для существующих систем. Система внутрисайтовой оплаты позволяет вести международную деятельность, т.к. API оплаты для разных регионов планеты подключается отдельно, в независимости от основной валюты, используемой для оплаты на сайте.



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

  1.  «PHP для начинающих», Джанет Валейд, 2005, изд. «Диалектика».
  2.   http://wikipedia.org – электронный ресурс.
  3.  Дуванов А.А. Кухня Web-мастера Сидорова: основы практич. Web-дизайна. – М.: Чистые пруды, 2005. – 31 с.: ил. – (Б-ка «Первого сентября». Информатика; Вып. 4.).
  4.  Adobe Dreamweaver, CSS, Ajax и PHP - Дэвид Пауэрс,2009, БХВ-Петербург

  1.  Настольная книга администратора Debian: Debian Wheezy: от первого знакомства к мастерству, Рафаэль Херцог, 2013, Freexian SARL.


Приложение 1. Листинги страниц и скриптов

Структура проекта:

Рисунок 12 «Структура проекта»


Листинги страниц: 

Index.php (главная):
<!DOCTYPE html>

<html dir="ltr" lang="en-US"><head><!-- Created by Sergey Ponomarev -->

<meta charset="utf-8">

<title>Home</title>

<meta name="viewport" content="initial-scale = 1.0, maximum-scale = 1.0, user-scalable = no, width = device-width">

<!--[if lt IE 9]><script src="files/3/https://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->

<link rel="stylesheet" href="style.css" media="screen">

<!--[if lte IE 7]><link rel="stylesheet" href="style.ie7.css" media="screen" /><![endif]--><link rel="stylesheet" href="style.responsive.css" media="all">

<script src="files/3/jquery.js"></script>

<script src="files/3/script.js"></script>

<script src="files/3/script.responsive.js"></script>

<style>.art-content .art-postcontent-0 .layout-item-0 { padding-right: 10px;padding-left: 10px;  }

.ie7 .art-post .art-layout-cell {border:none !important; padding:0 !important; }

.ie6 .art-post .art-layout-cell {border:none !important; padding:0 !important; }

</style>

</head>

<body>

<div id="art-main">

<nav class="art-nav">

<ul class="art-hmenu"><li><a href="index.html" >Главная</a><ul class="active"><li></li></ul></li>

<li><a href="registration.php">Регистрация</a></li>

<li><a href="shop.php">Магазин</a></li>

</ul>

</nav>

<div class="art-sheet clearfix">

<header class="art-header">

<div class="art-shapes">

</div>

<h1 class="art-headline" data-left="1.02%">

<a href="#">Курсовая Работа</a>

</h1>

</header>

<br>

<section id="table1">

<article id="mainauthor">Автор проекта - Сергей Пономарев </br></article>

</section>

<br>

<footer class="art-footer">

<p><a href="#">Link1</a> | <a href="#">Link2</a> | <a href="#">Link3</a></p>

<p>Copyright © 2015. All Rights Reserved.</p>

</footer>

</div>

<p class="art-page-footer">

<span id="art-footnote-links">Web Template</a>created by Sergey Ponomarev</span>

</p>

</div>

</body></html>


Registration.php:
<!doctype html>

<html dir="ltr" lang="en-US"><head><!-- Created by Artisteer v4.1.0.60046 -->

<meta charset="utf-8">

<title>Home</title>

<meta name="viewport" content="initial-scale = 1.0, maximum-scale = 1.0, user-scalable = no, width = device-width">

<!--[if lt IE 9]><script src="files/3/https://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->

<link rel="stylesheet" href="style.css" media="screen">

<!--[if lte IE 7]><link rel="stylesheet" href="style.ie7.css" media="screen" /><![endif]--><link rel="stylesheet" href="style.responsive.css" media="all">

<script src="files/3/jquery.js"></script>

<script src="files/3/script.js"></script>

<script src="files/3/script.responsive.js"></script>

<style>.art-content .art-postcontent-0 .layout-item-0 { padding-right: 10px;padding-left: 10px;  }

.ie7 .art-post .art-layout-cell {border:none !important; padding:0 !important; }

.ie6 .art-post .art-layout-cell {border:none !important; padding:0 !important; }

</style>

</head>

<body>

<div id="art-main">

<nav class="art-nav">

<ul class="art-hmenu"><li><a href="index.html" >Главная</a><ul class="active"><li></li></ul></li>

<li><a href="registration.php">Регистрация</a></li>

<li><a href="shop.php" >Магазин</a></li>

</ul>

</nav>

<div class="art-sheet clearfix">

<header class="art-header">

<div class="art-shapes">

</div>

<h1 class="art-headline" data-left="1.02%">

<a href="#">Регистрация</a>

</h1>    

</header>

<br>

<section id="table1">

<article id="mainauthor">Автор проекта - Сергей Пономарев <?php phpinfo() ?><br><? echo "test" ?>

</article>

</section>

<br>

</br>

<h3>Пройдите пожалуйста регистрацию</h3>

<br>

<section id="formsection">

<div id="formblock"><form action="save_user.php" method="post"><label>Введите желаемый логин:</label><input name="login" type="text" autofocus required id="login"></br>

<label>ФИО:</label><input name="fio" type="text" >

<br><label>Введите пароль</label>

<input name="password" type="password" required id="password"><br>

<label>Введите свой e-mail:</label><input name="email" type="text" >

<br>

<input type="submit">

<input type="reset">

</form></div>

</section>

<footer class="art-footer">

<p><a href="#">Link1</a> | <a href="#">Link2</a> | <a href="#">Link3</a></p>

<p>Copyright © 2015. All Rights Reserved.</p>

</footer></div>

<p class="art-page-footer">

<span id="art-footnote-links">Web Template</a>created by Sergey Ponomarev</span>

</p>

</div>

</body></html>

Обработчик save_user.php
<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>Документ без названия</title>

</head>

<body>

<?php

if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную

if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }

//заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную

if (empty($login) or empty($password)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт

{exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");}

//вводим email и fio

$email=$_POST['email'];

$fio=$_POST['fio'];

//добавляем баланс

$balance=1000;

//если логин и пароль введены, то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести

$login = stripslashes($login);

$login = htmlspecialchars($login);

$email=stripslashes($email);

$email=htmlspecialchars($email);

$fio=stripslashes($fio);

$email=htmlspecialchars($fio);

$password = stripslashes($password);

$password = htmlspecialchars($password);

//удаляем лишние пробелы

$login = trim($login);

$password = trim($password);

// подключаемся к базе

include ("bd.php");// файл bd.php должен быть в той же папке, что и все остальные

// проверка на существование пользователя с таким же логином

$result = mysql_query("SELECT id FROM users WHERE login='$login'",$db);

$myrow = mysql_fetch_array($result);

if (!empty($myrow['id'])) {

exit ("Извините, введённый вами логин уже зарегистрирован. Введите другой логин."); }

// если такого нет, то сохраняем данные

$result2 = mysql_query ("INSERT INTO users (login,password,email,fio,balance) VALUES('$login','$password','$email','$fio','$balance')");

// Проверяем, есть ли ошибки

if ($result2=='TRUE')

{echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a href='index.html'>Главная страница</a>";}

else {echo "Ошибка! Вы не зарегистрированы.";

echo $result2;}    ?>

</body>

</html>


Страница магазина shop.php
<?php

//  вся процедура работает на сессиях. Именно в ней хранятся данные  пользователя, пока он находится на сайте. Очень важно запустить их в  самом начале странички!!!

session_start();

?>

<!DOCTYPE html>

<html dir="ltr" lang="en-US"><head><!-- Created by Artisteer v4.1.0.60046 -->

<meta charset="utf-8">

<title>Home</title>

<meta name="viewport" content="initial-scale = 1.0, maximum-scale = 1.0, user-scalable = no, width = device-width">

<!--[if lt IE 9]><script src="files/3/https://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->

<link rel="stylesheet" href="style.css" media="screen">

<!--[if lte IE 7]><link rel="stylesheet" href="style.ie7.css" media="screen" /><![endif]--><link rel="stylesheet" href="style.responsive.css" media="all">

<script src="files/3/jquery.js"></script>

<script src="files/3/script.js"></script>

<script src="files/3/script.responsive.js"></script>

<style>.art-content .art-postcontent-0 .layout-item-0 { padding-right: 10px;padding-left: 10px;  }

.ie7 .art-post .art-layout-cell {border:none !important; padding:0 !important; }

.ie6 .art-post .art-layout-cell {border:none !important; padding:0 !important; }

</style>

</head>

<body>

<div id="art-main">

<nav class="art-nav">

<ul class="art-hmenu"><li><a href="index.html" >Главная</a><ul class="active"><li></li></ul></li>

<li><a href="registration.php">Регистрация</a></li>

<li><a href="shop.php" class="active">Магазин</a></li>

</ul>

</nav>

<div class="art-sheet clearfix">

<header class="art-header">

<div class="art-shapes">

</div>

<h1 class="art-headline" data-left="1.02%">

<a href="#">Интернет-Магазин</a>

</h1>

</header>

<br>

<section id="table1">

<article id="mainauthor">Автор проекта - Сергей Пономарев </br></article>

<?php phpinfo ?>

</section>

<br>

<?php

echo "<script language=\"Javascript\">

<!--

 document.write('данная страница изменялась:'+ document.lastModified + '<br>')

 //-->

</script>";

?>

<form method='post'>

<select name='s1'>

<?php

include('bd.php');

$query='SELECT * FROM stuff';

$result=mysql_query($query,$db);

while($myrow = mysql_fetch_array($result))

{echo   "<option value=' ".$myrow['ids']." '>".$myrow['name']."</option>";}

echo "</select>";

?>

<input type='submit' >

</form>

<?php

include("bd.php");

mysql_query('SET NAMES UTF8');

$query="SELECT * FROM stuff WHERE ids=" . $_POST["s1"];

$bids=$_POST["s1"];

$result=mysql_query($query,$db);

while($myrow = mysql_fetch_array($result))

{echo  "<br>". $myrow['description'] . "</br>";}

?>

<br>

<?php

include("bd.php");

mysql_query('SET NAMES UTF8');

$query="SELECT * FROM stuff WHERE ids=" . $_POST["s1"];

$result=mysql_query($query,$db);

while($myrow = mysql_fetch_array($result))

{echo "Цена:";

echo  $myrow['price'] ;}

?>

<br>

<?php

// Проверяем, пусты ли переменные логина и id пользователя

if (empty($_SESSION['login']) or empty($_SESSION['id']))

{

// Если пусты, то мы не выводим ссылку

echo "Вы НЕ вошли<br>

<form action='testreg.php' method='post'>

<label>Введите Логин</label>

<input type='text' name='login'>

</br>

<label>Введите пароль</label>

<input type='password' name='password'>

<br>

<input type='submit'>

<br>

<input type='reset'>

</form>";}

else{

// Если не пусты, то мы выводим ссылку

echo "Вы вошли на сайт, как ".$_SESSION['login']."<br>

Страница магазина:<a href='shop.php'>Перейти</a><br>

<button onclick='myWindow()'>Выйти</button>

<script>

function myWindow() {

var w = window.open('exit.php', 'Выход')}

</script>";

echo"<h4>Ваш Баланс:</h4>";

mysql_query('SET NAMES UTF8');

$query="SELECT * FROM users WHERE id=" . $_SESSION['id'];

$result=mysql_query($query,$db);

while($myrow = mysql_fetch_array($result))

{$bb=$myrow['balance'];

echo $bb;

$_SESSION['balance']=$myrow['balance'];}

$_SESSION['ids']=$_POST['s1'];

if (!empty($_SESSION['ids']))

{echo "<br><br><h4><a href=buycart.php>Купить</a></h4>";}}

?>

<br>

<footer class="art-footer">

<p><a href="#">Link1</a> | <a href="#">Link2</a> | <a href="#">Link3</a></p>

<p>Copyright &copy; 2015. All Rights Reserved.</p>

</footer>

</div>

<p class="art-page-footer"></p>

</div>

</body></html>


Обработчик проверки наличия пользователя в системе testreg.php
<?php

session_start();//  вся процедура работает на сессиях. !

?>

<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>Документ без названия</title>

<?php

if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную

if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }

//заносим введенный пользователем пароль в переменную $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 ("bd.php");

$result = mysql_query("SELECT * FROM users WHERE login='$login'",$db); //извлекаем из базы все данные о пользователе с введенным логином

$myrow = mysql_fetch_array($result);

if (empty($myrow['password']))

{//если пользователя с введенным логином не существует

exit ("Извините, введённый вами login или пароль неверный.");}

else { //если существует, то сверяем пароли

if ($myrow['password']==$password) {

//если пароли совпадают, то запускаем пользователю сессию

$_SESSION['login']=$myrow['login'];

$_SESSION['id']=$myrow['id'];

$_SESSION['email']=$myrow['email'];

$_SESSION['fio']=$myrow['fio'];

//эти данные очень часто используются, вот их и будет "носить с собой" вошедший пользователь

echo "Вы успешно вошли на сайт! <a href='shop.php'>Магазин</a>"; }

else {//если пароли не сошлись

exit ("Извините, введённый вами login или пароль неверный.");} }

?>

</head>

<body>

</body>

</html>


Обработчик выхода exit.php

<?php

session_start();//  вся процедура работает на сессиях. !

?>

<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>Документ без названия</title>

</head>

<body>

<?php

unset($login,$fio,$email);

session_destroy();

echo "Вы вышли";

echo"<a href='index.html'>Перейти на главную</a>";

?>

</body></html>


Страница корзины buycat.php
<?php

//  вся процедура работает на сессиях. Именно в ней хранятся данные  пользователя, пока он находится на сайте. Очень важно запустить их в  самом начале странички!!!

session_start();

?>

<!DOCTYPE html>

<html dir="ltr" lang="en-US"><head><!-- Created by Artisteer v4.1.0.60046 -->

<meta charset="utf-8">

<title>Home</title>

<meta name="viewport" content="initial-scale = 1.0, maximum-scale = 1.0, user-scalable = no, width = device-width">

<!--[if lt IE 9]><script src="files/3/https://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->

<link rel="stylesheet" href="style.css" media="screen">

<!--[if lte IE 7]><link rel="stylesheet" href="style.ie7.css" media="screen" /><![endif]--><link rel="stylesheet" href="style.responsive.css" media="all">

<script src="files/3/jquery.js"></script>

<script src="files/3/script.js"></script>

<script src="files/3/script.responsive.js"></script>

<style>.art-content .art-postcontent-0 .layout-item-0 { padding-right: 10px;padding-left: 10px;  }

.ie7 .art-post .art-layout-cell {border:none !important; padding:0 !important; }

.ie6 .art-post .art-layout-cell {border:none !important; padding:0 !important; }

</style>

</head>

<body>

<div id="art-main">

<nav class="art-nav">

<ul class="art-hmenu"><li><a href="index.html" >Главная</a><ul ><li></li></ul></li>

<li><a href="registration.php">Регистрация</a></li>

<li class="active"><a href="shop.php">Магазин</a></li>

</ul>

</nav>

<div class="art-sheet clearfix">

<header class="art-header">

<div class="art-shapes">

</div>

<h1 class="art-headline" data-left="1.02%">

<a href="#">Курсовая Работа</a>

</h1>

</header>

<br>

<section id="table1">Здесь располагается содержимое  id "table1"

<article id="mainauthor">Автор проекта - Сергей Пономарев </br></article>

</section>

<?php

// Проверяем, пусты ли переменные логина и id пользователя

if (empty($_SESSION['login']) or empty($_SESSION['id'])){

   // Если пусты, то мы не выводим ссылку

   echo "Вы НЕ вошли<br>"; }

   else

   { // Если не пусты, то:

   echo "Вы вошли на сайт, как ".$_SESSION['login']."<br>

<br>Ваше ФИО:".$_SESSION['fio']."<br>

Ваш e-mail:".$_SESSION['email']."<br>

Ваш заказ:";

include("bd.php");

mysql_query('SET NAMES UTF8');

$query="SELECT * FROM stuff WHERE ids=" . $_SESSION['ids'];

$result=mysql_query($query,$db);

while($myrow = mysql_fetch_array($result))

{ echo $myrow['name'];

echo "<br><br>Цена:";

echo  $myrow['price'] ;

$_SESSION['price']=$myrow['price'];}

echo "<br><br>";

echo"<h4>Ваш Баланс:</h4>";

echo $_SESSION['balance'];}

?><br>

<a href="buyscript.php">Купить!</a>

<br>

<table width="100%" border="0" cellspacing="5" cellpadding="5">

<tr>

<td>&nbsp;</td>

<td>&nbsp;</td>

</tr>

<tr>

<td>&nbsp;</td>

<td>&nbsp;</td>

</tr>

</table>

<br>

<footer class="art-footer">

<p><a href="#">Link1</a> | <a href="#">Link2</a> | <a href="#">Link3</a></p>

<p>Copyright © 2015. All Rights Reserved.</p>

</footer>

</div>

<p class="art-page-footer">

<span id="art-footnote-links">Web Template</a>created by Sergey Ponomarev</span>

</p></div></body></html>

Обработчик покупки buyscript.php
<!doctype html>

<?php

session_start();//  вся процедура работает на сессиях. !

?><html>

<head>

<meta charset="utf-8">

<title>Документ без названия</title>

</head><body>

<?php

include("bd.php");

$bid=$_SESSION['id'];

$bs=$_SESSION['ids'];

$bp=$_SESSION['price'];

mysql_query('SET NAMES UTF8');

$query="SELECT * FROM users WHERE id=" . $_SESSION['id'];

$result=mysql_query($query);

while($myrow = mysql_fetch_array($result))

{$bb=$myrow['balance'];}

$bb=$bb-$_SESSION['price'];

echo "остаточный баланс на счету<br>";

echo $bb;

echo "<br>";

$sql="UPDATE users SET balance=".$bb." WHERE id=".$bid;

$result2 = mysql_query ($sql,$db);

// Проверяем, есть ли ошибки

if ($result2=='TRUE')

{ echo "Сделка прошла успешно!<br> <a href='index.html'>Главная страница</a>";}

else {echo "Ошибка! Что-то пошло не так";

echo $result2; }

unset($_SESSION['balance'],$_SESSION['price']);

echo $_SESSION['balance'];

include("bd.php");

$sql="INSERT INTO payments  VALUES(NULL,'$bs','$bid')";

$result=mysql_query($sql,$db);

// Проверяем, есть ли ошибки

if ($result=='TRUE')

{echo "История сохранилась"; }

else {echo "Ошибка! История не сохранилась";

echo $result;}

?>

</body>

</html>


Обработчик соединения с БД
<?php

$db = mysql_connect ("localhost","Admin","Admin1");

mysql_select_db ("mybase",$db);?>


Приложение 2
БД

Рисунок 13 «Содержание таблицы users»

Рисунок 14 «Содержание таблицы stuff»

Рисунок 15 «Содержание таблицы payments»


Приложение 3
Java-скрипт

Скрипт обработки перехода на страницу выхода
<script>

function myWindow() {

var w = window.open('exit.php', 'Выход')}

</script>

Скрипт обработки последнего изменения страницы магазина

<script>

<!--  document.write('данная страница изменялась:'+ document.lastModified + '<br>')//-->

</script>

PAGE   \* MERGEFORMAT1



 

Другие похожие работы, которые могут вас заинтересовать.
1653. Разработка Интернет- магазина компьютерных комплектующих 521.4 KB
  С точки зрения системного администратора, в чьи функции входят поддержание и работоспособность Интернет- магазина ежедневное обновление и др. Требует к себе минимум затрат по эксплуатации и администрированию и следовательно необходимость в существенных затратах времени и финансовых средствах при администрировании, не возникает.
11688. Повышение эффективности продаж через интернет-магазин за счет совершенствования системы документационного обеспечения управления интернет-магазина ООО «Спортибэй» 2.2 MB
  Разработан проект внедрения автоматизированной информационной системы обработки заказов в интернет-магазине ООО «Спортибэй» на платформе «1С: Управление небольшой фирмой 8» с использованием электронной подписи на платформе «1С: Такском».
19173. Создание программы для упрощения работы магазина по продаже автомобилей 1.62 MB
  Это наиболее общий компонент для работы с набором данных который может использоваться вместо компонентов DOTble DOQuery или DOStoredProc. Компонент DOQuery представляет собой запрос к базе данных. Они инкапсулированы в компоненты представляющие наборы данных...
1594. Разработка интернет-магазина текстильного предприятия 186.22 KB
  В настоящее время АО «Ермолино» является крупным производителем и поставщиком текстильной продукции. За время существования предприятия у него сложились стабильные партнерские отношения с поставщиками сырья, что позволяет предприятию производить продукцию
17395. Повышение эффективности коммерческой деятельности интернет- магазина ООО «Кристалл» 695.34 KB
  Теоретические основы организации коммерческой деятельности интернет магазина. Сущность функции и классификация интернет-магазинов. Преимущества интернет торговли по сравнению с традиционной. Организация технологического процесса в торговой деятельности интернет магазина...
13309. Создание каталога товаров для последующего создания интернет-магазина 2.27 MB
  Целью данной работы является создание каталога товаров для последующего создания интернет-магазина. Основными задачами данного проекта являются: изучение теоретических аспектов создания интернет магазинов; изучение способа организации интернет-магазинов; изучение видов и требований для создания интернет магазина; изучение методов...
9948. Пути совершенствования маркетинговой деятельности Интернет - магазина «Иф Ю теннис» 148.95 KB
  Период зарождения электронного бизнеса выявил два важных момента. Во-первых, Интернет, доказал свою высокую эффективность, как средства коммуникации, и высокий потенциал построенного на его основе глобального электронного рынка...
12460. Интерактивное обучение 23.72 KB
  Реализация принципа активности в обучении имеет огромное значение потому что обучение и развитие носят деятельностный характер и результаты обучения и воспитания детей и подростков напрямую зависят от качества учения как деятельности. Принцип активности школьников в процессе обучения всеми ведущими представителями мировой педагогической мысли рассматривался в качестве одного из основных в дидактике таковым он остается и сегодня. Амонашвили; технология интенсивного развивающего обучения Л.
15638. PR – продвижение по средствам Интернет технологий (на примере Интернет проекта компании ФАРУС) 111.01 KB
  Проект Интернет продвижения для компании ФАРУС.1 Разработка Интернет - продвижения для компании ФАРУС. Цель дипломного проекта: создать проект PR - продвижения для компании ФАРУС в Интернете. Для достижения цели поставленной в данном дипломном проекте нами были поставлены следующие задачи: дать теоретический анализ Интернета как самостоятельного РR- инструмента; изучить текущие Интернет - технологии применяемые в PR продвижении; проанализировать практического применения Интернета в сфере PR; оценить...
1152. Создание интернет ресурса для торговли через Интернет 9.69 MB
  Создание сайта – процедура простая, но изучение процесса создания сайта – дело длительное и сложное. Построение сайта начинается с языка разметки гипертекста, с помощью которого браузеры Интернета трансформируют документы в удобные для восприятия человеком страницы
© "REFLEADER" http://refleader.ru/
Все права на сайт и размещенные работы
защищены законом об авторском праве.