✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

Hur man skapar ett PHP-inloggningssystem för din webbplats

45

Vill du integrera ett inloggningssystem i PHP? I den här artikeln visar jag dig hur du gör ett grundläggande inloggningsflöde till PHP. Vi skapar ett inloggningsformulär, validerar referenserna och omdirigerar användaren på kontosidan. Jag skulle också lägga till en kod för att logga ut användaren. Dessutom visar vi felmeddelandena om fel autentiseringsuppgifter anges.

För handledningens skull antar jag att du använder ‘md5’ hash för att lagra lösenordet. Jag skulle skriva koden med tanke på md5-hash för en sträng. Du kanske använder en annan algoritm. I så fall måste du ändra frågan enligt din algoritm.

För att integrera inloggningsflödet behöver vi en databastabell som lagrar användardetaljerna. Mot denna tabell validerar vi om användaren angav rätt referenser eller inte. Om användaruppgifterna är korrekta bör de bara ha åtkomst till de säkra sidorna.

I mitt fall har jag skapat en "användartabell" och lagt till några dummy-poster. Jag lade också till en statuskolumn som kommer att användas för att ta reda på om ett konto är aktivt eller inte. Den här kolumnen har ENUM-datatyp med värdena 0 och 1.

  • 1: Kontot är aktivt
  • 0: Kontot är inte aktivt

Hur man skapar ett PHP-inloggningssystem för din webbplats

Skapa ett inloggningsformulär

För att komma igång, låt oss skapa ett inloggningsformulär där användare kan ange sina referenser. Jag använder ett Bootstrap-ramverk för att skapa ett inloggningsformulär. Min index.phpfil innehåller nedanstående kod.

<!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>

Ovanstående kod visar inloggningsformuläret som visas på skärmbilden nedan.

Hur man skapar ett PHP-inloggningssystem för din webbplats

Jag har lagt till variabeln $error_messagei koden som skriver ut inloggningsfelen.

PHP-kod för att validera användaruppgifter

Du är redo med inloggningsformuläret och databastabellen. Därefter måste vi skriva in en PHP-kod som kontrollerar användarens referenser mot databasposterna. Om informationen stämmer loggar du in användaren i systemet och omdirigerar till myaccount.phpsidan.

Skapa en config.phpfil och lägg till en kod för databasanslutningen.

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

Ersätt platshållarna med de faktiska värdena.

index.phpLägg till nedanstående kod i filen före början av html-taggen.

<?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.';
    }
}
?>

Här i koden, medan jag kontrollerade lösenordet, använde jag PHP-metoden md5 förutsatt att du lagrade lösenordet med hjälp av denna algoritm.

Logout-kod

Nästa del är att lägga till kod för att logga ut användaren. Skapa myaccount.phpfil för detta. Ytterligare en sak som behövs för att hantera som bara är inloggade användare bör komma åt den här sidan.

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');
}
?>

Med hjälp av PHP-sessionen räknar vi ut om vi vill ge åtkomst till den här sidan eller inte. Om sessionen inte är inställd, omdirigerar du användaren till inloggningssidan.

Jag hoppas att du förstår grunderna i att bygga ett inloggningssystem i PHP. Dela dina tankar och förslag i kommentarsektionen nedan.

relaterade artiklar

Inspelningskälla: artisansweb.net

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer