✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Come creare un sistema di accesso PHP per il tuo sito web

117

Stai cercando di integrare un sistema di login in PHP? In questo articolo, ti mostro come eseguire un flusso di accesso di base in PHP. Creeremo un modulo di accesso, convalideremo le credenziali e reindirizzeremo l’utente sulla pagina dell’account. Aggiungerei anche un codice per disconnettere l’utente. Inoltre, verranno visualizzati i messaggi di errore se vengono inserite le credenziali errate.

Per il tutorial, presumo che tu stia usando l’hash ‘md5’ per memorizzare la password. Scriverei il codice considerando l’hash md5 di una stringa. Forse stai usando un altro algoritmo. In tal caso, devi modificare la query secondo il tuo algoritmo.

Per integrare il flusso di accesso, abbiamo bisogno di una tabella di database che memorizzi i dettagli dell’utente. In base a questa tabella, convalidiamo se l’utente ha inserito o meno le credenziali corrette. Se le credenziali dell’utente sono corrette, solo loro dovrebbero avere accesso alle pagine protette.

Nel mio caso, ho creato una tabella "utenti" e aggiunto alcune voci fittizie. Ho anche aggiunto una colonna "stato" che verrà utilizzata per scoprire se un account è attivo o meno. Questa colonna ha il tipo di dati ENUM con i valori 0 e 1.

  • 1: l’account è attivo
  • 0: l’account non è attivo

Come creare un sistema di accesso PHP per il tuo sito web

Crea un modulo di accesso

Per iniziare, creiamo un modulo di accesso in cui gli utenti possono inserire le proprie credenziali. Sto usando un framework Bootstrap per creare un modulo di accesso. Il mio index.phpfile contiene il codice seguente.

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

Il codice sopra mostrerà il modulo di accesso come mostrato nello screenshot qui sotto.

Come creare un sistema di accesso PHP per il tuo sito web

Ho aggiunto la variabile $error_messagenel codice che stamperà gli errori di accesso.

Codice PHP per convalidare le credenziali degli utenti

Sei pronto con il modulo di accesso e la tabella del database. Successivamente, all’invio di un modulo, dobbiamo scrivere il codice PHP che verifica le credenziali dell’utente rispetto ai record del database. Se i dettagli sono corretti, accedi all’utente nel sistema e reindirizza alla myaccount.phppagina.

Crea un config.phpfile e aggiungi un codice per la connessione al database.

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

Sostituisci i segnaposto con i valori effettivi.

Ora, nel index.phpfile prima dell’inizio del tag html aggiungi il codice seguente.

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

Qui nel codice, durante il controllo della password ho utilizzato il metodo PHP md5 assumendo che tu abbia memorizzato la password utilizzando questo algoritmo.

Codice di disconnessione

La parte successiva è l’aggiunta del codice per disconnettere l’utente. Per questo, crea myaccount.phpfile. Un’altra cosa necessaria per gestire che solo gli utenti registrati dovrebbero accedere a questa pagina.

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

Utilizzando la sessione PHP stiamo cercando di capire se dare accesso a questa pagina o meno. Se la sessione non è impostata, reindirizza l’utente alla pagina di accesso.

Spero che tu capisca le basi della creazione di un sistema di accesso in PHP. Per favore condividi i tuoi pensieri e suggerimenti nella sezione commenti qui sotto.

articoli Correlati

Fonte di registrazione: artisansweb.net

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More