日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

PHP登录带图片,PHP登录注册完整图片验证码实现

發布時間:2025/3/19 php 90 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP登录带图片,PHP登录注册完整图片验证码实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通過上一篇 PHP gd簡單畫圖學習后。這篇將繼續探索實現PHP圖片驗證碼的實現。效果圖如下

為什么需要驗證碼?

驗證碼設計。驗證碼一使用于用戶注冊和登錄。主要是防止機器批量注冊用戶或機器頻繁測試登錄

此處的核心點有兩個。第一是圖片驗證碼實現。第二是如果在驗證頁面檢驗輸入的驗證碼是否正確

首先我們先實現驗證碼

新建一個cfv(Verification Code).php文件,為單獨生成驗證碼文件

創建一個150*40px的畫布,以及設置需要的顏色等:

$img = imagecreatetruecolor(150,40);

$white = imagecolorallocate($img,240,241,218);

$gray = imagecolorallocate($img,100,233,12);

$orange = imagecolorallocate($img,168,170,19);

imagefill($img,0,0,$white);//填充畫布

合并一個從0-9,a-z,A-Z數組,$arr = array_merge(range(0,9),range(a,z),range(A,Z));

打亂數組 shuffle($arr);

從數組里面取出4個,并且以" "空格連接,組成驗證碼需要的字符串 $str = join(" ",array_slice($arr,0,4));

畫驗證碼文字到畫布上 imagettftext($img,20,0,10,30,$gray,"my.TTF",$str);

imagettftext (resource$image ,float$size ,float$angle ,int$x ,int$y ,int$color ,string$fontfile ,???string$text ) $image:畫布 $size:字體大小 $angle:字體偏轉角度 $x:字體左下x坐標 $y:字體左下y坐標 $color 字體顏色 $fontfile()在C:\Windows\Fonts下任意取一個.TTF文件$text 驗證碼文字

為了防止機器頻繁測試。所以得增加干擾線 。如下增加了30條干擾線

for ($i=0; $i <30 ; $i++) {

imagearc($img, mt_rand(0,150), mt_rand(0,40), mt_rand(0,30), mt_rand(0,30), mt_rand(0,360), ? ? ?? ???????????????? mt_rand(0,360), $orange);}

最后畫出該驗證碼圖像,并且釋放資源?? imagejpeg($img);imagedestroy($img);

創建表單,這兒隨便創建了一個表單。代碼直接上圖

最后是驗證提交的表單驗證碼信息是否正確

由于我們驗證的php和驗證碼的php文件不同,所以改怎么在驗證碼圖片中獲取文字作比較?此處停留思考1分鐘^-^

這時候我們需要借助Session,關于Session詳細運用,這兒不做深究。只略講一下這兒的Session運用

開啟Session session_start();需要在驗證碼最上面開啟。注意這句代碼前不能有輸出比如echo......

把驗證碼字符串存入Session? $_SESSION['vcode']=$str;

在驗證的php文件中取出Session $scode = $_SESSION['vcode']

checkrgis.php 里面需要拿到表單傳入的驗證碼,在和Session的驗證碼做比較。這樣即可驗證。代碼如下

session_start();

$scode = $_SESSION['vcode'];

$pvfc = $_POST['vfc'];

$code = strtolower(str_replace(" ","",$scode));

$fvc = strtolower(str_replace(" ","",$pvfc));

注意:獲得的用戶輸入的驗證碼和Session的驗證碼都需要把空格全部消除,在轉小寫后比較。對應上面4,5句代碼

源碼下載地址https://pan.baidu.com/s/1k4xn8zdLC9yKvFEGUryN4g? 提取碼?st8f

總結

以上是生活随笔為你收集整理的PHP登录带图片,PHP登录注册完整图片验证码实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。