Система регистрации на PHP и MySql

Сервер баз данных MySQL и язык сценариев PHP. Язык гипертекстовой разметки HTML. Основные способы создания Web-страниц (или документов HTML). JavaScript и схема базы данных. Таблица "reg users" и "reg login attempt". Проверка действительности кода.

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

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

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

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

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

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

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

РОССИЙСКАЯ АКАДЕМИЯ НАРОДНОГО ХОЗЯЙСТВА И ГОСУДАРСТВЕННОЙ СЛУЖБЫ ПРИ ПРЕЗИДЕНТЕ РОССИЙСКОЙ ФЕДЕРАЦИИ

НИЖЕГОРОДСКИЙ ИНСТИТУТ УПРАВЛЕНИЯ

КАФЕДРА ИНФОРМАТИКИ И ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

КУРСОВАЯ РАБОТА

СИСТЕМА РЕГИСТРАЦИИ НА PHP И MYSQL

Выполнил(а): студентка ИБ-721

Кочеткова Оксана Александровна

Научный руководитель:

Латин Николай Викторович

Нижний Новгород

2014

Оглавление

Введение

1. Теоритическая часть

1.1 Поставленная задача

1.2 Преимущества

1.3 Недостатки

1.4 Терминология

1.5 Сервер баз данных MySQL

1.6 Язык сценариев PHP

1.7 Язык гипертекстовой разметки HTML

2. Проектная часть

2.1 HTML

2.2 JavaScript

2.3 Схема базы данных

2.4 PHP

Введение

В данной курсовой работе затронем актуальную тему регистрации пользователей на сайте. Современные разработчики используют регистрационные формы для аутентификации пользователей, а также разграничения прав пользователей/гостей/администраторов. Обычный метод аутентификации в Web -- это требование к посетителям предоставить уникальное имя пользователя и пароль. Аутентификация используется для разрешения или запрещения доступа к определенным страницам или ресурсам. Аутентификация может быть необязательной либо использоваться для других целей, например, для персонализации. В данной работе будет рассмотрен другой подход к авторизации пользователей. Посетителям сайта необходимо будет ввести свой email, куда направляется ссылка для входа. Этот вариант очень прост и привлекателен, а также позволяет сэкономить время на придумывание пароля и ввод данных для регистрации.

1. Теоритическая часть

1.1 Поставленная задача

Форма для логина и регистрации объединены в одну, где пользователи будут указывать свой email;

Если указанного почтового адреса нет в базе, создается новая запись. Генерируется случайный ключ и отправляется на почту пользователя в виде ссылки, которая активна в течении 10 минут;

При нажатии на ссылку пользователь переходит на ваш сайт. Система сама авторизует пользователя по переданному в ссылке ключу;

1.2 Преимущества

Нет необходимости в хранении и валидации паролей;

Нет необходимости в системе восстановления паролей;

Процесс регистрации очень прост и привлекателен.

Просто модифицировать и встроить в существующий сайт на PHP.

1.3 Недостатки

Система безопасна до те пор, пока в безопасности почта пользователя. Если у кого-то есть доступ к почте пользователя, он может легко авторизоваться. Но это также относится и к другим системам регистрации (с функционалом восстановления пароля);

Email передается открыто и может быть перехвачен (также относится ко всем системам регистрации, не использующим HTTPS);

Если не уделить должного внимания к настройке и оформлению исходящих писем, есть шанс, что они попадут в спам.

Вывод:

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

1.4 Терминология

Web-программирование - разработка любых программных продуктов, предназначенных для работы на сайтах World Wide Web. Строго говоря, даже разработка web-страниц на чистом HTML является web-программированием, ведь при просмотре страницы браузер фактически исполняет код HTML, форматируя текст согласно инструкциям этого языка. В настоящее время под web-программированием понимают создание CGI-приложений и использование на web-странице технологий JavaScript и VBScript для достижений сложных эффектов. сервер разметка web javascript

