程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 如何運用PHP GD庫生成驗證碼

如何運用PHP GD庫生成驗證碼

編輯:關於PHP編程

當我們要使用先在php.ini裡增加一行引用:extension=php_gd2.dll

重啟apache。做一個測試頁 var_dump(gd_info());輸出數據表明PHP GD庫引用成功。

表單auth.html

  1. <html> 
  2. <head> 
  3. <meta http-equiv='Content-Type' content='text/html; charset=utf-8'> 
  4. <title>驗證碼</title> 
  5. </head> 
  6. <body> 
  7. <h1>請輸入驗證碼</h1> 
  8. <form action="check_auth.php" method="post"> 
  9.    <input name="auth" type="text"> 
  10.    <img src="auth.php" border="0" /> 
  11.    <input type="submit" value="提交"> 
  12. </form> 
  13. </body> 
  14. </html> 

PHP GD庫生成驗證碼 auth.php

  1. <?php 
  2.    session_start();  
  3.    header("Content-type:image/png");  
  4.  
  5.    $img_width=100;  
  6.    $img_height=20;  
  7.  
  8.    srand(microtime()*100000);  
  9.    for($i=0;$i<4;$i++)  
  10.    {  
  11.         $new_number.=dechex(rand(0,15));  
  12.    }  
  13.  
  14.    $_SESSION[check_auth]=$new_number;  
  15.    $new_number=imageCreate($img_width,$img_height);//創建圖象  
  16.    ImageColorAllocate($new_number,255,255,255);  //設置背景色為白色  
  17.  
  18.    for($i=0;$i<strlen($_SESSION[check_auth]);$i++)  
  19.    {  
  20.        $font=mt_rand(3,5);  
  21.        $x=mt_rand(1,8) + $img_width*$i/4;  
  22.        $y=mt_rand(1,$img_height/4);  
  23.        $color=imageColorAllocate($new_number,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200));//設置字符顏色  
  24.        imageString($new_number,$font,$x,$y,$_SESSION[check_auth][$i],$color);//輸出字符  
  25.    }  
  26.  
  27.    ImagePng($new_number);  
  28.    ImageDestroy($new_number);  
  29. ?> 

PHP GD庫提交頁面 check_auth.php

  1. <?php 
  2.    session_start();  
  3.    $auth=$_POST['auth'];  
  4.  
  5.    if(empty($auth))  
  6.    {  
  7.        echo '錯誤:驗證碼不能為空';  
  8.        die;  
  9.    }  
  10.  
  11.    if($auth==$_SESSION['check_auth'])  
  12.    {  
  13.        echo '正確';  
  14.    }  
  15.    else  
  16.    {  
  17.        echo '錯誤:驗證碼輸入錯誤';  
  18.    }  
  19. ?> 

以上就是本文所介紹的PHP GD庫生成驗證碼的相關知識,希望對大家有所幫助。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved