国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

使用php實現網站驗證碼功能【推薦】

2024-05-04 23:54:53
字體:
來源:轉載
供稿:網友

驗證碼是網站常用的一項安全措施,也是新人站長較難掌握的一項技能,這里我向大家介紹一簡單有效的驗證碼實現方法。

開始之前

在正式開始之前我們需要打開php的gd2圖形庫支持(在php.ini,中搜索“php_gd2.dll”,找到“;extension=php_gd2.dll”并去掉句首的分號) 。

核心:img.php

這個頁面生成一張驗證碼并將正確數值寫入 Session

隨機一個4位驗證碼

$check=rand(1000,9999); 

將生成的驗證碼寫入session

Session_start(); $_SESSION["check"] = $check;

創建一張圖片

$im = imagecreate(80,30);

由于這種圖片的背景默認是黑色的所以我們要用白色填充。

imagefill($im,0,0,ImageColorAllocate($im, 255,255,255)); 

使用imageline隨機繪制兩條實線

$y1=rand(0,30); $y2=rand(0,30); $y3=rand(0,30); $y4=rand(0,30); imageline($im,0,$y1,70, $y3,000); imageline($im,0,$y2,70, $y4,000);

在隨機位置繪制文字

$strx=rand(3,15); $stry=rand(2,15); imagestring($img,5,$strx,$stry,substr($check,0,1),ImageColorAllocate($img,34,87,100)); $strx+=rand(15,20);$stry=rand(2,15); imagestring($img,5,$strx,$stry,substr($check,1,1),ImageColorAllocate($img,781,117,78)); $strx+=rand(15,20);$stry=rand(2,15); imagestring($img,5,$strx,$stry,substr($check,2,1),ImageColorAllocate($img,160,40,40)); $strx+=rand(15,20);$stry=rand(2,15); imagestring($img,5,$strx,$stry,substr($check,3,1),ImageColorAllocate($img,25,55,10));

輸出圖像

Header("Content-type: image/PNG"); ImagePNG($img);

結束,下面是完整代碼

<?php $check=rand(1000,9999);Session_start(); $_SESSION["check"] = $check; $img = imagecreate(80,30); imagefill($img,0,0,ImageColorAllocate($img,255,255,255)); $y1=rand(0,30); $y2=rand(0,30); $y3=rand(0,30); $y4=rand(0,30); imageline($img,0,$y1,70, $y3,ImageColorAllocate($img,55,255,25)); imageline($img,0,$y2,70, $y4,ImageColorAllocate($img,55,55,255)); $strx=rand(3,15); $stry=rand(2,15); imagestring($img,5,$strx,$stry,substr($check,0,1),ImageColorAllocate($img,34,87,100)); $strx+=rand(15,20);$stry=rand(2,15); imagestring($img,5,$strx,$stry,substr($check,1,1),ImageColorAllocate($img,781,117,78)); $strx+=rand(15,20);$stry=rand(2,15); imagestring($img,5,$strx,$stry,substr($check,2,1),ImageColorAllocate($img,160,40,40)); $strx+=rand(15,20);$stry=rand(2,15); imagestring($img,5,$strx,$stry,substr($check,3,1),ImageColorAllocate($img,25,55,10)); Header("Content-type: image/PNG"); ImagePNG($img);

用戶界面:index.php

想必大家都知道怎么做,我就直接給出代碼了

 <!DOCTYPE html><html><body><form action="action.php" method="post"><input type="text" name="cikle" placeholder="驗證碼"><br><img id="cikle" style="-webkit-user-select: none" src="img.php"><input type="submit" value="Submit"></form> </body></html>

以上的代碼將用戶輸入的數值傳遞到“action.php”中

檢查:action.php

這一步要將用戶輸入數值與session中的數值進行比對

相等,輸出“正確”

不相等,輸出“不正確”

<?phpSession_start(); if ($_SERVER["REQUEST_METHOD"] == "POST") { if($_SESSION["check"]!=intval($_POST["cikle"])){ echo "不正確"; }else{ echo "正確"; }}

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持VeVb武林網!


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 浦江县| 武安市| 巴彦淖尔市| 顺昌县| 金乡县| 望奎县| 北碚区| 许昌市| 抚宁县| 高淳县| 大方县| 东源县| 左贡县| 永泰县| 孝昌县| 临西县| 宁武县| 凭祥市| 贺州市| 颍上县| 扎囊县| 扎赉特旗| 青阳县| 丘北县| 那坡县| 武隆县| 麻栗坡县| 望江县| 平利县| 阿拉善左旗| 阳西县| 松滋市| 灵石县| 张家口市| 临澧县| 清河县| 邻水| 博罗县| 咸阳市| 绿春县| 苗栗县|