下面是根据一些大神写的验证码,然后按自己爱好修改出来的,有什么缺点请多多指教。
<?php session_start(); $session=""; //文件头... header("Content-type: p_w_picpath/png"); //创建真彩色白纸 $im = @p_w_picpathcreatetruecolor(50, 20) or die("建立图像失败"); //获取背景颜色 $background_color = p_w_picpathcolorallocate($im, 255, 255, 255); //填充背景颜色(这个东西类似油桶) p_w_picpathfill($im,0,0,$background_color); //获取边框颜色 $border_color = p_w_picpathcolorallocate($im,200,200,200); //画矩形,边框颜色200,200,200 p_w_picpathrectangle($im,0,0,49,19,$border_color); //逐行炫耀背景,全屏用1或0 for($i=2;$i<18;$i++){ //获取随机淡色 $line_color = p_w_picpathcolorallocate($im,rand(200,255),rand(200,255),rand(200,255)); //画线 p_w_picpathline($im,2,$i,47,$i,$line_color); } //设置字体大小 $font_size=12; //随机文字方法---------》Qzm function qwe(){ //设置印上去的文字---------》Qzm $SteQ="ABCDEFGHIJKLMNOPQRSTUVWXYZ". "abcdefghijklmnopqrstuvwxyz". "01234567891234567890123456"; $randnum=rand(0,strlen($SteQ)); return $SteQ[$randnum]; } //写入随机字串 for($i=0;$i<4;$i++){ //获得文字 $qwe=qwe(); $session.=$qwe; //获取随机较深颜色 $text_color = p_w_picpathcolorallocate($im,rand(50,180),rand(50,180),rand(50,180)); //画文字 p_w_picpathchar($im,$font_size,12*$i+2,rand(0,5),$qwe,$text_color); } //判断源 /*if(isset($_SERVER['HTTP_REFERER'])){ if($_SERVER['HTTP_REFERER']!="源"){*/ $_SESSION['cheak']=md5(strtolower($session)); //显示图片 p_w_picpathpng($im); /* } }*/ //销毁图片 p_w_picpathdestroy($im); ?>