搜索

首页  >  问答  >  正文

为什么随机函数创建的验证码与表单输入的验证码总是相差一步,不管怎么输两个的值都不一致???

<form action="" method="post">

<p>请输入验证码:<input type='text' name='v1'>

<?php 

session_start();   //启动session

$input = array_merge(range('a', 'z'),range('A', 'Z'),range('0', '9'));  //创建验证码数组

shuffle($input);    //打乱数组

$result = '';       //验证码结果初始化

for ($i=0; $i < 4 ; $i++) {     //循环取出前四位验证码

$result .= $input[$i];       //通过循环赋值验证码

}

echo $result;    //输出验证码

$_SESSION['Result'] = $result;   //将验证码的结果赋值到session

// setcookie(session_name(),session_id(),time()+30);

if (isset($_REQUEST['v1'])) {      //判断输入框是否有值

if (strtoupper($_REQUEST['v1']) == strtoupper($_SESSION['Result'])) {   //判断验证码的是正确

   echo "<script>alert('验证输入正确,登录成功!!')</script>";    

   unset($_SESSION['Result']);

}else{

echo "<br/>验证输入错误,请重新输入!!<br/>";

echo "随机函数的值为:".$_SESSION['Result']."<br/>";

echo '表单输入的表单值为:'.$_REQUEST['v1'];

}

}

?>

</p>

<input type="submit" value="确认登录">    <!-- 提交输入框的值 -->

</form>



xiao~莫xiao~莫2069 天前815

全部回复(0)我来回复

暂无回复
  • 取消回复