如何運(yùn)用PHP GD庫生成驗證碼
作者:甜心
PHP GD庫是PHP進(jìn)行圖像操作時的一個非常重要的庫,我們下面就通過介紹PHP GD庫生成驗證碼的方法來進(jìn)一步加深對它的了解。
當(dāng)我們要使用PHP進(jìn)行圖像操作的時候,必然會使用到一個PHP GD庫,它是一個很強(qiáng)大的庫。今天我們要向大家介紹的就是PHP GD庫如何生成驗證碼的相關(guān)方法。
#t#先在php.ini里增加一行引用:extension=php_gd2.dll
重啟apache。做一個測試頁 var_dump(gd_info());輸出數(shù)據(jù)表明PHP GD庫引用成功。
表單auth.html
- <html>
- <head>
- <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
- <title>驗證碼</title>
- </head>
- <body>
- <h1>請輸入驗證碼</h1>
- <form action="check_auth.php" method="post">
- <input name="auth" type="text">
- <img src="auth.php" border="0" />
- <input type="submit" value="提交">
- </form>
- </body>
- </html>
PHP GD庫生成驗證碼 auth.php
- <?php
- session_start();
- header("Content-type:image/png");
- $img_width=100;
- $img_height=20;
- srand(microtime()*100000);
- for($i=0;$i<4;$i++)
- {
- $new_number.=dechex(rand(0,15));
- }
- $_SESSION[check_auth]=$new_number;
- $new_number=imageCreate($img_width,$img_height);//創(chuàng)建圖象
- ImageColorAllocate($new_number,255,255,255); //設(shè)置背景色為白色
- for($i=0;$i<strlen($_SESSION[check_auth]);$i++)
- {
- $font=mt_rand(3,5);
- $x=mt_rand(1,8) + $img_width*$i/4;
- $y=mt_rand(1,$img_height/4);
- $color=imageColorAllocate($new_number,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200));//設(shè)置字符顏色
- imageString($new_number,$font,$x,$y,$_SESSION[check_auth][$i],$color);//輸出字符
- }
- ImagePng($new_number);
- ImageDestroy($new_number);
- ?>
PHP GD庫提交頁面 check_auth.php
- <?php
- session_start();
- $auth=$_POST['auth'];
- if(empty($auth))
- {
- echo '錯誤:驗證碼不能為空';
- die;
- }
- if($auth==$_SESSION['check_auth'])
- {
- echo '正確';
- }
- else
- {
- echo '錯誤:驗證碼輸入錯誤';
- }
- ?>
以上就是本文所介紹的PHP GD庫生成驗證碼的相關(guān)知識,希望對大家有所幫助。
責(zé)任編輯:曹凱
來源:
博客園