| PHP驗證碼實現原理 產生隨機數或者字母儲存到session中(驗證驗證碼的時候用),然後對產生的數字或者字母進行繪圖!然後呈現在我們眼前 重新整理驗證碼:用js改變驗證碼圖片所帶的參數,讓瀏覽器不讀緩衝的圖片,從而實現重新整理驗證碼效果! 程式碼範例
- $str="QWERTYUIOPASDFGHJKLZXCVBNM1234567890";
-
- $image=imagecreate(50,25);
- imagecolorallocate($image,mt_rand(0,125),mt_rand(0,125),mt_rand(0,125));
- $color = imagecolorallocate($image,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
- for($i=1;$i<=4;$i++) {
- $date=$str[mt_rand(0,strlen($str)-1)];
- $code.=$date;
- }
- session_start();
- $_SESSION['code'] = $code;
- imagestring($image,4,8,4,$code,$color);
- for($i=1;$i<=30;$i++) {
- imagesetpixel($image,mt_rand(0,50),mt_rand(0,25),mt_rand(125,200));
- }
- for($i=1;$i<=mt_rand(1,5);$i++) { imageline($image,mt_rand(0,50),mt_rand(0,25),mt_rand(0,50),mt_rand(0,25),mt_rand(100,150)); } header("content-type:image/png"); imagepng($image); ?>
- 數字+字母驗證碼(各字母顏色不同):
-
- $str="QWERTYUIOPASDFGHJKLZXCVBNM1234567890";
- $image=imagecreate(50,25);
- imagecolorallocate($image,mt_rand(0,125),mt_rand(0,125),mt_rand(0,125));
- $color[0] = imagecolorallocate($image,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
- $color[1] = imagecolorallocate($image,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
- $color[2] = imagecolorallocate($image,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
- $color[3] = imagecolorallocate($image,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
- for($i=0;$i<4;$i++) {
- $date=$str[mt_rand(0,strlen($str)-1)];
- $code.=$date;
- imagestring($image,5,6+$i*10,4,$code[$i],$color[$i]);
- }
- session_start();
- $_SESSION['code'] = $code;
- for($i=1;$i<=30;$i++) {
- imagesetpixel($image,mt_rand(0,50),mt_rand(0,25),mt_rand(125,200));
- }
- for($i=1;$i<=mt_rand(1,5);$i++) {
- imageline($image,mt_rand(0,50),mt_rand(0,25),mt_rand(0,50),mt_rand(0,25),mt_rand(100,150));
- }
- header("content-type:image/png");
- imagepng($image);
複製代碼 來自:php驗證碼實現原理 |