...
✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

Kuidas luua oma veebisaidile PHP sisselogimissüsteemi

17

Kas soovite integreerida sisselogimissüsteemi PHP-sse? Selles artiklis näitan teile, kuidas teha PHP-sse sisselogimise põhivoog. Loome sisselogimisvormi, kinnitame mandaadid ja suuname kasutaja konto lehele. Kasutaja väljalogimiseks lisan ka koodi. Lisaks kuvame veateateid, kui sisestate valed mandaadid.

Juhendaja huvides eeldan, et kasutate parooli salvestamiseks räsi ‘md5’. Kirjutaksin koodi, arvestades stringi md5 räsi. Võib-olla kasutate mõnda muud algoritmi. Sellisel juhul peate päringut vastavalt oma algoritmile muutma.

Sisselogimisvoo integreerimiseks vajame andmebaasi tabelit, mis salvestab kasutaja üksikasjad. Selle tabeli alusel kontrollime, kas kasutaja sisestas õiged mandaadid või mitte. Kui kasutaja mandaadid on õiged, peaks ainult neil olema juurdepääs turvatud lehtedele.

Minu puhul olen loonud kasutajate tabeli ja lisanud mõned näiv kirjed. Lisasin ka veeru „status", mida kasutatakse selleks, et teada saada, kas konto on aktiivne või mitte. Selles veerus on andmetüüp ENUM väärtustega 0 ja 1.

  • 1: konto on aktiivne
  • 0: konto pole aktiivne

Kuidas luua oma veebisaidile PHP sisselogimissüsteemi

Looge sisselogimisvorm

Alustamiseks loome sisselogimisvormi, kus kasutajad saavad sisestada oma mandaadi. Kasutan sisselogimisvormi loomiseks Bootstrapi raamistikku. Minu index.phpfail sisaldab allolevat koodi.

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

Ülaltoodud kood kuvab sisselogimisvormi, nagu on näidatud alloleval ekraanipildil.

Kuidas luua oma veebisaidile PHP sisselogimissüsteemi

Lisasin muutuja $error_messagekoodi, mis prindib sisselogimisvead.

PHP-kood kasutajate mandaatide kinnitamiseks

Olete valmis sisselogimisvormi ja andmebaasitabeliga. Järgmisena peame vormi esitamisel kirjutama PHP-koodi, mis kontrollib kasutaja mandaate andmebaasi kirjetega. Kui üksikasjad on õiged, logige kasutaja süsteemi sisse ja suunake myaccount.phplehele.

Looge config.phpfail ja lisage andmebaasiühenduse jaoks kood.

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

Asendage kohatäited tegelike väärtustega.

Nüüd index.phplisage faili enne HTML-märgendi algust allpool olev kood.

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

Siin koodis kasutasin parooli kontrollides PHP-meetodit md5, eeldades, et salvestasite parooli selle algoritmi abil.

Väljalogimiskood

Järgmine osa on kasutaja väljalogimiseks koodi lisamine. Selleks looge myaccount.phpfail. Sellele lehele pääsevad juurde veel üks asi, mis on vajalik ainult sisseloginud kasutajate käsitsemiseks.

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 seansi abil selgitame välja, kas anda sellele lehele juurdepääs või mitte. Kui seanssi pole määratud, suunake kasutaja sisselogimislehele.

Loodan, et mõistate PHP-s sisselogimissüsteemi loomise põhitõdesid. Palun jagage oma mõtteid ja ettepanekuid allpool olevas kommentaaride jaotises.

seotud artiklid

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem