> 백엔드 개발 > PHP 문제 > PHP에서 인증 코드 로그인을 구현하는 방법

PHP에서 인증 코드 로그인을 구현하는 방법

王林
풀어 주다: 2023-03-13 09:44:02
원래의
11192명이 탐색했습니다.

PHP에서 확인 코드 로그인을 구현하는 방법: 1. 확인 코드를 표시하는 HTML 페이지를 만듭니다. 2. PHP 파일을 만들고 프런트 엔드 페이지에서 전달된 확인 코드 정보를 수락합니다. PHP 파일을 생성합니다.

PHP에서 인증 코드 로그인을 구현하는 방법

이 기사의 운영 환경: windows10 시스템, php 7, thinkpad t480 컴퓨터.

인증 코드는 일상 생활에서 매우 일반적입니다. 인증 코드를 사용하면 다음과 같은 많은 이점이 있습니다.

악의적인 비밀번호 크래킹을 방지합니다. 예를 들어, 일부 해커는 사용자 정보를 얻기 위해 다양한 수단을 사용하여 서버에 데이터를 전송하여 추측된 사용자 정보의 정확성을 확인합니다.

악의적인 티켓 조작 및 포럼 홍수를 방지하세요. 이런 폭주 현상은 티에바 등 지속적으로 게시물이 올라오는 포럼에서는 오래전부터 존재해왔다. 이제 Baidu Tieba에서는 사용자가 게시할 수 있는 시간 제한을 설정했습니다. 특정 기간 내에 게시물이 너무 많으면 게시를 계속할 수 없습니다.

악의적인 요청을 방지하세요. 예를 들어, 사용자가 양식 정보를 제출하면 백그라운드에서 지속적으로 데이터 정보를 요청하여 서버 자원을 낭비하고 악의적인 공격을 유발하게 됩니다.

재미있어요. 이는 개인적인 의견입니다. 양식을 제출할 때 흥미로운 확인 코드 방법을 발견하면 웹사이트에 대한 사용자의 사랑을 높일 수 있습니다.

사용자 정보를 얻으세요. 이것은 오늘날 사이트에서 흔히 발생하는 현상입니다. 사이트에 계정을 등록하는 경우 성공적으로 등록하려면 휴대폰 인증 코드를 전달해야 합니다. 웹사이트는 사용자의 전화번호를 획득한 후 휴대폰 번호 소유자에게 일부 마케팅 정보를 보냅니다.

그럼 인증코드 로그인 기능은 어떻게 구현하나요? 함께 살펴보시죠!

환경 구성:

이를 사용하려면 PHP의 GD 확장 라이브러리를 로컬에 설치하기만 하면 됩니다. 확인방법은 PHP 파일을 생성하고 파일에 라고 적어서 파일에 접속한 후 GD 라이브러리가 설치되어 있는 것을 확인하시면 사용하실 수 있습니다.

특정 코드 구현:

1. 먼저 확인 코드를 표시하는 HTML 페이지를 만듭니다

<!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. PHP 파일을 만들고 프런트 엔드 페이지에서 전달된 확인 코드 정보를 수락합니다

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

3. 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); 
로그인 후 복사

추천 학습:php training

위 내용은 PHP에서 인증 코드 로그인을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