首頁 後端開發 php教程 如何使用PHP實現人機驗證碼

如何使用PHP實現人機驗證碼

Jun 27, 2023 am 11:58 AM
php驗證碼 驗證碼生成 php驗證碼實現

人機驗證碼是一種常用的驗證碼形式,可以有效地防止惡意機器人攻擊和惡意註冊等行為。 PHP作為一門伺服器端語言,非常適合實作人機驗證碼功能。在本文中,我們將介紹如何使用PHP實作人機驗證碼。

  1. 產生驗證碼圖片
    首先,我們需要產生驗證碼圖片。這個過程可以透過使用GD庫來實現。 GD庫是一個開源影像處理庫,可以用來產生並操作各種不同種類的影像。在PHP中,可以透過安裝GD擴充功能來使用它。

以下是產生驗證碼圖片的程式碼範例:

<?php
session_start();
$code = rand(1000, 9999);
$_SESSION["code"] = $code;
$width = 100;
$height = 50;
$image = imagecreatetruecolor($width, $height);
$textColor = imagecolorallocate($image, 0, 0, 0); //设置文本颜色
$bgColor = imagecolorallocate($image, 255, 255, 255); //设置背景颜色
imagefilledrectangle($image, 0, 0, $width, $height, $bgColor); //绘制矩形背景

//绘制验证码字符串
$font = 'arial.ttf'; //字体
$fontSize = 24; //字体大小
$x = 20; //x轴位置
$y = 30; //y轴位置
for ($i = 0; $i < 4; $i++) {
    $char = substr(str_shuffle("ABCDEFGHJKMNPQRSTUVWXYZ23456789"), 0, 1);
    imagettftext($image, $fontSize, rand(-15, 15), $x, $y, $textColor, $font, $char);
    $x += 20;
}

header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>
登入後複製

這段程式碼將會在伺服器端產生驗證碼圖片,並輸出給瀏覽器顯示。

  1. 驗證使用者輸入
    接下來,我們需要驗證使用者輸入是否正確。在產生驗證碼時,我們已經將驗證碼保存在Session中了。因此,在使用者提交輸入後,我們可以將使用者輸入的驗證碼與Session中儲存的驗證碼進行比較。

以下是驗證使用者輸入的程式碼範例:

<?php
session_start();
if($_POST["code"] != $_SESSION["code"]) {
    echo "验证码输入错误";
} else {
    echo "验证码输入正确";
}
?>
登入後複製

這段程式碼將會驗證使用者提交的驗證碼是否與Session中儲存的驗證碼相同。如果不相同,則會輸出錯誤提示;如果相同,則表示使用者輸入正確。

  1. 嵌入到表單中
    最後,我們需要將人機驗證碼嵌入表單中。為了防止惡意攻擊者直接提交表單而不輸入驗證碼,我們需要將驗證碼產生腳本和表單在同一個頁面中展示,並將提交後進行驗證。

以下是將人機驗證碼嵌入表單中的程式碼範例:

<form method="post" action="verify.php">
    <p>用户名:</p>
    <input type="text" name="username">
    <p>密码:</p>
    <input type="password" name="password">
    <p>验证码:</p>
    <input type="text" name="code">
    <img src="code.php" alt="验证码">
    <input type="submit" value="提交">
</form>
登入後複製

這段程式碼將會在表單中新增一個圖片,用於展示驗證碼。使用者需要輸入圖中展示的驗證碼才能提交表單。點擊提交按鈕後,表單將會跳到驗證腳本程式碼,並進行驗證。

總結
本文介紹如何使用PHP實作人機驗證碼。透過產生驗證碼圖片並儲存到Session中,可以有效地防止惡意攻擊和註冊。在表單中嵌入人機驗證碼,可以有效提升網站的安全性和使用者體驗。

以上是如何使用PHP實現人機驗證碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何使用 PHP 實作驗證碼和圖形辨識功能 如何使用 PHP 實作驗證碼和圖形辨識功能 Sep 05, 2023 am 10:37 AM

如何使用 PHP 實作驗證碼和圖形辨識功能

如何利用PHP函數實現使用者註冊和登入的驗證碼產生和驗證? 如何利用PHP函數實現使用者註冊和登入的驗證碼產生和驗證? Jul 24, 2023 pm 06:09 PM

如何利用PHP函數實現使用者註冊和登入的驗證碼產生和驗證?

PHP實作驗證碼的產生與驗證 PHP實作驗證碼的產生與驗證 Jun 18, 2023 am 10:30 AM

PHP實作驗證碼的產生與驗證

PHP商城登入介面驗證碼顯示異常的解決方案 PHP商城登入介面驗證碼顯示異常的解決方案 Mar 05, 2024 am 10:36 AM

PHP商城登入介面驗證碼顯示異常的解決方案

使用Gin框架實現驗證碼產生和驗證功能 使用Gin框架實現驗證碼產生和驗證功能 Jun 22, 2023 pm 12:01 PM

使用Gin框架實現驗證碼產生和驗證功能

織夢CMS驗證碼顯示異常如何處理 織夢CMS驗證碼顯示異常如何處理 Mar 28, 2024 pm 01:48 PM

織夢CMS驗證碼顯示異常如何處理

Discuz登入遇到問題?立即查看解決方案! Discuz登入遇到問題?立即查看解決方案! Mar 11, 2024 am 10:51 AM

Discuz登入遇到問題?立即查看解決方案!

織夢CMS驗證碼無法顯示解決方法 織夢CMS驗證碼無法顯示解決方法 Mar 28, 2024 pm 01:21 PM

織夢CMS驗證碼無法顯示解決方法

See all articles