Maison  >  Article  >  développement back-end  >  Comment utiliser PHP pour écrire un système d'enregistrement de connexion avec fonction de vérification des e-mails ?

Comment utiliser PHP pour écrire un système d'enregistrement de connexion avec fonction de vérification des e-mails ?

王林
王林original
2023-08-19 13:56:061027parcourir

Comment utiliser PHP pour écrire un système denregistrement de connexion avec fonction de vérification des e-mails ?

Comment utiliser PHP pour écrire un système d'enregistrement de connexion avec fonction de vérification des e-mails ?

À l'ère actuelle d'Internet, le système de connexion et d'enregistrement est l'une des fonctions de base de divers sites Web ou applications. Afin d'améliorer la sécurité et l'expérience utilisateur, les utilisateurs doivent souvent vérifier leur adresse e-mail lors de leur inscription. Cet article explique comment utiliser PHP pour écrire un système d'enregistrement de connexion avec fonction de vérification des e-mails.

1. Mettre en place un environnement de développement
Tout d'abord, nous devons mettre en place un environnement de développement PHP. Après avoir installé PHP, vous pouvez choisir d'utiliser un environnement de développement intégré prêt à l'emploi (tel que XAMPP, WAMP, etc.) ou de configurer vous-même Apache et MySQL. Assurez-vous que l'environnement de développement fonctionne correctement.

2. Créer une base de données
Nous devons créer une base de données MySQL pour stocker les informations utilisateur. Vous pouvez utiliser phpMyAdmin ou la ligne de commande pour créer une base de données et créer une table de données nommée « utilisateurs », comprenant les champs : identifiant, nom d'utilisateur, email, mot de passe, is_verified.
Exemple de code :

Utilisateurs CREATE TABLE (
id INT(11) AUTO_INCREMENT PRIMARY KEY,
nom d'utilisateur VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL,
mot de passe VARCHAR(255) NOT NULL,
is_verified INT (1) PAR DÉFAUT 0
);

3. Écrivez la page d'inscription
Ensuite, créez un fichier nommé "register.php" pour implémenter la fonction d'enregistrement des utilisateurs. La page d'inscription contient un formulaire qui demande aux utilisateurs de saisir leur nom d'utilisateur, leur adresse e-mail et leur mot de passe, ainsi qu'un bouton d'inscription. Une fois que l'utilisateur a cliqué sur le bouton d'enregistrement, le code back-end est exécuté pour enregistrer les informations utilisateur dans la base de données et envoyer un e-mail de vérification à l'utilisateur.

Exemple de code :

// Se connecter à la base de données
$conn = new mysqli('localhost', 'root', '', 'database name');

// Traiter la demande d'inscription soumis par l'utilisateur
if ($_SERVER["REQUEST_METHOD"] == "POST") {

$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];

// 生成随机验证码
$verification_code = md5(uniqid(rand(), true));

// 插入用户数据到数据库
$query = "INSERT INTO users (username, email, password) VALUES ('$username', '$email', '$password')";
$result = $conn->query($query);

if ($result) {
    // 发送验证邮件
    $subject = "邮箱验证";
    $message = "点击链接验证您的邮箱:<a href='http://你的网站域名/verify.php?code=$verification_code'>点击此处</a>";
    $headers = "From: your-email@gmail.com

";

    $headers .= "Content-Type: text/html; charset=UTF-8

";

    mail($email, $subject, $message, $headers);

    echo "注册成功,请查收邮件进行邮箱验证。";
} else {
    echo "注册失败,请重试。";
}

}
?>

">
<label for="username">用户名:</label>
<input type="text" name="username" id="username" required><br>

<label for="email">邮箱:</label>
<input type="email" name="email" id="email" required><br>

<label for="password">密码:</label>
<input type="password" name="password" id="password" required><br>

<input type="submit" value="注册">

Vérifier l'e-mail
Nous devons également créer un fichier nommé "verify. php", Email utilisé pour authentifier l'utilisateur. Lorsque l'utilisateur clique sur le lien de vérification, le code backend est exécuté pour mettre à jour le statut de vérification sur Vérifié.

Exemple de code :

// Connectez-vous à la base de données
$conn = new mysqli('localhost', 'root', '', 'database name');

// Traiter la demande de vérification par e-mail
if (isset($_GET['code'])) {

$verification_code = $_GET['code'];

// 更新验证状态
$query = "UPDATE users SET is_verified = 1 WHERE verification_code = '$verification_code'";
$result = $conn->query($query);

if ($result) {
    echo "邮箱验证成功!";
} else {
    echo "邮箱验证失败,请重试。";
}

}
?>

5. Implémenter la connexion
Enfin, nous créons un fichier nommé "login.php" pour implémenter la fonction de connexion utilisateur. La page de connexion contient un formulaire qui demande à l'utilisateur de saisir son adresse e-mail et son mot de passe, ainsi qu'un bouton de connexion. Une fois que l'utilisateur a cliqué sur le bouton de connexion, le code back-end est exécuté pour vérifier l'e-mail et le mot de passe de l'utilisateur, et les opérations correspondantes sont effectuées sur la base des résultats de la vérification.

Exemple de code :

// Se connecter à la base de données
$conn = new mysqli('localhost', 'root', '', 'database name');

// Traiter la demande de connexion soumis par l'utilisateur
if ($_SERVER["REQUEST_METHOD"] == "POST") {

$email = $_POST['email'];
$password = $_POST['password'];

// 查询用户信息
$query = "SELECT * FROM users WHERE email = '$email' AND password = '$password' AND is_verified = 1";
$result = $conn->query($query);

if ($result->num_rows > 0) {
    // 登录成功
    echo "登录成功!";
} else {
    echo "邮箱或密码错误,或邮箱未验证。";
}

}
?>

">
<label for="email">邮箱:</label>
<input type="email" name="email" id="email" required><br>

<label for="password">密码:</label>
<input type="password" name="password" id="password" required><br>

<input type="submit" value="登录">

Grâce aux étapes ci-dessus, nous avons mis en place un système d'enregistrement de connexion avec fonction de vérification par e-mail. Les utilisateurs doivent vérifier leur adresse e-mail lors de leur inscription, ce qui améliore la sécurité et offre une meilleure expérience utilisateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn