Создайте мощную систему входа в систему с помощью PHP за 5 простых шагов

Как выучить PHP Изучение

В этом руководстве вы узнаете, как создать мощную систему входа в систему с помощью PHP! Мы шаг за шагом проведем вас через весь процесс, чтобы вы могли быстро получить безопасную и эффективную систему входа на свой веб-сайт.

PHP и системы авторизации

PHP — это популярный серверный язык сценариев, позволяющий создавать динамические веб-страницы. Одним из наиболее распространенных применений PHP является создание систем авторизации для веб-сайтов.

Система входа необходима для защиты конфиденциальной информации и предоставления персонализированного контента пользователям. В этом руководстве мы создадим простую, но мощную систему входа в систему, используя PHP и MySQL.

Настройка вашей среды

Прежде чем мы начнем, убедитесь, что на вашем компьютере установлено следующее программное обеспечение:

  • a web server (such as Apache)
  • PHP
  • MySQL

Вы можете использовать пакет, например XAMPP или WAMP, для одновременной установки всех этих компонентов.

Когда вы все настроите, создайте новую папку в корневом каталоге вашего веб-сервера (например, htdocsдля Apache) и назовите ее login_system.

Создание базы данных и таблиц

Во-первых, нам нужно создать базу данных и таблицы для хранения информации о пользователях.

Откройте инструмент администрирования MySQL (например, phpMyAdmin) и создайте новую базу данных с именем login_system.

Затем создайте таблицу usersсо следующей структурой:

CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(50) NOT NULL, `email` varchar(100) NOT NULL, `password` varchar(255) NOT NULL, `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`), UNIQUE KEY `email` (`email`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

В этой таблице будут храниться идентификатор пользователя, имя пользователя, адрес электронной почты, пароль и дата создания учетной записи.

Создание регистрационной формы

Давайте теперь создадим регистрационную форму, которая позволит пользователям зарегистрировать учетную запись.

Создайте новый файл с именем register.phpв вашей login_systemпапке и добавьте следующий код:

<form action="register.php" method="post">
  <label for="username">Username:</label> 
  <input id="username" name="username" required="" type="text" />
  <label for="email">Email:</label>
  <input id="email" name="email" required="" type="email" />
  <label for="password">Password:</label>
  <input id="password" name="password" required="" type="password" />
  <input name="register" type="submit" value="Register" />
</form>

Этот код создает простую HTML-форму с полями для имени пользователя, электронной почты и пароля. Атрибут формы action имеет значение register.php, что означает, что данные формы будут отправлены в тот же файл для обработки.

Теперь давайте добавим код PHP для обработки данных формы и вставки их в usersтаблицу.

Добавьте следующий код в начало файла register.phpперед объявлением:

<?php if (isset($_POST['register'])) { 

// Connect to the database 
$mysqli = new mysqli("localhost", "username", "password", "login_system"); 

// Check for errors 
if ($mysqli->connect_error) { die("Connection failed: " . $mysqli->connect_error); } 

// Prepare and bind the SQL statement 
$stmt = $mysqli->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)"); $stmt->bind_param("sss", $username, $email, $password); 

// Get the form data 
$username = $_POST['username']; $email = $_POST['email']; $password = $_POST['password']; 

// Hash the password 
$password = password_hash($password, PASSWORD_DEFAULT); 

// Execute the SQL statement 
if ($stmt->execute()) { echo "New account created successfully!"; } else { echo "Error: " . $stmt->error; } 

// Close the connection 
$stmt->close(); $mysqli->close(); }

Этот код проверяет, была ли отправлена ​​форма, подключается к базе данных и вставляет информацию о пользователе в таблицу users. Пароль хешируется с помощью встроенной password_hashфункции PHP для дополнительной безопасности.

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

Далее давайте создадим форму входа, которая позволит пользователям входить в свои учетные записи. Создайте новый файл с именем login.phpв вашей login_systemпапке и добавьте следующий код:

<form action="login.php" method="post">
  <label for="username">Username:</label>
  <input id="username" name="username" required="" type="text" />
  <label for="password">Password:</label> <input id="password" name="password" required="" type="password" />
  <input name="login" type="submit" value="Login" />
</form>

Этот код создает простую HTML-форму с полями для имени пользователя и пароля. Атрибут действия формы имеет значение login.php, что означает, что данные формы будут отправлены в тот же файл для обработки.

Давайте теперь добавим код PHP для обработки данных формы и аутентификации пользователя. Добавьте следующий код в начало файла login.phpперед объявлением:

<?php session_start(); if (isset($_POST['login'])) { 

// Connect to the database 
$mysqli = new mysqli("localhost", "username", "password", "login_system"); 

// Check for errors 
if ($mysqli->connect_error) { die("Connection failed: " . $mysqli->connect_error); } 

// Prepare and bind the SQL statement 
$stmt = $mysqli->prepare("SELECT id, password FROM users WHERE username = ?"); $stmt->bind_param("s", $username); 

// Get the form data 
$username = $_POST['username']; $password = $_POST['password']; 

// Execute the SQL statement 
$stmt->execute(); $stmt->store_result(); 

// Check if the user exists 
if ($stmt->num_rows > 0) { 

// Bind the result to variables 
$stmt->bind_result($id, $hashed_password); 

// Fetch the result 
$stmt->fetch(); 

// Verify the password 
if (password_verify($password, $hashed_password)) { 

// Set the session variables 
$_SESSION['loggedin'] = true; $_SESSION['id'] = $id; $_SESSION['username'] = $username; 

// Redirect to the user's dashboard 
header("Location: dashboard.php"); exit; } else { echo "Incorrect password!"; } } else { echo "User not found!"; } 

// Close the connection 
$stmt->close(); $mysqli->close(); }

Этот код проверяет, была ли отправлена ​​форма, подключается к базе данных и извлекает информацию о пользователе из таблицы users. Пароль проверяется с помощью встроенной password_verifyфункции PHP. В случае успешного входа пользователь перенаправляется на dashboard.phpстраницу.

Защита вашей системы входа

Чтобы еще больше обезопасить свою систему входа в систему, вы должны применить следующие передовые методы:

  • Используйте HTTPS для шифрования данных, передаваемых между клиентом и сервером.
  • Реализуйте защиту от CSRF (подделка межсайтовых запросов) с помощью токенов.
  • Ограничьте количество неудачных попыток входа в систему, чтобы предотвратить атаки грубой силы.
  • Храните конфиденциальную информацию, такую ​​как учетные данные базы данных, в отдельном файле конфигурации вне корневого каталога документов веб-сервера.
  • Регулярно обновляйте свое программное обеспечение, включая PHP, MySQL и веб-сервер, чтобы применять последние исправления безопасности.

Заключение

Поздравляем! Вы успешно создали мощную систему входа с формами входа и защитили свою систему входа.

Читайте также:  Топ-5 приложений НЛП в 2023 году
Оцените статью
bestprogrammer.ru
Добавить комментарий