Пример формы регистрации с проверкой заполнения полей
и формы входа на сайт


Форма регистрации – это форма, в которую пользователь вводит свои личные данные для того чтобы зарегистрироваться на Вашем сайте. Для формы регистрации желательно создать отдельный файл, в моем примере он будет назваться «forma_reg.php». Также к этой форме мы напишем «php скрипт» который будет проверять, правильно ли заполнены поля, если нет, то выведет на экран сообщения об ошибках.

Img

К этой же форме необходимо привязать «скрипт» который проверяет, не существует ли пользователь с таким же логином в базе данных Вашего сайта, если существует, то выводит соответствующее сообщение на экран. Данный скрипт будет написан между кодом проверки заполнения полей и кодом записи нового пользователя в базу данных (в примере ниже он окрашен в оранжевый цвет)

Код, который проверяет, правильно ли заполнены поля, мы помещаем в контейнер «div» (в примере ниже он окрашен в зеленый цвет) в этом контейнере и будут появляться сообщения об ошибках, если пользователь неправильно заполнит поля формы или введенный им логин будет занят.

Файл «forma_reg.php»:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<title>Регистрация</title>
<meta http-equiv="Content-Style-Type" content="text/css">
<meta name="keywords" content="Ключевые слова для поисковиков">
<meta name="description" content="Описание сайта">
</head>
<body>
 
<div style="position:relative; left:10px; top:0px; height:200px; width:800px;" align="center">
<?php
    if ($_POST) //Условие будет выполнено, если произведен POST-запрос к скрипту.
    {
	$name = trim($_POST['rname']);
	$login = trim($_POST['rlogin']);
	$password = trim($_POST['rpass']);
	$password_r = trim($_POST['rpass_r']);
	$email = trim($_POST['email']);
	$data = date('y,n,d');

   $error = false;//Создаем переменную, контролирующую ошибки регистрации.
$errortext = "<p><b><font color='red'><h3>При регистрации на сайте произошли следующие ошибки:</h3></font></p><ul>";
if (empty($name))
{
$error = true;
$errortext .= "<li><font color='red'>Вы не заполнели поле Имя пользователя!</font></li>";
} else {
if (!preg_match("/^[a-z а-яё]{2,30}$/iu",$name))
{
$error = true;
$errortext .= "<li><font color='red'>Убедитесь что Имя содержит от 2 до 30 символов и не содержит цифр</font></li>";
}
}
if (empty($login))
{
$error = true;
$errortext .= "<li><font color='red'>Вы не заполнели поле Логин пользователя!</font></li>";
} else {
if (!preg_match("/^[a-z0-9]{2,20}$/i",$login))
{
$error = true;
$errortext .= "<li><font color='red'>Убедитесь что Логин содержит от 2 до 20 символов, и состоит из латинских символов и цифр</font></li>";
}
}
if (empty($password))
{
$error = true;
$errortext .= "<li><font color='red'>Вы не заполнили поле Пароль!</font></li>";
} else {
if (!preg_match("/^[a-z0-9]{3,20}$/i",$password))
{
$error = true;
$errortext .= "<li><font color='red'>Убедитесь что Пароль содержит от 3 до 20 символов, и состоит из латинских символов и цифр</font></li>";
}
}
if (empty($password_r))
{
$error = true;
$errortext .= "<li><font color='red'>Вы не заполнили поле Подтверждение пароля!</font></li>";
} else {
if ($password != $password_r)
{
$error = true;
$errortext .= "<li><font color='red'>Поле Пароль и его Подтверждение не совпадают!</font></li>";
}
}
if (empty($email))
{
$error = true;
$errortext .= "<li><font color='red'>Вы не заполнили поле E-Mail</font></li>";
} else {
if (!preg_match("/^[-0-9a-z_\.]+@[-0-9a-z^\.]+\.[a-z]{2,4}$/i",$email))
{
$error = true;
$errortext .= "<li><font color='red'>Не правильно заполнено поле E-Mail. E-mail должен иметь вид user@somehost.com</font></li>";
}
}
$errortext .= "</ul></b>";
if ($error)
{
echo($errortext);<font color="black">//Выводим текст ошибок.</font>
} else {
     <font color="black">//Подключаемся к базе данных.</font>
    $dbcon = mysql_connect("localhost", "<font color="blue">имя администратора базы</font>", "<font color="blue">пароль администратора базы</font>"); 
    mysql_select_db("<font color="blue">имя базы данных</font>", $dbcon);
	if (!$dbcon)
	{
    echo "<p>Произошла ошибка при подсоединении к MySQL!</p>".mysql_error(); exit();
    } else {
    if (!mysql_select_db("<font color="blue">имя базы данных</font>", $dbcon))
    {
    echo("<p>Выбранной базы данных не существует!</p>");
    }
	}
	<font color="black">// проверка на существование пользователя с таким же логином.</font>
    <font color="orange">$result = mysql_query("SELECT id FROM <font color="blue">имя таблицы</font> WHERE login='$login'",$dbcon);
    $myrow = mysql_fetch_array($result);
    if (!empty($myrow["id"])) {
    exit ("Извините, введённый вами логин уже зарегистрирован.<a href='forma_reg.php'> Введите другой логин</a>.");
    }</font>
	    <font color="black">//Выполняем SQL-запрос записывающий данные пользователя в таблицу.</font>
	    $sql = mysql_query("INSERT INTO <font color="blue">имя таблицы</font> (imia,login,paroli,e-mail,data) Values ('$name','$login','$password','$email','$data')", $dbcon);
		if (!$sql) {echo "Запрос не прошел. Попробуйте еще раз.";}
		if ($sql)
		{
	<font color="black">//Выводим сообщение об успешной регистрации.</font>	
		exit ('<div align="center"><br/><br/><br/><h3>
  Вы успешно зарегистрированы на сайте! Заполните форму входа и войдите</h3></div>');
		}
		mysql_close($dbcon);<font color="black">//Закрываем соединение MySQL.</font>
        }
			  }
if (($_POST && $error) || !$_POST)
{
}
?></font>
<font color="green"></div></font>
<font color="black"><!--Начало формы регистрации--></font>
<form id="register_form" name="register_form" method="post" action="">
<table width="350" height="315" border="1" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFF">
<tr>
<td align="right">
<b>ФИО:</b> <input type="text" name="rname" id="rname" /> 
</td>
</tr>
<tr>
<td align="right">
<b>Логин:</b> <input type="text" name="rlogin" id="rlogin" />
</td>
</tr>
<tr>
<td align="right"><b>Пароль:</b> <input type="password" name="rpass" id="rpass" />
</td>
</tr>
<tr>
<td align="right"><b>Повторите пароль:</b> <input type="password" name="rpass_r" id="rpass_r" />
</td>
</tr>
<tr>
<td align="right"><b>E-Mail:</b> <input type="text" name="email" id="email" />
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="reg_button" id="reg_button" value="Готово" />
</td>
</tr>
</table>
</form>
<!--Конец формы регистрации-->
</body>
</html>

На этом все, в следующем уроке мы напишем форму для входа на сайт (авторизацией) и «скрипт php» отвечающий за проверку логина и пароля вводимым пользователем. А также поставим на сайт ссылку, которая видна только авторизированным пользователям.