簡體   English   中英

使用mysqli和PHP從表中獲取用戶ID

[英]fetching user ID from a table using mysqli and PHP

我試圖讓用戶登錄並從數據庫中的表獲取他們的“ id”,以便我可以使用它來將SESSION設置為true。 我能夠讓用戶登錄,但是當我嘗試獲取用戶ID時,我仍然遇到相同的錯誤... 警告: mysqli_fetch_assoc()期望參數1為mysqli_result,給定為布爾值……這是我的代碼:

    if(isset($_POST['login'])){
    $email = $_POST['userEmail'];
    $password = $_POST ['userPass'];
    $passwordHash = md5($password);

    if(!empty($email) && !empty($password)){

        $query = "SELECT email, password FROM users WHERE email=? AND password=?";
        if($stmt = $DB->prepare($query)){   
            $stmt->bind_param('ss',$email,$passwordHash);
            $stmt->execute();
            $stmt->bind_result($email,$passwordHash);
            $stmt->store_result();

            if($stmt->num_rows==1){
                echo 'logged in';
                $getID = mysqli_fetch_assoc(mysqli_query($DB, "SELECT userID FROM users"));
                echo $userID = $getID['userID'];
            }
            else{
                echo 'Invalid Email or Password';
            }
            $stmt->close();
        }
    }
    else{
        echo 'You must enter an email and pass.';
    }

}
$DB->close();

請幫助,這對我來說非常令人沮喪。

您的查詢返回false,因為失敗。

在單獨的安全頁面上,我們將調用restricted/connect.php

<?php
function db(){
  return new mysqli('host', 'username', 'password', 'database');
}
?>

在您的whatever.php頁面上:

<?php
include 'restricted/connect.php'; $db = $db();
if(isset($_POST['login'])){
  $cf = 'Connection Failure: ';
  if($db->errno)die($cf.$db->error);
  $email = $_POST['userEmail']; $password = $_POST['userPass'];
  $passwordHash = md5($password);
  if(!empty($email) && !empty($password)){
    if($qry = $db->query("SELECT email, password, userID FROM users WHERE email='$email' AND password='$passwordHash'")){
      if($qry->num_rows > 0){
        $res = $qry->fetch_object(); echo 'Logged in as: '.$res->userID;
      }
      else{
        echo 'Invalid Email or Password';
      }
    }
    else{
      die($cf.$db->error);
    }
    $qry->free();
  }
  else{
    echo 'Please Enter an Email and Password';
  }
}
$db->close();
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM