效果参考(附源码)http://mail.htjs.net/yanzhengma/test.php
();?>
//檢驗校驗碼
if(isset(if(isset(if(isset(
if(isset(if(isset($HTTP_POST_VARS["sub"])): if(
[] || empty($HTTP_POST_VARS[
"number"
"number" "校驗碼不正確!" ; }else{ echo「驗證碼通過!";
}
endif;
show_source(show_source(>
test. ');
//以上本頁的原始碼//以下是產生驗證碼的來源碼show_source(
'YanZhengMa.php'
); <font color="#000000"><font face="新宋体" color="#0000cc">); <br></font><font face="新宋体"><font color="#006600"><br></font><font color="#0000cc"></font><?php <FONT color=#006600>session_start</font><font color="#cc0000"></font>(); </font><font face="新宋体" color="#006600"><br></font>(); <font face="新宋体"><font color="#ff9900"><br><br>(); </font><font color="#0000cc"></font> <font color="#006600"></font>"login_check_number"<font color="#0000cc"></font><font color="#006600">); </font></font><font face="新宋体"><font color="#ff9900">//昨晚看到了chianren上的驗證碼效果,就考慮了一下,用PHP的GD庫完成了類似功能<br>//先成生背景,再把產生的驗證碼放上去</font><font color="#0000cc"></font>$img_height<font color="#006600"></font>=<font color="#0000cc"></font> 120</font><font face="新宋体">; <font color="#006600"><br></font><font color="#0000cc">//先定義圖片的長、寬</font><font color="#006600"></font>$img_width<font color="#cc0000"></font><font color="#006600">$img_width</font><font color="#cc0000"></font>$img_width40<font face="新宋体" color="#006600"><br></font><font face="新宋体">; <font color="#ff9900">if(<br></font>$HTTP_GET_VARS<font color="#006600"></font>[<font color="#0000cc"></font><font color="#006600"></font>[<font color="#0000cc"></font> 🎜>]== <font color="#006600"></font>"init"<font color="#0000cc"></font><font color="#006600">){ </font> <font color="#0000cc"></font><font color="#006600">//srand(microtime(microtime PHP420後,srand不是必須的</font> <font color="#0000cc"></font>for(</font><font face="新宋体">$Tmpa<font color="#006600"><br>=</font><font color="#0000cc">0</font><font color="#006600">=</font><font color="#0000cc">0</font><font color="#006600">; </font>$Tmpa<font color="#0000cc"></font></font>4<font color="#0000cc"></font>;<font color="#006600"></font>$Tmpa<font color="#0000cc"></font> </font><font face="新宋体" color="#006600">$nmsg<br></font>.=<font face="新宋体"><font color="#ff9900">dechex<br><br>(<br></font>rand<font color="#0000cc"></font>(<font color="#006600"></font>0<font color="#0000cc"></font>,<font color="#006600"></font>15<font color="#0000cc"></font></font>)); <font face="新宋体" color="#006600"> }<br><br></font> }<font face="新宋体"><font color="#ff9900"><br>//by sports98 > $HTTP_SESSION_VARS[login_check_number<sg>; //$HTTP_SESSION_VARS[login_check_number] = strval /"1111","9999")); session中 //誰能下補充,可以同時產生字母和數字啊? ?----由sports98完成了<br><br> </sg></font><font color="#0000cc">$aimg </font><font color="#006600">= </font><font color="#0000cc">imageCreate</font>= <font color="#006600"></font>imageCreate<font color="#0000cc">= </font><font color="#006600"> img_height</font><font color="#0000cc">,</font><font color="#006600">$img_width</font></font>); <font face="新宋体"><font color="#ff9900"><br><afate> </afate></font><font color="#0000cc">(</font><font color="#006600">$aimg</font><font color="#0000cc">, </font><font color="#006600">255</font><font color="#0000cc">,</font>255<font color="#006600"></font>,<font color="#0000cc"><font color="#006600">255</font><font color="#0000cc">); </font><font color="#006600"></font>//圖片底色,Image<orocate></orocate></font>$black <font face="新宋体"><font color="#ff9900">= <br></font>ImageColorAllocate<font color="#0000cc"></font>(<font color="#006600"><font color="#0000cc">,</font><font color="#006600">0</font><font color="#0000cc">,</font><font color="#006600">0</font><font color="#0000cc">); 定義所需的黑色</font> <font color="#006600"></font>ImageRectangle<font color="#0000cc"></font>(<font color="#006600"></font>$aimg<font color="#0000cc"></font>,<font color="#006600"></font>$aimg</font><font face="新宋体">,<font color="#ff9900"><br>$aimg</font><font color="#0000cc">,</font><font color="#006600">$aimg</font><font color="#0000cc">,</font><font color="#006600">$aimg</font><font color="#0000cc"> </font><font color="#006600">0</font><font color="#0000cc">,</font><font color="#006600">$img_height</font><font color="#0000cc">-</font><font color="#006600">1</font><font color="#0000cc">-</font><font color="#006600">1</font><font color="#0000cc">,</font><font color="#006600"> img_width</font><font color="#0000cc">-</font><font color="#006600">1</font><font color="#0000cc">,</font><font color="#006600">$black</font></font>);<font face="新宋体"><font color="#ff9900">$black<br><br>);<br></font><font color="#006600"> //先成一黑色的長方形把圖片包圍</font><font color="#0000cc"> //下面該產生雪花背景了,其實就是在圖片上產生一些符號</font> <font color="#006600"></font> (<font color="#0000cc"></font><font color="#006600"> $i</font><font color="#0000cc">=</font><font color="#006600">1</font><font color="#0000cc">; </font><font color="#006600">$i</font><font color="#0000cc">10<font color="#006600">; </font></font>$i<font face="新宋体"><font color="#ff9900"> ) { <br></font><font color="#0000cc"></font>//先用100個測試<font color="#006600"></font><font color="#0000cc">//先用100個測試</font><font color="#006600"></font>//先用100個測試<font color="#0000cc"></font><font color="#006600"> 🎜></font>(<font color="#0000cc"></font>$aimg<font color="#006600"></font>,<font color="#0000cc"></font>1<font color="#006600"></font>,<font color="#0000cc"></font>mt_rand<font color="#006600"></font>(<font color="#0000cc"></font>1<font color="#006600"></font>,<font color="#0000cc"></font>$img_height<font color="#006600"></font>),<font color="#0000cc"></font>mt_rand<font color="#006600"></font><font color="#cc0000"></font>mt_rand<font color="#006600"></font><font color="#0000cc"> </font><font color="#006600">,</font><font color="#0000cc">$img_width</font><font color="#006600">),</font><font color="#0000cc">"*"</font><font color="#006600">,</font><font color="#0000cc">"*"</font><font color="#006600">,</font><font color="#0000cc">"*"</font><font color="#006600">,</font><font color="#0000cc"> 🎜>(</font><font color="#006600">$aimg</font><font color="#0000cc">,</font><font color="#006600">mt_rand</font><font color="#0000cc">(</font><font color="#006600">200</font><font color="#0000cc">(</font><font color="#006600">200</font><font color="#0000cc"></font><font color="#006600">255</font><font color="#0000cc">),</font></font>mt_rand<font face="新宋体" color="#006600"><br>(</font><font face="新宋体" color="#ff9900">200<br></font>,<font face="新宋体" color="#006600"><br>200<br></font>,<font face="新宋体"><font color="#ff9900">200,200,200,200,200,200、 🎜>),mt_rand(200,255,255 ); //哈,看到了吧,其實也不是雪花,就是產生*號而已。為了使它們看起來"雜亂無章、5顏6色",就得在1個1個生成它們的時候,讓它們的位置、顏色,甚至大小都用隨機數,rand()或mt_rand都可以完成。 } //上方產生了背景,現在就該把已經產生的隨機數放上來了。道理跟上面差不多,隨機數1個1個地放,同時讓他們的位置、大小、顏色都用成隨機數~~ <br> //為了區別於背景,這裡的顏色不超過200,上面的不小於200 <br> </font><font color="#006600">for (</font><font color="#0000cc">$i</font><font color="#006600">=</font><font color="#0000cc">0</font><font color="#006600">=</font><font color="#0000cc">0</font><font color="#006600"></font><font color="#0000cc">0</font><font color="#006600"></font></font></font>strlen<font color="#0000cc"></font>(<font color="#006600"></font>$HTTP_SESSION_VARS<font color="#0000cc"></font>[</font><font face="新宋体"><br>$i</font><font color="#0000cc"></font><font color="#006600"> ){ </font> <font color="#0000cc"></font>imageString<font color="#006600"> 🎜></font>, <font color="#0000cc"></font>mt_rand<font color="#006600"></font>(<font color="#0000cc"></font>3<font color="#006600"></font>,<font color="#0000cc"></font>5<font color="#006600"></font>,<font color="#0000cc"></font>5<font color="#006600">5</font> 🎜><font color="#0000cc">$i</font><font color="#006600">*</font><font color="#0000cc">$img_height</font><font color="#006600">/</font><font color="#0000cc">4</font><font color="#006600">/</font><font color="#0000cc">4</font><font color="#006600">/</font><font color="#0000cc">4</font><font color="#006600">(</font><font color="#0000cc">1</font><font color="#006600">,</font><font color="#0000cc">10</font><font color="#006600">),</font><font color="#0000cc">mt_y</font><font color="#006600">),</font><font color="#0000cc">mt_rand</font><font color="#006600">1</font><font color="#0000cc">,</font><font color="#006600">$img_width</font><font color="#0000cc">/</font><font color="#006600">2</font><font color="#0000cc">/</font><font color="#006600">2</font><font color="#0000cc">/</font><font color="#006600">2</font><font color="#0000cc">/</font><font color="#006600">2</font></font>[<font color="#006600"></font>login_check_number<font color="#0000cc"></font>][<font color="#006600"></font>$i<font color="#0000cc"></font>,<font color="#006600"></font>$i<font color="#0000cc"></font>,<font color="#006600">,</font>(<font color="#0000cc"></font>$aimg<font color="#006600"></font>,<font color="#0000cc"></font>mt_rand<font color="#006600"></font>(<font color="#0000cc"></font>0<font color="#006600"></font><font color="#0000cc"></font>0<font color="#006600"></font><font color="#0000cc"></font>100
),
mt_rand
(0,0,1
,15 🎜>),mt_rand(0,
200)); } Header( 🎜>
//告訴瀏覽器,下面的資料是圖片,而不要按文字顯示
ImagePng >$aimg