代码如下
[php]
<?php
session_start();
include ("../inc/conn.php");
if ($_POST[action] == "checkin") {
    $username = $_POST[username];
    $password = md5($_POST[password]);
    $code = $_POST[code];
//============================================================
   if ($_SESSION[codes] != $code) {
        echo "<meta http-equiv='refresh' content='2;url=index.php'> 您输入的验证码有误2秒后返回,请稍等……………………";
    }
//到这一步是正确的
//下面我本人是将通过数据库中的用户名和密码来查询是否正确
else
    {
        $sql = mysql_query("select * from jdb_admin where username='" . $username . "'and password='" . $password . "'");
    if ($sql) {
            $_SESSION[username] = $username;
            //echo "1";
                }
                else {
                echo "<meta http-equiv='refresh' content='2;url=index.php'> 您输入的用户名或密码有误2秒后返回,请稍等……………………";
            }//===========以上是判断验证码,用户名和密码            if ($_SESSION[username] != "") {
            header("location:main.php");
        } else {
            echo "<meta http-equiv='refresh' content='2;url=index.php'> 对不起您不是管理员,没有操作权限请登陆后再操作...............,";
            }    
                           }
    }
?>
[/php]
本人是个新手可能代码写的有点乱,
我的思路是传值过来后先进行验证码的判断,然后再用库用查询与我输入的用户名和密码相一致再跳转到mian.php文件
可是不管我怎么输用户名和密码都是可以进入后台来操作,验证码部份是正确的。
我想问一下照常理来说应该$sql的值是一个布乐值吧,可是我试过没有反应,郁闷,花了半天我还是没有解决,希望哪位高手能帮一下忙

解决方案 »

  1.   

             if ($sql) { 
                $_SESSION[username] = $username; //这块出问题了吧。
                //echo "1"; 
                    } 
                    else { 
                    echo " <meta http-equiv='refresh' content='2;url=index.php'> 您输入的用户名或密码 
                } 也就是说你的if($sql)总是成立的,你好好检查这sql语句吧!还有呀,$_SESSION['username']这么写吧。
      

  2.   

    if(mysql_num_rows($sql)){
       ...
    }