Maison  >  Article  >  développement back-end  >  Comment implémenter l'enregistrement de connexion avec le code de vérification en PHP

Comment implémenter l'enregistrement de connexion avec le code de vérification en PHP

PHPz
PHPzoriginal
2023-03-29 11:28:55898parcourir

PHP est un langage de programmation largement utilisé dans le développement de sites Web. Il est très pratique, efficace et flexible. Dans le développement PHP, les fonctions de connexion et d'enregistrement des utilisateurs sont souvent impliquées, et afin d'assurer la sécurité, un mécanisme de vérification du code de vérification doit être ajouté. Cet article explique comment utiliser PHP pour implémenter la fonction d'enregistrement de connexion avec un code de vérification.

1. Implémentation de la fonction de connexion

1.1 Créer une page de connexion

Nous devons d'abord créer une page de connexion pour les utilisateurs, en leur fournissant un cadre pour saisir leur numéro de compte et leur mot de passe, ainsi qu'une zone de saisie du code de vérification. Vous pouvez ajouter le code suivant au code :

<html>
<head>
    <title>登陆页面</title>
    <meta charset="utf-8">
</head>
<body>
<form action="login.php" method="POST">
    <label>账号: <input type="text" name="username"></label><br>
    <label>密码: <input type="password" name="password"></label><br>
    <label>验证码: <input type="text" name="captcha"></label>
    <img src="captcha.php" alt="验证码"><br>
    <input type="submit" name="submit" value="登陆">
</form>
</body>
</html>

1.2 Créer un code de vérification

Afin d'augmenter la sécurité de la connexion, nous devons utiliser le code de vérification pour confirmer l'identité de l'utilisateur, nous devons donc créer une image de code de vérification . Vous pouvez ajouter le code suivant au code :

<?php
session_start();
header("Content-type: image/PNG");

//定义画布的宽和高
$width = 60;
$height = 25;

//生成验证码并保存到Session
$captcha_num = &#39;&#39;;
for ($i = 0; $i < 4; ++$i) {
    $captcha_num .= rand(0, 9);
}
$_SESSION[&#39;captcha&#39;] = $captcha_num;

//创建画布
$img = imagecreate($width, $height);

//设置画布颜色
$bg_color = imagecolorallocate($img, 255, 255, 255);

//生成干扰线
for ($i = 0; $i < 5; ++$i) {
    $line_color = imagecolorallocate($img, rand(0, 255), rand(0, 255), rand(0, 255));
    imageline($img, rand(0, $width), rand(0, $height), rand(0, $width), rand(0, $height), $line_color);
}

//生成干扰点
for ($i = 0; $i < 100; ++$i) {
    $pixel_color = imagecolorallocate($img, rand(0, 255), rand(0, 255), rand(0, 255));
    imagesetpixel($img, rand(0, $width), rand(0, $height), $pixel_color);
}

//设置验证码颜色和大小
$captcha_color = imagecolorallocate($img, 0, 0, 0);
$captcha_size = 20;

//将验证码画到画布上
imagestring($img, $captcha_size, 10, 5, $captcha_num, $captcha_color);

//输出画布
imagepng($img);

//释放资源
imagedestroy($img);
?>

Le fichier captcha.php dans ce code est un fichier distinct, qui générera une image de code de vérification aléatoire et enregistrera le code de vérification dans la session.

1.3 Effectuer la vérification de connexion

Une fois que l'utilisateur a saisi les informations utilisateur et le code de vérification, nous devons vérifier le contenu saisi. Vous pouvez ajouter le code suivant au code :

<?php
session_start();
if (isset($_POST[&#39;submit&#39;])) {    //判断是否提交表单
    if ($_POST[&#39;captcha&#39;] == $_SESSION[&#39;captcha&#39;]) {    //判断验证码是否正确
        $username = $_POST[&#39;username&#39;];
        $password = $_POST[&#39;password&#39;];

        //查询数据库验证账号密码是否正确
        $mysql = new mysqli(&#39;localhost&#39;, &#39;root&#39;, &#39;password&#39;, &#39;database&#39;); //替换成自己的用户名、密码、数据库
        $result = $mysql->query("SELECT * FROM users WHERE username='$username' AND password='$password'");
        if ($result->num_rows == 1) {  //账号密码验证成功
            echo "登录成功!";
        } else {    //账号或密码错误
            echo "账号或密码错误!";
        }
        $mysql->close();
    } else {    //验证码错误
        echo "验证码错误!";
    }
}
?>

Le fichier login.php dans ce code est un fichier distinct utilisé pour traiter les données du formulaire soumises par l'utilisateur, puis effectuer les opérations correspondantes après avoir réussi la vérification.

2. Mise en œuvre de la fonction d'inscription

2.1 Créer une page d'inscription

Nous devons créer une page d'inscription pour les utilisateurs, leur fournissant un cadre pour saisir leur numéro de compte et leur mot de passe, ainsi qu'une zone de saisie du code de vérification. Vous pouvez ajouter le code suivant au code :

<html>
<head>
    <title>注册页面</title>
    <meta charset="utf-8">
</head>
<body>
<form action="register.php" method="POST">
    <label>账号: <input type="text" name="username"></label><br>
    <label>密码: <input type="password" name="password"></label><br>
    <label>验证码: <input type="text" name="captcha"></label>
    <img src="captcha.php" alt="验证码"><br>
    <input type="submit" name="submit" value="注册">
</form>
</body>
</html>

2.2 Effectuer la vérification de l'enregistrement

Une fois que l'utilisateur a saisi les informations utilisateur et le code de vérification, nous devons vérifier le contenu saisi. Vous pouvez ajouter le code suivant au code :

<?php
session_start();
if (isset($_POST[&#39;submit&#39;])) {    //判断是否提交表单
    if ($_POST[&#39;captcha&#39;] == $_SESSION[&#39;captcha&#39;]) {    //判断验证码是否正确
        $username = $_POST[&#39;username&#39;];
        $password = $_POST[&#39;password&#39;];

        //插入数据到数据库中
        $mysql = new mysqli(&#39;localhost&#39;, &#39;root&#39;, &#39;password&#39;, &#39;database&#39;); //替换成自己的用户名、密码、数据库
        $result = $mysql->query("INSERT INTO users(username, password) VALUES ('$username', '$password')");
        if ($result) {  //插入数据成功
            echo "注册成功!";
        } else {    //插入数据失败
            echo "注册失败!";
        }
        $mysql->close();
    } else {    //验证码错误
        echo "验证码错误!";
    }
}
?>

Le fichier register.php dans ce code est un fichier distinct utilisé pour traiter les données du formulaire soumises par l'utilisateur, puis insérer les données dans la base de données après avoir réussi la vérification.

3. Résumé

Ce qui précède est tout le code permettant d'utiliser PHP pour implémenter la fonction de connexion et d'enregistrement avec le code de vérification. Grâce à cet article, nous pouvons apprendre à créer des codes de vérification et à vérifier les informations de connexion et d'enregistrement des utilisateurs en PHP. La fonction de connexion et d'enregistrement avec code de vérification peut améliorer efficacement la sécurité du site Web, empêcher les attaques malveillantes de robots et protéger les informations privées des utilisateurs.

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