<?php
echo "session:".$_SESSION['liuyanyzm'].'<br>';
echo "表单:".$_POST['yzm'];
if(isset($_POST['submit']) and $_POST['submit']=="提交"){
if($_SESSION['liuyanyzm']!==$_POST['yzm']){
echo '<script type="text/javascript">alert("验证码错误!")</script>';
}
}
?>
搞不明白为什么$_SESSION['liuyanyzm']和$_POST['yzm']都能打印出来,但是为什么比较都是false呢?各位帮我看看,谢谢了!(初学者)

解决方案 »

  1.   

    var_dump($_SESSION['liuyanyzm'], $_POST['yzm']);
    贴出结果
      

  2.   

    int(21099) string(5) "37081"
    数据类型不一样,但是用“!=”也提示错误的啊,
    突然发现应该是$_sesion和$_post取得值的时间有差异用法的错误
      

  3.   

    加载页面的时候session取得的值,提交的时候session页面又产生了新的值,所以和提交的值不一样了,该怎么解决呢?
      

  4.   

    没有看到 $_SESSION['liuyanyzm'] 在哪里赋值的
      

  5.   

    因为是初学所以验证码只是简单的rand()函数,然后就赋值给session了
      

  6.   

    $_SESSION['liuyanyzm']和$_POST['yzm']类型不同,一个是int,一个string,所以肯定是false
    改成这样试试
    if($_SESSION['liuyanyzm']!=$_POST['yzm'])