之前的方法似乎没什么效果~后来去翻了跟人家借的书~可以查到关于验证码的基础范例~
我就把它拿来改了改~
制作PHP的验证码
首先一定要去检查%WINDOWS%里面的php.ini
要启用这个
extension=php_gd2.dll(就是要把原来前面的分号去掉重新启动APACHE啦)
为什么要这个呢?因为它能够让你画图片~怎么说呢?
往下看就知道!
准备三个档:分别叫做 scue.php secure.php security.php(不用我说吧会改的自己改啰
)
好了贴吧你!放到自己网页中最好的位置
(都拿掉排版了~阅读上可能要自己努力了
)
以下是scue.php(验证完成后的结果网页)
复制程式
if(isset($HTTP_POST_VARS['authinput']))
{
if(strcmp($HTTP_POST_VARS['authnum'],$HTTP_POST_VARS['authinput'])==0)
{
echo("<td class=\"row1\" width=\"100%\">
认证成功!
</td>
</tr>
</table>");
}
else
{
echo("认证码输入错误!认证失败!");
}
以下是secure.php(这个看不懂的请不要乱改,这是产生图片验证码形式的程式)
复制程式
<?php
Header("Content-type: image/PNG");
srand((double)microtime()*1000000);
$img_height=68;
$img_width=32;
$im = imageCreate($img_height,$img_width);
$rndcolor = ImageColorAllocate($im,rand(20,255),rand(20,255),rand(20,255)); //rand(20,255)改20更大一点上视觉上更能清楚看到颜色中的数字
$black = ImageColorAllocate($im, 0,0,0);
$white = ImageColorAllocate($im, 255,255,255);
$gray = ImageColorAllocate($im, 200,200,200);
imagefill($im,68,30,$rndcolor);
imagestring($im, 5, 10, 8, $HTTP_GET_VARS['authnum'], $black);
for($i=0;$i<200;$i++)
{
$randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im, rand()%70 , rand()%30 , $randcolor);
}
ImagePNG($im);
ImageDestroy($im);
?>
以下是security.php(验证码输入的画面)
复制程式
echo ("<form action=scue.php method=post>
验证码:<input type=text name=authinput size=\"14\" maxlength=\"4\">
<input type=\"submit\" id=\"submit\" value=\"验证\">
<div align=\"center\">
<input type=hidden name=authnum value="); echo $authnum; echo(">
</div>
<img src=secure.php?authnum=");echo $authnum; echo(">
</form>");
有问题就来吧~
这是可以产生4位数的验证码的PHP程式~其中验证码是使用php_gd2.dll中的imageCreate产生.PNG形式的图片而且还附有乱数干扰的颗粒(随机颜色)及随机变换的背景颜色~算是比较完善的了@@
不过我没用SESSION(学的不精~还不是很会那部份~)~把这两天做的程式逛想给大家~让其他人也能查到这些资讯^^