當我們要使用先在php.ini裡增加一行引用:extension=php_gd2.dll
重啟apache。做一個測試頁 var_dump(gd_info());輸出數據表明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);//創建圖象
- ImageColorAllocate($new_number,255,255,255); //設置背景色為白色
- 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));//設置字符顏色
- 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庫生成驗證碼的相關知識,希望對大家有所幫助。