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

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

16

Stai cercando di integrare il sistema di registrazione PHP? In questo post, creiamo un modulo di iscrizione, convalidiamo l’e-mail rispetto al database. Dopo la corretta registrazione di un utente, inviamo un link di attivazione all’e-mail dell’utente. Una volta che l’utente fa clic sul collegamento di attivazione dall’e-mail, attiveremo il suo account.

Detto questo, creiamo il nostro sistema di registrazione PHP.

Crea una tabella utenti nel database

Per ogni sistema di registrazione, abbiamo bisogno di una tabella di database. Con i record di questa tabella, controlliamo se l’utente immette o meno un indirizzo email univoco. Se i dettagli dell’utente sono univoci e corretti, solo loro possono registrarsi al nostro sistema.

Esegui la query seguente sul tuo database per creare la tabella denominata "utenti".

CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT,
 `fullname` varchar(255) NOT NULL,
 `email` varchar(255) NOT NULL,
 `password` varchar(255) NOT NULL,
 `activation_key` varchar(255) NOT NULL,
 `status` enum('0','1') NOT NULL DEFAULT '0',
 PRIMARY KEY (`id`)) ENGINE=MyISAM;

Crea un modulo di iscrizione

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

Usiamo Bootstrap Framework per progettare il nostro modulo di registrazione. Crea un file "index.php" e inserisci il codice seguente.

<!DOCTYPE html>
<html>
    <head>
        <title>Registration Form</title>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" />
    </head>
    <body>
        <div class="container">
            <div class="row">
                <div class="col-md-6">
                    <h3>Registration Form</h3>
                    <?php if(!empty($arr_message['msg'])) { ?>
                        <div class="alert <?php echo $arr_message['class']; ?>"><?php echo $arr_message['msg']; ?></div>
                    <?php } ?>
                    <form method="post">
                        <div class="form-group">
                            <label for="exampleInputFullname">Full Name</label>
                            <input type="text" class="form-control" id="exampleInputFullname" name="fullname" placeholder="Full Name" value="<?php if(isset($fullname)) echo $fullname; ?>" required>
                        </div>
                        <div class="form-group">
                            <label for="exampleInputEmail1">Email address</label>
                            <input type="email" class="form-control" id="exampleInputEmail1" name="email" placeholder="Email" value="<?php if(isset($email)) echo $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>
                        <div class="form-group">
                            <label for="exampleInputPassword2">Confirm Password</label>
                            <input type="password" class="form-control" id="exampleInputPassword2" name="cpassword" placeholder="Confirm Password" required>
                        </div>
                        <button type="submit" name="submit" class="btn btn-default">Submit</button>
                    </form>
                </div>
            </div>
        </div>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    </body>
</html>

Il codice sopra mostrerà il modulo di registrazione quando eseguiamo il file "index.php". Osserva la variabile $arr_message[‘msg’] nel codice che stamperà l’eventuale errore di registrazione. Questa variabile viene dichiarata a breve.

Codice lato server per il sistema di registrazione PHP

A questo punto, siamo pronti con il modulo di iscrizione e la tabella del database. Successivamente, nel modulo di invio dobbiamo scrivere il codice PHP che controlla se l’email esiste già nel database. Se l’email esiste, lanciamo il messaggio di errore. Se tutti i dati sono corretti, inseriamo i dettagli dell’utente nel database e inviamo un link di attivazione all’indirizzo e-mail fornito.

Crea un file ‘config.php’ dove memorizziamo le credenziali del database.

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

Nel nostro ‘index.php’ prima dell’inizio del tag html aggiungi il codice sottostante.

<?php
require_once('config.php');
 
$arr_message = [];
if (isset($_POST['submit'])) {
 
    $_POST = array_map('trim', $_POST);
    extract($_POST);
 
    if (!empty($fullname) && !empty($email) && !empty($password)) {
         
        if ($password == $cpassword) {
            $sql = "SELECT id FROM users WHERE email = '".$conn->real_escape_string($email)."'";
            $result = $conn->query($sql);
 
            if ($result->num_rows > 0) {
                $arr_message = [
                    'class' => 'alert-danger',
                    'msg' => 'Email already exist.',
                ];
            } else {
                $email = $conn->real_escape_string($email);
                $activation_key = sha1(mt_rand(10000,99999).time().$email);
 
                $sql = "INSERT INTO users(fullname, email, password, activation_key) VALUES('".$conn->real_escape_string($fullname)."', '".$email."', '".md5($conn->real_escape_string($password))."', '".$activation_key."')";
                $conn->query($sql);
 
                //send activation link in an email
                $subject = 'Activate Your Account';
                $message = 'Hello '.ucwords($fullname).',<br> 
                            <p>Click the below link to activate your account.</p>
                            <a href="YOUR_PROJECT_URL/activate.php?key='.$activation_key.'">Activate Account</a><br><br>
                            Thanks,<br>Admin';
 
                $headers[] = 'MIME-Version: 1.0';
                $headers[] = 'Content-type: text/html; charset=iso-8859-1';
                mail($email, $subject, $message, implode("rn", $headers));
 
                $arr_message = [
                    'class' => 'alert-success',
                    'msg' => 'We have sent an activation link to your email. Please activate your account.',
                ];
                $fullname = $email = '';
            }
        } else {
            $arr_message = [
                'class' => 'alert-danger',
                'msg' => 'Password mismatch.',
            ];
        }
    }
}
?>

Qui durante la memorizzazione della password utilizziamo il metodo PHP md5 supponendo che tu abbia memorizzato la password utilizzando questo algoritmo.

File Activate.php per attivare il tuo account

Ora è il momento di creare il file ‘activate.php’. Questo file gestisce il codice di attivazione dell’account. Scriviamo un codice per attivare l’account utente se l’URL contiene una chiave di attivazione corretta.

Il file "activate.php" contiene il codice seguente.

<?php
require_once('config.php');
 
if (!isset($_GET['key']) || empty($_GET['key'])) {
    header('Location:index.php');
}
 
$sql = "SELECT id, status FROM users WHERE activation_key = '".$_GET['key']."'";
$result = $conn->query($sql);
 
if ($result->num_rows > 0) {
    $row = $result->fetch_assoc();
    if ($row['status']) {
        $arr_message = [
            'class' => 'alert-success',
            'msg' => 'Your account is already activated.',
        ];
    } else {
        $sql = "UPDATE users SET status = '1' WHERE id = ".$row['id']." AND activation_key = '".$_GET['key']."'";
        $conn->query($sql);
 
        $arr_message = [
            'class' => 'alert-success',
            'msg' => 'Your account is activated. You can <a href="YOUR_PROJECT_URL/login.php">login now</a>.',
        ];
    }
} else {
    $arr_message = [
        'class' => 'alert-danger',
        'msg' => 'Invalid URL.',
    ];
}
?>

Per visualizzare il messaggio di successo/errore sul file ‘activate.php’ aggiungi il codice HTML sottostante.

<div class="container">
        <div class="row">
            <div class="col-md-6">
                <?php if(!empty($arr_message['msg'])) { ?>
                    <div class="alert <?php echo $arr_message['class']; ?>">
                        <?php echo $arr_message['msg']; ?>
                    </div>
                <?php } ?>
            </div>
        </div>
    </div>

Potresti anche voler leggere il nostro articolo correlato su Come creare un sistema di accesso PHP.

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