php验证码判断

验证码页面:<?phpHeader("Content-type:image/gif");/*04.*初始化05.*/$border=0;//是否要边框1要:0不要$how... 验证码页面:
<?php
Header("Content-type: image/gif");
/*
04.* 初始化
05.*/
$border = 0; //是否要边框 1要:0不要
$how = 4; //验证码位数
$w = $how*20; //图片宽度
$h = 25; //图片高度
$fontsize = 5; //字体大小
$alpha = "abcdefghijkmnopqrstuvwxyz"; //验证码内容1:字母
$number = "023456789"; //验证码内容2:数字
$randcode = ""; //验证码字符串初始化
srand((double)microtime()*1000000); //初始化随机数种子

$im = ImageCreate($w, $h); //创建验证图片

/*
19.* 绘制基本框架
20.*/
$bgcolor = ImageColorAllocate($im, 255, 255, 255); //设置背景颜色
ImageFill($im, 0, 0, $bgcolor); //填充背景色
if($border)
{
$black = ImageColorAllocate($im, 0, 0, 0); //设置边框颜色
ImageRectangle($im, 0, 0, $w-1, $h-1, $black);//绘制边框
}

/*
30.* 逐位产生随机字符
31.*/
for($i=0; $i<$how; $i++)
{
$alpha_or_number = mt_rand(0, 1); //字母还是数字
$str = $alpha_or_number ? $alpha : $number;
$which = mt_rand(0, strlen($str)-1); //取哪个字符
$code = substr($str, $which, 1); //取字符
$j = !$i ? 4 : $j+15; //绘字符位置
$color3 = ImageColorAllocate($im, mt_rand(0,100), mt_rand(0,100), mt_rand(0,100)); //字符随即颜色
ImageChar($im, $fontsize, $j, 3, $code, $color3); //绘字符
$randcode .= $code; //逐位加入验证码字符串
}

/*
45.* 添加干扰
46.*/
for($i=0; $i<5; $i++)//绘背景干扰线
{
$color1 = ImageColorAllocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); //干扰线颜色
ImageArc($im, mt_rand(-5,$w), mt_rand(-5,$h), mt_rand(20,300), mt_rand(20,200), 55, 44, $color1); //干扰线
}
for($i=0; $i<$how*40; $i++)//绘背景干扰点
{
$color2 = ImageColorAllocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); //干扰点颜色
ImageSetPixel($im, mt_rand(0,$w), mt_rand(0,$h), $color2); //干扰点
}

//把验证码字符串写入session
session_start();
$_SESSION['rand'] = $randcode;

/*绘图结束*/

Imagegif($im);
ImageDestroy($im);

?>

登陆页面:
用户名:<input name="username" id="username" type="text" /><br />
密 码:<input name="passwd" id="passwd" type="password"><br />
验证码:<input type="text" name="number"/>
<img style="cursor:pointer" src="admin_yzm.php" onclick="this.src=this.src+'?' + Math.random();" />
<input type="submit" name="submit" value="登 录"/>

求一个登陆验证代码,要有验证 验证码代码哦。谢谢
展开
 我来答
百度网友71420e7
推荐于2017-11-25 · TA获得超过123个赞
知道小有建树答主
回答量:115
采纳率:0%
帮助的人:90万
展开全部
session_start();
$str_number = trim($_POST['number']);
if(strtolower($_SESSION['rand'])==strtolower($str_number )){
echo "验证码正确";
}else{
echo "验证码不正确";
}

最好加strtolower函数转换下大小写,这样子,用户在输入时就不用区分大小写了。不然用户体验会很麻烦,这是我个人理解。
更多追问追答
追问
用户登陆验证码可以和图片验证码分开写还是一起写?
追答
没有太明白你的意思,验证码用单一的文件放在一边就可以了,然后需要的时候调用就可以。只不过在判断的时候要加入session_start()
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TableDI
2024-07-18 广告
在Excel中,使用`VLOOKUP`函数进行单一条件查找非常常见,但`VLOOKUP`本身并不直接支持双重条件。然而,你可以通过一些间接方法实现。一种方法是将两个条件合并为一个标识符(例如,通过连接或串联),然后在另一个区域中查找此标识符... 点击进入详情页
本回答由TableDI提供
什么木桶不能装水
2012-08-02 · TA获得超过637个赞
知道小有建树答主
回答量:211
采纳率:0%
帮助的人:188万
展开全部
$str_number = trim($_POST['number']);
session_start();
if('' == $str_number || $str_number != $_SESSION['rand']) die('验证码不正确。');
追问
判断页面需要session_start();吗?
追答
要的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式