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

Kuinka luoda PHP-rekisteröintijärjestelmä verkkosivustollesi

11

Haluatko integroida PHP-rekisteröintijärjestelmän? Tässä viestissä luomme rekisteröintilomakkeen, vahvistamme sähköpostin tietokantaan. Kun käyttäjä on rekisteröitynyt onnistuneesti, lähetämme aktivointilinkin käyttäjän sähköpostiosoitteeseen. Kun käyttäjä napsauttaa aktivointilinkkiä sähköpostista, aktivoimme hänen tilinsä.

Tämän jälkeen luodaan PHP-rekisteröintijärjestelmämme.

Luo käyttäjätaulukko tietokantaan

Tarvitsemme jokaiselle rekisteröintijärjestelmälle tietokantataulukon. Tätä taulukotietoa vastaan ​​tarkistamme, syöttääkö käyttäjä yksilöllisen sähköpostiosoitteen vai ei. Jos käyttäjän tiedot ovat yksilöllisiä ja oikeita, vain he voivat rekisteröityä järjestelmäämme.

Suorita alla oleva kysely tietokantaan ja luo taulukko nimeltä käyttäjät.

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;

Luo rekisteröintilomake

Kuinka luoda PHP-rekisteröintijärjestelmä verkkosivustollesi

Käytämme Saapasraksi viitekehyksen suunnitella meidän ilmoittautumislomakkeella. Luo index.php-tiedosto ja aseta alla oleva koodi siihen.

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

Yllä oleva koodi näyttää rekisteröintilomakkeen, kun suoritamme ‘index.php’ -tiedoston. Havaitset muuttujan $ arr_message [‘msg’] koodissa, joka tulostaa mahdollisen kirjautumisvirheen. Tämä muuttuja ilmoitetaan pian.

Palvelimen sivukoodi PHP-rekisteröintijärjestelmälle

Tässä vaiheessa olemme valmiita rekisteröintilomakkeen ja tietokantataulukon kanssa. Seuraavaksi lähetyslomakkeeseen on kirjoitettava PHP-koodi, joka tarkistaa, onko sähköpostia jo tietokannassa. Jos sähköposti on olemassa, heitämme virheilmoituksen. Jos kaikki tiedot ovat oikein, lisätään käyttäjän tiedot tietokantaan ja lähetetään aktivointilinkki heidän antamaansa sähköpostiosoitteeseen.

Luo tiedosto ‘config.php’, johon tallennamme tietokannan tunnistetiedot.

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

Lisää index.php-tiedostoon ennen HTML-tagin alkua alla oleva koodi.

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

Tässä tallennamme salasanaa PHP-menetelmällä md5 olettaen, että olet tallentanut salasanan tällä algoritmilla.

activ.php-tiedosto Aktivoi tilisi

Nyt on aika luoda ‘activ.php’ tiedosto. Tämä tiedosto käsittelee tilin aktivointikoodia. Kirjoitamme koodin käyttäjätilin aktivoimiseksi, jos URL-osoite sisältää oikean aktivointiavaimen.

‘activ.php’ -tiedosto sisältää alla olevan koodin.

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

Jos haluat nähdä onnistumis- / virhesanoman ‘activ.php’ -tiedostossa, lisää siihen alla oleva HTML-koodi.

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

Voit myös lukea aiheeseen liittyvän artikkelin PHP-kirjautumisjärjestelmän luomisesta.

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