Web-сервер - программа, запущенная на узле сети Интернет и выдающая посетителям этого узла web-страницы по запросам. Также web-сервером часто называется узел, на котором эта программа запущена, или даже компьютер, являющийся таким узлом.

Сайт - это часть логического пространства на хосте, состоящая из одной или нескольких HTML-страниц (иногда представляемых в виде HTML-документов). Хост вполне может содержать сразу несколько сайтов, размещенных, например, в разных его каталогах. Таким образом, сайт - термин весьма условный, обозначающий некоторый логически организованный набор страниц.

Страница (или HTML-страница) - адресуемая из Интернета минимальная единица текстовой информации службы World Wide Web, которая может быть затребована у Web-сервера и отображена в браузере. Язык HTML (Hypertext Markup Language - Язык разметки гипертекста) позволяет вставлять в страницы ссылки на другие страницы.

JavaScript -- язык обработки сценариев, позволяющий выполнять на компьютере пользователя определенные действия с HTML-страницами и объектами, размещенными на ней.
JavaScript -- язык программирования, основанный на объектном представлении браузера. Текст программы встроен непосредственно в HTML-документ и интерпретируется самим браузером. Применяется в основном для создания таких эффектов, как: бегущая строка, рисунки, изменяющие свой вид при подведении курсора и т. д.

1.5 Сервер баз данных MySQL

MySQL разработал Михаэль Видениус. MySQL - небольшой, компактный многопоточный сервер баз данных. MySQL характеризуется большой скоростью, ошибкоустойчивостью и легкостью в использовании. MySQL был разработан компанией TcX для внутренних нужд, которые заключались в быстрой обработке очень больших баз данных. Ядро, на котором сформирован MySQL - набор подпрограмм, которые использовались в высокотребовательном окружении много лет. MySQL является идеальным решением для малых и средних приложений. Исходные тексты сервера компилируются на множестве платформ. Наиболее полно возможности сервера проявляются на Unix-серверах, где есть поддержка многопоточности, что дает значительный прирост производительности. В варианте под Windows, MySQL может запускаться как сервис Windows NT или как обычный процесс на Windows 95/98. В то время, как MySQL все еще находится в разработке, это уже предоставляет богатый и полезный функциональный набор. MySQL-сервер является бесплатным для некоммерческого использования.

MySQL является относительно небольшой и быстрой реляционной СУБД основанной на традициях языка запросов SQL в стандарте ANSI 92, и кроме этого имеет множество расширений к этому стандарту, которых нет ни в одной другой СУБД:

1. Поддерживается неограниченное количество пользователей, одновременно работающих с базой данных.

2. Количество строк в таблицах может достигать 50 млн.

3. Быстрое выполнение команд. Возможно MySQL самый быстрый сервер из существующих.

4. Простая и эффективная система безопасности.

MySQL действительно очень быстрый сервер, но для достижения этого разработчикам пришлось пожертвовать некоторыми требованиями к реляционным СУБД.

1.6 Язык сценариев PHP

PHP («PHP: Hypertext Preprocessor») - это широко распространённый открытый ресурс-язык скриптинга (сценариев) общего назначения, который создан специально для Web и который можно внедрять в HTML.

Он серьезно отличается от скриптов, написанных на языках Perl или C - вместо написания программы с большим количеством команд для вывода HTML, вы пишете HTML-скрипт с некоторым количеством встроенного кода для выполнения каких-либо действий. Код PHP заключён в специальные начальный и конечный тэги (<? php…?>), что позволяет вам входить в и выходить из «режима PHP».

PHP отличается от других подобных языков, типа клиентского JavaScript, тем, что код выполняется на сервере. Вы можете сконфигурировать ваш web-сервер таким образом, чтобы он обрабатывал все ваши HTML-файлы с помощью PHP, и реально пользователь не будет иметь способа определить, что было на самом деле.

