Heim  >  Artikel  >  Backend-Entwicklung  >  帮我看一下哪里错了,怎么输都是显示输入错误

帮我看一下哪里错了,怎么输都是显示输入错误

WBOY
WBOYOriginal
2016-06-20 12:26:381036Durchsuche

nbsp;html>


    
    



    验证码:
        require('03.php');
    ?>

    提交
    
    if(isset($_POST['submit']))
    {
        session_start();
        $checkstr=$_SESSION['yzm']; //使用$_SESSION变量获取EX4_14_image.php页面上的验证码
        $str=$_POST['check']; //用户输入的字符串
        if(strcasecmp($str,$checkstr)==0) //不区分大小写进行比较
            echo "<script>alert('验证码输入正确!');</script>";
        else
            echo "<script>alert('输入错误!');</script>";
    }
    ?>





03.php
session_start();
function a($type, $length ,$clear){
    $nums=range(0,9);
    $xxzm=range('a','z');
    $dxzm=range('A','Z');
    $igorne=array('0','o','1','l');
    $chars=array();
    if($type==1)
        $chars=$nums;
    if($type==2)
        $chars=array_merge($nums,$xxzm);
    if($type==3)
        $chars=array_merge($nums,$xxzm,$dxzm);
    if($clear==true)
        $chars=array_diff($chars,$igorne);
    $keys=array_rand($chars,$length);
    $code="";
    foreach($keys as $key)
        $code=$code.$chars[$key];
    return $code;

}

$yzm=a(3,5,true);
$_SESSION['yzm']=$yzm;
echo $yzm;
?>


回复讨论(解决方案)

你在程序文件的开始处 和 接收提交的代码段中打印出  $_SESSION['yzm'] 和 $_POST['check'] 就会知道问题的所在了

require('03.php'); //产生验证码,并保存于 $_SESSION
而 $checkstr=$_SESSION['yzm']; //使用$_SESSION变量获取EX4_14_image.php页面上的验证码
总是在其后运行,显然获得的只是最新设置的内容

要怎么改呢?

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn