我无法访问数据库

时间:2019-10-15 22:02:09

标签: javascript php html sql session

我正在从数据库中登录用户的数据,但是每次我尝试登录时都无法访问,并且我不知道php代码有什么问题,有人可以在这方面帮助我吗 我认为连接没有问题,但是我得到的错误是“密码错误”

php代码                        

     if (isset($_POST['submit'])){

  $dbServName = "localhost";
  $dbuser = "root";
  $dbPassword = "";
  $dbname = "formlab2";
  $conn=mysqli_connect($dbServName,$dbuser,$dbPassword,$dbname);

  $email = $_POST['email'];
  $password=$_POST['Password'];

 $sql = "SELECT * FROM users WHERE email=? AND password=?;";
 $stmt = mysqli_stmt_init($conn);

if (!mysqli_stmt_prepare($stmt,$sql)) {
  echo "error";

}


else{

  mysqli_stmt_bind_param($stmt,"ss",$email,$password);
  mysqli_stmt_execute($stmt);
  $result= mysqli_stmt_get_result($stmt);
  if ($row = mysqli_fetch_assoc($result)) {
    $pswcheck = password_verify($password, $row['password']);
    if ($pswcheck == false) {
      echo "WRONG PASSWORD";
    }
    else if ($pswcheck == true) {
        session_start();
        $_SESSION['userID']= $row ['user_id'];
        header("location: ../wel.php");

    }

  }
           }

         }

1 个答案:

答案 0 :(得分:0)

用于连接数据库,我使用以下方法:

<?php
$DB_HOST = 'localhost';
$DB_USER = 'root';
$DB_PASS = 'root';
$DB_NAME = 'name-of-db';
// $DB_PORT = '8889';
$link = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
//$link = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME, $DB_PORT);
if ($link->connect_error) { 
   die('Connect Error ('.$link->connect_errno.') '.$link->connect_error);
}
$link->set_charset('utf8');

我注意到您隐藏了数据库密码,但是如果您在localhost中工作,那么它应该只是root用户,以防万一。为了使您自己更轻松,您可以将此代码保存在一个单独的文件中,然后用户“包含”或“需要”将代码插入页面。那么您可以轻松地将文件包含在多个页面上。

然后进行登录过程: 所以它不是数据库连接,而是登录过程? 请尝试在文档顶部添加session_start。 这是我之前登录过的方式,也许可以帮助您:

$sql = 'SELECT id, pwhash FROM tablename WHERE username=?';

            $stmt = $link->prepare( $sql );

            $stmt->bind_param( 's', $un );
            $stmt->execute();
            $stmt->bind_result( $id, $pwhash);
            while ( $stmt->fetch() ) {
            if ( password_verify( $pw, $pwhash ) ) {
                $_SESSION[ 'uid' ] = $id;
                $_SESSION[ 'uname' ] = $un;
}

一些小差异。我的password_verify上有一个if语句。试试吧。