解決方法:
2、utf-8 bom頭原因。用editplus、ultraedit,刪除即可。(
3、輸出緩衝區中的快取問題。輸出前,使用ob_clean函式解決。
4、輸出前,不能出現echo、print_r、var_dump等列印,注釋或刪除解決。
解決問題之後的**:<?php
$w = 80; //設定寬和高
$h = 26;
$str = array(); //用來儲存隨機碼
$string = "abcdefghijklmnopqrstuvwxyz0123456789";//隨機挑選其中4個字元,也可以選擇更多,注意迴圈的時候加上,寬度適當調整
for($i = 0;$i < 4;$i++){
$str[$i] = $string[rand(0,35)];
$vcode .= $str[$i];
session_start(); //啟用超全域性變數session
$_session["vcode"] = $vcode;
$im = imagecreatetruecolor($w,$h);
$white = imagecolorallocate($im,255,255,255); //第一次呼叫設定背景色
$black = imagecolorallocate($im,0,0,0); //邊框顏色
imagefilledrectangle($im,0,0,$w,$h,$white); //畫一矩形填充
imagerectangle($im,0,0,$w-1,$h-1,$black); //畫一矩形框
//生成雪花背景
for($i = 1;$i < 200;$i++){
$x = mt_rand(1,$w-9);
$y = mt_rand(1,$h-9);
$color = imagecolorallocate($im,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
imagechar($im,1,$x,$y,"*",$color);
//將驗證碼寫入圖案
for($i = 0;$i < count($str);$i++){
$x = 13 + $i * ($w - 15)/4;
$y = mt_rand(3,$h / 3);
$color = imagecolorallocate($im,mt_rand(0,225),mt_rand(0,150),mt_rand(0,225));
imagechar($im,5,$x,$y,$str[$i],$color);
ob_clean();//原來的程式沒有這一欄
header("content-type:image/jpeg"); //以jpeg格式輸出,注意上面不能輸出任何字元,否則出錯
imagejpeg($im);
imagedestroy($im);
顯示結果如下:
PHP驗證碼顯示與驗證
captcha 驗證碼 session 技術。php 處理的技術。仿照 1,有已存在的背景圖幾張 2,隨機得到某張!3,白色邊框 4,隨機文字 大寫 數字,黑白隨機 步驟1 確定隨機背景 基於該背景,建立畫布!繪製邊框 步驟2 寫驗證碼寫到 畫布上利用函式imagestring imagestrin...
php驗證碼zhuc php實現驗證碼製作
php實現驗證碼製作 首先,看一張圖了解驗證碼生成的過程。1 生成驗證碼底圖 2 驗證碼內容 3 生成驗證碼 4 對比校驗 驗證碼實現的核心技術分析 a 底圖的 實現,並新增干擾元素 b 生成驗證內容 c 驗證內容儲存在服務端 d 驗證內容的校驗 下面看 實現的過程 這段 實現了產生 隨機數字,隨機...
PHP實現驗證碼
目前,不少 為了防止使用者利用機械人自動註冊 登入 灌水,都採用了驗證碼技術。所謂驗證碼,就是將一串隨機產生的數字或符號,生成一幅,裡加上一些干擾象素 防止 ocr 由使用者肉眼識別其中的驗證碼資訊,輸入表單提交 驗證,驗證成功後才能使用某項功能。我們這裡展示了如何編寫 php程式實現驗證碼功能 一...