<?php error_reporting(E_ALL ^ E_NOTICE); //屏蔽Notice级别的错误 //建立错误数组 $error=[]; //让表单先本页提交,进行验证 if ($_SERVER['REQUEST_METHOD'] == 'POST') { if (empty($_POST['name'])) { $error[0]= '用户名不能为空!'; //把错误信息写入错误数组,下标为0 }else { $name = htmlspecialchars(trim($_POST['name'])); } if (empty($_POST['password'])) { $error[1] = '密码不能为空!'; //把错误信息写入$error数组,下标为1 }else { $password = htmlspecialchars(trim($_POST['password'])); } //进行后端验证 //1连接数据库,采用pdo连接 //2.进行查询,如果匹配,登录成功 if ($name && $password) { //1连接查询操作 try { //1.1 数据源$dsn ,登录数据库的用户名和密码 $dsn = 'mysql:host=localhost; dbname=demo1'; $dbUser = 'root'; $dbPsd = 'root'; //1.2 new一个pdo对象 $pdo = new PDO($dsn,$dbUser,$dbPsd); //1.3 查询语句 $sql = "SELECT `name`,`psd` FROM `userLog` WHERE `name`=:name AND `psd`=sha1(:password )"; //1.4 生成预处理对象,绑定参数 $pdoStmt = $pdo->prepare($sql); $pdoStmt->bindParam(':name',$name,PDO::PARAM_STR); $pdoStmt->bindParam(':password',$password,PDO::PARAM_STR); //1.5执行 $result = $pdoStmt->execute(); //$result为真进行下一步 if ($result == true) { //如果查询到的记录为一条则用户登录成功 if ($pdoStmt->rowCount() == 1) { //把用户信息写入cookie setcookie('name',$name,time()+60*60,'/logDemo/index_log.php'); setcookie('password',sha1($password),time()+60*60,'/logDemo/index_log.php'); echo '<script>alert("登录成功");location.href="admin.php"</script>'; }else { echo '<script>alert("用户名或密码错误,请重新输入!");history.back()</script>'; } }else { print_r($pdoStmt->errorInfo()); } }catch (PDOException $e) { //如果连接失败,输出错误信息 echo $e->getMessage(); //数据库连接失败,退出 die('数据库连接失败,已退出!'); } }else //这里不应再写弹出语句,因为只要刚刚打开网站$name && $password必然为假 { define('NOTE','请仔细检查你所要填的语句哦~~'); } } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="dist/css/bootstrap.css"> <script src="jquery-3.2.1.js"></script> <script src="dist/js/bootstrap.js"></script> <style> .form-control { border: none; border-bottom: 1px solid #31b0d5; } .row { margin-top: 100px; } </style> <title>欢迎登录</title> </head> <body> <div class="container"> <div class="row " align="center"> <h3 align="center">欢迎登录<small>Login</small></h3> <form class="form-horizontal col-sm-offset-4 col-sm-4" action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post"> <div class="form-group"> <div class="col-sm-12"> <input type="text" class="form-control" id="userName" name="name" placeholder="userName"> </div> <P class="col-sm-12" align="center" ><?php empty($error[0])? null:print_r($error[0]) ?></P> </div> <div class="form-group"> <div class="col-sm-12"> <input type="password" class="form-control" id="Password" name="password" placeholder="Password"> </div> <P class="col-sm-12" align="center" ><?php empty($error[1])? null:print_r($error[1]) ?></P> </div> <div class="form-group"> <div class="col-sm-12"> <button type="submit" class="btn btn-block btn-primary">登录</button> </div> <P class="col-sm-12" align="center" ><?php echo NOTE ?></P> </div> </form> </div> </div> </body> </html>