Форма ввода данных пользователя.




Таблица регистрационной информации.

Для того, чтоб пользователь мог войти в создаваемый нами игровой мир, он должен пройти регистрацию на нашем сайте онлайновой игры. Обычно регистрация состоит из заполнения десятка обязательных и необязательных полей, где потенциальный игрок делится с разработчиком информацией о себе и придумывает имя персонажа, которым впоследствии намеревается играть.
Чтоб сохранить всю эту введенную информацию у нас в базе, нам для начала нужна сама база, посему давайте ее создадим.
Мы можем воспользоваться поставляемым вместе с пакетом Denwer инструментом PHPMyAdmin https://localhost/Tools/phpmyadmin/index.php
(где в разделе Создать новую БД - вписать название mmclub - так мы будем именовать нашу базу, и нажать Создать)

Для того чтоб все это сделать в программе EMS MySQL Manager нужно проделать следующие шаги:

1. После запуска программы, мы должны зарегистрировать хост. Жмем правой кнопкой на правой панели и выбираем Register Host


выбираем из списка localhost и вводим для него логин root поле пароля оставляем пустым

должен высветиться список созданных баз. Если вы уже создали базу mmclub в phpMyAdmin выбираем ее и переносим в правое поле (Selected Databases)

Нажимаем Register и выбранная база становится доступной в левой панели. Если мы щелкнем левой кнопкой мыши по названию (алиасу) нашей базы mmclub on localhost, то откроется список входящих в нее таблиц


Естественно, у Вас пока в ней не будет таблиц, но они будут по мере прохождения наших занятий.

Если база ранее не была создана в phpMyAdmin, то выберите пункт меню:

 

Инструменты - > SQL Скрипт (Tools -> SQL Script) и введите в открывшемся окне такие строки:

CREATE DATABASE mmclub DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;

Затем нажмите на треугольнике (показано на Рис.1 красной стрелочкой) для выполнения скрипта.

Рис.1

Убедитесь что в выпадающем списке хостов у Вас выбран именно localhost.
Рекомендуем Вам воспользоваться именно вторым способом создания базы (то есть пользоваться программой EMS MySQL Manager), так как в дальнейшем мы будем добавлять в этот скрипт еще большое количество таблиц и данных.

Результатом выполнения скрипта будет создание базы mmclub (Might and Magic Club)
Сама база разместится у Вас на диске по такому пути:
C:\WebServers\usr\local\mysql4\data\mmclub
когда мы начнем добавлять таблицы в нашу базу, Вы заметите, что в этой папке добавляются файлы, содержащие данные из этих таблиц.

DROP DATABASE mmclub; CREATE DATABASE mmclub DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci; USE mmclub;

Команда DROP DATABASE - физически удаляет базу. Если не выполнить эту команду, то команда CREATE DATABASE выдаст ошибку, что такая база уже существует.
И наконец откроем базу для использования командой: USE.
Нажимаем на треугольнике для выполнения скрипта (или кнопку F9 на клавиатуре)
Дело сделано, пришло время добавления таблицы пользователей.

--Таблица персонажей CREATE TABLE users (USER_ID bigint(20) unsigned NOT NULL auto_increment, Nick_Name CHAR(32) UNIQUE, User_Pass CHAR(32), SessionID bigint, User_EMail CHAR(64) UNIQUE, Security_Answer CHAR(30), Full_Name CHAR(50), User_Birth_Day DATE NOT NULL, Character_Birth_Day DATE NOT NULL, User_Gender SMALLINT(1), User_City CHAR(32), ICQ_Number CHAR(16), PRIMARY KEY (`USER_ID`)) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

Давайте разберемся, для чего эти поля.
USER_ID - будет хранить уникальный идентификационный номер созданного игроком персонажа и автоматом будет увеличиваться на единицу с каждым новым зарегистрированным пользователем (о чем свидетельствует ключевое слово auto_increment)
Nick_Name - тоже уникальное поле, в котором будет храниться логин персонажа. Если при регистрации, игрок введет логин, который уже есть в таблице users у другого ранее зарегистрировавшегося пользователя, то он должен будет быть предупрежден об этом и выбрать себе другой логин (Nick_Name)
User_Pass - пароль пользователя (для простоты будем хранить его в таблице в открытом текстовом виде, хотя можно было бы применить ну хотя бы простейшее MD5 шифрование)
SessionID - нужно нам для служебных целей и мы остановимся на этом чуть позже.
User_EMail - почтовый адрес регистрирующегося юзера.
Security_Answer - выбранный при регистрации пользователя секретный ответ на один из вопросов регистрационный формы (впоследствии может помочь восстановить забытый пароль)
Full_Name - ФИО игрока
User_Birth_Day - день рождения игрока (реальный день рождения играющего).
Character_Birth_Day - дата создания персонажа в клубе (системная дата сервера на момент регистрации)
User_Gender - пол игрока.
User_City - город рождения играющего (впоследствии может нам пригодится, для того чтоб вести статистику - из каких стран и городов больше всего собралось играющих в нашем клубе)
ICQ_Number - ICQ игрока.

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

Итак, наш скрипт целиком выглядит так:

