Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk melaksanakan log masuk kod pengesahan dalam php

Bagaimana untuk melaksanakan log masuk kod pengesahan dalam php

王林
Lepaskan: 2023-03-13 09:44:02
asal
11192 orang telah melayarinya

Cara melaksanakan log masuk kod pengesahan dalam PHP: 1. Buat halaman HTML untuk memaparkan kod pengesahan 2. Buat fail PHP dan terima maklumat kod pengesahan yang dihantar dari halaman hadapan; Cipta kod pengesahan untuk menjana fail PHP.

Bagaimana untuk melaksanakan log masuk kod pengesahan dalam php

Persekitaran pengendalian artikel ini: sistem Windows 10, PHP 7, komputer thinkpad t480.

Kod pengesahan adalah sangat biasa dalam kehidupan seharian kita menggunakan kod pengesahan mempunyai banyak faedah, seperti:

Mencegah peretasan kata laluan yang berniat jahat. Sebagai contoh, untuk mendapatkan maklumat pengguna, sesetengah penggodam menggunakan cara yang berbeza untuk menghantar data ke pelayan untuk mengesahkan ketepatan maklumat pengguna yang telah diteka.

Halang manipulasi tiket berniat jahat dan banjir forum. Fenomena banjir ini telah lama wujud dalam forum, seperti Tieba, di mana jawatan sentiasa dihantar. Kini Baidu Tieba telah menetapkan had masa untuk pengguna membuat siaran Jika terdapat terlalu banyak siaran dalam tempoh masa tertentu, anda tidak akan dapat meneruskan siaran.

Halang permintaan berniat jahat. Sebagai contoh, jika pengguna menyerahkan maklumat borang, ia akan menyebabkan pembaziran sumber pelayan dan serangan berniat jahat dengan meminta maklumat data secara berterusan dari latar belakang.

Seronok. Ini adalah pendapat peribadi Apabila kami menyerahkan borang, jika kami menemui beberapa kaedah kod pengesahan yang menarik, ia boleh meningkatkan kecintaan pengguna terhadap tapak web.

Dapatkan maklumat pengguna. Ini adalah perkara biasa dalam laman web hari ini. Sebagai contoh, jika kami mendaftarkan akaun di tapak, kami perlu lulus kod pengesahan telefon mudah alih untuk berjaya mendaftar. Selepas laman web tersebut memperoleh nombor telefon pengguna, ia akan menghantar beberapa maklumat pemasaran kepada pemilik nombor telefon bimbit tersebut.

Jadi bagaimana kita melaksanakan fungsi log masuk kod pengesahan? Mari kita lihat bersama-sama!

Konfigurasi persekitaran:

Anda hanya perlu memasang pustaka sambungan GD PHP secara setempat untuk menggunakannya. Bagaimana untuk menyemak, mencipta fail PHP dan menulis dalam fail, akses fail dan jika anda melihat bahawa pustaka GD telah dipasang, anda boleh menggunakannya.

Pelaksanaan kod khusus:

1 Kami mula-mula membuat halaman html untuk memaparkan kod pengesahan

<!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>
Salin selepas log masuk

2. Buat fail PHP untuk menerima pengesahan yang masuk maklumat kod halaman hujung hadapan

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

3. Cipta kod pengesahan untuk menjana fail 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); 
Salin selepas log masuk

Pembelajaran yang disyorkan: latihan php

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan log masuk kod pengesahan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan