![]() |
|
首页 │ Apache │ Linux│ Java│ MySQL│ 注册│帮助 | |||
相关问题
问题是效验码在WIN下好用,到LINUX上就不好用了,代码如下:
验证码checkNumber.php
CODE: session_start(); function myf($l){ if(!ereg("^[0-9]+$",$l) || $l>1000) return; for($c='123456789ABCDEFGHIJKLMNPQRSTUVWXYZ',$r='';$l>0;$l--,$r.=$c[rand(0,61)]); return $r; } $authnum=myf(6); session_register("auth"); $auth=$authnum; //生成验证码图片 Header("Content-type: image/PNG"); $im =@imagecreate($wid=11*strlen($authnum),20); imagefill($im,68,30,ImageColor($im,'#f7f7f7')); //将四位整数验证码绘入图片 //位置交错 for ($i = 0; $i < strlen($authnum); $i++) { $i%2 == 0?$top = 1top = 4; imagestring($im, 5, 10*$i+6, $top, substr($authnum,$i,1),ImageColor($im,'#FF0000')); } for($i=0;$i<150;$i++) //加入干扰象素 { imagesetpixel($im, rand()%90 , rand()%30 , ImageColor($im,'#FF7700')); } ImagePNG($im); ImageDestroy($im); function ImageColor($im,$color) { preg_match_all("/([0-f]){2,2}/i",$color,$out); if(count($out[0])!=3)$out[0]=array_pad ($out[0],3,0); return ImageColorAllocate($im, hexdec($out[0][0]),hexdec($out[0][1]),hexdec($out[0][2])); } |
输入验证码页面test.php
CODE: <? session_start();?> <? header("content-type:text/html;charset=gb2312");?> <form action="test01.php" method="post"> <input type=text name=number> <img src=checkNumber.php><? session_unset();?> <input type="submit" name="Submit" value="提交" /> </form> |
验证页面test01.php
CODE: session_start(); header("content-type:text/html;charset=gb2312"); $se=$_SESSION['auth']; $number=$_POST['number']; if($number != $se || empty($number)) { print("校验码不正确!"); die(); } else{ print("确!"); die(); } |
echo $se后,发现没有值~~~
提问者:jone_linux 08-22 12:12
答复