PHP может использоваться на всех крупных операционных системах (ОС), включая Linux, Microsoft Windows, и, возможно, другие. PHP имеет поддержку для большинства существующих web-серверов: Apache, Microsoft Internet Information Server, Personal Web Server, и многие другие. Для большинства этих серверов PHP имеет модули. В других, поддерживающих стандарт CGI, PHP может работать как CGI-процессор.

В PHP вы не имеете ограничений в выводе HTML. PHP может выводить изображения, PDF-файлы и даже клипы Flash, генерируемые на лету. Вы также легко можете выводить любой текст, включая XHTML, и любой другой XML-файл. PHP может автоматически генерировать эти файлы и сохранять их в файловой системе, вместо их распечатки, формируя серверный кэш для вашего динамического содержимого. Одна из наиболее сильных и привлекательных черт PHP - поддержка им большого количества баз данных (БД).

Наилучшим качеством PHP является то, что он предельно прост для новичка в программировании, но предлагает много продвинутых возможностей для программиста-профессионала.

1.7 Язык гипертекстовой разметки HTML

Для создания данного сайта мы использовали язык гипертекстовой разметки HTML - Hyper Text Markup Language. Web-страница (документ HTML) представляет собой текстовый файл на языке HTML формата *.htm или *.html, размещенный в World Wide Web (WWW). WWW - Всемирная Паутина, распределенная система доступа к гипертекстовым документам, существующая в Интернете. Web-страница кроме текста может содержать гипертекстовые ссылки, при помощи которых можно переходить к другим Web-страницам и просматривать их. Web-страница может содержать вставки в виде графики, анимации, видеоклипов и музыки.

Для просмотра Web-страниц можно использовать, например, MicroSoft Internet Explorer или NetScape Navigator, или Opera (просмотрщик или браузер).

Язык HTML позволяет:

1) Создавать и редактировать Web-страницы, в том числе свою домашнюю Web-страницу, которую можно затем разместить в Интернете;

2) Редактировать документы HTML, полученные из Интернета, так чтобы функционировали все внедренные в документ объекты (картинки, анимации и т.д.);

3) Создавать мультимедийные презентации, слайд-шоу, демонстрационные проекты, благодаря гипертекстовым ссылкам и возможности вставлять в документ HTML рисунки, диаграммы, анимации, видеоклипы, музыкальное и речевое сопровождение, текстовые спецэффекты (например, бегущая строка).

Существуют три основных способа создания Web-страниц (или документов HTML):

1) Использование текстового редактора Блокнот (NotePad), встроенного в Windows, и просмотр результатов с помощью браузера. Этот самый простой способ рекомендуется начинающим.

Технология этого способа создания Web-страницы такова:

В редакторе Блокнот создается файл Web-страницы, который сохраняется с расширением *.htm. Затем этот файл загружается и просматривается программой Internet Explorer. Для вызова редактора Блокнот с целью редактирования файла Web-страницы во время ее просмотра в Internet Explorer, используется пункт меню Вид, Источник или в виде HTML. После сохранения файла и выхода из Блокнота для просмотра отредактированной страницы надо нажать клавишу F5 или кнопку «Обновить» в панели инструментов Internet Explorer.

2) Использование специальных редакторов документов HTML, например Hot Metal Light, Hot Dog Professional, MS Front Page, HTMLPad и др.

3) Использование редактора Word-97, где создается текст документа, который затем конвертируется в HTML-формат.

2. Проектная часть

2.1 HTML

Начинаем с HTML разметки формы для регистрации. Следующий код расположен в файле index.php. Этот файл так же содержит PHP код, который обрабатывает входные данные и другие полезные функции системы.

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8"/>

<title>Tutorial: Super Simple Registration System With PHP &amp; MySQL</title>

<!-- The main CSS file -->

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

<!--[if lt IE 9]>

<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>

<![endif]-->

</head>

<body>

<form id="login-register" method="post" action="index.php">

<h1>Login or Register</h1>

<input type="text" placeholder="your@email.com" name="email" autofocus />

<p>Enter your email address above and we will send <br />you a login link.</p>

