【问题标题】:How to echo from database in session?如何在会话中从数据库回显?
【发布时间】:2019-12-14 17:40:12
【问题描述】:

我对 PHP $_SESSION 有疑问。

成功登录/注册后,我在索引页面中只看到“用户名”。 当我将 $_SESSION['username'] 更改为 $_SESSION['password'] 时,也会显示。

我需要显示“积分”值,该值不是用户在登录/注册期间定义的(注册后自动添加 5 个积分)

如何从数据库中回显不是用户插入的值?

    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, "Please write username");
        }
        if (empty($password)) {
            array_push($errors, "Please write password");
        }

        if (count($errors) == 0) {
            $password = md5($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;
                $_SESSION['success'] = "Logged in ";
                header('location: index.php');
            }else {
                array_push($errors, "Something went wrong");
            }
        }
    }```

【问题讨论】:

  • 你是如何在 index.php 中回显会话的?
  • 我用那个<?php if (isset($_SESSION['username'])) : ?> <p>Hello <strong><?php echo $_SESSION['username'];?></strong></p> <p> <a href="index.php?logout='1'" style="color: red;">Logout</a> </p> <?php endif ?>
  • 很不清楚你在问什么。 “如何从数据库中回显不是用户插入的值?” - 与处理 用户插入的值的方式相同......?它有什么区别,数据是如何进入数据库的,当你在这里谈论读取数据时?
  • 我的意思是获取用户的“积分”值,注册后自动插入。对不起,也许我不能完美地解释它,但接受的答案有效:)

标签: php mysql database session select


【解决方案1】:

试试看:

...
if (mysqli_num_rows($results) == 1) {
   $row=mysqli_fetch_assoc($result);

   //check the data you get from the BD
   var_dump($row);die; 
   // you'll get an array with you data where you'll find the points
   // then just assign it to a session

   $_SESSION['user_points'] = $row['user_points']; // for example

   $_SESSION['username'] = $username;
   $_SESSION['success'] = "Logged in ";
   header('location: index.php');
}
...

【讨论】:

  • 是的,这个工作,但现在我得到“array(1) { ["points"]=> string(1) "5" }
  • 好吧好吧,工作完美,我忘了 // var dump :D 谢谢兄弟,祝你有美好的一天!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-11
  • 1970-01-01
  • 2012-03-14
  • 2013-11-30
  • 2014-10-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多