...
✅ WEB- ja WordPress -uutiset, -teemat, -laajennukset. Täällä jaamme vinkkejä ja parhaita verkkosivustoratkaisuja.

Kuinka luoda PHP-kirjautumisjärjestelmä verkkosivustollesi

24

Etsitkö sisäänkirjautumisjärjestelmän integrointia PHP: hen? Tässä artikkelissa näytän sinulle, kuinka tehdä perus kirjautumisvirta PHP: hen. Luomme kirjautumislomakkeen, vahvistamme kirjautumistiedot ja ohjaamme käyttäjän tilisivulle. Lisään myös koodin kirjautua ulos käyttäjältä. Lisäksi näytämme virheilmoitukset, jos syötät väärät kirjautumistiedot.

Opetusohjelman vuoksi oletan, että käytät salasanan tallentamiseen md5-hashia. Kirjoitan koodin, kun otetaan huomioon merkkijonon md5-hash. Saatat käyttää toista algoritmia. Siinä tapauksessa sinun on vaihdettava kysely algoritmin mukaan.

Kirjautumisvirran integroimiseksi tarvitsemme tietokantataulukon, joka tallentaa käyttäjän tiedot. Tätä taulukkoa vastaan ​​tarkistamme, onko käyttäjä syöttänyt oikeat tunnistetiedot vai ei. Jos käyttäjän tunnistetiedot ovat oikein, vain heillä on oltava pääsy suojatuille sivuille.

Minun tapauksessani olen luonut käyttäjien taulukon ja lisännyt joitain nuken merkintöjä. Lisäsin myös "status" -sarakkeen, jota käytetään selvittämään onko tili aktiivinen vai ei. Tässä sarakkeessa on ENUM-tietotyyppi arvoilla 0 ja 1.

  • 1: Tili on aktiivinen
  • 0: Tili ei ole aktiivinen

Kuinka luoda PHP-kirjautumisjärjestelmä verkkosivustollesi

Luo kirjautumislomake

Aloitetaan luomalla kirjautumislomake, jossa käyttäjät voivat syöttää kirjautumistietonsa. Rakennan kirjautumislomaketta Bootstrap-kehyksen avulla. Minun index.phptiedosto sisältää alla koodin.

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

Yllä oleva koodi näyttää kirjautumislomakkeen alla olevan kuvakaappauksen mukaisesti.

Kuinka luoda PHP-kirjautumisjärjestelmä verkkosivustollesi

Olen lisännyt muuttujan $error_messagekoodiksi, joka tulostaa kirjautumisvirheet.

PHP-koodi käyttäjien tunnistetietojen tarkistamiseksi

Olet valmis kirjautumislomakkeen ja tietokantataulukon kanssa. Seuraavaksi, kun lähetämme lomakkeen, meidän on kirjoitettava PHP-koodi, joka tarkistaa käyttäjän kirjautumistiedot tietokantatietueisiin. Jos tiedot ovat oikein, kirjaudu käyttäjä järjestelmään ja ohjaa myaccount.phpsivulle.

Luo config.phptiedosto ja lisää koodi tietokantayhteyttä varten.

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

Korvaa paikkamerkit todellisilla arvoilla.

Lisää nyt index.phptiedostoon ennen html-tunnisteen alkua alla oleva koodi.

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

Tässä koodissa tarkistaessani salasanaa käytin PHP-menetelmää md5 olettaen, että olet tallentanut salasanan tällä algoritmilla.

Uloskirjautumiskoodi

Seuraava osa on koodin lisääminen käyttäjän kirjautumista varten. Tätä varten luo myaccount.phptiedosto. Vielä yksi asia, jota tarvitaan vain kirjautuneiden käyttäjien käsittelyyn, tulisi käyttää tätä sivua.

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-istunnon avulla selvitämme, annetaanko pääsy tälle sivulle vai ei. Jos istuntoa ei ole asetettu, ohjaa käyttäjä kirjautumissivulle.

Toivon, että ymmärrät sisäänkirjautumisjärjestelmän rakentamisen perusteet PHP: ssä. Jaa ajatuksesi ja ehdotuksesi alla olevassa kommenttiosassa.

Aiheeseen liittyvät artikkelit

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. Hyväksyä Lisätietoja