+ -
当前位置:首页 → 问答吧 → 登录验证

登录验证

时间:2010-10-12

来源:互联网

我在前台页面还没有点登录,就可以直接打开文件,以下是我的登录代码,请高手看下是不是少了点什么
<?php

   $conn=mysql_connect("localhost","root","");
 mysql_query("set names 'utf-8'");
mysql_query("SET CHARACTER SET UTF8");
mysql_query("SET CHARACTER_SET_RESULTS=UTF8'");
   mysql_select_db("xinwen",$conn);

   $username  = trim($_POST['username']);
// 取得客户端提交的密码并用md5()函数时行加密转换以便后面的验证
$password  = md5($_POST['password']);
// 设置一个错误消息变量,以便判断是否有错误发生
// 以及在客户端显示错误消息。 其初值为空。
$errmsg = '';
     if (empty($username)){ header("Location:index.php");}
   if (!empty($username)) {  // 用户填写了数据才执行数据库操作
    //---------------------------------------------------------
    // 数据验证, empty()函数判断变量内容是否为空
    if (empty($username)) {
        $errmsg = '数据输入不完整';  header("Location:index.php");
    }
    //---------------------------------------------------------
    if(empty($errmsg)) { // $errmsg为空说明前面的验证通过
        // 调用mysqli的构造函数建立连接,同时选择使用数据库'test'
        $db = @new mysqli("localhost", "root", "", "xinwen");
        // 检查数据库连接
        if (mysqli_connect_errno()) {
            $errmsg = "数据库连接失败!<br>\n";
        }
        else {
            // 查询数据库,看用户名及密码是否正确。
            $sql = "SELECT * FROM t_user WHERE f_username='$username' AND f_password='$password'";
            //echo $sql;
            $rs = $db->query($sql);
            // $rs->num_rows判断上面的执行结果是否含有记录,有记录说明登录成功。
            if ($rs && $rs->num_rows > 0) {
                // 使用session保存当前用户
               session_start();

                $_SESSION['uid'] = $username;
                $_SESSION['admin']== true ;
                // 在实际应用中可以使用前面提到的重定向功能转到主页
               $errmsg = "登录成功!";
 header("Location: fenxi.php");     //跳向首页
    exit;
                // 更新用户登录信息
                $ip = $_SERVER['REMOTE_ADDR'];  // 获取客户端的IP
                $sql = "UPDATE t_user SET f_logintimes = f_logintimes + 1,";
                $sql .= "f_lasttime=now(), f_loginip='$ip' ";
                $sql .= " WHERE f_username='$username'";
                $db->query($sql);
            }
            else {$_SESSION["admin"] = false;
                $errmsg = "用户名或密码不正确,登录失败!";
                header("Location: admin.php");
            }
            // 关闭数据库连接
            $db->close();
        }
    }
}
?>

作者: xudongli   发布时间: 2010-10-12

是你没写验证文件吧!你需要验证的文件里加 登录判断了吗!

作者: ldwz   发布时间: 2010-10-12