Разработка клиент–серверной программы

Варианты использования приложения, выполняющего регистрацию клиентов, ввод логина, паролей и IP-адресов, сохраняя идентификационные данные в базе данных. Модульная структура программы. Спецификация на программные модули. Шифрование паролей по алгоритму.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 06.03.2015
Размер файла 204,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

Размещено на http://www.allbest.ru

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

ФИЛИАЛ ГОСУДАРСТВЕННОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«МОСКОВСКИЙ ЭНЕРГЕТИЧЕСКИЙ ИНСТИТУТ

(ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)» в г. Смоленске

Кафедра вычислительной техники

Лабораторная работа № 1-2

по курсу Системное программное обеспечение

Студент: Ковалёв Р. П.

Группа: ВМ-11

Преподаватель: Ершова М.Г.

Смоленск, 2014

Техническое задание

Разработать клиент - серверную программу со следующими характеристиками:

1. Программа должна включать сервер и три - четыре клиента.

2. Сервер выполняет регистрацию клиентов, ввод логина, паролей и IP - адресов, сохраняя идентификационные данные в базе данных.

3. После регистрации любой клиент может обмениваться данными с другими клиентами через сервер. Запрашиваемый клиент может идентифицироваться по IP - адресу.

Сервер после идентификации зарегистрированного клиента и наличии в базе данных запрашиваемого клиента предоставляет возможность обмена данными. В противном случае клиенту выдается отказ с объяснением причин отказа. Незарегистрированному клиенту предоставляется возможность пройти процедуру регистрации.

4. Пароли пользователей хранятся в БД в шифрованном виде

Описание алгоритмов

Для описания используемых алгоритмов выделим варианты использования приложения и занесем их в таблицу 1.

Таблица 1 - Варианты использования приложения.

Название варианта

Цель

Действующие лица

Краткое описание

Тип варианта

Регистрация

Зарегистрировать пользователя

Пользователь

Проходя процедуру регистрации, пользователь вводит логин и пароль. Пароль шифруется.

Основной

Авторизация

Войти в чат используя зарегистрированную учет. запись

Пользователь

Система проверяет есть ли в БД комбинация логин + пароль

Основной

Отправить сообщение

Отправить сообщение

Пользователь

Пользователь отправляет сообщение

Основной

Запрос к БД

Вывод запрошенных данных

Система

Конечным результатом данного ВИ является выведенные на экран запрошенные пользователем данные

Вспомогательный

Сохранение данных в БД

Сохранить данные в БД

Система

Перед сохранением данных в БД, они должны быть обработаны (удаление спец.символов) чтобы не нарушить целостность БД

Вспомогательный

Диаграмма вариантов использования приложения представлена на рисунке 1.

Рисунок 1 - Диаграмма вариантов использования приложения

Модульная структура программы

Модульная структура программы представлена на рисунке 2.

Рисунок 2 - Модульная структура программы.

Спецификация на программные модули

Имя модуля - index.php;

Имя вызывающего модуля - chrome.exe;

Выполняемые функции - вывод сообщений чата;

Входные данные - Строки;

Выходные данные - Строки;

Особенности, ограничения:

Выводятся только 20 последних сообщений чата.

Имя модуля -registration.php;

Имя вызывающего модуля - index.php;

Выполняемые функции - регистрация пользователей;

Входные данные - логин и пароль;

Выходные данные - нет;

Особенности, ограничения:

Шифрование паролей выполняется по алгоритму md5 с помощью встроенных средств php.

Имя модуля -authorization.php;

Имя вызывающего модуля - index.php;

Выполняемые функции - авторизация пользователей;

Входные данные - логин и пароль;

Выходные данные - нет;

Особенности, ограничения: нет.

Имя модуля - sendmessage.php;

Имя вызывающего модуля - registration.php, authorization.php;

Выполняемые функции - отправка сообщения;

Входные данные - текст сообщения, логии адресата;

Выходные данные - нет;

Особенности, ограничения: нет.

Результаты работы программы на примерах

На рисунках 3-5 представлены результаты работы программы. На рисунке 3 отображена форма регистрации.

Рисунок 3 - Форма регистрации.

В случае если при регистрации пользователь вводит уже используемое имя сайт выдает сообщение об ошибке.

Рисунок 4 - Неудачная попытка регистрации.

