亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何顯示 MySQL 數據庫中的特定數據?

如何顯示 MySQL 數據庫中的特定數據?

PHP
慕的地8271018 2021-08-27 09:30:43
我已經用我的帳戶頁面制作了一個注冊系統。我可以在其中顯示名稱和密碼,但登錄后無法顯示電子郵件,因為我必須從 MySQL 數據庫中獲取它,因為用戶在登錄時沒有輸入他的電子郵件。代碼中沒有錯誤,但未顯示電子郵件。這是server.php登錄代碼:// LOGIN USER if (isset($_POST['login_user'])) {  $username = mysqli_real_escape_string($db, $_POST['username']);  $password = mysqli_real_escape_string($db, $_POST['password']);  if (empty($username)) {   array_push($errors, "Username is required");  }  if (empty($password)) {    array_push($errors, "Password is required");  }  if (count($errors) == 0) {    $password = base64_encode($password);    $query = "SELECT * FROM users WHERE username='$username' AND password='$password'";    $results = mysqli_query($db, $query);    if (mysqli_num_rows($results) == 1) {      $_SESSION['username'] = $username;//Here is the code with problem      $query = "SELECT email FROM users WHERE username='$username' AND password=''$password";      $result = mysqli_query($conn, $sql);    if (mysqli_num_rows($result) > 0) {    while($row = mysqli_fetch_assoc($result)) {        $_SESSION['email'] = $row["email"];    }    }//Here it ends      $_SESSION['password'] = $password;      $_SESSION['success'] = "You are now logged in";      if ($_SESSION['page'] == "account.php"){          header('location: account.php');      }      else{        header('location: index.php');      }    }else {        array_push($errors, "Wrong username/password combination");   }  }
查看完整描述

2 回答

?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

您在第二個查詢中出錯,您沒有正確引用密碼。也就是說,您根本不需要第二個查詢,因為電子郵件字段已經在第一個結果中。你知道它只有一行因為你檢查mysqli_num_rows($results) == 1


if (count($errors) == 0) {

    $password = base64_encode($password);

    $query = "SELECT * FROM users WHERE username='$username' AND password='$password'";

    $results = mysqli_query($db, $query);

    if (mysqli_num_rows($results) == 1) {

        $user_data = mysqli_fetch_assoc($results);

        $_SESSION['username'] = $username;

        $_SESSION['email'] = $user_data['email'];           

        $_SESSION['password'] = $password;

        $_SESSION['success'] = "You are now logged in";

        if ($_SESSION['page'] == "account.php"){

            header('location: account.php');

        }

        else{

            header('location: index.php');

        }

    }else {

        array_push($errors, "Wrong username/password combination");

    }

}

最后要注意的是,請記住 base64 不是存儲密碼的理想函數,而使用一些散列函數可能是個好主意。


查看完整回答
反對 回復 2021-08-27
?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

登錄成功后,您應該會收到您的電子郵件。


$password = base64_encode($password);

$query = "SELECT * FROM users WHERE username='$username' AND password='$password'";

$results = mysqli_query($db, $query);


if (mysqli_num_rows($results) == 1) {

     $row = mysqli_fetch_assoc($result);

     $_SESSION['username'] = $username;

     $_SESSION['email'] = $row['email'];

}


查看完整回答
反對 回復 2021-08-27
  • 2 回答
  • 0 關注
  • 264 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號