站点数据库中的回显表保持空白



感谢您阅读我的留言。我正在一个网站上工作,但是每当我想显示网站上数据库字段中的数字时,都没有错误,但什么也没有显示。

(对不起,英语不好)

认证

session_start();
if(!isset($_SESSION["username"])) {
header("Location: login.php");
exit();
}

登录

require('db.php');
session_start();
// When form submitted, check and create user session.
if (isset($_POST['username'])) {
$username = stripslashes($_REQUEST['username']);    // removes backslashes
$username = mysqli_real_escape_string($con, $username);
$password = stripslashes($_REQUEST['password']);
$password = mysqli_real_escape_string($con, $password);
// Check user is exist in the database
$query    = "SELECT * FROM `users` WHERE username='$username'
AND password='" . md5($password) . "'";
$result = mysqli_query($con, $query) or die(mysql_error());
$rows = mysqli_num_rows($result);
if ($rows == 1) {
$_SESSION['username'] = $username;
$_SESSION['coins'] = $coins;
// Redirect to user dashboard page
header("Location: dashboard-2.php");
} else {
echo "<div class='form'>
<h3>Je wachtwoord of gebruikersnaam is onjuist.</h3><br/>
<p class='link'>Klik hier om <a href='login.php'>terug</a> te gaan.</p>
</div>";
}
} else {

硬币需要显示在仪表板上。

这里有几点错误:

  1. mysql_error()不能与"mysqlixxx"一起使用:它们是两个完全不同的库。
    请改用 mysqli::error。

  2. 你永远不应该,永远
  3. 永远不要在SQL语句中使用原始用户输入。 请改用预准备语句。

  4. 最后,你没有看到"硬币"的原因......这是因为您从未从结果集中读取任何内容。

    建议:$coins = $rows[0]['coins'];

您正在将$_SESSION['coins']设置为未定义的变量($coins)。您必须从结果集中获取一行,例如mysqli_fetch_object

试试这个:

if ($rows == 1) {
$row = mysqli_fetch_object($result);
$_SESSION['username'] = $username;
$_SESSION['coins'] = $row->coins; //Your column for coins in your table.
// Redirect to user dashboard page
header("Location: dashboard-2.php");
} else {
echo "<div class='form'>
<h3>Je wachtwoord of gebruikersnaam is onjuist.</h3><br/>
<p class='link'>Klik hier om <a href='login.php'>terug</a> te gaan.</p>
</div>";
}

最新更新