我的程序,这里登录的form 和 dologin.php现在问题是点了登录之后直接跳了一个乱码文件,完全没有判断我的验证码。求大神解决 <form action="dologin.php" method="post">
<p>
<label for="admin">账&nbsp&nbsp&nbsp号:&nbsp&nbsp&nbsp<input type="text" name="admin"
 id="admin" value="" size="30" class="text" /> <br /></label>
</p>
<p>
<label for="passwd">密&nbsp&nbsp&nbsp码:&nbsp&nbsp&nbsp<input type="text" name="passwd" id="passwd" value="" size="30" class="text" /> <br /></label>
</p>
<p>
<label for="verify">验证码:&nbsp&nbsp&nbsp<input type="text" name="verify"
   id="verify" value="" size="30" class="text" /> <br /></label> <img src="getVerify.php" alt="" />
</p>                        <input type="submit" value="登录" class="login_btn" />
<p class="last">
                            <input type="submit" value="登录" class="login_btn" />
<input type="submit" value="Login" class="novisible" />
<a href="main.php" class="button form_submit"><small
class="icon play"></small><span>登录</span></a>
</p>
<div class="clear"></div> </form><?php
require_once '../include.php';session_start();
$admin = $_POST['admin'];
$password = md5($_POST['passwd']);
$verify = $_POST['verify'];
$verify0 = $_SESSION['verify'];if ($verify == $verify0) {
    $sql = "select * from admin where username='{$admin}' and passwd='{$password}'";
    $res = checkAdmin($sql);
    print_r($res);
} else {
    echo "<script>alert('验证码错误');</script>";
    echo "<script>window.location='login.php';</script>";
}

解决方案 »

  1.   

    有几个疑点只判断验证码吗? 用户名和密码呢?
    验证码是怎么生成的?session里有值吗?POST过来的有值吗?session的用法是这样的吗?
      

  2.   

    session里的verify是经过了加密吗??直接跳了一个乱码文件指的是什么样的文件,URL是什么??
      

  3.   

    你所讲的乱码页面,应该是显示了<script>alert('验证码错误');</script>而你的文件不是utf8,所以显示乱码导致不能解释。1.首先把php转为utf8
    2.加多一句<?php
    require_once '../include.php';
     
    session_start();
    $admin = $_POST['admin'];
    $password = md5($_POST['passwd']);
    $verify = $_POST['verify'];
    $verify0 = $_SESSION['verify'];
     
    if ($verify == $verify0) {
        $sql = "select * from admin where username='{$admin}' and passwd='{$password}'";
        $res = checkAdmin($sql);
        print_r($res);
    } else {
        echo '<meta http-equiv="content-type" content="text/html;charset=utf-8">';
        echo "<script>alert('验证码错误');</script>";
        echo "<script>window.location='login.php';</script>";
    }
      

  4.   


    多谢你的解答,我的include头文件里面包括了修改编码方式,但我还是把你那句加上了,报错是一样的,附图
      

  5.   

    看你的乱码是图片文件输出在html了。
    把这句先去掉看看。
    <img src="getVerify.php" alt="" />
      

  6.   

    mysql_connect你的php版本太高,连接数据库,使用mssql
      

  7.   

    纠正 mysqli
      

  8.   


    太谢谢你了,之前处理了一些问题,最后还发生了问题,不过结果最后一步是用mysqli解决的,多谢!