欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用php實(shí)現(xiàn)網(wǎng)站驗(yàn)證碼功能【推薦】

 更新時(shí)間:2017年02月09日 09:33:55   作者:怪獸小飛機(jī)  
本文主要介紹了使用php實(shí)現(xiàn)網(wǎng)站驗(yàn)證碼功能的方法。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧

驗(yàn)證碼是網(wǎng)站常用的一項(xiàng)安全措施,也是新人站長(zhǎng)較難掌握的一項(xiàng)技能,這里我向大家介紹一簡(jiǎn)單有效的驗(yàn)證碼實(shí)現(xiàn)方法。

開(kāi)始之前

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

可以參考:如何打開(kāi)php的gd2庫(kù)

核心:img.php

這個(gè)頁(yè)面生成一張驗(yàn)證碼并將正確數(shù)值寫(xiě)入 Session

隨機(jī)一個(gè)4位驗(yàn)證碼

$check=rand(1000,9999); 

將生成的驗(yàn)證碼寫(xiě)入session

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

創(chuàng)建一張圖片

$im = imagecreate(80,30);

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

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

使用imageline隨機(jī)繪制兩條實(shí)線

$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);

在隨機(jī)位置繪制文字

$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);

結(jié)束,下面是完整代碼

<?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="驗(yàn)證碼">
<br>
<img id="cikle" style="-webkit-user-select: none" src="img.php"><input type="submit" value="Submit">
</form> 
</body>
</html>

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

檢查:action.php

這一步要將用戶輸入數(shù)值與session中的數(shù)值進(jìn)行比對(duì)

相等,輸出“正確”

不相等,輸出“不正確”

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

以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!

相關(guān)文章

  • php使用pdo連接報(bào)錯(cuò)Connection failed SQLSTATE的解決方法

    php使用pdo連接報(bào)錯(cuò)Connection failed SQLSTATE的解決方法

    這篇文章主要介紹了php使用pdo連接報(bào)錯(cuò)Connection failed SQLSTATE的解決方法,涉及針對(duì)配置文件的修改,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-12-12
  • PHP開(kāi)發(fā)不能違背的安全規(guī)則 過(guò)濾用戶輸入

    PHP開(kāi)發(fā)不能違背的安全規(guī)則 過(guò)濾用戶輸入

    作為PHP程序員,特別是新手,對(duì)于互聯(lián)網(wǎng)的險(xiǎn)惡總是知道的太少,對(duì)于外部的入侵有很多時(shí)候是素手無(wú)策的,他們根本不知道黑客是如何入侵的、提交入侵、上傳漏洞、sql 注入、跨腳本攻擊等等。
    2011-05-05
  • phpstudy安裝redis的操作步驟

    phpstudy安裝redis的操作步驟

    Redis?是一個(gè)開(kāi)源的高性能鍵值存儲(chǔ)數(shù)據(jù)庫(kù),廣泛用于緩存、消息隊(duì)列、會(huì)話管理和實(shí)時(shí)數(shù)據(jù)分析等應(yīng)用場(chǎng)景,本文給大家詳細(xì)介紹了phpstudy安裝redis的操作步驟,需要的朋友可以參考下
    2023-12-12
  • 一段實(shí)用的php驗(yàn)證碼函數(shù)

    一段實(shí)用的php驗(yàn)證碼函數(shù)

    這篇文章主要為大家詳細(xì)介紹了php驗(yàn)證碼函數(shù),還分享了PHP生成圖片驗(yàn)證碼的函數(shù),供大家參考,感興趣的小伙伴們可以參考一下
    2016-05-05
  • 淺析PHP substr,mb_substr以及mb_strcut的區(qū)別和用法

    淺析PHP substr,mb_substr以及mb_strcut的區(qū)別和用法

    本篇文章是對(duì)PHP中的substr,mb_substr以及mb_strcut區(qū)別和用法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP結(jié)合Ffmpeg快速搭建流媒體服務(wù)的實(shí)踐記錄

    PHP結(jié)合Ffmpeg快速搭建流媒體服務(wù)的實(shí)踐記錄

    這篇文章主要給大家介紹了關(guān)于使用PHP結(jié)合Ffmpeg快速搭建流媒體服務(wù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10
  • 詳解PHP隊(duì)列的實(shí)現(xiàn)

    詳解PHP隊(duì)列的實(shí)現(xiàn)

    這篇文章主要介紹了PHP隊(duì)列的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 淺談php錯(cuò)誤提示及查錯(cuò)方法

    淺談php錯(cuò)誤提示及查錯(cuò)方法

    本文給大家簡(jiǎn)單總結(jié)了下php的3種錯(cuò)誤提示和3種查錯(cuò)的方法,非常簡(jiǎn)單,記錄一下,以后補(bǔ)全,有需要的小伙伴先來(lái)MARK下吧
    2015-07-07
  • PHP面向?qū)ο蟪绦蛟O(shè)計(jì)之類與反射API詳解

    PHP面向?qū)ο蟪绦蛟O(shè)計(jì)之類與反射API詳解

    這篇文章主要介紹了PHP面向?qū)ο蟪绦蛟O(shè)計(jì)之類與反射API,結(jié)合實(shí)例形式較為詳細(xì)的分析了類的驗(yàn)證、檢查、傳參及反射API等概念與操作技巧,需要的朋友可以參考下
    2016-12-12
  • php探針使用原理和技巧講解

    php探針使用原理和技巧講解

    在本篇文章里小編給大家分享的是關(guān)于php探針使用原理和技巧講解,有興趣的讀者們可以跟著學(xué)習(xí)下。
    2019-09-09

最新評(píng)論