Форма регистрации и входа php. Создание HTML форм

Здравствуйте! Сейчас мы попробуем реализовать самую простую регистрацию на сайте с помощью 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 с содержанием (все комментарии внутри):



Регистрация


Регистрация
















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



{
}
//если логин и пароль введены, то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести


//удаляем лишние пробелы
$login = trim($login);
$password = trim($password);
// подключаемся к базе
// проверка на существование пользователя с таким же логином
$result = mysql_query("SELECT id FROM users WHERE login="$login"",$db);
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();
?>


<a href="/internet/yandeks-brauzer-nachalnaya-stranica-kak-sdelat-glavnuyu-stranicu-yandeks.html">Главная страница</a>


Главная страница











Зарегистрироваться



// Проверяем, пусты ли переменные логина и id пользователя
if (empty($_SESSION["login"]) or empty($_SESSION["id"]))
{
// Если пусты, то мы не выводим ссылку
echo "Вы вошли на сайт, как гость
Эта ссылка доступна только зарегистрированным пользователям";
}
else
{

В файле 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"]))
{
//если пользователя с введенным логином не существует
}
else {
//если существует, то сверяем пароли
if ($myrow["password"]==$password) {
//если пароли совпадают, то запускаем пользователю сессию! Можете его поздравить, он вошел!
$_SESSION["login"]=$myrow["login"];
$_SESSION["id"]=$myrow["id"];//эти данные очень часто используются, вот их и будет "носить с собой" вошедший пользователь
echo "Вы успешно вошли на сайт! Главная страница";
}
else {
//если пароли не сошлись

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

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

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

Создание формы

Для создания опросов, регистрационных форм, форм подписки на новости и др. необходимо зайти в раздел «опросы».

Кликаем на иконку создания нового опроса/регистрационной формы;.

Заполняем следующие поля:

  • название;
  • тип – «опрос» или «регистрационная форма» (как правило вам нужна «регистрационная форма»);
  • время проведения – тот период времени, в течение которого можно ответить на вопросы;
  • статус – меняете на «активно» после того, как форма будет готова.
  • язык (если форма на английском языке, необходимо выставить язык - "английский")

После этого нажимаете полоску «Добавить блок вопросов».

В появившемся блоке переходим к созданию вопросов. Нажимаем на рыжую полоску «Добавить вопрос». Появляется следующее:

Поле «Блок вопросов» оставляем пустым. В поле «Вопрос» вписываем непосредственно вопрос. В следующее поле можно добавить пояснения к вопросу. Если ответ на данный вопрос обязателен, ставим галку напротив соответствующего пункта. Если на вопрос допускается несколько вариантов ответов, также ставим галку напротив соответствующего пункта, нажимаем на полоску «Добавить ответ» и вписываем необходимый вариант. Добавляем необходимое количество вариантов ответа.

Если ответы не заданы и опрашиваемый должен предложить свой вариант, в поле «Возможен ли свободный ответ» выбираем значение «Строка» (в готовом опросе будет выведена строка, куда пользователь сможет вписать ответ) или «Несколько строк» (в готовом опросе будет выведено текстовое поле, куда пользователь сможет вписать ответ).

Также для ответа можно воспользоваться полем «Специальный вопрос» в том случае, если в ответе предполагается указание даты, номер телефона, региона проживания, загрузка файла. В выпадающем списке необходимо выбрать нужный вариант, в зависимости от которого в готовом опросе и будет выводиться поле определённого формата для ответа, либо выпадающий список, из которого можно будет выбрать вариант ответа.

По этой схеме добавляете необходимое количество вопросов и предусматриваете варианты ответов для них. В конце нажимаете «Сохранить». Сохранённая форма отобразится в админке в разделе «Опросы».

Ссылка на форму

Полученную ссылку необходимо скорректировать , чтобы форма открывалась внутри вашего сайта. Для этого вместо https://www.hse.ru/ нужно подставить адрес вашего сайта..hse.ru/expresspolls/poll/148017072.html. Ссылку надо менять не в поле "Ссылка на опрос", а непосредственно там, где вы ее указываете на сайте вашего подразделения или в электронной рассылке. Если вам необходимо разместить форму на английском языке , то в ссылке необходимо подставить адрес английской версии вашего сайта (в адресе должно присутствовать en ).

После того как появится хотя бы один ответ, в админке появятся ссылки на результаты . Вы можете посмотреть результаты либо в режиме html, либо выгрузить их в excel.

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

Уведомления об ответах/ответные письма о регистрации

Если необходимо, чтобы вы получали уведомления о новых ответах, напишите на . В письме укажите ссылку на вашу форму и корпоративную почту сотрудников, которые должны получать уведомления о новых ответах.

Если вы сами хотите обратиться к пользователю, то можете это сделать двумя способами:
1. Размещаете текст в поле «Текст благодарности» - он будет выводиться на экране после того, как пользователь зарегистрируется.

2. Если вы хотите, чтобы пользователю приходило письмо на почту, надо поставить «Да» напротив «Уведомить письмо после ответа». В поле «Текст письма» разместить необходимый текст. Данная возможность присутствует только если у вас тип «регистрационная форма», а не «опрос».

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

Пример того, как выглядит готовая форма в редакторском интерфейсе (код вопроса проставляется автоматически!):

И так форма выглядит для пользователей.

HTML формы — сложные элементы интерфейса. Они включают в себя разные функциональные элементы: поля ввода и