为什么密码输入错误却没有显示用户名和密码错误?

为什么密码输入错误却没有显示用户名和密码错误?

<?php
//1.创建数据库 id adminuser adminpass created_at login_at login_ip 
//2.连接数据库 imooc_shop
require '../db.func.php';
require '../tools.func.php';
//POST提交
if(!empty($_POST['adminuser'])){
	//3.判断用户名和密码是否正确
	$prefix=getDBPrefix();
	$adminuser=$_POST['adminuser'];
	$adminpass=md5($_POST['adminpass']);
	$sql="SELECT id,adminuser FROM {$prefix}admin
	     WHERE adminuser='$adminuser'
	     AND adminpass='$adminpass'";
	$res=queryOne($sql);
	
	if($res){
	//4.写入session
		setSession('admin',['adminuser'=>$adminuser,id=>$res['id']]);
		$login_at=date('Y/m/d H:i:s');
		$ip=$_SERVER['REMOTE_ADDR']=='::1'?'127.0.0.1':$_SERVER[            'REMOTE_ADDR'];
		$login_ip=ip2long($ip);
		$sql="UPDATE{$prefix}admin SET login_at='$login_at		 ',login_ip='$login_ip'
				  WHERE id='{$res['id']}'";
		execute($sql);
		//5.跳转到index.php
		header('location:index.php');
	}else{
	  setInfo('用户名或者密码错误');
	}
}
?>


<!doctype html>
<html>
<head>
  <title>慕课商城</title>
  <!-- Required meta tags -->
  <meta charset="utf-8">
  <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  <!--     Fonts and icons     -->
  <link rel="stylesheet" type="text/css" href="assets/css/googlefonts.css?family=Roboto:300,400,500,700|Roboto+Slab:400,700|Material+Icons" />
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css">
  <!-- Material Kit CSS -->
  <link href="assets/css/material-dashboard.css?v=2.1.1" rel="stylesheet" />
</head>

<body>
<?php if(getInfo()) echo hasInfo();?>
  <div class="wrapper ">
    <div>
      <div>
        <div class="container" style="width: 50%;margin-top: 250px;">
          <div class="row">
            <div class="col-md-12">
              <div class="col-md-12">
                <div class="card">
				
                  <div class="card-header card-header-primary">
                    <h4 class="card-title">登录</h4>
                    <p class="card-category">以管理员身份登录后台</p>
                  </div>
                  <div class="card-body">
                    <form action="login.php" method="post">
                      <div class="row">
                        <div class="col-md-12">
                          <div class="form-group">
                            <label class="bmd-label-floating">用户名</label>
                            <input type="text" name="adminuser" class="form-control">
                          </div>
                        </div>
                      </div>
                      <div class="row">
                        <div class="col-md-12">
                          <div class="form-group">
                            <label class="bmd-label-floating">密码</label>
                            <input type="password" name="adminpass" class="form-control">
                          </div>
                        </div>
                      </div>
                      <button type="submit" class="btn btn-primary pull-right">登录</button>
                      <div class="clearfix"></div>
                    </form>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
  <script src="assets/js/core/jquery.min.js"></script>
  <script src="assets/js/core/popper.min.js"></script>
  <script src="assets/js/core/bootstrap-material-design.min.js"></script>
</body>

</html>


正在回答

登陆购买课程后可参与讨论,去登陆

4回答

您好,输出提示信息的判断错误,应该为:另建议写到此处位置,不建议写在body开头。

http://img1.sycdn.imooc.com//climg/5cb69af20001e52d04900185.jpg

祝学习愉快!

  • 消除bug 提问者 #1
    和那个没有关系,那个我试过
    2019-04-17 19:11:18
  • 消除bug 提问者 #2
    原始代码老师看下
    2019-04-17 19:12:32
提问者 消除bug 2019-04-17 19:12:06
<?php
	//[
	// 'shop'=>[
	// 'user'=>'zhansan',
	// 'pass'=>'123'
  // ]
  // 'admin'=>[
	// 'user'=>'wusan',
	// 'pass'=>'456'
  // ]
  //]
function setSession($key,$data,$prefix=''){
	session_id()||@session_start();
	if(!empty($prefix)){
		$_SESSION[$prefix][$key]=$data;
	}else{
		$_SESSION[$key]=$data;
	}
}

function getSession($key,$prefix=''){
	session_id() || @session_start();
	if(!empty($prefix)){
		return isset($_SESSION[$prefix][$key])?$_SESSION[$prefix][$key]:[];
	}else{
		return isset($_SESSION[$key])?$_SESSION[$key]:[]; 
	}
}

function deleteSession($key,$prefix=''){
	session_id()||@session_start();
	if(!empty($prefix)){
		$_SESSION[$prefix][$key]=null;
	}else{
		$_SESSION[$key]=null;
	}
}

function setInfo($info){
	setSession('info',$info,'system');
}

function getInfo(){
	$info=getSession('info','system');
	deleteSession('info','system');
	return $info;
}

function hasInfo(){
	return !empty(getSession('info','system'));
}


提问者 消除bug 2019-04-17 19:11:39
<?php
function connect(){
	$config=require dirname(__FILE__).'/config.php';
	$mysqli= @mysqli_connect(
		$config['DB_HOST'].':'.$config['DB_PORT'],
		$config['DB_USER'],
		$config['DB_PASS'],
		$config['DB_NAME']
	)or die('Content-type:'.mysqli_connect_errno().mysqli_connect_error());
	mysqli_set_charset($mysqli,$config['DB_CHARSET']);
	return $mysqli;
}


function queryOne($sql){
	$mysqli = connect();
	$result = mysqli_query($mysqli,$sql);
	$data = [];
	if($result && mysqli_num_rows($result)>0){
		$data=mysqli_fetch_assoc($result);
	}
	return $data;
}


function getDBPrefix(){
	$config=require dirname(__FILE__).'/config.php';
	return $config['DB_PREFIX'];
}


function execute($sql){
	$mysqli=connect();
	mysqli_query($mysqli,$sql);
	return mysqli_affected_rows($mysqli)>0;
}


好帮手慕查理 2019-04-17 10:41:39

您好,请查询接收的用户名和密码是否正确,在queryOne()方法查询之后,查询的结果是什么?密码用户名的判断条件是根据queryOne()方法返回值进行的处理,请输出queryOne()方法返回值结果检测。祝学习愉快!

  • 提问者 消除bug #1
    queryOne()输出为空
    2019-04-17 10:47:43
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
PHP小白零基础入门
  • 参与学习           人
  • 提交作业       626    份
  • 解答问题       4928    个

想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师