Создание Web-сайта 'Интернет-магазин программного обеспечения'
создание Web-сайта
«Интернет-магазин программного обеспечения»
СОДЕРЖАНИЕ
электронный магазин
программирование
ВВЕДЕНИЕ
. ОПИСАНИЕ ТЕМЫ
.СТРУКТУРА WEB-САЙТА
3. РЕГИСТРАЦИОННАЯ ФОРМА
4. ПОДКЛЮЧЕНИЕ WEB-САЙТА
К БАЗЕ ДАННЫХ (MICROSOFT
ACCESS)
5. СОЗДАНИЕ СТРАНИЦЫ
ПОЛЬЗОВАТЕЛЯ(USER)
6. ПРОВЕРКА ВХОДЯЩЕЙ ИНФОРМАЦИИ
ДЛЯ WEB-САЙТА
7. СОЗДАНИЕ СТРАНИЦЫ
АДМИНИСТРАТОРА (ADMIN)
8.
УПРАВЛЕНИЕ
ДАННЫМИ
СО СТОРОНЫ АДМИНИСТРАТОРА
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗОВАННЫХ
ИСТОЧНИКОВ
ВВЕДЕНИЕ
Данная работа выполнялась в рамках
курса изучения технологии ASP
и ASP.NET.
Технологии ASP представляют собой среду написания сценариев на стороне сервера,
которую можно использовать для динамического изменения веб-содержимого. ASP
требует знания языков сценариев, например, VBScript или JavaScript
(JScript). «встроена» в Internet Information Services (IIS), который является
составной частью архитектуры Microsoft для Web-приложений. Роль IIS состоит в
связывании клиентов, обращающихся к системе через протокол HTTP, с другими службами
Windows.
Напоминаем, что IIS доступен в ОС
Windows 2000-2003 или в Windows XP Professional после установки соответствующих
компонент Windows. При стандартной установке указанных ОС сервер IIS не
доступен.
Если Вы используете встроенные
антивирусные средства на Вашем компьютере, то необходимо им запретить
блокировку скриптов, иначе, большинство скриптов ASP работать не будет.
Внутри
программы Visual
Studio 2010
существует технология ASP.NET.
В первые дни нашего урока мы познакомились введениями ASP.NET,
язык разметки HTML
и использование в Visual
Studio 2010.
В предлагаемой теме курсовой работы
в теме «Интернет-магазин программного обеспечения» старалось включить все
знание, которое я изучал из этого курса и закончил свою работу. Все информация
в Web-сайте написано в
русском языке, который облегчить работу пользователя и будет очень понятным.
Целью данной работы являются создать
Web-сайт с помощью
технологии ASP.NET.
В работе подробно описаны примеры
администрирования сайта, пользовательские привилегии и управления сайта.
1. ОПИСАНИЕ ТЕМЫ
Тема данной курсовой работы является
создание Web-сайта
«Интернет-магазин программного обеспечения».
Для создания этого сайта
используется программа Visual
Studio 2010. В процессе
разработки в основном используется язык
программирования VbScript.
Данный Web-сайт
подключен в базу данных (MS
Access) при помощи
элемента управление AccessDataSource
и содержит всё информацию о товарах и пользователях которые уже сделали
регистрацию в этот сайт. Когда пользователь сделает регистрацию в данный сайт,
то его информация сохраняется в базе данных данного сайта. Также в этом базе
данных сохраняется товары, которые пользователь добавляет в свою корзину. Когда
пользователь сделает регистрацию, то администратор должен обязательно дать
доступ к пользователю для входа в сайт.
Администратор сайта имеет привилегию
удаление пользователя из сайта, изменение данных о пользователя и дать доступ
пользоваться сайтом или наоборот.
Основнуючасть
работы
Web-сайта делает база
данных (MS
Access), которая
сохраняет
в себе все данные сайта.
Еще в сайте использовано технология
корзины покупок, которые является одна из популярных моделей электронной
торговли. Эта технология обработки заказов позволяет заказчиком накапливать и
сохранять списки товаров, которые они пожелали купить во время просмотра
электронного магазина. Программное обеспечение электронного магазина должно
включать каталог товаров, находящийся на сервере продавца в форме базы данных.
2.СТРУКТУРА WEB-САЙТА
Модельная структура. Модельная
структура Web-сайта
это модель основного страницы сайта, которые показано в рис 2.1.
Рис 2.1.
Модельная
структура
Физическая структура. Физическая
структура Web-сайта
это расположения файла, которые показано в рис 2.2.
Рис 2.2.Физическая структура
Структура текущих Web-сайта
соответствует стандартам других сайтов. Первая страница Web-сайта
имеет баннер, панель с кнопками управление, которые расположены на левом и на
верхним стороне Web-сайта.
И еще первой странице Web-сайта
присутствует контент, которые отображает информации Web-сайта.
Внизу страницы вставлено информация о правах автора и еще вставлено
гиперссылка, которые возвращает пользователя в главную страницу Web-сайта.
В главной странице сайта расположено регистрационная форма, которая
пользователь может легко сделать регистрацию и после администраторского доступа
может легко войти в систему.
В главном странице сайта приведено
немного информации о сайте и вставлено электронный адрес администратора для
отправления сообщение к администратору. Код главной странице сайта приведено на
листинге 2.1.
Листинг 2.1 HTML-
код главной страницы
<%@ Page Language="VB"
AutoEventWireup="false" CodeFile="Default.aspx.vb"
Inherits="_Default" %>
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"#"601408.files/image003.gif">
Рис 2.3.Вид главной страницы
. РЕГИСТРАЦИОННАЯ ФОРМА
Один из основных формы Web-сайта
считается регистрационная форма. Регистрационная форма нужен для регистрации
пользователя, чтобы пользователь мог полноценно работать в этом Web-сайте.
Сегодня почти все Web-сайты
имеет регистрационную форму, которые пользователю даст много возможности
пользоваться сайтом. Однако после регистрации пользователя все его данные
сохраняется в базе данных Web-сайта.
А в другой стороне регистрационная форма обеспечит безопасность Web-сайта,
сервер Web-сайта
(Администратор) при создании регистрационную форма, его обязательно подключить
в базу данных для сохранения все данные о пользователях. При возникновении
какой-нибудь проблемы администратор может исправлять ошибки через БД или при
нарушении правила сайта администратор может удалить пользователя из база
данных. При этом пользователь не может войти в систему.
Листинг 3.1 HTML-код
регистрационной формы
<asp:TableCell
runat="server" ColumnSpan="1" Width="480px"
VerticalAlign="Top" Font-Italic="True"Names="Palatino
Linotype" Font-Size="Medium" ForeColor="White"
HorizontalAlign="Justify">
<asp:MultiView
ID="MultiView1" runat="server"
ActiveViewIndex="6">
<asp:View ID="View1"
runat="server">
<asp:Panel ID="Panel1"
runat="server">
<asp:Table ID="Table4"
runat="server" HorizontalAlign="center"
BorderWidth="2" BorderColor="AliceBlue">
<asp:TableRow>
<asp:TableCell>Имя</asp:TableCell>
<asp:TableCell>
<asp:TextBox
ID="txtnom" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator
ID="RequiredFieldValidator1" runat="server"
ControlToValidate="txtnom"="Dynamic" ErrorMessage="
*" ForeColor="Red"
SetFocusOnError="True"></asp:RequiredFieldValidator>
</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>Фамилия</asp:TableCell>
<asp:TableCell>
<asp:TextBox
ID="txtnasab" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator
ID="RequiredFieldValidator2" runat="server"
ControlToValidate="txtnasab"="Dynamic" ErrorMessage="
*" ForeColor="Red"
SetFocusOnError="True"></asp:RequiredFieldValidator>
</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>Отчество</asp:TableCell>
<asp:TableCell>
<asp:TextBox
ID="txtmdname" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator
ID="RequiredFieldValidator3" runat="server"
ControlToValidate="txtmdname"="Dynamic" ErrorMessage="
*" ForeColor="Red"
SetFocusOnError="True"></asp:RequiredFieldValidator>
</asp:TableCell>
</asp:TableRow>
<asp:TableCell>Пол</asp:TableCell>
<asp:TableCell>
<asp:DropDownList
ID="jins" runat="server">
</asp:DropDownList>
</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>Дата
рождение</asp:TableCell>
<asp:TableCell>
<asp:DropDownList
ID="ruz" runat="server">
</asp:DropDownList>
<asp:DropDownList
ID="moh" runat="server">
</asp:DropDownList>
<asp:DropDownList
ID="sol" runat="server">
</asp:DropDownList>
</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>Адрес</asp:TableCell>
<asp:TableCell>
<asp:TextBox
ID="suroga" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator
ID="RequiredFieldValidator4" runat="server"
ControlToValidate="suroga"="Dynamic" ErrorMessage="
*" ForeColor="Red"
SetFocusOnError="True"></asp:RequiredFieldValidator>
</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>Номер
телефона</asp:TableCell>
<asp:TableCell>
<asp:TextBox
ID="pnumber" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator
ID="RequiredFieldValidator5" runat="server"
ControlToValidate="pnumber"="Dynamic" ErrorMessage="
*" ForeColor="Red"
SetFocusOnError="True"></asp:RequiredFieldValidator>
</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>Логин</asp:TableCell>
<asp:TableCell>
<asp:TextBox
ID="txtlogin1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator
ID="RequiredFieldValidator6" runat="server" ControlToValidate="txtlogin1"="Dynamic"
ErrorMessage=" *" ForeColor="Red"
SetFocusOnError="True"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator
ID="RegularExpressionValidator1" runat="server"
ControlToValidate="txtlogin1"
ErrorMessage=" Недопустимые
символы в логин пользователя, проверти раскладку клавиатуры!!! "="Dynamic"
ValidationExpression="\w*"
ForeColor="Red"></asp:RegularExpressionValidator>
</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>Пароль</asp:TableCell>
<asp:TableCell>
<asp:TextBox
ID="txtpassword1" runat="server"
TextMode="Password" MaxLength="10"></asp:TextBox>
<asp:RequiredFieldValidator
ID="RequiredFieldValidator7" runat="server"
ControlToValidate="txtpassword1"="Dynamic"
ErrorMessage=" *" ForeColor="Red" SetFocusOnError="True"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator
ID="RegularExpressionValidator2" runat="server"
ControlToValidate="txtpassword1"
ErrorMessage="Пароль должен
быть больше 5-символов и на латинском букве!!!"
Display="Dynamic"
ForeColor="Red"
ValidationExpression="(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{5,10})$"></asp:RegularExpressionValidator>
</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>Потверждение</asp:TableCell>
<asp:TableCell>
<asp:TextBox
ID="txtpassword2" runat="server"
TextMode="Password" MaxLength="10"></asp:TextBox>
<asp:CompareValidator
ID="CompareValidator1" runat="server"
ControlToCompare="txtpassword1"="txtpassword2"
ErrorMessage="Не
совпадает!"
ForeColor="Red"></asp:CompareValidator>
</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>Ваш
секретный
вопрос</asp:TableCell>
<asp:TableCell>
<asp:TextBox
ID="txtsekret" runat="server"
TextMode="SingleLine"></asp:TextBox>
<asp:RequiredFieldValidator
ID="RequiredFieldValidator8" runat="server" ControlToValidate="txtsekret"="Dynamic"
ErrorMessage=" *" ForeColor="Red"
SetFocusOnError="True"></asp:RequiredFieldValidator>
</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell
ColumnSpan="2" HorizontalAlign="center">
<asp:Button
ID="Button1" runat="server" Text="Регистрация"
PostBackUrl="~/data/Savetodb.aspx" />
<br />
<asp:Label
ID="regis_error" runat="server"
Text=""></asp:Label><br />
<asp:Label
ID="regis_error1" runat="server"
Text=""></asp:Label>
</asp:TableCell>
</asp:TableRow>
</asp:Table>
</asp:Panel>
</asp:View>
Итак, расскажем об использовании
элементов для создания регистрационного форма. Регистрационная форма
расположено внутри Multiview
в основной странице, которая отображается из контента Web-сайта.
При нажатии ссылки «Регистрация» откроется сообщения общие правила поведения
сайта, после соглашения откроется регистрационная форма.
Регистрационная форма создано при
использовании элементов Textbox,
DropDownList
и Button, все из
этих объектов, в линейках расположено в нужном месте. Еще для проверки Textbox-а
на пустоту (имеет ли данные или нет) используется элемент проверки Validator,
точнее RequiredFieldValidator,
которые используется для проверки пустоту или заполнение данные для нужной Textbox-а.
После заполнение всех данных, в регистрационном форме, все данные сохраняется в
базу данных (как записать данные и читать данные из БД расскажем в следующем
главе ).
Вид регистрационной формы
показан на рис 3.1.
Рис 3.1
Регистрационная
форма
После нажатия кнопки регистрации
пользователю сообщает об успешной регистрации, если существует одинаковые
логины, то вводится сообщение об ошибки «такой логин уже существует».
4. ПОДКЛЮЧЕНИЕ WEB-САЙТА
К БАЗЕ ДАННЫХ (Microsoft
Access)
Подключение Web-сайта
к базе данных это из основных работ программиста, без подключения база данных
программа или Web-сайт
не имеет смысл существования. В этом главе расскажем процесс подключения базы
данных в Web-сайт.
В основном мы используем три варианта подключения, которые мы изучали в течение
курса. Первый вариант подключения база данных с помощью элемента AccessDataSource,
которые поддерживает расширения файла (.*mdb
, .*accdb).
Второй способ подключения база данных при использовании элемента SqlDataSource,
которые поддерживает файлы (MS
Access)
и
(SQL). А третий вариант
подключения база данных с помощью библиотеки Imports
System.Data.Oledb.
В текущим Web-сайте
использовано только два способа подключения база данных, то есть работы с
библиотеками Improts
System.Data.OleDb
и элементам AccessDataSource.
Итак, приведём примеры по
подключению база данных со страницами сайта. Уже мы рассказывали, что в нашем
проекте используется только два способа подключения база данных, первый способ
с помощью Imports
System.Data
.OleDb которые
используется для просмотра продуктов, второе способ это с помощью элемента
которые используется для сохранения данные регистрационной форме в базу данных.
Итак, посмотрим первый способ
подключения база данных (Imports
System.Data.Oledb),
которые используется в файле Default.aspx.vb
и считается файл главного страницы.
Посмотрим способ чтения информации и
его отображения в контенте, его код показано в листинги 4.1:
Листинг 4.1 Код программы
System.Data.OleDb
Imports System.DataClass
_DefaultSystem.Web.UI.Pagecon_access As OleDbConnectioncmd_access As
OleDbCommandreader_access As OleDbDataReaderSub Page_Load(ByVal sender As
Object, ByVal e As System.EventArgs) Handles Me.LoadconnectionString As String
= ""query_sql As String = "SELECT * FROM product where status=1
and id_catalog=1"= "Provider=Microsoft.Jet.Oledb.4.0;Data
Source=C:\Inetpub\wwwroot\www.softkey.tj\data\base.mdb"_access = New
OleDbConnection(connectionString)con_access.Open()_access = New
OleDbCommand(query_sql, con_access)_access =
cmd_access.ExecuteReader()reader_access.HasRows = True Thencounter1 As Integer
= 0_2.Text = "<table><tr>"While
reader_access.Read()_2.Text = label_2.Text & "<td>"_2.Text
= label_2.Text & "<table border=1>Регистрация
прошло
успешно!"_regis1.Text
= "Registration passed with
success!"Request.QueryString("sah") = "error" Then
MultiView1.ActiveViewIndex = 3.Text
= "Администратор еще не дал доступа!"
lblerror1.Text = "The Admin
(Manager) did not give an access!"Request.QueryString("sah") =
"error1" Then.ActiveViewIndex = 3.Text = "Пороль
или
логин
не
правильно".Text
= "Password or login was entered by
mistake!"Request.QueryString("sah") = "error2"
Then.ActiveViewIndex = 3.Text = "Обязательно
вводите
пароль
и
логин!".Text
= "You have to enter the login and
password!"Request.QueryString("sah") = "zabili_parol"
Then.ActiveViewIndex = 15IfIfRequest.Form("bt_vos") <>
"" Then_sql = "SELECT * FROM users where pnumber='" &
Request.Form("txt1p") & "' and sekret_vop='" &
Request.Form("txt2s") & "'"=
"Provider=Microsoft.Jet.Oledb.4.0;Data
Source=C:\Inetpub\wwwroot\www.softkey.tj\data\base.mdb"_access = New
OleDbConnection(connectionString)_access.Open()_access = New
OleDbCommand(query_sql, con_access)_access = cmd_access.ExecuteReader()reader_access.HasRows
= True ThenWhile reader_access.Read()_zabil.Text = "Ваш
логин=
" & reader_access(8) & "; Ваш
пароль=
" & reader_access(9)
Exit Do_zabil.Text = "Ваш номер
телефон или ваш секретный вопрос неправленый!!! End
If_access.Close()_access.Close() End If.Items.Clear().Items.Add("").Items.Add("Жен").Items.Add("Муж")i
= 1 To 31.Items.Add(i)j = 1 To 12.Items.Add(j)k = 1945 To
Date.Now.Year.Items.Add(k)Sub
Далее посмотрим, как произойдёт
чтение данные из база данных. Для того чтобы все успешно завершилось впервые
надо объявить библиотеку Imports System. Data.Oledb и после этого библиотеки
надо объявить еще три вспомагательное перемнные для завершения работы. Первый
переименую, объявим как OledbConnection,
которая используется для подключения база данных, вторая переменная
используется как OledbCommand
для отправки запросов, третье это переменная используется как OledbDataReader
для результата запроса.
После этой работы надо обязательно дать адрес
нашего база данных для успешного подключения и для обработки данных.
(connectionString="Provider=Microsoft.Jet.Oledb.4.0;DataSource=C:\Inetpub\wwwroot\www.softkey.tj\data\base.mdb")
После определения адрес база данных (MS
Access), надо дать
запросов для получения результата (Dim query_sql As
String = "SELECT * FROM product where status=1
and id_catalog=5"),
после исполнения этих запросов, вводится конкретный результат нашего запроса.
Итак, после нажатия гиперссылки «Прочие» в главном странице увидим результат
нашего запроса, смотрите на рис.4.1.
Рис 4.1Результат запроса
Второй способ подключения к базе данных это с
помощью элемента AccessDataSource.
Этот способ я использовал для сохранения данные регистрационного форме, когда
пользователь без ошибки сделает регистрацию. Когда пользователь нажмет на
кнопку «Регистрация», сначала идет проверка на ошибку если не найдет ошибку то
данные успешно сохраняется в базе данных. Перед сохранением данные файл Savetodb.aspx.vb
обрабативает и сохроняет данные о регистрациях.
Листинг 4.2 Код проверки данные регистрационной
форме
Protected Sub Button1_Click(ByVal
sender As Object, ByVal e As System.EventArgs) Handles Button1.Clicktxtnom.Text
<> "" And txtnasab.Text <> "" And
txtmdname.Text <> "" And suroga.Text <> "" And
pnumber.Text <> "" And.Text <> "" And
txtpassword1.Text <> "" And txtsekret.Text <>
"" ThenconnectionString As String = ""query_sql As String =
"SELECT * FROM users where login='" & txtlogin1.Text &
"'"= "Provider=Microsoft.Jet.Oledb.4.0;Data
Source=C:\Inetpub\wwwroot\www.softkey.tj\data\base.mdb"_access = New
OleDbConnection(connectionString)_access = New OleDbCommand(query_sql,
con_access)_access.Open()_access =
cmd_access.ExecuteReader()reader_access.HasRows = True
Then_access.Read()reader_access(8).ToString = txtlogin1.Text Then
regis_error.Text = "Ощибка: Такой логин уже
существует!"
regis_error1.Text = "Error: The
login which you entered is busy!"If_error.Text = ""_error1.Text
= "".PostBackUrl =
"~/data/Savetodb.aspx"_access.Close()_access.Close()IfIfSub
End Class
Рис 4.2 Заполнение регистрационной формы
Как уже нам известно, из листинга 4.2 , когда
нажимаем на кнопку «Регистрация» то полностью проверить регистрационную форму
если ошибка не найдет то данные отправляется в файл “Savetodb.aspx.
Итак, посмотрим, как данные обрабатывается в файле «Savetodb.aspx».
Дополнительный код обработки данных показано на листинги 4.3.
Листинг 4.3 Код программы, для добавления,
данные в базу данных
Protected Sub Page_Load(ByVal sender
As Object, ByVal e As System.EventArgs) Handles Me.Loadprev As Page =
PreviousPageprev.IsPostBack Thentname As TextBox =
prev.FindControl("txtnom")tlastname As TextBox =
prev.FindControl("txtnasab")tmdname As TextBox =
prev.FindControl("txtmdname")jins As DropDownList = prev.FindControl("jins")ruz
As DropDownList = prev.FindControl("ruz")moh As DropDownList =
prev.FindControl("moh")sol As DropDownList =
prev.FindControl("sol")sanai_tavallud As String_tavallud =
ruz.SelectedValue & "/" & moh.SelectedValue &
"/" & sol.SelectedValuesuroga As TextBox =
prev.FindControl("suroga")pnumber As TextBox =
prev.FindControl("pnumber")tlogin As TextBox =
prev.FindControl("txtlogin1")tpassword As TextBox =
prev.FindControl("txtpassword1")tsekret As TextBox =
prev.FindControl("txtsekret")sql_query As String = ""_query
= "insert into
users(nom,sname,mdname,jins,sanai_tavallud,suroga,pnumber,login,parol,sekret_vop)
values ('" & tname.Text & "','" & tlastname.Text
& "','" & tmdname.Text & "','" &
jins.SelectedValue & "','" & sanai_tavallud &
"','" & suroga.Text & "','" & pnumber.Text
& "','" & tlogin.Text & "','" &
tpassword.Text & "','" & tsekret.Text &
"')".InsertCommand = sql_query.Insert().Redirect("../default.aspx?sah=success").Redirect("../default.aspx?sah=error")IfSubClass
Мы узнали, что с помощью кода из листинга 4.3
данные сохраняется в базу данных, которые отправлено из страницы Previos
Page (из страницы Default.aspx),
информацию которые мы получаем, сохраняем в отдельную переменную и с помощью
запроса “Insert()”
добавляем данные в таблицу. Итак, для того чтобы быть уверенным проверяем базу
данных, которые существует данные из рисунка 4.2 или нет. Результат добавление
данные в БД из регистрационной форме показано в рис.4.3.
Рис 4.3 Результат запроса на добавление
Информация пользователя успешно сохранена, итак
пользователь имеет доступ к сайтам при входе систему еще шаг осталось. Чтобы
пользователь беспокойно входил в систему, администратор сайта должен подтвердит
последнюю пользователь, которая, сделал регистрацию. Для того чтобы сделать
администратор должен войти в систему и сделать статус последнего пользователя
равным 2. Когда статус равняется 2, то пользователь может входить систему и
сделать покупку в нашем интернет магазине.
5. СОЗДАНИЕ СТРАНИЦЫ ПОЛЬЗОВАТЕЛЯ
(USER)
Страница пользователи доступен для тех который,
уже зарегистрировались, имеет доступ для входа в систему. Страница пользователи
можно сказать основным страницам, потому что когда пользователь входит в сайт
то его возможность по больше, будет покупать продукты, узнать состояние своего
корзины покупок, может видеть свою последнюю дату визита и его количество
входов в страницу. А также пользователь может узнать новостей недели, может
управлять своим корзинам (удалять ненужные продукты), может выбрать любую
продукту с любым количеством и может узнать сумму своего продукта из корзины
покупок.
Также в страницу пользователя использовано
табличный дизайн и подключено в базу данных, для сохранения, данные о
пользователя. HTML-код
страницы показано на листинги 5.1.
Листинг 5.1 HTML-код
страницы пользователя
<%@ Page Language="VB"
AutoEventWireup="false" CodeFile="user.aspx.vb"
Inherits="users_user" %>
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"#"601408.files/image008.gif">
Рис 5.1 Выбор продукта для корзины
После выбора продуктов он добавляется в корзину
в нашем случае добавлено две продукти (см. рис 5.2).
Рис 5.2 Технология корзина
Когда пользователь нажимает на кнопку выход, то
он покинуть сайт и отправляется в главную страницу Web-сайта.
Также код корзины привидено в листинги 5.2.
Листинг 5.2 Код корзины
Imports
System.Data.OleDb
Partial Class
data_savetobasketSystem.Web.UI.PageconnectionString As Stringcon_access As
OleDbConnectioncmd_access As OleDbCommandreader_access As OleDbDataReaderSub
form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles
form1.Loadprev As Page = PreviousPageprev.IsPostBack Thennom As DropDownList =
prev.FindControl("name_prog")shumora As DropDownList =
prev.FindControl("count_prog")sana As String = Now.Date.Day &
"/" & Now.Date.Month & "/" & Now.Date.Yearnarkh
As DropDownList = prev.FindControl("narkh")summa As Integer=
Val(narkh.SelectedValue) * Val(shumora.SelectedValue)sql_query As String =
""_query = "insert into
sabad(name_product,miqdor,sana,id_user,narkh,summa) values ('" &
nom.SelectedValue & "','" & shumora.SelectedValue &
"', '" & sana & "','" &
Session("id_user") & "', " & narkh.SelectedValue
& ", " & summa & ")".InsertCommand =
sql_query.Insert().Redirect("../users/user.aspx?sah=bought").Redirect("../default.aspx?sah=error")IfSubClass
Листинг 5.3 Код
страницы
userSystem.Data.OleDbSystem.DataClass
users_userSystem.Web.UI.PageconnectionString As Stringcon_access As
OleDbConnectioncmd_access As OleDbCommandreader_access As OleDbDataReaderSub
Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles
Me.LoadSession("id_user") <> ""
ThenRequest("sah") = "2" Then.ActiveViewIndex = 1.Visible =
True.Visible = Truei = 1 To 100_prog.Items.Add(i)query_sql As String =
"SELECT * FROM product where status=1"=
"Provider=Microsoft.Jet.Oledb.4.0;Data
Source=C:\Inetpub\wwwroot\www.softkey.tj\data\base.mdb"_access = New
OleDbConnection(connectionString)_access.Open()_access = New
OleDbCommand(query_sql, con_access)_access = cmd_access.ExecuteReader()reader_access.HasRows
= True Thencounter1 As Integer = 0_2.Text =
"<table><tr>"While
reader_access.Read()_prog.Items.Add(reader_access(1).ToString()).Items.Add(reader_access(5).ToString())_2.Text
= label_2.Text & "<td>"_2.Text = label_2.Text &
"<table border=1>Войдите
в
систему<br
/></h3>")Ifquery_sql1 As String = "SELECT * FROM users where
id=" & Session("id_user")_sql1 = "SELECT * FROM users
where id=" & Session("id_user")=
"Provider=Microsoft.Jet.Oledb.4.0;Data
Source=C:\Inetpub\wwwroot\www.softkey.tj\data\base.mdb"_access = New
OleDbConnection(connectionString)_access.Open()_access = New
OleDbCommand(query_sql1, con_access)_access = cmd_access.ExecuteReader()reader_access.HasRows
= True Then_access.Read()Session("posledniy_vhod") <> 0
Then.Text = "Добро пожаловать
" & reader_access(1).ToString & " " &
reader_access(2).ToString & "<br/>" & "Ваш
последный
визит:
" & Session("posledniy_vizit") & "<br/>"
& "Вы посещали:
" & reader_access(12).ToString &
"!"Session("posledniy_vhod") = 0 Then.Text = "Добро
пожаловать
" & reader_access(1).ToString & " " &
reader_access(2).ToString & "<br/>" & "Вы
заходите
в
сайт
первый
раз!"
& "<br/>" & "Вы
посещали:
" & reader_access(12).ToString & "!".Text =
reader_access(1).ToString & " " &
reader_access(2).ToStringIf_access.Close()_access.Close()IfSubSub
btnsearch_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles
btnsearch.Clicksearchtxt.Text <> "" Then.ActiveViewIndex =
9connectionString As String = ""query_sql As String = "SELECT *
FROM product where nom='" & searchtxt.Text & "'"=
"Provider=Microsoft.Jet.Oledb.4.0;Data
Source=C:\Inetpub\wwwroot\www.softkey.tj\data\base.mdb"_access = New
OleDbConnection(connectionString)_access.Open()_access = New
OleDbCommand(query_sql, con_access)_access =
cmd_access.ExecuteReader()reader_access.HasRows = True Thencounter1 As Integer
= 0.Text = "<table><tr>"While reader_access.Read().Text =
lblsearch.Text & "<td>".Text = lblsearch.Text &
"<table border=1>Результат
поиска:
Найдено
" & counter1.ToString & " - программ(ы)"_access.Close()_access.Close()
lblerror.Text = "К сожалению ничего не
найдено ".Text = ""If.Text = "К сожалению ничего не найдено
"
End IfSubClass
6. ПРОВЕРКА ВХОДЯЩЕЙ ИНФОРМАЦИИ ДЛЯ WEB-САЙТА
В этой главе расматриваются все
действия совершенные с базой данных Ms
Access. Проверка
входа является одиним из важнейших задач при программировании и является одним
из способов защиты Web-приложения.
На правой стороне панели расположена форма входа. Лицо, прошедшее регистрацию
имеет возможность при помощи своего логина и пароля войти в систему (при
условии разрешения администратора сайта).
После написания логина и пароля на
базу отправляется запрос и там после проверки, определяется возможность доступа
пользователя. Например, в базе зарегистрированных пользователей имеется Хонкелдиев
с логином «Azik»
и паролем «aziz123».
Однако администратор на данный момент не дал разрешения пользователю войти в
систему. На листинге 6.1 показан код проверки зарегистрироаванных и
незарегистрироаванных пользователей.
Листинг 6.1 Код проверки формы входа
Protected Sub Page_Load(ByVal sender
As Object, ByVal e As System.EventArgs) Handles Me.Loadprevpage As Page =
PreviousPageprevpage.IsPostBack Thentxtlogin As TextBox =
prevpage.FindControl("txtlogin12")txtparol As TextBox =
prevpage.FindControl("txtpassword12")txtlogin.Text =
"Parviz" And txtparol.Text = "3678" Then.Redirect("admin/admin.aspx")Iftxtlogin.Text
<> "" And txtparol.Text <> ""
ThenconnectionString As String = ""query_sql As String = "SELECT
* FROM users where login='" & txtlogin.Text & "' and
parol='" & txtparol.Text & "'"=
"Provider=Microsoft.Jet.Oledb.4.0;Data
Source=C:\Inetpub\wwwroot\www.softkey.tj\data\base.mdb"_access = New
OleDbConnection(connectionString)_access = New OleDbCommand(query_sql,
con_access)_access.Open()_access =
cmd_access.ExecuteReader()reader_access.HasRows = True Then_access.Read()reader_access(10).ToString
= "1"
Then.Redirect("admin/admin.aspx")reader_access(10).ToString =
"2" Then("id_user") =
reader_access(0).ToString("posledniy_vizit") =
reader_access(13).ToString("posledniy_vhod") =
reader_access(12)query_sql1 As String = "update users set vizit=vizit+1,
posledniy_vhod='" & Date.Now & "' where id=" &
Session("id_user")= "Provider=Microsoft.Jet.Oledb.4.0;Data
Source=C:\Inetpub\wwwroot\www.softkey.tj\data\base.mdb"_access = New
OleDbConnection(connectionString)_access = New OleDbCommand(query_sql1,
con_access)_access.Open()_access =
cmd_access.ExecuteReader()_access.Close()_access.Close().Redirect("users/user.aspx?sah=hello").Redirect("default.aspx?sah=error")If_access.Close()_access.Close().Redirect("default.aspx?sah=error1")If.Redirect("default.aspx?sah=error2")IfIfSub
Как видно из сомого кода при
написании логина и пароля и нажатии кнопки «Вход» все даннии отправляются на
другую страницу (Postback).
Теперь на другой странице эти данные преобразуется в переменные и с помощью
запроса отправляется на проверку. Даже если в базе этот пользователь имеется но
его status
в таблице равен «0» то вход в систему не разрешается. Это ошибка показана на
рис.6.1:
Рис 6.1 Ошибка при входе
Теперь при замене status
пользоватля с «0» на «2» имеется возможность входа на страницу пользователя (User).
Рис 6.2 Изменение
значения поле status
на базе
Рис 6.3 Вход на
систему пользователя
7. СОЗДАНИЕ СТРАНИЦЫ АДМИНИСТРАТОРА
(ADMIN)
Страница администратора (Admin)
необходим для управления информацией, допуска и удаления, изменения и т.д.
В данном Web-приложении
страница администратора создана с испоьзованием табличного дизайна. Страница
администратора имеет возможность управлять пользователями.
Листинг 7.1 Html- код страницы
<%@ Page Language="VB"
AutoEventWireup="false" CodeFile="admin.aspx.vb" Inherits="admin_admin"
%>
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"#"601408.files/image013.gif">
Рис 7.1 Общий вид
страницы администратора
8.
УПРАВЛЕНИЕ
ДАННЫМИ
СО СТОРОНЫ АДМИНИСТРАТОРА
Управление данными является одной из
первоочередных задач для администратора. На страницы администратора (Admin)
имееются возможности управлять данными пользователей. Внутри страницы
администратор может допустить или не допустить люблго пользователя в систему, а
также изменять или удалять любую информацию на сайте. Страница соединена с
базой данных Ms
Access. При помощи
AccessDataSource
и GridView
обеспечивается выполнения запросов и получения необходимого результата. При
вводе параметров на объект AccessDataSource,
на GridVew появляется
возможность удалять изменять и дополнять данные. Ввод параметров показан на
листине 8.1.
Листинг 8.1 Ввод параметров на
AccessDataSoruce
<asp:AccessDataSource
ID="AccessDataSource1" runat="server"
DataFile="~/data/base.mdb"
SelectCommand="SELECT * FROM
[users]" UpdateCommand="update users set
nom=@nom,sname=@sname,mdname=@mdname,jins=@jins,sanai_tavallud=@sanai_tavallud,suroga=@suroga,pnumber=@pnumber,
login=@login,parol=@parol, status=@status where id=@id"="delete from
users where id=@id" InsertCommand="insert into users
(nom,sname,mdname,jins,sanai_tavallud,suroga,pnumber,login,parol,status) values
(@nom,@sname,@mdname,@jins,@sanai_tavallud,@suroga,@pnumber,@login,@parol,@status)">
<UpdateParameters>
<asp:Parameter
Name="id" Type="int32" />
<asp:Parameter
Name="nom" Type="String" />
<asp:Parameter
Name="sname" Type="String" />
<asp:Parameter
Name="mdname" Type="String" />
<asp:Parameter Name="jins"
Type="String" />
<asp:Parameter
Name="sanai_tavallud" Type="String" />
<asp:Parameter
Name="suroga" Type="String" />
<asp:Parameter
Name="pnumber" Type="String" />
<asp:Parameter
Name="login" Type="String" />
<asp:Parameter
Name="parol" Type="String" />
<asp:Parameter
Name="status" Type="Int32" />
</UpdateParameters>
<DeleteParameters>
<asp:Parameter
Name="id" Type="int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter
Name="nom" Type="String" />
<asp:Parameter
Name="sname" Type="String" />
<asp:Parameter
Name="mdname" Type="String" />
<asp:Parameter
Name="jins" Type="String" />
<asp:Parameter
Name="sanai_tavallud" Type="String" />
<asp:Parameter
Name="suroga" Type="String" />
<asp:Parameter
Name="pnumber" Type="String" />
<asp:Parameter Name="login"
Type="String" />
<asp:Parameter
Name="parol" Type="String" />
<asp:Parameter
Name="status" Type="Int32" />
</InsertParameters>
</asp:AccessDataSource>
Теперь для проверки, изменим какую
либо инфомацию пользователя, которая находится в базе данных.
Листинг 8.2 Код VB
для написания запроса изменения.
Protected Sub tagir_Click(ByVal
sender As Object, ByVal e As System.EventArgs) Handles
tagir.ClickId_update.Text <> "" And fname.Text <>
"" And update_field.Text <> "" Then.UpdateCommand =
"update users set " & fname.Text & "='" &
update_field.Text & "' where id =" &
Id_update.Text.Update()_Id.Visible = False_field.Visible = False_txt.Visible =
False_update.Visible = False_update.Text = "".Text =
""_field.Text = "".Visible = False_field.Visible = False.Visible
= FalseIfSub
В этом коде при нажатии кнопки
«Изменение» , данные задаными параметрами подвергаются изменению.
Рис 8.1 Внесение изменений данных пользователя
После нажатии кнопки «OK» столбец c названием
status принмает значение «0» , то есть пользователю недаётся возможность входа
на страницу «User».
Рис 8.2 Результаты изменения статуса
Теперь рассмотрим программный код
управления, который показан на листинге 8.3:
Листинг
8.3 Код страницы
Protected Sub Page_Load(ByVal sender
As Object, ByVal e As System.EventArgs) Handles Me.Loadpage As String=
Request.QueryString("sah")page = "1" Then.ActiveViewIndex =
0.SelectCommand = "Select * from users"page = "2"
Then.ActiveViewIndex = 1page = "3" Then.ActiveViewIndex = 2page =
"4" Then.ActiveViewIndex = 3
End IfSub
В этом коде (Листинг 8.2) , при
открытии страницы, нажатии кнопки которая имеет параметр QueryString,
появляется вся информация пользователя.
ЗАКЛЮЧЕНИЕ
В результате проделанной работы я
углубил свои знания в создании динамического сайта в технологии разработки
Internet-приложений и улучшил свои навыки по программе Visual
Studio.
В данной курсовой работе
использованы языки VBScript или JavaScript (JScript) и VB.net.ASP, что
позволило улучшить свои знания в этих языках.
В процессе выполнения данной работы
были создано Web-приложение,
рассмотрена структура формы регистрации, создана страница пользователя,
проведена проверка входа в Web-приложение,
управление данными со стороны администратора и т.д. Результаты этого приведены
в отчете о работе. Курсовая работа иллюстирована рисунками в количестве 15
штук. Процсесс прогроммирования показано на листингах количество 13
штук.
Автор данной работы углубил свои
знания по теме «Интернет-магазин програмнного
обеспечения», получил большое количество
сведений о создание динамических Web-страниц,
научился использовать их в практическом программировании при решении задач
разной степени сложности.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1.Марко Беллиньясо. Разработка
Web-приложений в среде ASP.NET. 2007г. - 640 с.
. Д.
Рейли.
Создание приложений ASP.NET. 2002, 260 с.
3. Matthew MacDonald, Mario
Szpuszta. ASP.net in C# 2008. Second Edition.
. Абрамов
и
др.
Задачи
по программированию. М.:Наука, Гл.ред.
физ.-мат. лит.1988-2241.
. Златопольский Д.М. Сборник
задач по программированию -
СПб.: БХВ-Петербург, 2007. -
240 с
программированию -
Ростов-на-Дону, РГУ, 2007. - 156 с.
. Юркин А.Г. Задачник по
программированию. - Москва, 2002-120с.
. Зиборов В.В. Visual Basic
2010 на примерах. - СПб.: БХВ-
Петербург, 2010. - 336с.
9. Дейтел Х.М., Дейтел П.Дж.
Как программировать для Internet &. Пер. с англ. - М.: ООО «Бином-Пресс»,
2002 г. - 1178 с.
. Марко Беллиньясо. Разработка
Web-приложений в среде ASP.NET.
г. - 640 с.
. Д.
Рейли.
Создание приложений ASP.NET. 2002, 260 с.