На рисунке 5 представлен результат обмена сообщениями 2х пользователей.

Рисунок 5 - Результат обмена сообщениями 2х пользователей.

серверный программа алгоритм шифрование

Приложение

А. Текст программы

Index.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" >

<link href="style.css" rel="stylesheet" type="text/css">

<title>Main</title>

</head>

<body>

<table width="690" border="0" align="center" bgcolor="#FFFFFF" class="main_border">

<!--Подключаем шапку сайта-->

<tr>

<td><table width="690" border="1">

<tr>

<!--Подключаем левый блок сайта-->

<td width="499">

<textarea name="description" id="description" cols="50" rows="5"></textarea>

<p>

<input id="load" value="Insert text" type="text" />

<input id="load" value="Send" type="submit" onclick="callServer();" />

</p>

</p></td>

</tr>

</table></td>

</tr>

<!--Подключаем футер-->

</table>

</body>

<script type="text/javascript" src="jquery1.js"></script>

</html>

Registration.php

<?php

if(isset($_POST['submit'])){ //выполняем нижеследующий код, только если нажата кнопка 

$query = mysql_query("SELECT * FROM `users` WHERE `login`='".$_POST['login']."'"); //отправляем запрос на выборку всего содержимого , где поле логин равно переменной $login

$row = mysql_num_rows($query); // считаем количество рядов результата запроса

if(empty($_POST['login'])){ //если переменная логина пуста или не существует

echo"Вы не ввели логин"; // выводим сообщение об ошибке

}elseif(!preg_match("/[-a-zA-Z0-9]{3,15}/", $_POST['login'])){ //если переменная не соответствует шаблону -a-zA-Z0-9

echo"Вы неправильно ввели логин"; // выводим сообщение об ошибке

}elseif(empty($_POST['password'])){ //если переменная логина пуста или не существует

echo"Вы не ввели пароль"; // выводим сообщение об ошибке

}elseif($row > 0){ //если переменная больше 0

echo"Такой пользователь уже существует!"; // выводим сообщение об ошибке

}elseif(!preg_match("/[-a-zA-Z0-9]{3,30}/", $_POST['password'])){ //если переменная не соответствует шаблону -a-zA-Z0-9

echo"Вы неправильно ввели пароль"; // выводим сообщение об ошибке

}elseif(empty($_POST['password2'])){ //если переменная логина пуста или не существует

echo"Вы не ввели подтверждение пароля"; // выводим сообщение об ошибке

}elseif(!preg_match("/[-a-zA-Z0-9]{3,30}/", $_POST['password2'])){ //если переменная не соответствует шаблону-a-zA-Z0-9

echo"Вы неправильно ввели подтверждение пароля"; // выводим сообщение об ошибке

}elseif($_POST['password'] != $_POST['password2']){ //если переменная пароля и переенная повтора пароля не одинаковы

echo"Вы неправильно ввели подтверждение пароля"; // выводим сообщение об ошибке

}elseif(empty($_POST['email'])){ //если переменная E-mail'a пуста

echo"Вы не ввели E-mail"; // выводим сообщение об ошибке

}elseif(!preg_match("/[-a-zA-Z0-9_]{3,20}@[-a-zA-Z0-9]{2,64}\.[a-zA-Z\.]{2,9}/", $_POST['email'])){ //регулярка на проверку правильности email

echo"Вы неправильно ввели E-mail"; // выводим сообщение об ошибке

}else{ //если же ошибок нет

$login = $_POST['login']; //присваеваем переменную

$password = md5($_POST['password']);//присваеваем переменную и кодируем её в md5 для безопасности

$email = $_POST['email'];//присваеваем переменную

$insert = mysql_query("INSERT INTO `users` (`login` ,`password` ,`email` ) VALUES ('$login', '$password', '$email')"); //выполняем запрос на добавление нового пользователя

if($insert == true){

echo "Вы успешно зарегистрированы!";

}else{

echo "Непредвиденная ошибка!";

}

}

}

?>

Authorization.php

<?php

