...
✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

So erstellen Sie ein PHP-Registrierungssystem für Ihre Website

241

Möchten Sie ein PHP-Registrierungssystem integrieren? In diesem Beitrag erstellen wir ein Anmeldeformular und validieren die E-Mail mit der Datenbank. Bei erfolgreicher Registrierung eines Benutzers senden wir einen Aktivierungslink an die Benutzer-E-Mail. Sobald der Benutzer auf den Aktivierungslink aus der E-Mail klickt, aktivieren wir sein Konto.

Lassen Sie uns jedoch unser PHP-Registrierungssystem erstellen.

Erstellen Sie eine Benutzertabelle in der Datenbank

Für jedes Registrierungssystem benötigen wir eine Datenbanktabelle. Anhand dieser Tabellendatensätze prüfen wir, ob der Benutzer eine eindeutige E-Mail-Adresse eingibt oder nicht. Wenn die Benutzerdaten eindeutig und korrekt sind, können sich nur sie in unserem System registrieren.

Führen Sie die folgende Abfrage in Ihrer Datenbank aus, um die Tabelle mit dem Namen "Benutzer" zu erstellen.

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;

Erstellen Sie ein Anmeldeformular

So erstellen Sie ein PHP-Registrierungssystem für Ihre Website

Wir verwenden das Bootstrap Framework, um unser Registrierungsformular zu gestalten. Erstellen Sie eine ‘index.php’-Datei und fügen Sie den folgenden Code darin ein.

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

Der obige Code zeigt das Anmeldeformular an, wenn wir die Datei „index.php” ausführen. Sie beobachten die Variable $arr_message[‘msg’] im Code, die gegebenenfalls einen Anmeldefehler ausgibt. Diese Variable wird in Kürze deklariert.

Serverseitiger Code für das PHP-Registrierungssystem

In diesem Stadium sind wir mit dem Anmeldeformular und der Datenbanktabelle fertig. Als nächstes müssen wir auf dem Absenden des Formulars PHP-Code schreiben, der überprüft, ob E-Mails bereits in der Datenbank vorhanden sind. Wenn eine E-Mail vorhanden ist, geben wir die Fehlermeldung aus. Sind alle Angaben korrekt, tragen wir die Benutzerdaten in die Datenbank ein und senden einen Aktivierungslink an die angegebene E-Mail-Adresse.

Erstellen Sie eine Datei ‘config.php’, in der wir die Datenbankanmeldeinformationen speichern.

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

Fügen Sie in unserer ‘index.php’ vor dem Start des HTML-Tags den folgenden Code hinzu.

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

Hier verwenden wir beim Speichern des Passworts die PHP-Methode md5, vorausgesetzt, Sie haben das Passwort mit diesem Algorithmus gespeichert.

Activate.php-Datei zum Aktivieren Ihres Kontos

Jetzt ist es an der Zeit, die Datei „activate.php” zu erstellen. Diese Datei verarbeitet den Kontoaktivierungscode. Wir schreiben einen Code zur Aktivierung des Benutzerkontos, wenn die URL einen korrekten Aktivierungsschlüssel enthält.

Die Datei ‘activate.php’ enthält den folgenden Code.

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

Um die Erfolgs-/Fehlermeldung in der Datei ‘activate.php’ anzuzeigen, fügen Sie den folgenden HTML-Code hinzu.

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

Vielleicht möchten Sie auch unseren verwandten Artikel zum Erstellen eines PHP-Anmeldesystems lesen .

Aufnahmequelle: artisansweb.net

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen