php判断用户输入验证码是否正确

qq_37436652 2017-06-09 10:40:25
image.php
<?php
header("Content-Type:image/jpeg");

session_start();

//产生四位的随机验证码
$trueCode = "";
$code = "";
for($i=0;$i<4;$i++)
{
$r = rand(0,9);
$trueCode .= $r;//真实验证码

$code .= $r."";//显示验证码

}

$_SESSION["trueCode"] = $trueCode;

$img = imagecreatetruecolor(70,25);//创建一张图片,并指定宽、高

//画背景
$bg = imagecolorallocate($img,rand(100,255),rand(100,255),rand(100,255));//设置字体色
imagefilledrectangle($img,0,0,70,25,$bg);

$bg = imagecolorallocate($img,rand(0,150),rand(0,150),rand(0,150));
imagestring($img,5,5,5,$code,$bg);//把随机数画到图片

//画线
for($i=0;$i<2;$i++)
{
$lineColor = imagecolorallocate($img,rand(0,255),rand(0,255),rand(0,255));
imageline($img,rand(0,70),rand(0,25),rand(0,70),rand(0,25),$lineColor);
}

//画点
for($i=0;$i<100;$i++)
{
$pointColor = imagecolorallocate($img,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($img,rand(0,70),rand(0,25),$pointColor);
}

imagejpeg($img);

?>
index.php 中的验证码判断
if($userName !=Null)
{
if($checkCode == $trueCode)
{
$result = Manager::checkLogin($userName,$password);
if($result == Null)
{
echo "<script type='text/javascript'>";
echo "alert('用户名或密码不正确!');";
echo "window.location='admin/index.php';";
echo "</script>";
}
else
{
$_SESSION["userMsg"] = $result;
echo "<script type='text/javascript'>";
echo "alert('正在进入后台管理...');";
echo "window.location='admin/index.php';";
echo "</script>";
}
}
else
{
echo "<script type='text/javascript'>";
echo "alert($userName);";
echo "window.location='admin/index.php';";
echo "</script>";
}
}
<div class="loginDiv21">
<input type="text" name="checkCode" size="8" maxlength="4"><img id="myImg" onclick="changeImg()" style="cursor: pointer;"
src="image.php" title="看不清换一张" alt="看不清换一张" align="absmiddle">
</div>

验证码总是不判断直接跳过求解决
...全文
486 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2017-06-09
  • 打赏
  • 举报
回复
if($checkCode == $trueCode) 这两个变量的值是怎么来的?
傲雪星枫 2017-06-09
  • 打赏
  • 举报
回复
if($checkCode == $trueCode) 改为 $checkCode = $_REQUEST['checkCode']; // 获取提交的值 if($checkCode ==$_SESSION["trueCode"]) 你现在给出的代码并没有提交checkCode的值,没有给出完整代码。
卿柠 2017-06-09
  • 打赏
  • 举报
回复
如果$checkCode是用户输入的验证码的话,那应该和生成的验证码$_SESSION["trueCode"]比较

21,890

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