Разработка интернет–магазина интересных футболок
РЕФЕРАТ
Основная цель курсовой работы: разработать
интернет - магазин интересных футболок.
Исходя из цели, необходимо решить основные
задачи:
· Разработать структуру интернет - магазина;
· Разработать интерфейс сайта;
· Изучить особенности и возможности языка
PHP;
· Проектирование с базами данных
MySQL;
· Запустить интернет - магазин через
локальный сервер.
Структура и содержание работы включают:
. Вводную часть, в которой обоснован выбор и
актуальность темы.
. Основная часть, где подробно рассказывается о:
А).
PHP).
MySQL
С).
Open Server
3. Заключение, которое содержит основные выводы
по теме.
Конечным результатом моей курсовой работы
является интернет-магазин. Данный интрент-магазин может считаться полноценным
сайтом со свойственными ей основными операциями. Интернет - магазин позволяет
вносить изменения, сохранять новые данные, добавлять их и удалять существующие.
ВВЕДЕНИЕ
Мы живем в эпоху перемен. Она совершенно меняет
способы создания, публикации, сбора и использования информации. Ритм жизни
современного человека чрезвычайно ускоренный. И не всегда планы, которые
планировалось совершить за день, удается воплотить в жизнь тогда, когда
хочется. Чаще всего они остаются на "потом". Их выполняют на выходных
или после работы. К сожалению это не всегда получается.
Если у Вас появилась идея и желание приобрести
футболку с интересными картинками и надписями, не обязательно нужно идти в
магазин, тратить свое время, можно решить эту проблему сидя дома, например, за
чашечкой кофе.
Включите компьютер, и поищите сайт,
предоставляющий услуги под названием "интернет-магазин футболок". Его
главным преимуществом есть огромная посещаемость пользователями сети интернет.
Тысячи людей со всех уголков страны ежедневно посещают подобные ресурсы и с
большим удовольствием совершают покупки или.
Интернет-магазин дает возможность выбрать
понравившуюся вам футболку и заказать ее не выходя из дома. С Вашей стороны
потребуется только соглашение с правилами ресурса, которым Вы пользуетесь. Они
довольно просты, поэтому не стоит пугаться.
Теперь Вам не нужно бегать по магазинам в
поисках вещей. Достаточно всего лишь зайти на сайт, выбрать футболку и нажать
одну кнопочку. Интернет-магазин содержит широкий ассортимент футболок, которого
Вы можете не встретить в обычном магазине. В обычном магазине Вы можете не
найти футболку по вашему размеру, в то время как в интернет-магазине в наличие
всегда все есть.
Интернет-магазин великолепный способ решить уйму
проблем. Тем более, что сделать это можно без потери времени и не выходя из
дому
Преимущества интернет - магазина:
). Доступность
Чтобы приобрести любой товар в интернет-магазине
не нужно покидать пределы своего дома. Особенно важно данное преимущество для
людей с ограниченной подвижностью и молодых мамочек, которые очень любят
шопинг, но не знают с кем оставить своего малыша.
). Анонимность
Покупки в интернет - магазинах по вашему желанию
могут быть полностью анонимны, а это значит, что вам не придется стесняться
продавцов или других покупателей.
). Огромный ассортимент
В интернете вы можете совершить покупку в любом
интернет-магазине любой страны. А значит, для вас открывается не просто
огромный, а безграничный выбор самых разных товаров со всего света.
) Экономия времени.
Совершая покупки в интернет-магазинах, вы
значительно экономите свое время. Ведь вам не нужно искать месторасположение
магазина, добираться до него, парковаться или ждать общественный транспорт,
слушать навязчивых продавцов и долго бродить вдоль рядов в поисках нужного
товара. В интернете все намного проще и быстрее, тут достаточно ввести название
товара и среди открывшихся предложений выбрать самый подходящий по цене.
). Свобода выбора
Используя интернет-магазины, вы будете свободны
от гипнотизирующих речей продавцов-консультантов, которые часто навязывают
покупателям не нужные товары и даже убеждают покупать их.
). Низкая цена
Чтобы купить необходимую вещь по доступной цене,
достаточно найти ее в интернете и выбрать интернет-магазин, который на данный
момент предлагает самые низкие цены, специальные скидки или бонусы, и заказать
товар.
Для установки локального сервера на персональный
компьютер и создания базы данных, использовался виртуальный (локальный) сервер OpenServer.
Как мы видим, интернет - магазин в современном
мире необходим.
Исходя из этого основной задачей является
создать интернет - магазин так, чтобы покупателю было доступно изучить товар и
легко его заказать.
Объект исследования - Язык PHP, Базы данных
MySQL.
1. Что такое MySQL
- это одна из самых популярных и самых
распространенных СУБД (система управления базами данных) в интернете. Она не
предназначена для работы с большими объемами информации, но ее применение
идеально для интернет сайтов, как небольших, так и достаточно крупных.отличатся
хорошей скоростью работы, надежностью, гибкостью. Работа с ней, как правило, не
вызывает больших трудностей. Поддержка сервера MySQL автоматически включается в
поставку PHP.
Немаловажным фактором является ее бесплатность.
MySQL распространяется на условиях общей лицензии GNU (GPL, GNU Public
License).
Ранее для долговременного хранения информации мы
работали с файлами: помещали в них некоторое количество строчек, а затем
извлекали их для последующей работы. Задача длительного хранения информации
очень часто встречается в программировании Web-приложений: подсчёт посетителей
в счётчике, хранение сообщений в форуме, удалённое управление содержанием
информации на сайте и т.д.
Между тем, профессиональные приёмы работы с
файлами очень трудоёмки: необходимо заботится о помещении в них информации, о
её сортировке, извлечении, при этом не нужно забывать, что все эти действия
будут происходить на сервере хост-провайдера, где с очень большой вероятностью
стоит один из вариантов Unix - следовательно, нужно так же заботится о правах
доступа к файлам и их размещении. При этом объём кода значительно возрастает, и
совершить ошибку в программе очень просто.
Все эти проблемы решает использование базы
данных. Базы данных сами заботятся о безопасности информации и её сортировке и
позволяют извлекать и размещать информацию при помощи одной строчки. Код с
использованием базы данных получается более компактным, и отлаживать его
гораздо легче. Кроме того, не нужно забывать и о скорости - выборка информации
из базы данных происходит значительно быстрее, чем из файлов.
1.1 Возможности MySQL
поддерживает язык запросов SQL в стандарте ANSI
92, и кроме этого имеет множество расширений к этому стандарту, которых нет ни
в одной другой СУБД.
Краткий перечень возможностей MySQL:
. Поддерживается неограниченное количество
пользователей, одновременно работающих с базой данных.
. Количество строк в таблицах может достигать 50
млн.
. Быстрое выполнение команд. Возможно MySQL
самый быстрый сервер из существующих.
. Простая и эффективная система безопасности.
1.2 Недостатки MySQL
действительно очень быстрый сервер, но для
достижения этого разработчикам пришлось пожертвовать некоторыми требованиями к
реляционным СУБД.
В MySQL
отсутствуют:
. Поддержкавложенныхзапросов, типа SELECT
* FROM table1
WHERE id
IN (SELECT
id FROM
table2). Утверждается,
что такая возможность будет в версии 3.23.
. Не реализована поддержка транзакций. Взамен
предлагается использовать LOCK/UNLOCK TABLE.
. Нет поддержки внешних (foreign) ключей.
. Нет поддержки триггеров и хранимых процедур.
1.3 Что такое PHP
- язык программирования, используемый на стороне
WEB-сервера для динамической генерации HTML-страниц. Об этом говорит и
расшифровка его названия: PHP - Personal HyperText Processor- один из немногих
языков программирования, созданных специально для разработки веб-приложений.
Поэтому он включает в себя все функции, необходимые именно для работы на
веб-сервере, и при этом лишен избыточности, свойственной многим его
конкурентам.
Очень приятная особенность PHP - то, что его
команды включаются в обычные HTML-страницы с помощью специальных тегов, которые
и заставляют PHP-машину выполнять на сервере нужные действия. Программам на PHP
не нужны специальные CGI-директории с особыми правами доступа. Более того, на
одной страничке можно произвольно чередовать "простой" HTML и
PHP-код.не зависит от платформы. PHP прекрасно интегрируется во все популярные
веб-серверы: Apacce и IIS, Zens и Netscape Enterprise Server, работает под
Windows и OS/2, MacOS и практически всеми UNIX-подобными системами. Как
следствие - PHP работает практически у всех хостеров, разрешающих собственные
выполняемые скрипты.
Замечательная особенность PHP - его
интегрированность практически со всеми современными интернет-технологиями. PHP
поддерживает большинство современных веб-протоколов: IMAP, FTP, POP, XML, SNMP
и другие. PHP прекрасно работает с базами данных. Трудно найти СУБД, поддержка
которой не была бы реализована в PHP. MySQL и
MS SQL Server, PostgreSQL и
Oracle, Sybase и
Interbase... Один только перечень баз данных, поддерживаемых
PHP, займет, наверное, целый экран.включает в себя огромное количество
встроенных функций: обработки строк и массивов, работы с файловой системой и с
HTTP, электронной почтой, датой и временем, кириллицей и другими национальными
алфавитами. Благодаря им многие алгоритмы, требующие в большинстве языков
написания программного кода размером в несколько экранов, реализуются на PHP
одной командой (точнее, вызовом одной функции).
Современные тенденции развития языков
программирования не обошли стороной и PHP. Средства объектно-ориентированного
программирования появились еще в PHP3. А в объектной модели PHP4 в полном
объеме реализованы классические понятия объектно-ориентированного
программирования: наследование, инкапсуляция и полиморфизм.
Все вышеизложенное позволяет без всякой натяжки
назвать PHP безусловным лидером среди языков веб-программирования.
1.4 Возможности PHP
может все. Главная область применения PHP -
написание скриптов, работающих на стороне сервера; таким образом, PHP способен
выполнять все то, что выполняет любая другая программа CGI, например,
обрабатывать данные форм, генерировать динамические страницы или отсылать и
принимать cookies. Но PHP способен выполнять намного больше.
Существуют три основных области применения PHP.
Создание скриптов для выполнения на стороне
сервера. PHP традиционно и наиболее широко используется именно таким образом.
Для этого вам будут необходимы три вещи. Интерпретатор PHP (в виде программы
CGI или серверного модуля), веб-сервер и браузер. Для того чтобы можно было
просматривать результаты выполнения PHP-скриптов в браузере, нужен работающий
веб-сервер и установленный PHP. Просмотреть вывод PHP-программы можно в
браузере, получив PHP-страницу, сгенерированную сервером. В случае, если вы
просто экспериментируете, вы вполне можете использовать свой домашний компьютер
вместо сервера.
Создание скриптов для выполнения в командной
строке. Вы можете создать PHP-скрипт, способный запускаться без сервера или
браузера. Все, что вам потребуется - парсер PHP. Такой способ использования PHP
идеально подходит для скриптов, которые должны выполняться регулярно, например,
с помощью cron (на платформах *nix или Linux) или с помощью планировщика задач
(Task Scheduler) на платформах Windows. Эти скрипты также могут быть
использованы в задачах простой обработки текстов.
PHP доступен
<#"656532.files/image001.gif">
Рис.1-главная страница
На главной странице расположены ссылки, на которых
можно выбрать футболку. (рис.2)
Рис.2-Ссылки
Прежде чем заказать товар, нужно
зарегистрироваться на сайте. (рис.3)
Рис.3-Регистрация
После того, как регистрация прошла успешно,
можно заказать товар. Добавляем его в корзину. (рис.4)
Рис.4-Корзина
Прежде чем мы зайдем в корзину, на экране
появится java-script.
(рис.5)
Рис.5-java-script.
ЗАКЛЮЧЕНИЕ
Курсовой проект посвящен разработке интернет -
магазина интересных футболок.
В курсовой работе решены следующие задачи:
1. Разработана структура интернет - магазина;
2. Разработан интерфейс сайта;
. Изучены особенности и возможности языка
PHP;
. Проектирование БД с помощью SQLServer;
. Запущен интернет - магазин через
локальный сервер.
Интернет - магазин это прекрасная возможность
легкого и приятного шоппинга. Перечислив все преимущества торговли в интернете,
мы понимаем, что инетрнет - продажи сегодня неотъемлемая часть современного
мира. В любое время суток любой человек может совершить покупку и на указанный
им адрес доставят товар, что очень удобно.
интернет server язык торговля
ПРИЛОЖЕНИЕ
Листинг
Верстка сайт:
<?php('_JEXEC') or die;
('joomla.filesystem.file');
// check modules
$showRightColumn =
($this->countModules('position-3') or $this->countModules('position-6')
or $this->countModules('position-8'));
$showbottom =
($this->countModules('position-9') or $this->countModules('position-10')
or $this->countModules('position-11'));
$showleft =
($this->countModules('position-4') or $this->countModules('position-7')
or $this->countModules('position-5'));
($showRightColumn==0 and
$showleft==0) {
$showno = 0;
}
::_('behavior.framework', true);
// get params
$color =
$this->params->get('templatecolor');
$logo =
$this->params->get('logo');
$navposition =
$this->params->get('navposition');
$app =
JFactory::getApplication();
$doc =
JFactory::getDocument();
$templateparams =
$app->getTemplate(true)->params;
$doc->addStyleSheet($this->baseurl.'/templates/system/css/system.css');
$doc->addStyleSheet($this->baseurl.'/templates/'.$this->template.'/css/position.css',
$type = 'text/css', $media = 'screen,projection');
$doc->addStyleSheet($this->baseurl.'/templates/'.$this->template.'/css/layout.css',
$type = 'text/css', $media = 'screen,projection');
$doc->addStyleSheet($this->baseurl.'/templates/'.$this->template.'/css/print.css',
$type = 'text/css', $media = 'print');
$files = JHtml::_('stylesheet',
'templates/'.$this->template.'/css/general.css', null, false,
true);($files):(!is_array($files)):
$files = array($files);;($files as
$file):
$doc->addStyleSheet($file);;;
$doc->addStyleSheet('templates/'.$this->template.'/css/'.htmlspecialchars($color).'.css');($this->direction
== 'rtl') {
$doc->addStyleSheet($this->baseurl.'/templates/'.$this->template.'/css/template_rtl.css');(file_exists(JPATH_SITE
. '/templates/' . $this->template . '/css/' . $color . '_rtl.css')) {
$doc->addStyleSheet($this->baseurl.'/templates/'.$this->template.'/css/'.htmlspecialchars($color).'_rtl.css');
}
}
$doc->addScript($this->baseurl.'/templates/'.$this->template.'/javascript/md_stylechanger.js',
'text/javascript');
$doc->addScript($this->baseurl.'/templates/'.$this->template.'/javascript/hide.js',
'text/javascript');
?>
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo
$this->language; ?>" lang="<?php echo $this->language;
?>" dir="<?php echo $this->direction; ?>" >
<head>
<jdoc:include
type="head" />
<!--[if lte IE 6]>
<link href="<?php echo
$this->baseurl ?>/templates/<?php echo $this->template;
?>/css/ieonly.css" rel="stylesheet" type="text/css"
/>
<?php if
($color=="personal") : ?>
<style
type="text/css">
#line {:98% ;
}
.logoheader {:200px;
#header ul.menu {:block
!important;:98.2% ;
}
</style>
<?php endif; ?>
<![endif]-->
<!--[if IE 7]>
<link href="<?php echo
$this->baseurl ?>/templates/<?php echo $this->template;
?>/css/ie7only.css" rel="stylesheet"
type="text/css" />
<![endif]-->
<script
type="text/javascript">big ='<?php echo
(int)$this->params->get('wrapperLarge');?>%';small='<?php echo
(int)$this->params->get('wrapperSmall'); ?>%';altopen='<?php echo
JText::_('TPL_BEEZ2_ALTOPEN', true); ?>';altclose='<?php echo
JText::_('TPL_BEEZ2_ALTCLOSE', true); ?>';bildauf='<?php echo
$this->baseurl ?>/templates/<?php echo $this->template; ?>/images/plus.png';bildzu='<?php
echo $this->baseurl ?>/templates/<?php echo $this->template;
?>/images/minus.png';rightopen='<?php echo
JText::_('TPL_BEEZ2_TEXTRIGHTOPEN', true); ?>';rightclose='<?php echo
JText::_('TPL_BEEZ2_TEXTRIGHTCLOSE', true); ?>';fontSizeTitle='<?php echo
JText::_('TPL_BEEZ2_FONTSIZE', true); ?>';bigger='<?php echo
JText::_('TPL_BEEZ2_BIGGER', true); ?>';reset='<?php echo
JText::_('TPL_BEEZ2_RESET', true); ?>';smaller='<?php echo
JText::_('TPL_BEEZ2_SMALLER', true); ?>';biggerTitle='<?php echo
JText::_('TPL_BEEZ2_INCREASE_SIZE', true); ?>';resetTitle='<?php echo
JText::_('TPL_BEEZ2_REVERT_STYLES_TO_DEFAULT', true);
?>';smallerTitle='<?php echo JText::_('TPL_BEEZ2_DECREASE_SIZE', true);
?>';
</script>
</head>
<body>
<div id="all">
<div id="back">
<div id="header">
<div>
<h1 id="logo">
<?php if ($logo): ?>
<img src="<?php echo
$this->baseurl ?>/<?php echo htmlspecialchars($logo); ?>"
alt="<?php echo
htmlspecialchars($templateparams->get('sitetitle'));?>" />
<?php endif;?>
<?php if (!$logo ): ?>
<?php echo
htmlspecialchars($templateparams->get('sitetitle'));?>
<?php endif; ?>
<span>
<?php echo
htmlspecialchars($templateparams->get('sitedescription'));?>
</span></h1>
</div><!-- end logoheader
-->
<ul>
<li><a
href="#main">
<li><a
href="#nav">
<?php if($showRightColumn ):?>
<li><a href="#additional">
<?php endif; ?>
</ul>
<h2>
<h3>
<jdoc:include
type="modules" name="position-1" />
</div><!-- end header
-->
<div id="<?php echo
$showRightColumn ? 'contentarea2' : 'contentarea'; ?>">
<div
id="breadcrumbs">
<jdoc:include
type="modules" name="position-2" />
</div>
<?php if ($navposition=='left'
and $showleft) : ?>
<div>
<jdoc:include
type="modules" name="position-7"
style="beezDivision" headerLevel="3" />
<jdoc:include
type="modules" name="position-4" style="beezHide"
headerLevel="3" state="0 " />
<jdoc:include
type="modules" name="position-5" style="beezTabs"
headerLevel="2" id="3" />
</div><!-- end navi -->
<?php endif; ?>
<div id="<?php echo
$showRightColumn ? 'wrapper' : 'wrapper2'; ?>" <?php if
(isset($showno)){echo 'class="shownocolumns"';}?>>
<div id="main">
<?php if
($this->countModules('position-12')): ?>
<div
id="top"><jdoc:include type="modules"
name="position-12" />
</div>
<?php endif; ?>
<jdoc:include
type="message" />
<jdoc:include
type="component" />
</div><!-- end main -->
</div><!-- end wrapper
-->
<?php if ($showRightColumn) :
?>
<h2>
<?php echo
JText::_('TPL_BEEZ2_ADDITIONAL_INFORMATION'); ?>
</h2>
<div id="close">
<a href="#"
onclick="auf('right')">
<span id="bild">
<?php echo
JText::_('TPL_BEEZ2_TEXTRIGHTCLOSE'); ?></span></a>
</div>
<div id="right">
<a
id="additional"></a>
<jdoc:include
type="modules" name="position-8"
style="beezDivision" headerLevel="3" />
<jdoc:include
type="modules" name="position-3"
style="beezDivision" headerLevel="3" />
</div><!-- end right -->
<?php endif; ?>
<?php if ($navposition=='center'
and $showleft) : ?>
<div>
<jdoc:include
type="modules" name="position-7"
style="beezDivision" headerLevel="3" />
<jdoc:include
type="modules" name="position-4" style="beezHide"
headerLevel="3" state="0 " />
<jdoc:include
type="modules" name="position-5" style="beezTabs"
headerLevel="2" id="3" />
</div><!-- end navi -->
<?php endif; ?>
<div>
</div> <!-- end contentarea
-->
</div><!-- back -->
</div><!-- all -->
<div
id="footer-outer">
<?php if ($showbottom) : ?>
<div
id="footer-inner">
<div id="bottom">
<div>
<div>
<div>
</div>
</div>
<?php endif ; ?>
<div
id="footer-sub">
<div id="footer">
<jdoc:include
type="modules" name="position-14" />
<p>
<a
href="http://www.test1.ru/"><?php echo
JText::_('TPL_BEEZ2_POWERED_BY');?></a>
</p>
</div><!-- end footer
-->
</div>
</div>
<jdoc:include
type="modules" name="debug" />
</body>
</html>
Регистрация:
<?php
('_JEXEC') or die;
::_('behavior.keepalive');::_('behavior.tooltip');::_('behavior.formvalidation');
?>
<div>
<?php if
($this->params->get('show_page_heading')) : ?>
<h1><?php echo
$this->escape($this->params->get('page_heading')); ?></h1>
<?php endif; ?>
<form id="member-registration"
action="<?php echo
JRoute::_('index.php?option=com_users&task=registration.register');
?>" method="post">
<?php foreach
($this->form->getFieldsets() as $fieldset): // Iterate through the form
fieldsets and display each one.?>
<?php $fields =
$this->form->getFieldset($fieldset->name);?>
<?php if (count($fields)):?>
<fieldset>
<?php if
(isset($fieldset->label)):// If the fieldset has a label set, display it as
the legend.
?>
<legend><?php echo
JText::_($fieldset->label);?></legend>
<?php endif;?>
<dl>
<?php foreach($fields as
$field):// Iterate through the fields in the set and display them.?>
<?php if ($field->hidden)://
If the field is hidden, just display the input.?>
<?php echo $field->input;?>
<?php else:?>
<dt>
<?php echo $field->label;
?>
<?php if (!$field->required
&& $field->type!='Spacer'): ?>
<span>
<?php endif; ?>
</dt>
<dd><?php echo
($field->type!='Spacer') ? $field->input : " "; ?></dd>
<?php endif;?>
<?php endforeach;?>
</dl>
<?php endif;?>
<?php endforeach;?>
<div>
<button type="submit">
<?php echo
JText::_('COM_USERS_OR');?>
<a href="<?php echo
JRoute::_('');?>" title="<?php echo
JText::_('JCANCEL');?>"><?php echo
JText::_('JCANCEL');?></a>
<input type="hidden"
name="option" value="com_users" />
<input type="hidden"
name="task" value="registration.register" />
<?php echo
JHtml::_('form.token');?>
</div>
</form>
</div>
Корзина
<?php('_JEXEC') or
die;::_('behavior.keepalive');::_('behavior.tooltip');::_('behavior.formvalidation');
?>
<div>
<?php if
($this->params->get('show_page_heading')) : ?>
<h1><?php echo
$this->escape($this->params->get('page_heading')); ?></h1>
<?php endif; ?>
<form
id="member-registration" action="<?php echo
JRoute::_('index.php?option=com_users&task=registration.register');
?>" method="post">
<?php foreach
($this->form->getFieldsets() as $fieldset): // Iterate through the form
fieldsets and display each one.?>
<?php $fields =
$this->form->getFieldset($fieldset->name);?>
<?php if (count($fields)):?>
<fieldset>
<?php if
(isset($fieldset->label)):// If the fieldset has a label set, display it as
the legend.
?>
<legend><?php echo
JText::_($fieldset->label);?></legend>
<?php endif;?>
<dl>
<?php foreach($fields as
$field):// Iterate through the fields in the set and display them.?>
<?php if ($field->hidden)://
If the field is hidden, just display the input.?>
<?php echo $field->input;?>
<?php else:?>
<dt>
<?php echo $field->label;
?>
<?php if (!$field->required
&& $field->type!='Spacer'): ?>
<span>
<?php endif; ?>
</dt>
<dd><?php echo
($field->type!='Spacer') ? $field->input : " ";
?></dd>
<?php endif;?>
<?php endforeach;?>
</dl>
</fieldset>
<?php endif;?>
<?php endforeach;?>
<div>
<button type="submit">
<?php echo
JText::_('COM_USERS_OR');?>
<a href="<?php echo
JRoute::_('');?>" title="<?php echo
JText::_('JCANCEL');?>"><?php echo
JText::_('JCANCEL');?></a>
<input type="hidden"
name="option" value="com_users" />
<input type="hidden"
name="task" value="registration.register" />
<?php echo
JHtml::_('form.token');?>
</div>
</form>
</div>