Простая форма входа php + MariaDB
С помощью php и MariaDB может быть создана простая форма входа. Рассмотрим на ее примере обработку форм.
Формы можно использовать, помимо всего прочего, для передачи данных в БД. Код php, передающий данные, потребует перезагрузки страницы. Иногда бывает важным, чтобы данные из формы передавались без перезагрузки страницы. В таком случае используем javascript.
Повторюсь, если данные передаются с помощью php, страница обязательно перезагружается.
Нам нужно передать данные пользователя в базу. Для этого в БД создаем таблицу пользователей. Назовем ее, хотя бы, users.
Первым столбцом ставим id, вторым name — адрес электронной почты пользователя. Если нужно что-то еще от пользователя, вводим дополнительные столбцы и, соответственно, поля в форму входа. Я покажу как получить электронный адрес пользователя через форму входа и внести этот адрес в базу данных.
Пишем код, начиная с создания формы. Создаем папку на сервере с любым именем на транслите или английском языке. Статья посвящена форме входа, так что создаем файл с расширениями html, называем его как-нибудь, сохраняем в созданной папке и начинаем творить.
Сначала напишем форму в файле html:
<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8"/>
<title>Форма</title>
</head>
<body>
<!-- Форма с обработчиком по имени trabajar.php, метод передачи данных POST-->
<form action = "trabajar.php" method = "POST">
<!--Поле, которое будет передавать данные. Имя поля name, значение оставляем пустым. В пустое поле пользователь введет свои данные -->
<input type = "text" name = "name" value = " " />
<!-- Кнопка, нажатие на которую заставляет форму сработать и передать данные в файл обработчик -->
<input type = "submit" name = "button" value = "Войти" >
</form>
</body>
</html>
В ту же папку помещаем файл - обработчик trabajar.php
<?php
//Задаем кодировку
header ( " Content - Type : text/html; charset = utf-8 " );
//Принимаемые переменные
if ( isset($_POST[' button '] ) )
$button = htmlspecialchars ( strip_tags ( trim ( $_POST[ ' button ' ] ) ) );
if (isset ( $button ) ) {
if (isset ( $_POST[' name '] ) )
$name = htmlspecialchars ( strip_tags ( trim ( $_POST[ 'name' ] ) ) );
}
$mysqli = new mysqli ( ' localhost ', ' Admin ' , ' pass ' , ' mybase ' );
//Проверка подключения
if ( mysqli _ connect _ errno() ) {
echo " Подключение невозможно: " .mysqli _ connect _ error ();
}
//Определяем кодировку
$mysqli -> query (" SET NAMES 'utf8' " );
//Обработка переменных перед передачей в БД
if ( isset ( $name ) )
$name = $mysqli -> real _ escape _ string ( $name );
//Создаем массив ошибок
$err = array();
//Проверяем поля на пустоту
if ( $name === " " ) $err[] = " Поля должны быть заполнены ";
if ( !preg _ match (" /^[-\w.] + @([A-z0-9][-A-z0-9] + \. ) + [ A-z ] { 2,4 } $/i ", $name ) )
$err[] = " Некорректный адрес электронной почты ";
//Считаем количество ошибок
$mirror = count( $err );
//Если нет ошибок в передаваемых данных,
if ( $mirror === 0) {
$mysqli -> query ( " SET NAMES 'utf8' " );
if ( isset ( $name ) )
$result = $mysqli -> query ( " SELECT * FROM users WHERE name = '$name' ");
$myrow = $result -> fetch _ assoc();
//Если данные существуют в базе, присваиваем сессию
if ( isset ( $myrow ) ) {
SESSION[' name '] = $myrow[' name '];
//Очищаем выборку
if ( isset ( $result ) ) $result -> close();
}
//Если данные пришли, но их нет в базе
else {
$mysqli -> query (" SET NAMES 'utf8' ");
$query = " INSERT INTO users VALUES( ' ".$name." ' ) ";
//Вписываем данные в таблицу users
$result = $mysqli -> query( $query );
//Если данные успешно занесены в таблицу
if( $result === TRUE ) {
//Присваиваем сессию
$ _ SESSION[ 'name' ] = $name;
}
}
}
//Если не так, то выводим ошибку
else {
echo " <strong> При регистрации произошли следующие ошибки: </strong> <br>";
foreach( $err as $error ) echo $error. " <br> ";
}
?>
Здесь получаемые из формы данные — имя пользователя name, сначала обрабатываем его при получении из формы функцией htmlspecialchars и другими. Затем, при передаче в СУБД обрабатываем функцией real _ escape _ string. Обработки выполняются, чтобы обеспечить безопасность получаемых данных. Уточняю: оба файла - файл html, который содержит разметку формы, и файл - обработчик php помещаем в одну папку. Вызывая формы, открываем в браузере файл html.
Это простой пример того, как работает форма входа на сайт. При необходимости добавляются дополнительные проверки, вносятся другие данные. Все зависит от требований, предъявляемых к форме входа.
Для проверки работоспособности кода, открываем файл формы в браузере и тестируем его.
Примерно также обрабатываются любые формы html.
Родионова Галина2018-03-19