- •Федеральное агентство по образованию
- •Курсовая работа
- •Оглавление
- •Цели и Задачи
- •Глава 1.Выбор технологий
- •Глава 2. Субд
- •Глава 3. Создание серверной части приложения
- •Глава 4. Java-script.
- •Заключение
- •Список Литературы
- •Приложение 1.Листинги страниц и скриптов
- •Приложение 2 бд
- •Приложение 3Java-скрипт
Заключение
Выполненные задачи:
Создано интерактивное приложение интернет-магазина по продаже компьютерных игр(ключей)
Создана внутрисайтовая система оплаты.
Приложение отвечает современным требованиям, является кросс-браузерным; макет является «резиновым», что позволяет взаимодействовать с приложением на устройствах с любым разрешением экрана, соблюдены все основные принципы юзабилити.
Выводы:Приложение было создано на базе комплексаLAMP(Linux-Apache-MySQL-PHP), и соответствует всем основным техническим и стилистическим требованиям, в дальнейшем, при соответствующей модернизации может быть внедрено как независимая система простого интернет-магазина или в качестве плагинов\базы для существующих систем. Система внутрисайтовой оплаты позволяет вести международную деятельность, т.к.APIоплаты для разных регионов планеты подключается отдельно, в независимости от основной валюты, используемой для оплаты на сайте.
Список Литературы
«PHP для начинающих», Джанет Валейд, 2005, изд. «Диалектика».
http://wikipedia.org– электронный ресурс.
Дуванов А.А. Кухня Web-мастера Сидорова: основы практич. Web-дизайна. – М.: Чистые пруды, 2005. – 31 с.: ил. – (Б-ка «Первого сентября». Информатика; Вып. 4.).
Adobe Dreamweaver, CSS, Ajax и PHP - Дэвид Пауэрс,2009, БХВ-Петербург
Настольная книга администратора Debian: Debian Wheezy: от первого знакомства к мастерству, Рафаэль Херцог, 2013, FreexianSARL.
Приложение 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="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="jquery.js"></script>
<script src="script.js"></script>
<script src="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="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="jquery.js"></script>
<script src="script.js"></script>
<script src="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="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="jquery.js"></script>
<script src="script.js"></script>
<script src="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 © 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="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="jquery.js"></script>
<script src="script.js"></script>
<script src="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> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </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);?>