验证码问题

点击验证码进行验证码的刷新,但不刷新当前整个页面:

<tr>
			<td>验证码:</td>
			<td>
				<input type="text" id="yzm" name="yzm" size="10" placeholder="请输入验证码" class="yzm">
                <img id="code" class="img_yzm" src="./public/common/yanzhengma.php" οnclick="this.src+='?'"/> </td>
		</tr>
方法:   οnclick="this.src+='?'"   只刷新验证码图片,二部而不刷新整个页面

提交表单之后,验证码出错时,只弹出提示消息,不刷新页面,不清空已填用户名和密码:

if(!strcasecmp($yzm, $checkstr)==0){     // 判断验证码是否输入正确(不区分大小写)  
	    	echo "<script>";?>
	    	var t1 = document.getElementById("name");
	    	t1.value="<?php echo $name;?>";
	    	var t2 = document.getElementById("pwd");
	    	t2.value="<?php echo $pwd;?>";
	    	var txt4 = document.getElementById("yzm");
	    	alert('验证码输入错误!');
	    	txt4.focus();

	    	<?php
	    	echo "</script>";
	    }

验证码的实现:

<?php
session_start();  //启动session 
header('Content-type:image/png'); //输出头信息
$image_w=100;    //验证码图形的宽 
$image_h=25;     //验证码图形的高
$number=range(0,9);   //定义一个成员为数字的数组 
$character=range("Z","A");  //定义一个成员为大写字母的数组 
$bigcharacter=range("z","a"); //定义一个成员为小写字母的数组
$result1=array_merge($number,$character); //合并数组$number,$character
$result=array_merge($result1,$bigcharacter); //合并数组$result1,$bigcharacter
$string="";   //记录验证码字符串并初始化
$len=count($result );  //数组的长度
//随机生成验证码字符串
for($i=0;$i<4;$i++){    
	$new_number[$i]=$result[rand(0,$len-1)]; 
	$string=$string.$new_number[$i];
}
$_SESSION['string']=$string;  //使用$_SESSION变量传值 
$check_image=imagecreatetruecolor($image_w, $image_h); //创建图片对象
$white=imagecolorallocate($check_image,255, 255, 255);  //定义白色
$black=imagecolorallocate($check_image,0,0,0);     //定义黑色
imagefill($check_image,0,0,$white);   //填充背景的颜色为白色
//在验证码图片上加入50个干扰的黑点
for($i=0;$i<50;$i++){  
	imagesetpixel($check_image,rand(0,$image_w),rand(0,$image_h),$black);
}
//在背景图片上循环输出4位验证码
for($i=0;$i<count($new_number);$i++){
	$x=mt_rand(1,8)+$image_w*$i/4;  //设置字符所在x坐标
	$y=mt_rand(1,$image_h/4);    //设置字符所在y坐标
	//随机设定字符颜色
	$color=imagecolorallocate($check_image, mt_rand(0,200),mt_rand(0,200), mt_rand(0,200));
	//输入字符到图片中
	imagestring($check_image,5,$x,$y,$new_number[$i],$color);
}
imagepng($check_image);  //输出图片
imagedestroy($check_image);   //清除资源
?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值