Maison >développement back-end >Problème PHP >Comment implémenter la connexion par code de vérification en php

Comment implémenter la connexion par code de vérification en php

王林
王林original
2021-10-14 15:37:1911237parcourir

Comment implémenter la connexion par code de vérification en PHP : 1. Créez une page HTML pour afficher le code de vérification ; 2. Créez un fichier PHP et acceptez les informations du code de vérification transmises depuis la page frontale ; 3. Créez un code de vérification ; pour générer un fichier PHP.

Comment implémenter la connexion par code de vérification en php

L'environnement d'exploitation de cet article : système windows10, php 7, ordinateur thinkpad t480.

Les codes de vérification sont très courants dans notre vie quotidienne. L'utilisation de codes de vérification présente de nombreux avantages, tels que :

Empêcher le piratage malveillant des mots de passe. Par exemple, afin d'obtenir des informations sur les utilisateurs, certains pirates utilisent différents moyens pour envoyer des données au serveur afin de vérifier l'exactitude des informations sur les utilisateurs devinées.

Empêchez la manipulation malveillante des tickets et l'inondation du forum. Ce phénomène d'inondation existe depuis longtemps sur les forums, comme Tieba, où des messages sont envoyés en permanence. Désormais, Baidu Tieba a fixé une limite de temps pour que les utilisateurs publient. S'il y a trop de messages dans un certain laps de temps, vous ne pourrez pas continuer à publier.

Empêchez les requêtes malveillantes. Par exemple, si un utilisateur soumet des informations sur un formulaire, cela entraînera un gaspillage des ressources du serveur et des attaques malveillantes en demandant continuellement des informations sur les données en arrière-plan.

Amusant. Il s'agit d'une opinion personnelle. Lorsque nous soumettons un formulaire, si nous rencontrons des méthodes de code de vérification intéressantes, cela peut renforcer l'amour de l'utilisateur pour le site Web.

Obtenir des informations sur l'utilisateur. C'est un phénomène courant sur les sites d'aujourd'hui. Par exemple, si nous enregistrons un compte sur un site, nous devons transmettre le code de vérification du téléphone mobile pour réussir l'inscription. Après avoir obtenu le numéro de téléphone de l'utilisateur, le site Web enverra des informations marketing au propriétaire du numéro de téléphone mobile.

Alors, comment implémentons-nous la fonction de connexion par code de vérification ? Jetons un coup d'oeil ensemble !

Configuration de l'environnement :

Il vous suffit d'installer localement la bibliothèque d'extension GD de PHP pour l'utiliser. Comment vérifier, créer un fichier PHP et écrire 1c54a2ccadef45a7573e3649bdfd6f57 dans le fichier, accéder au fichier, et si vous voyez que la bibliothèque GD a été installée, vous pouvez l'utiliser.

Implémentation de code spécifique :

1. Nous créons d'abord une page html pour afficher le code de vérification

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>登陆</title>
</head>
<body>
    <form action="./login.php" method="post">
        <img src="image_captcha.php"  onclick="this.src=&#39;image_captcha.php?&#39;+new Date().getTime();" width="200" height="200"><br/>
        <input type="text" name="captcha" placeholder="请输入图片中的验证码"><br/>
        <input type="submit" value="验证">
    </form>
</body>
</html>

2 Créons un fichier PHP et acceptons les informations du code de vérification transmises depuis la page frontale

<?php
/**
 * 接受用户登陆时提交的验证码
 */
session_start();
//1. 获取到用户提交的验证码
$captcha = $_POST["captcha"];
//2. 将session中的验证码和用户提交的验证码进行核对,当成功时提示验证码正确,并销毁之前的session值,不成功则重新提交
if(strtolower($_SESSION["captchaimg"]) == strtolower($captcha)){
    echo "验证码正确!";
    $_SESSION["captcha"] = "";
}else{
    echo "验证码提交不正确!";
}

3. le code de vérification pour générer un fichier PHP

<?php
/**
 * 字母+数字的验证码生成
 */
// 开启session
session_start();
//1.创建黑色画布
$image = imagecreatetruecolor(100, 30);
 
//2.为画布定义(背景)颜色
$bgcolor = imagecolorallocate($image, 255, 255, 255);
 
//3.填充颜色
imagefill($image, 0, 0, $bgcolor);
 
// 4.设置验证码内容
 
//4.1 定义验证码的内容
$content = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
 
//4.1 创建一个变量存储产生的验证码数据,便于用户提交核对
$captcha = "";
for ($i = 0; $i < 4; $i++) {
    // 字体大小
    $fontsize = 10;
    // 字体颜色
    $fontcolor = imagecolorallocate($image, mt_rand(0, 120), mt_rand(0, 120), mt_rand(0, 120));
    // 设置字体内容
    $fontcontent = substr($content, mt_rand(0, strlen($content)), 1);
    $captcha .= $fontcontent;
    // 显示的坐标
    $x = ($i * 100 / 4) + mt_rand(5, 10);
    $y = mt_rand(5, 10);
    // 填充内容到画布中
    imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor);
}
$_SESSION["captcha"] = $captcha;
 
//4.3 设置背景干扰元素
for ($$i = 0; $i < 200; $i++) {
    $pointcolor = imagecolorallocate($image, mt_rand(50, 200), mt_rand(50, 200), mt_rand(50, 200));
    imagesetpixel($image, mt_rand(1, 99), mt_rand(1, 29), $pointcolor);
}
 
//4.4 设置干扰线
for ($i = 0; $i < 3; $i++) {
    $linecolor = imagecolorallocate($image, mt_rand(50, 200), mt_rand(50, 200), mt_rand(50, 200));
    imageline($image, mt_rand(1, 99), mt_rand(1, 29), mt_rand(1, 99), mt_rand(1, 29), $linecolor);
}
 
//5.向浏览器输出图片头信息
header(&#39;content-type:image/png&#39;);
 
//6.输出图片到浏览器
imagepng($image);
 
//7.销毁图片
imagedestroy($image); 

apprentissage recommandé :formation php

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