
Міністерство освіти і науки, молоді та спорту України
Житомирський державний технологічний університет
Кафедра ПЗОТ
Група ЗПІК-09-2
Курс V
№ залікової 4309049
Контрольна робота
з предмету «Графічне та геометричне моделювання»
Виконала: Батьєва Т.О.
Перевірив: Морозов А.В.
Житомир, 2012 р.
Розробка сайту з використанням php і mysql
Завдання: розробити веб-сайт у вигляді онлайн-довідника вказаної у варіанті предметної області.
Варіант №20: Клієнти банку (прізвище; ім'я; по-батькові; рік, місяць, день народження; домашній телефон; місце роботи; адреса проживання; номер договору з банком; сума кредиту; сума депозиту).
Вимоги до сайту:
Будь-який користувач, який зайде на головну сторінку повинен мати можливість перегляду усіх записів та пошуку даних у базі за кожним полем.
При правильному введенні логіну та паролю, повинен відкриватися доступ до системи адміністрування, яка забезпечить додавання, редагування та видалення даних.
Передбачити можливість виходу з режиму редагування і повернення у режим користувача.
Звіт з виконаної роботи повинен містити:
Титульну сторінку.
Тему лабораторної роботи.
Завдання на лабораторну роботу.
Етапи створення сайту.
Приклад дизайну спроектованого сайту (два-три скріншоти).
Роздруківку HTML, CSS та РНР файлів.
Висновки.
Виконання роботи
Для виконання даної роботи було встановлено т.з. Джентельменський набір Web-розробника («Д.н.w.р», читається «Денвер») - набір дистрибутивів (Apache, PHP, MySQL, Perl і т.д.) і програмна оболонка, що використовуються Web-розробниками для розробки сайтів на «домашній» (локальній) Windows-машині без необхідності виходу в Інтернет.
Використовуючи phpMyAdmin в якості зручної оболонки для MySQL Server було створено базу даних з назвою bank_clients_db, що слугуватиме джерелом даних для сайту.
Схема БД зображена на малюнку:
Таблиця admins_tbl містить інформацію про облікові записи адміністраторів веб-сайту, а саме: Id адміністратора, логін, пароль, ім’я, прізвище, електронну адресу.
Таблиця clients_tbl містить відомості про клієнтів банку, такі як Id клієнта, ім’я, прізвище, по-батькові, дату народження, домашній номер, місце роботи, номер банківської угоди, суму кредиту, суму депозиту.
Для підключення БД до програмного додатку використовуємо:
mysql_connect("localhost", "root", "");
mysql_select_db("bank_clients_db");
mysql_query("SET NAMES utf8");
Приклади спроектованого дизайну сайту:
Початкова сорінка
Меню адміністратора
Перегляд інформації
Пошук інформації
Редагування даних
Лістинг
Style.Css
body
{background-color: #392b22;
margin:0;
min-width: 900px;
font-family: Calibri;
font-size: 11pt;}
#header
{height: 100px;
background-color: #2e060e;
font-size: 25pt;
color: white;
line-height: 80pt;
text-align:center;}
#menu
{width:200px;
background-color: #e9bca5;
float:left;
margin-top: 30px;
margin-left: 30px;
margin-bottom: 30px;
border:3px;
border-color: #2d060c;
border-style: solid;}
#menu ul
{list-style-type: none;
margin:0;
padding-left:5px;
padding-right:5px;
font-weight: bolder;}
#menu ul a, #content table a
{text-decoration: none;
color: #2d060c;
display: block;
padding: 3px;}
#menu ul a:hover, #content table a:hover
{color: #e9bca5;
background-color: #2e060e;}
#menu h1, #content h1
{font-size: 14px;
background-color: #2e060e;
color: white;
padding: 3px 10px;
margin: 0;}
#content
{margin: 30px 10px 30px 300px;
border:3px;
border-color: #2d060c;
border-style: solid;
color: #2d060c;
background-color: #e9bca5;
min-height: 175px;}
#content table
{text-align:center;
margin: 10px;
border-collapse:collapse;}
#content table td
{border-color: #2e060e;
border-style: solid;
color: #2e060e;}
#content thead td
{font-weight: bold;
background-color:#2e060e;
color: white;
text-align:center;
padding: 1px 3px 1px 3px;}
.message
{color: green;
padding:3px;
font-weight: bold;}
.error
{color: #2e060e;
padding:3px;
font-weight: bold;}
#footer
{padding:3px;
clear: both;
background-color: #2e060e;
color: white;
text-align:center;}
#menu form input[type='text'],
#menu form input[type='password']
{width: 100px;
font-size:10px;}
index.php
<? session_start();
mysql_connect("localhost", "root", "");
mysql_select_db("bank_clients_db");
mysql_query("SET NAMES utf8");
if (isset($_GET['oper']))
{
if ($_GET['oper'] == 'logout')
{
unset($_SESSION['admin']);
}
if (isset($_GET['success']) && $_GET['oper'] == 'add')
$message = "Данные успешно были добавлены!";
if (isset($_SESSION['admin']) && $_GET['oper'] == 'add' && isset($_POST['client_last_name']))
{
$sql = "INSERT INTO clients_tbl (client_first_name,client_last_name,client_patronymic_name,client_birth_date,client_home_phone, client_company, client_home_address, client_contract_number, client_credit, client_deposit) VALUES ('{$_POST['client_first_name']}', '{$_POST['client_last_name']}', '{$_POST['client_patronymic_name']}', '{$_POST['client_birth_date']}', '{$_POST['client_home_phone']}', '{$_POST['client_company']}', '{$_POST['client_home_address']}', '{$_POST['client_contract_number']}', '{$_POST[' client_credit']}', '{$_POST['client_deposit']}')";
mysql_query($sql);
header("Location: index.php?oper=add&success");
}
if (isset($_SESSION['admin']) && $_GET['oper'] == 'edit' && isset($_POST['client_last_name']))
{
$sql = "UPDATE clients_tbl SET client_first_name = '{$_POST['client_first_name']}', client_last_name = '{$_POST['client_last_name']}', client_patronymic_name = '{$_POST['client_patronymic_name']}', client_birth_date = '{$_POST['client_birth_date']}', client_home_phone = '{$_POST['client_home_phone']}', client_company = '{$_POST['client_company']}', client_home_address = '{$_POST['client_home_address']}', client_contract_number = '{$_POST['client_contract_number']}', client_credit = '{$_POST['client_credit']}', client_deposit = '{$_POST['client_deposit']}'WHERE client_id = '{$_GET['id']}'";
mysql_query($sql);
$message = "Данные успешно были сохранены!";
}
if (isset($_SESSION['admin']) && $_GET['oper'] == 'profile' && isset($_POST['admin_login']))
{
$sql = "UPDATE admins_tbl SET admin_login = '{$_POST['admin_login']}', admin_password = '{$_POST['admin_password']}', admin_first_name = '{$_POST['admin_first_name']}', admin_last_name = '{$_POST['admin_last_name']}', admin_email = '{$_POST['admin_email']}' WHERE admin_id = '{$_SESSION['admin']['admin_id']}'";
mysql_query($sql);
$message = "Данные успешно были сохранены!";
}
if (isset($_SESSION['admin']) && $_GET['oper'] == 'delete' && isset($_GET['id']))
{
$sql = "DELETE FROM clients_tbl WHERE client_id = '{$_GET['id']}'";
mysql_query($sql);
$message = "Данные успешно были удалены!";
}
}
if (isset($_POST['login']) && isset($_POST['password']))
{
$login = $_POST['login'];
$pass = $_POST['password'];
$sql = "SELECT * FROM admins_tbl WHERE admin_login = '{$login}' AND admin_password ='{$pass}'";
$res = mysql_query($sql);
$count = mysql_num_rows($res);
if ($count != 0)
{
$_SESSION['admin'] = mysql_fetch_assoc($res);
} else
{
$auth_message = "Неправильный ввод логина или пароля!";
}
}
?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Bank Customers</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div id="header"> Клиенты банка
</div>
<div id="menu">
<?
if (!isset($_SESSION['admin'])) include("templates/auth_form.tpl"); else
include("templates/admin_menu.tpl"); ?>
</div>
<div id="content">
<?
if (isset($_GET['oper']))
{
if (isset($_SESSION['admin']) && $_GET['oper'] == 'add')
{
include("templates/client_add.tpl");
}
if (isset($_SESSION['admin']) && $_GET['oper'] == 'edit')
{
include("templates/client_edit.tpl");
if (isset($_GET['id']))
{
include("templates/client_edit_record.tpl");
}
}
if (isset($_SESSION['admin']) && $_GET['oper'] == 'delete')
{
include("templates/client_delete.tpl");
}
if (isset($_SESSION['admin']) && $_GET['oper'] == 'profile')
{
include("templates/admin_edit_record.tpl");
}
if ($_GET['oper'] == 'view')
{
include("templates/client_view.tpl");
}
if ($_GET['oper'] == 'search')
{
include("templates/client_search.tpl");
}
}
?>
</div>
<div id="footer">© Батьева</div>
</body>
</html>
auth_form.tpl
<h1>Главное меню</h1>
<ul>
<li><a href="index.php?oper=view">Просмотр данных</a></li>
<li><a href="index.php?oper=search">Поиск данных</a></li>
</ul>
<h1>Вход на сайт</h1>
<div class="error"><? echo $auth_message; ?></div>
<form name="auth" method="post">
<table>
<tr>
<td>Логин</td>
<td><input type="text" name="login" /></td>
</tr>
<tr>
<td>Пароль</td>
<td><input type="password" name="password" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Войти" /></td>
</tr>
</table>
</form>
admin_menu.tpl
<h1>Главное меню</h1>
<ul>
<li><a href="index.php?oper=profile">Профиль администратора</a></li>
<li><a href="index.php?oper=view">Просмотр данных</a></li>
<li><a href="index.php?oper=search">Поиск данных</a></li>
<li><a href="index.php?oper=add">Добавление данных</a></li>
<li><a href="index.php?oper=edit">Редактирование данных</a></li>
<li><a href="index.php?oper=delete">Удаление данных</a></li>
<li><a href="index.php?oper=logout">Выйти</a></li>
</ul>
admin_edit_record.tpl
<?
$sql = "SELECT * FROM admins_tbl WHERE admin_id = '{$_SESSION['admin']['admin_id']}'";
$res = mysql_query($sql);
$row = mysql_fetch_assoc($res);
?>
<h1>Редактирование профиля администратора</h1>
<div class="message"><? echo $message; ?></div>
<form name="edit" method="post">
<table>
<tr>
<td>Логин</td>
<td><input type="text" name="admin_login" value="<? echo $row['admin_login']; ?>" required="required"/></td>
</tr>
<tr>
<td>Пароль</td>
<td><input type="password" name="admin_password" value="<? echo $row['admin_password']; ?>" required="required"/></td>
</tr>
<tr>
<td>Фамилия</td>
<td><input type="text" name="admin_last_name" value="<? echo $row['admin_last_name']; ?>" required="required"/></td>
</tr>
<tr>
<td>Имя</td>
<td><input type="text" name="admin_first_name" value="<? echo $row['admin_first_name']; ?>" required="required"/></td>
</tr>
<tr>
<td>Электронная почта</td>
<td><input type="text" name="admin_email" value="<? echo $row['admin_email']; ?>" required="required"/></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Сохранить" /></td>
</tr>
</table>
</form>