DROP DATABASE mmclub; CREATE DATABASE mmclub DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci; USE mmclub; --Таблица персонажей CREATE TABLE users (USER_ID bigint(20) unsigned NOT NULL auto_increment, Nick_Name CHAR(32) UNIQUE, User_Pass CHAR(32), SessionID bigint, User_EMail CHAR(64) UNIQUE, Security_Answer CHAR(30), Full_Name CHAR(50), User_Birth_Day DATE NOT NULL, Character_Birth_Day DATE NOT NULL, User_Gender SMALLINT(1), User_City CHAR(32), ICQ_Number CHAR(16), PRIMARY KEY (`USER_ID`)) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

Если кто не особо знаком с базой MySQL то заметим, что тип таблиц для нашего клуба мы выбрали MyISAM. MyISAM – это стандартный тип таблиц в MySQL. Он основывается на коде ISAM и обладает в сравнении с ним большим количеством полезных дополнений. MyISAM-таблицы идеально оптимизированы для использования в WWW, где преобладают запросы на чтение. Таблицы типа MyISAM показывают хорошие результаты при выборках SELECT. Во многом это связано с отсутствием поддержки транзакций и внешних ключей.
Если вы теперь загляните в папку C:\WebServers\usr\local\mysql4\data\mmclub
то увидите, что там появились несколько файлов: Индексные файлы имеют расширение.MYI (MYIndex). Файлы с расширением.MYD (MYData) содержат данные, а с расширением.frm – схему таблицы. Если индексный файл по какой-то причине теряется, программа перестраивает индексы, используя информацию из frm-файла. Пока что у нас создались файлы:
users.frm, users.MYD, users.MYI.
Users.frm - содержит только голую структуру таблицы, поскольку мы не ввели в него никаких данных и ни один пользователь не зарегистрировался в нашей с Вами игре. Да и как он может зарегистрироваться, если у нас до сих пор нет формы регистрации! Что ж, пора исправлять эту несправедливость и переходить к следующему разделу нашего урока.
Смотрите полный код sql-скрипта создания базы и таблицы здесь.

Форма ввода данных пользователя.

Форма ввода данных пользователя - это дверь, через которую игрок попадает во вселенную нашего игрового мира. Все данные которые, он честно введет в соответствующие поля ввода на странице браузера в регистрационной анкете попадут в нашу таблицу users и будет затем использоваться для авторизации пользователя в игре.
Итак для создания анкеты для регистрации игрока, создадим пустой файл с расширением.html или.phtml. Давайте назовем его reg.phtml. Вы можете пользоваться любым удобным для Вас редактором HTML (FrontPage, DreamWeaver) или просто набирать код страницы вручную в текстовом редакторе.
Для более удачного размещения полей ввода, можно создать таблицу (<TABLE>)
Так, если Вы создаете эту форму вручную, фрагмент кода для ввода логина и пароля пользователя будет выглядеть так:

<html> <head> </head> <body> <form name=regform action="testreg.phtml" method=POST onSubmit="feedbackSubmit()"> <TABLE width=515 cellPadding=0 border=0 style="border-style: dashed; border-width: 1px" bgcolor="#FFE5B6"> <TR> <TD width="72">Логин:<font color="#FF0000">*</font></TD> <TD width="204"><INPUT name=nickname size="20"></TD> <TD width="98">Пароль:<font color="#FF0000">*</font></TD> <TD width="193"><INPUT type=password name=pass size="20"></TD> </TR> </TABLE> </body> </html>

Если вы решили воспользоваться визуальным редактором (к примеру FrontPage) то можно легко, в режиме проектирования создать такую форму, а HTML-код за вас создаст сам редактор.
Какие же поля, нам нужно создать для заполнения пользователем! Кроме уже вышеперечисленных Логина и Пароля, которые называются nickname и pass соответственно нам понадобятся поля для ввода e-mail и ФИО игрока:

<TR> <TD>E-Mail<font color="#FF0000">*</font></TD> <TD width="204"><INPUT name=email size="20"></TD> <TD>ФИО<font color="#FF0000">*</font></TD> <TD><INPUT name=fio size="37"></TD> </TR>

Выбор (радио-кнопки) пола игрока:

<INPUT TYPE="radio" NAME="gender" value="Мужской" style="cursor:hand" ID=A1 checked><LABEL FOR=A1> Мужской </LABEL> <INPUT TYPE="radio" NAME="gender" value="Женский" style="cursor:hand" ID=A2><LABEL FOR=A2> Женский</LABEL>

а также информация о городе и ICQ игрока и дате его рождения. Полный код странички вы можете посмотреть здесь. Можно также обязать игрока прочитать правила нашего клуба и согласиться с ними, поставив птичку (check-button)

Ну и конечно, нам понадобится кнопка для завершения регистрации и отправки формы к нам в базу данных (а точнее - отправки значений заполненных полей к нам в таблицу users)

На рисунке (Рис.2) вы видите, что у нас с Вами получилось:

Рис. 2

В последнем разделе нашего сегодняшнего урока мы еще добавим небольшую защиту для ввода данных, а сейчас нам вполне достаточно и этого. Полный текст файла reg.phtml смотрите здесь.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-11-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: