Міністерство освіти і науки України
Вінницький національний технічний університет
Факультет інформаційних технологій та комп’ютерної інженерії
Кафедра комп’ютерних наук
Лабораторна робота №5
Тема: «Розробка програмного забезпечення сайту»
Вінниця 2016
Мета: розробити програмне забезпечення сайту.
Теоретичні відомості
Розробка і створення сайту - це дизайн, верстка та програмування сайту. Часто замовники асоціюють інтернет проект, перш за все з його візуальним відображенням. Але дизайн - це тільки частина робіт проекту з підготовки ефективного інтернет ресурсу. На проектування сайтів ми віддаємо багато часу, приділяємо велику увагу програмної частини і функціоналу.
Програмування сайту - це робота, яка пов'язує воєдино створення дизайну для сайту і функціональну складову ресурсу. Програмування сайту - це верстка веб-сторінок і інтеграція в систему управління сайтом. Верстка сторінок - це набір візуальних елементів в html коді з подальшим його коректним відображенням у всіх браузерах. При верстці закладається початкова оптимізація сайту, тобто йде підготовка коду інтернет сторінок сайту до індексації основними пошуковими системами Yandex, Google. Верстка сайту - це ще й оптимізація ілюстративних матеріалів за розміром і швидкістю завантаження сторінки на стаціонарних комп'ютерах і на мобільних пристроях.
Для чого потрібно програмування сайту?
Програмування сайту має на увазі використання декількох веб технологій в одному проекті, але, в кінцевому рахунку, проект «створення сайту з нуля» це розробка єдиного продукту, який буде працювати як єдине ціле, користувач отримає в своє розпорядження зручні інтерфейси, плагіни, модулі і єдині програмні рішення.
Всі проекти, виготовлення веб представництв, створення інтернет магазинів, інформаційних порталів реалізуються із застосуванням як системи управління сайтами (CMS).
При необхідності, в рамках системи управління, ми виробляємо доопрацювання сайту програмування додаткових модулів, що автоматизують роботу сайту
Висновок: Під час виконання лабораторної роботи було засвоєно основні принципи написання СSS коду для оформлення дизайну сайту.
Найчастіше програмування сайту відбувається мовою РНР.
Створення таблиці користувачів в базі даних сайту
CREATE TABLE `users` (
`user_id` int(11) unsigned NOT NULL auto_increment,
`user_login` varchar(30) NOT NULL,
`user_password` varchar(32) NOT NULL,
`user_hash` varchar(32) NOT NULL,
`user_ip` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;
Програмування процесу реєстрації
<?
# З’єднання з базою даних
$link=mysqli_connect("localhost", "mysql_user", "mysql_password", "testtable");
if(isset($_POST['submit']))
{
$err = array();
# Перевірка логіна
if(!preg_match("/^[a-zA-Z0-9]+$/",$_POST['login']))
{
$err[] = "Логін може складатись лише з літер англійського алфавіту і цифр";
}
if(strlen($_POST['login']) < 3 or strlen($_POST['login']) > 30)
{
$err[] = "Логін повинен мати довжину не менше 3-х і не більше 30 символів";
}
# Перевірка на можливість реєстрації логіна
$query = mysqli_query($link, "SELECT COUNT(user_id) FROM users WHERE user_login='".mysqli_real_escape_string($link, $_POST['login'])."'");
if(mysqli_num_rows($query) > 0)
{
$err[] = "Користувач з таким логіном вже існує";
}
# Додавання нового користувача
if(count($err) == 0)
{
$login = $_POST['login'];
$password = md5(md5(trim($_POST['password'])));
mysqli_query($link,"INSERT INTO users SET user_login='".$login."', user_password='".$password."'");
header("Location: login.php"); exit();
}
else
{
print "<b>При реєстрації відбулись помилки:</b><br>";
foreach($err AS $error)
{
print $error."<br>";
}
}
}
?>
<form method="POST">
Логин <input name="login" type="text"><br>
Пароль <input name="password" type="password"><br>
<input name="submit" type="submit" value="Зареєструватись">
</form>
Програмування процесу реєстрації
<?
# З’єднання з БД
$link=mysqli_connect("localhost", "mysql_user", "mysql_password", "testtable");
if(isset($_POST['submit']))
{
# Знаходження в БД запису із відповідним логіном
$query = mysqli_query($link,"SELECT user_id, user_password FROM users WHERE user_login='".mysqli_real_escape_string($link,$_POST['login'])."' LIMIT 1");
$data = mysqli_fetch_assoc($query);
# Порівнання паролів
if($data['user_password'] === md5(md5($_POST['password'])))
{
# Шиврування випадкового числа
$hash = md5(generateCode(10));
if(!@$_POST['not_attach_ip'])
{
# Якщо користувач вибрав прив’язку до ІР адреси, переводимо IP в текст
$insip = ", user_ip=INET_ATON('".$_SERVER['REMOTE_ADDR']."')";
}
# Запис в БД нового запису хешу і ІР
mysqli_query($link, "UPDATE users SET user_hash='".$hash."' ".$insip." WHERE user_id='".$data['user_id']."'");
# Куки
setcookie("id", $data['user_id'], time()+60*60*24*30);
setcookie("hash", $hash, time()+60*60*24*30);
}
else
{
print "Ви ввели неправильний логін/пароль";
}
}
?>
<form method="POST">
Логін <input name="login" type="text"><br>
Пароль <input name="password" type="password"><br>
Не прикріплювати до IP <input type="checkbox" name="not_attach_ip"><br>
<input name="submit" type="submit" value="Увійти">
</form>
Висновок: Протягом виконання лабораторної роботи було запрограмовано авторизацію на сайті мовою програмування РНР.