if(isset($_POST['submit'])){ //выполняем нижеследующий код, только если нажата кнопка 

if(empty($_POST['login'])){ //если переменная логина пуста или не существует

echo"Вы не ввели логин"; // выводим сообщение об ошибке

}elseif(!preg_match("/[-a-zA-Z0-9]{3,15}/", $_POST['login'])){ //если переменная не соответствует шаблону -a-zA-Z0-9

echo"Вы неправильно ввели логин"; // выводим сообщение об ошибке

}elseif(empty($_POST['password'])){ //если переменная логина пуста или не существует

echo"Вы не ввели пароль"; // выводим сообщение об ошибке

}elseif(!preg_match("/[-a-zA-Z0-9]{3,30}/", $_POST['password'])){ //если переменная не соответствует шаблону -a-zA-Z0-9

echo"Вы неправильно ввели пароль"; // выводим сообщение об ошибке

}else{

$login = $_POST['login']; //присваеваем переменную

$password = md5($_POST['password']);//присваеваем переменную и кодируем её в md5 для безопасности

$query = mysql_query("SELECT * FROM `users` WHERE `login`='$login' AND `password`='$password'"); //отправляем запрос на выборку всего содержимого , где поле логин равно переменной $login, а поле password равно переменной $password

$row = mysql_num_rows($query); // считаем количество рядов результата запроса

if($row > 0){ //если их больше 0

echo "Вы успешно авторизовались!"; // выводим сообщение об удачной авторизации!

}else{

echo "Неправильный логин или пароль!"; // выводим сообщение об ошибке!

} } } ?>

Размещено на Allbest.ru


Подобные документы

  • Обзор основных используемых языков программирования (С++, Java, Pascal). Анализ существующих методов шифрования паролей. Основные понятия объектно-ориентированного программирования. Реализация приложения для генерирования паролей на языке Object Pascal.

    курсовая работа [822,4 K], добавлен 07.07.2012

  • Особенности настройки корпоративной сети предприятия. Разработка приложения, обеспечивающего эффективную работу клиент-серверной сети железнодорожной кассы. Защита от несанкционированного доступа, специфика шифрования паролей и ряд других средств защиты.

    курсовая работа [5,9 M], добавлен 30.01.2014

  • Разработка программы на языке Visual Basic. Спецификация на программный модуль. Ввод, изменение и удаление данных по определенным требованиям. Руководство системного программиста, программиста и оператора. Ведение базы данных в виде таблицы Excel.

    курсовая работа [272,5 K], добавлен 21.04.2014

  • Проектирование физической и логической моделей удаленной базы данных для АЗС. Разработка базы данных в СУБД Firebird с помощью утилиты IBExpert. Создание клиентского приложения для Windows с использованием клиент-серверной технологии в среде C++ Builder.

    курсовая работа [3,9 M], добавлен 18.01.2017

  • Хранение данных в зашифрованном виде как прекрасный способ защитить информацию, чтобы она не попала к злоумышленнику, технические вопросы и проблемы данного процесса. Учетные записи и аутентификация. Шифрование данных и паролей в Linux. Теневые пароли.

    курсовая работа [255,6 K], добавлен 07.02.2012

  • Кодирование и декодирование, преобразование дискретного сообщения в дискретный сигнал. Построение математической модели корректирующего кода. Образующая матрица информационного кода. Модульная структура программы. Спецификация на программные модули.

    курсовая работа [98,9 K], добавлен 28.11.2014

  • Разработка приложения для шифрования данных с помощью алгоритма DES5: процесс шифрования, расшифрования, получение ключей. Спецификация программы, процедуры и функции; описание интерфейса пользователя. Реализация задачи в среде программирования DELPHI.

    курсовая работа [812,6 K], добавлен 27.03.2012

  • Аспекты безопасности информации, предотвращение внедрения программных закладок. Проектирование и разработка программы шифрования данных по заданной таблице из 160 символов. Дешифровка и вывод результата приложения. Его программный код и тестирование.

    курсовая работа [163,1 K], добавлен 05.05.2016

  • Краткая характеристика библиотек: stdio.h, conio.h, string.h, stdafx.h. Шифр Плейфера как подстановка символов из таблицы, основные варианты. Структура программы playfer.exe. Создание таблицы перекодировки. Ввод, шифрование и дешифрование текста.

    курсовая работа [216,7 K], добавлен 18.05.2013

  • Разработка программного продукта - приложения, позволяющего заносить данные анкетирования в базу данных MS SQL. Описание логики работы приложения, особенности пользовательского интерфейса. Формы просмотра анкет, описание процедур и функций программы.

    курсовая работа [1,2 M], добавлен 16.08.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.