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

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

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

 Исходники

В таблице users будет 3 поля:

Ее можно создавать в любой базе. Рассмотрим пример в базе mysq. Устанавливаем значение по инструкции на рисунку:

Сохраняем. Таблица готова.

Дальше делаем соединение с таблицей. Создаем файл bd.php. Вот его содержание:

</p>
<p class="MsoNormal" style="text-align: justify; text-indent: 27.0pt;"> <?php
 $db = mysql_connect ("ваш MySQL сервер","логин к этому серверу","пароль к этому серверу");
 mysql_select_db ("имя базы, к которой подключаемся",$db);
 ?></p>
<p class="MsoNormal" style="text-align: justify;">

В нашем примере это выглядит следующим образом:

</p>
<p class="MsoNormal" style="text-align: justify;"> <?php
 $db = mysql_connect ("localhost","user","1234");
 mysql_select_db ("mysql",$db);
 ?></p>
<p class="MsoNormal" style="text-align: justify;">

Не забудьте сохранить bd.php.

Приступаем к созданию страницы, для оставления данных пользователями. Для этого создадим файл reg.php с содержанием:

</p>
<p class="MsoNormal" style="text-align: justify; text-indent: 27.0pt;"> <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></p>
<p class="MsoNormal" style="text-align: justify;">

Следующий шаг, создания файла, предназначенного для занесения данных в базу и сохранения пользователя. Назовем его save_user.php.

</p>
<p class="MsoNormal" style="text-align: justify;"> <?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 "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a href='index.php'>Главная страница</a>";
 }
 else {
 echo "Ошибка! Вы не зарегистрированы.";
 }
 ?></p>
<p class="MsoNormal" style="text-align: justify;">

Теперь пользователи могут проходить регистрацию. Однако нужно сделать «окно» для входа зарегистрированных пользователей на сайт. Этим займется файл index.php:

</p>
<p class="MsoNormal" style="text-align: justify;"> <?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>
 <?php
 // Проверяем, пусты ли переменные логина и id пользователя
 if (empty($_SESSION['login']) or empty($_SESSION['id']))
 {
 // Если пусты, то мы не выводим ссылку
 echo "Вы вошли на сайт, как гость<br><a href='#'>Эта ссылка доступна только зарегистрированным пользователям</a>";
 }
 else
 {

 // Если не пусты, то мы выводим ссылку
 echo "Вы вошли на сайт, как ".$_SESSION['login']."<br><a href='http://tvpavlovsk.sk6.ru/'>Эта ссылка доступна только зарегистрированным пользователям</a>";
 }
 ?>
 </body>
 </html></p>
<p class="MsoNormal" style="text-align: justify;">

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

Последнее – файл, проверяющий правильность введенного логина и пароля , testreg.php:

</p>
<p class="MsoNormal" style="text-align: justify;"> <?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 "Вы успешно вошли на сайт! <a href='index.php'>Главная страница</a>";
 }
 else {
 //если пароли не сошлись

 exit ("Извините, введённый вами login или пароль неверный.");
 }
 }
 ?></p>
<p class="MsoNormal" style="text-align: justify;">

Дальше можно добавлять аватар, выход из аккаунта, поля с данными и т.д.

Источник урока:  www.ruseller.com

Категория: PHP Теги: 

Популярные записи:

Отображение содержимого последнего сообщения Отображение содержимого последнего сообщения
Правильный адрес URL в закладках Правильный адрес URL в закладках
Loginza – модуль авторизации на PHP Loginza – модуль авторизации на PHP
Функции PHP взаимодействующие с Twitter Функции PHP взаимодействующие с Twitter

Оставить комментарий или два

Отправить коментарий

Test

Яндекс.Метрика