<button type="submit">Login / Register</button>

<span></span>

</form>

<!-- JavaScript Includes -->

<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

<script src="assets/js/script.js"></script>

</body>

</html>

В теге <head> подключаем основной CSS файл (в уроке он не представлен, посмотрите его в исходниках). Перед закрытием <body> подключаем jQuery и файл script.js (скрипт, которого в приложении №2).

2.2 JavaScript

jQuery следит за событием submit формы, вызывает e.preventDefault() предотвращая отправку формы и посылает AJAX вместо этого. В зависимости от ответа сервера будет показано сообщение.

$(function(){

var form = $('#login-register');

form.on('submit', function(e){

if(form.is('.loading, .loggedIn')){

return false;

}

var email = form.find('input').val(),

messageHolder = form.find('span');

e.preventDefault();

$.post(this.action, {email: email}, function(m){

if(m.error){

form.addClass('error');

messageHolder.text(m.message);

}

else{

form.removeClass('error').addClass('loggedIn');

messageHolder.text(m.message);

}

});

});

$(document).ajaxStart(function(){

form.addClass('loading');

});

$(document).ajaxComplete(function(){

form.removeClass('loading');

});

});

CSS класс .loading добавляется к форме, пока отправляется AJAX запрос (это происходит в функциях ajaxStart() и ajaxComplete()). Этот класс добавляет вращающийся gif индикатор, а также блокирует повторный сабмит формы. CSS класс .loggedIn cдобавляется email был отправлен и блокирует форму перманентно.

2.3 Схема базы данных

Система регистрации использует две MySql таблицы (SQL код для их создания вы найдете в файле tables.sql). Первая таблица содержит данные пользователей, вторая -- попытки залогиниться.

Таблица reg_users:

Система не использует пароль, что видно по отсутствию соответствующего поля в таблице. Есть полеtoken и token_validity. token -- создается когда пользователь входит в систему и отправляется ему на почту. token_validity -- таймстамп, задающий время действия пароля (10 минут).

Каждый раз, когда кто-то пытается войти в систему, во второй таблице создается запись. Это необходимо для ограничения попыток логина, 10 попыток каждые 10 минут и 20 каждый час. Если ограничения нарушаются, то ip адрес блокируется.

Таблица reg_login_attempt:

ip в базе хранится как число, полученное с помощью PHP функции ip2long.

2.4 PHP

Основной функционал системы реализован в классе User (Приложение№1). Этот класс использует ORM библиотеку idiorm, для связи с базой данных. Класс User обрабатывает данные из базы данных, генерирует коды и проверяет их. Класс имеет простой интерфейс, который легко встроить в существующий PHP сайт.

Коды генерируются с помощью алгоритма SHA1 и сохраняются в базе. Для установления действительности кодов мы используем функции MySql.

В файле functions.php находятся вспомогательные функции. (Приложениие№2).

С помощью функций rate_limit и rate_limit_tick отслеживается количество попыток логина. При каждой попытке залогиниться в таблице reg_login_attempt появляется новая запись. Эти функции вызываются при сабмите формы для логина.

В приложении №3 находится код, который обрабатывает входные данные и возвращает JSON ответ, который обрабатывается в файле assets/js/script.js.

При успешной авторизации или регистрации код вышлет письмо со ссылкой для входа. Код для входа будет доступен в глобальном массиве $_GET, т.к. мы передаем его в ссылке.

При переходе по ссылке будет запущен этот код:

if(isset($_GET['tkn'])){

// Проверка действительности кода

$user = User::findByToken($_GET['tkn']);

if($user){

// Код действителен, перенаправляем на закрытую страницу.

$user->login();

redirect('protected.php');

}

// Код недействителен.

redirect('index.php');

}

Функция $user->login() инициализирует сессию это значит что при посещении любой страницы, мы будем знать, что пользователь авторизован.

Выход из системы:

if(isset($_GET['logout'])){

$user = new User();

if($user->loggedIn()){

$user->logout();

}

redirect('index.php');

}

