В этом уроке покажу вам как
создать простую форму регистрации на сайте на PHP и MySQL которую вы сами потом сможете усовершенствовать по своему желанию. Добавить защиту, оформление, поля с данными, загрузку аватаров.
1.Начнем с создания таблички users в базе. Она будет содержать данные пользователя (логин и пароль). Создаем таблицу users, в ней будет 3 поля количество полей зависит от той информации каторая будет запрашиваться при регистрации.
2. Необходимо соединение с этой таблицей.Давайте создадим файл bd.php
<?php $db = mysql_connect ("ваш MySQL сервер","логин к этому серверу","пароль к этому серверу"); mysql_select_db ("имя базы, к которой подключаемся",$db); ?>
Имя сервера MySQL обычно
localhost. Сохраняем 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 который будет заносить данные в базу и сохранять пользователя.
<?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 "Ошибка! Вы не зарегистрированы."; } ?>
Теперь наши пользователи могут регистрироваться. Но нам нужно сделать "дверь" для входа на сайт уже зарегистрированным пользователям.
5. Открываем файл index.php.В нём мы выведем ссылочку, которая будет открыта только для зарегистрированных пользователей.
<?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 или пароль неверный."); } } ?>
6. И создадим файл
testreg.phpКаторый будет проверять правильность вводимого пароля и логина для входа.
<?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 или пароль неверный."); } } ?>
Вот и всё вы можете усовершенствовать добавить защиту, оформление, поля с данными, загрузку аватаров, выход из аккаунта для этого просто убрать переменные из сессии функцией
unset и так далее. Удачи!
Отзывы