Уроки:


  
HTML
  
  
CSS
  
  
PHP
  
  
JavaScript
  
  
jQuery
  
  
PHP+MySQL
  
  
Ajax
  

  Разделы:


  В помощь:


  Ещё:



  Авторизация:


  логин:   
  пароль: 
Страшный сон программиста - это когда забыл пароль и девичью фамилию своей матери.

  Тренажер интуиции:


Тренажер интуиции


  Видеокурсы:


Бесплатный видеокурс: "Cайт-визитка за 1 день"

видеокурс: Сайт-визитка за один день



  Опрос:



  Топ комментаторов:


40

Разговор подруг:
- Мой муж программист - дебил. Сделали сыну прививки и он написал на ребенке маркером: «Вирусная база обновлена 01.10.12 г.»

  Моя группа в контакте:



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

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

Пример формы регистрации

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

Код, который проверяет, правильно ли заполнены поля, мы помещаем в контейнер «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);//Выводим текст ошибок.
} else {
     //Подключаемся к базе данных.
    $dbcon = mysql_connect("localhost", "имя администратора базы", "пароль администратора базы"); 
    mysql_select_db("имя базы данных", $dbcon);
	if (!$dbcon)
	{
    echo "<p>Произошла ошибка при подсоединении к MySQL!</p>".mysql_error(); exit();
    } else {
    if (!mysql_select_db("имя базы данных", $dbcon))
    {
    echo("<p>Выбранной базы данных не существует!</p>");
    }
	}
	 // проверка на существование пользователя с таким же логином.
    $result = mysql_query("SELECT id FROM имя таблицы WHERE login='$login'",$dbcon);
    $myrow = mysql_fetch_array($result);
    if (!empty($myrow["id"])) {
    exit ("Извините, введённый вами логин уже зарегистрирован.<a href='forma_reg.php'> Введите другой логин</a>.");
    }
	    //Выполняем SQL-запрос записывающий данные пользователя в таблицу.
	    $sql = mysql_query("INSERT INTO имя таблицы (imia,login,paroli,e-mail,data) Values ('$name','$login','$password','$email','$data')", $dbcon);
		if (!$sql) {echo "Запрос не прошел. Попробуйте еще раз.";}
		if ($sql)
		{
	//Выводим сообщение об успешной регистрации.	
		exit ('<div align="center"><br/><br/><br/><h3>
  Вы успешно зарегистрированы на сайте! Заполните форму входа и войдите</h3></div>');
		}
		mysql_close($dbcon);//Закрываем соединение MySQL.
        }
			  }
if (($_POST && $error) || !$_POST)
{
}
?>
</div>
<!--Начало формы регистрации-->
<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» отвечающий за проверку логина и пароля вводимым пользователем. А также поставим на сайт ссылку, которая видна только авторизированным пользователям.

1 2

Комментарии


Ильдар
а как добавить еще и фото при регистрации
2014-03-16 22:15
Это уже совсем другая история... будет время, обязательно напишу статью, о том как записывать данные пользователя (+ фото) в базу данных.
2014-05-14 00:46
спосибо!!!
2014-07-13 19:31
Михаил
А кто-нибудь может скинуть, код базы данных, для регистрации?
2014-11-05 08:31
Интересная форма, мне понравилась, для интернет-магазина пойдет.
2015-04-22 01:33
Олег
отличный код,..
2015-07-30 17:17
Леонид
Скопировал код. Вставил, а в результате совершенно не такая форма регистрации получилась, как показано выше на рисунке http://www.web-shpargalka.ru/image/img/forma_r.jpg. Нельзя ли именно эту форму скачать? Если можно, то подскажите, где?
2015-08-04 16:26
Здесь вылажен рабочий код самой формы, а за её оформления отвечает css. Но если Вам хочется оформить форму именно в этом стиле, то можете подсмотреть их на этом сайте: http://www.sami-s-kolpakami.ru/rega.php
2015-08-04 17:06
http://constanta-plus.com/reg/form.php - вот так у меня получилось. Без проверок, подсказок и принятия правил.
2015-08-04 17:20
Алексей
Как сделана Ваша форма с капчей, в которой отправляем сообщения? Можете поделиться?
А то бьюсь уже третий день. Данные из формы при неправильном вводе капчи теряются..
2016-02-10 21:04
Все очень просто, когда мы отправляем данные из формы, то заносим их в переменные, в нашем случае это выглядит так:
$name = trim($_POST[rname])
а эту переменную в свою очередь выводим в поле формы:
input type="text" name="rname" id="rname" value="?php echo $name?"
при пустом значение переменной, поле будет пустым, в противном случае поле будет показывать значение этой переменной. Главное не забывать удалять переменные после успешного выполнения скрипта.
2016-02-10 21:36
Владимир
Здравствуйте, Александр.

Спасибо за пример кода Забрал себе.

Из замечаний хотелось бы отметить отсутствие оформления. Если оформленный код вывести на странице не получается, то замечательно было бы прикрепить файлик для скачивания.  Уж очень неудобно редактировать
2016-02-13 00:38

Ваш комментарий



Почта: info@web-shpargalka.ru
Сообщить друзьям:
Главная | Форум | Отзывы | Обо мне | Мои курсы | Работы учеников | Конкурсы | Обратная связь