Если пользователь уже вошел, ему не надо видеть форму для логина. Здесь нам пригодится метод $user->loggedIn():

$user = new User();

if($user->loggedIn()){

redirect('protected.php');

}

Чтобы сделать любую страницу доступно только после авторизации:

// Для защиты страниц вашего сайта, подключите main.php

// и создайте новый объект типа User.

require_once 'includes/main.php';

$user = new User();

if(!$user->loggedIn()){

redirect('index.php');

}

После этой проверки вы можете быть уверенным, что пользователь успешно вошел в систему. Вы также можете получить доступ к информации из базы данных. Для вывода почты роли пользователя используется код:

echo 'Your email: '.$user->email;

echo 'Your rank: '.$user->rank();

rank() - функция, потому что роли может быть две. В базе они хранятся как 0 или 1, поэтому перед выводом надо конвертировать значение из базы.

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


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

  • Основы Web-программирования. Сервер баз данных MySQL. Язык сценариев PHP. Язык гипертекстовой разметки HTML. Назначение и цели разработки сайта. Форма входа и регистрации, обратная связь интернет–магазина. Требования к структуре сайта, описание контента.

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

  • Назначение информационно-новостного сайта. Структура пользовательской и административной частей. Эмулятор Web–сервера Denwer 3. Типы данных, используемые в PHP. MySQL база данных. Каскадная таблица стилей CSS. Язык гипертекстовой разметки документов HTML.

    дипломная работа [2,0 M], добавлен 05.02.2013

  • Основные технологии веб-программирования. Методы отправки данных на сервер с помощью HTML-формы. PHP - Препроцессор Гипертекста. Сохранение данных в базе данных MySQL. Клиент-Сервер и технология CGI. Примеры использования PHP совместно с MySQL.

    лекция [2,9 M], добавлен 27.04.2009

  • Основы языка программирования Web-страниц – HTML. Виды информации, которую может содержать Web-страница: текст, графика, звук, анимация и видео. Инструментарий для создания Web-страниц. Основные HTML-редакторы, которые используются для Web-дизайна.

    реферат [374,0 K], добавлен 19.01.2011

  • Основные теги и атрибуты языка HTML. Создание web-сайта, который должен представлять собой несколько связанных между собой страниц. Рассмотрение различных значений атрибутов и тегов на страницах и в других документах. Экранные формы разработанных страниц.

    лабораторная работа [1,2 M], добавлен 16.04.2014

  • Понятие сайта и их классификация - корпоративные, презентационные, тематические, интернет-магазины. Язык гипертекстовой разметки HTML и его средства разработки. Виртуальный web-сервер Denver и MySQL базы. Этапы разработки сайта и структура навигации.

    дипломная работа [2,4 M], добавлен 13.01.2015

  • Язык маркировки гипертекстов HTML, основа создания web-страниц. История спецификаций, каскадные таблицы стилей CSS. Способы определения таблиц стилей (стилевого шаблона). Язык подготовки сценариев JavaScript, его использование. Программный код web сайта.

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

  • Создание сайта при помощи HTML и CSS. Язык гипертекстовой разметки HTML и таблица стилей CSS. Основные понятия об этих языках, этапы и алгоритмы программного обеспечения. Добавление стилей в документ. Свойства элементов, принцип построения Web-страницы.

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

  • Определение понятия гипертекста. Основные части документа SGML. История создания стандартного языка разметки документов HTML. Отличия синтаксиса XHTML от HTML. RSS - семейство XML-форматов для описания лент новостей. Применение языка разметки KML.

    презентация [4,3 M], добавлен 15.02.2014

  • Создание HTML-форм. Ввод многострочного текста. Тег FORM - контейнер форм. Трансляция переменных окружения. Передача данных с помощью формы. Приложения, хранящие данные о регистрации пользователей в базе данных MySQL. Порядок трансляции переменных.

    лекция [5,6 M], добавлен 27.04.2009

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