✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Як створити систему входу PHP для вашого веб-сайту

42

Ви хочете інтегрувати систему входу в PHP? У цій статті я покажу вам, як зробити базовий потік входу в PHP. Ми створимо форму для входу, перевіримо облікові дані та переадресуємо користувача на сторінку облікового запису. Я також додав би код для виходу користувача. Крім того, ми відображатимемо повідомлення про помилки, якщо введено неправильні дані.

Для підручника я припускаю, що ви використовуєте хеш ‘md5’ для зберігання пароля. Я б написав код, враховуючи хеш рядка md5. Можливо, ви використовуєте інший алгоритм. У цьому випадку вам потрібно змінити запит відповідно до вашого алгоритму.

Для інтеграції потоку входу нам потрібна таблиця бази даних, яка зберігає дані користувача. У цій таблиці ми перевіряємо, ввів користувач правильні облікові дані чи ні. Якщо облікові дані користувача правильні, тоді лише вони повинні мати доступ до захищених сторінок.

У моєму випадку я створив таблицю "користувачі" та додав кілька фіктивних записів. Я також додав стовпець "статус", за допомогою якого з’ясовуватиме, чи активний обліковий запис чи ні. Цей стовпець має тип даних ENUM зі значеннями 0 та 1.

  • 1: Обліковий запис активний
  • 0: Обліковий запис не активний

Як створити систему входу PHP для вашого веб-сайту

Створіть форму для входу

Для початку давайте створимо форму для входу, де користувачі можуть вводити свої облікові дані. Я використовую фреймворк Bootstrap для створення форми входу. Мій index.phpфайл містить наведений нижче код.

<!DOCTYPE html>
<html>
    <head>
        <title>Login Form</title>
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" />
    </head>
    <body>
        <div class="container">
            <div class="row">
                <div class="col-md-6">
                    <h3>Login Form</h3>
                    <?php if(!empty($error_message)) { ?>
                        <div class="alert alert-danger"><?php echo $error_message; ?></div>
                    <?php } ?>
                    <form method="post">
                        <div class="form-group">
                            <label for="exampleInputEmail1">Email address</label>
                            <input type="email" class="form-control" id="exampleInputEmail1" name="email" placeholder="Email" required />
                        </div>
                        <div class="form-group">
                            <label for="exampleInputPassword1">Password</label>
                            <input type="password" class="form-control" id="exampleInputPassword1" name="password" placeholder="Password" required />
                        </div>
                        <button type="submit" name="submit" class="btn btn-primary">Submit</button>
                    </form>
                </div>
            </div>
        </div>
    </body>
</html>

У наведеному вище коді відображатиметься форма входу, як показано на знімку екрана нижче.

Як створити систему входу PHP для вашого веб-сайту

Я додав змінну $error_messageв код, яка буде друкувати помилки входу.

PHP-код для перевірки облікових даних користувачів

Ви готові до форми входу та таблиці бази даних. Далі, при поданні форми, ми повинні написати PHP-код, який перевіряє облікові дані користувача щодо записів бази даних. Якщо деталі коректні, увійдіть до системи та переспрямуйте на myaccount.phpсторінку.

Створіть config.phpфайл і додайте код для підключення до бази даних.

<?php
$conn = new mysqli('DB_HOST', 'DB_USER', 'DB_PASSWORD', 'DB_NAME');
 
if ($conn->connect_errno) {
    echo "Error: ". $conn->connect_error;
}
?>

Замініть заповнювачі фактичними значеннями.

Тепер у index.phpфайл до початку тегу html додайте код нижче.

<?php
session_start();
  
require_once('config.php');
  
//if user is logged in redirect to myaccount page
if (isset($_SESSION['id'])) {
    header('Location: myaccount.php');
}
  
$error_message = '';
if (isset($_POST['submit'])) {
 
    extract($_POST);
 
    if (!empty($email) && !empty($password)) {
        $sql = "SELECT id, status FROM users WHERE email = '".$conn->real_escape_string($email)."' AND password = '".md5($conn->real_escape_string($password))."'";
        $result = $conn->query($sql);
  
        if ($result->num_rows > 0) {
            $row = $result->fetch_assoc();
            if($row['status']) {
                $_SESSION['id'] = $row['id'];
                header('Location: myaccount.php');
            } else {
                $error_message = 'Your account is not active yet.';
            }
        } else {
            $error_message = 'Incorrect email or password.';
        }
    } else {
        $error_message = 'Please enter email and password.';
    }
}
?>

Тут, у коді, під час перевірки пароля я використовував метод PHP md5, припускаючи, що ви зберегли пароль за допомогою цього алгоритму.

Код виходу

Наступна частина – додавання коду для виходу користувача. Для цього створіть myaccount.phpфайл. Ще одна річ, необхідна для обробки, яка лише зареєстрована, користувачі повинні отримати доступ до цієї сторінки.

myaccount.php

<?php
session_start();
 
if (isset($_GET['action']) && ('logout' == $_GET['action'])) {
    unset($_SESSION['id']);
}
 
if (isset($_SESSION['id'])) {
    ?>
    <h3>Welcome User! <a href="?action=logout">Logout</a></h3>
    <?php
} else { //redirect to login page
    header('Location: index.php');
}
?>

За допомогою сесії PHP ми з’ясовуємо, надати доступ до цієї сторінки чи ні. Якщо сеанс не встановлений, переспрямуйте користувача на сторінку входу.

Сподіваюся, ви розумієте основи побудови системи входу в PHP. Будь ласка, поділіться своїми думками та пропозиціями в розділі коментарів нижче.

Пов’язані статті

Джерело запису: artisansweb.net

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі