Суббота, 14.06.2025, 15:42
Приветствую Вас Гость | RSS
Lineage II
Главная | Каталог статей | Регистрация | Вход
Меню
5>









Категории раздела
Уроки HTML [5]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа
Администрация

Главная » Статьи » Учитель по HTML, CSS » Уроки HTML

Создание регистрации на сайте на PHP + MySQL

Создание регистрации на сайте на PHP + MySQL


Здравствуйте! Сейчас мы попробуем реализовать самую простую регистрацию на сайте с помощью PHP + MySQL. Для этого на вашем компьютере должен быть установлен Apache. Принцип работы нашего скрипта изображен ниже.


1. Начнем с создания таблички users в базе. Она будет содержать данные пользователя (логин и пароль). Зайдем в phpmyadmin (если вы создаете базу на своем ПК http://localhost/phpmyadmin/). Создаем таблицу users, в ней будет 3 поля.



Я создаю ее в базе mysql, вы можете создавать в другой базе. Далее устанавливаем значения, как на рисунке:



Нажимаем "сохранить". Итак, таблица у нас есть.

2. Необходимо соединение с этой таблицей. Давайте создадим файл bd.php. Его содержание:

       $db = mysql_connect ("ваш MySQL сервер","логин к этому серверу","пароль к этому серверу");
       mysql_select_db ("имя базы, к которой подключаемся",$db);
       ?>

В моем случае это выглядит так:

   $db = mysql_connect ("localhost","user","1234");
   mysql_select_db ("mysql",$db);
   ?>

Сохраняем bd.php.
Отлично! У нас есть таблица  в базе, соединение к ней. Теперь можно приступать к созданию странички, на  которой пользователи будут оставлять свои данные.

3. Создаем файл reg.php с содержанием (все комментарии внутри):

<html>
   <head>
   <title>Регистрация</title>
   </head>
   <body>
   <h2>Регистрация</h2>
   <form action="save_user.php" method="post">
   <!--**** save_user.php - это адрес обработчика.  То есть, после нажатия на кнопку "Зарегистрироваться", данные из полей  отправятся на страничку save_user.php методом "post" ***** -->
<p>
   <label>Ваш логин:<br></label>
   <input name="login" type="text" size="15" maxlength="15">
   </p>
<!--**** В текстовое поле (name="login" type="text") пользователь вводит свой логин ***** -->
<p>
   <label>Ваш пароль:<br></label>
   <input name="password" type="password" size="15" maxlength="15">
   </p>
<!--**** В поле для паролей (name="password" type="password") пользователь вводит свой пароль ***** -->
<p>
   <input type="submit" name="submit" value="Зарегистрироваться">
<!--**** Кнопочка (type="submit") отправляет данные на страничку save_user.php ***** -->
</p></form>
   </body>
   </html>

4. Создаем файл, который будет заносить данные в базу и сохранять пользователя. save_user.php(комментарии внутри):

   if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
   if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
   //заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
if (empty($login) or empty($password)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
   {
   exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
   }
   //если логин и пароль введены, то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести
   $login = stripslashes($login);
   $login = htmlspecialchars($login);
$password = stripslashes($password);
   $password = htmlspecialchars($password);
//удаляем лишние пробелы
   $login = trim($login);
   $password = trim($password);
// подключаемся к базе
   include ("bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь
// проверка на существование пользователя с таким же логином
   $result = mysql_query("SELECT id FROM users WHERE login='$login'",$db);
   $myrow = mysql_fetch_array($result);
   if (!empty($myrow['id'])) {
   exit ("Извините, введённый вами логин уже зарегистрирован. Введите другой логин.");
   }
// если такого нет, то сохраняем данные
   $result2 = mysql_query ("INSERT INTO users (login,password) VALUES('$login','$password')");
   // Проверяем, есть ли ошибки
   if ($result2=='TRUE')
   {
   echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. Главная страница";
   }
else {
   echo "Ошибка! Вы не зарегистрированы.";
   }
   ?>

5. Теперь наши пользователи могут регистрироваться! Далее необходимо  сделать "дверь" для входа на сайт уже зарегистрированным пользователям. index.php (комментарии внутри) :

   //  вся процедура работает на сессиях. Именно в ней хранятся данные  пользователя, пока он находится на сайте. Очень важно запустить их в  самом начале странички!!!
   session_start();
   ?>
   <html>
   <head>
   <title>Главная страница</title>
   </head>
   <body>
   <h2>Главная страница</h2>
   <form action="testreg.php" method="post">

   <!--****  testreg.php - это адрес обработчика. То есть, после нажатия на кнопку  "Войти", данные из полей отправятся на страничку testreg.php методом  "post" ***** -->
<p>
   <label>Ваш логин:<br></label>
   <input name="login" type="text" size="15" maxlength="15">
   </p>


   <!--**** В текстовое поле (name="login" type="text") пользователь вводит свой логин ***** -->

   <p>

   <label>Ваш пароль:<br></label>
   <input name="password" type="password" size="15" maxlength="15">
   </p>

   <!--**** В поле для паролей (name="password" type="password") пользователь вводит свой пароль ***** -->

   <p>
   <input type="submit" name="submit" value="Войти">

   <!--**** Кнопочка (type="submit") отправляет данные на страничку testreg.php ***** -->
<br>
<!--**** ссылка на регистрацию, ведь как-то же должны гости туда попадать ***** -->
<a href="reg.php">Зарегистрироваться</a>
   </p></form>
   <br>
      // Проверяем, пусты ли переменные логина и id пользователя
   if (empty($_SESSION['login']) or empty($_SESSION['id']))
   {
   // Если пусты, то мы не выводим ссылку
   echo "Вы вошли на сайт, как гость
Эта ссылка  доступна только зарегистрированным пользователям";
   }
   else
   {

   // Если не пусты, то мы выводим ссылку
   echo "Вы вошли на сайт, как ".$_SESSION['login']."
Эта ссылка доступна только  зарегистрированным пользователям";
   }
   ?>
   </body>
   </html>

В файле index.php мы выведем ссылочку, которая  будет открыта только для зарегистрированных пользователей. В этом и  заключается вся суть скрипта - ограничить доступ к каким-либо данным.

6. Остался файл с проверкой введенного логина и пароля. testreg.php (комментарии внутри):

   session_start();//  вся процедура работает на сессиях. Именно в ней хранятся данные  пользователя, пока он находится на сайте. Очень важно запустить их в  самом начале странички!!!
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
   if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
   //заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
if (empty($login) or empty($password)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
   {
   exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
   }
   //если логин и пароль введены,то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести
   $login = stripslashes($login);
   $login = htmlspecialchars($login);
$password = stripslashes($password);
   $password = htmlspecialchars($password);
//удаляем лишние пробелы
   $login = trim($login);
   $password = trim($password);
// подключаемся к базе
   include ("bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь
 
$result = mysql_query("SELECT * FROM users WHERE login='$login'",$db); //извлекаем из базы все данные о пользователе с введенным логином
   $myrow = mysql_fetch_array($result);
   if (empty($myrow['password']))
   {
   //если пользователя с введенным логином не существует
   exit ("Извините, введённый вами login или пароль неверный.");
   }
   else {
   //если существует, то сверяем пароли
   if ($myrow['password']==$password) {
   //если пароли совпадают, то запускаем пользователю сессию! Можете его поздравить, он вошел!
   $_SESSION['login']=$myrow['login'];
   $_SESSION['id']=$myrow['id'];//эти данные очень часто используются, вот их и будет "носить с собой" вошедший пользователь
   echo "Вы успешно вошли на сайт! Главная страница";
   }
else {
   //если пароли не сошлись

   exit ("Извините, введённый вами login или пароль неверный.");
   }
   }
   ?>

Ну вот и все! Может урок и скучный, но очень полезный. Здесь  показана только идея регистрации, далее Вы можете усовершенствовать ее:  добавить защиту, оформление, поля с данными, загрузку аватаров, выход  из аккаунта (для этого просто уничтожить переменные из сессии функцией unset) и так далее. Удачи!

Все проверил, работает исправно!

Автор: Стороженко Евгений (отредактировал и опубликовал Максим Шкурупий)

Категория: Уроки HTML | Добавил: 3648336 (16.06.2013)
Просмотров: 18772 | Комментарии: 1 | Рейтинг: 1.0/1
Всего комментариев: 1
1 Roberthof  
0
http://mysite.ru - http://mysite.ru

Имя *:
Email *:
Код *:
Мини-чат
торренты
Клиент
Lineage 2 Interlude
Клиент
Lineage 2 Gracia Epilogue
Клиент
Lineage 2 Gracia Final
Клиент
Lineage 2 Freya
Клиент
Lineage 2 Hight Five part 5

Партнёры

Copyright MyCorp © 2025

Создать бесплатный сайт с uCoz