用户登录PHP MySQL后显示用户名

用户登录PHP MySQL后显示用户名,php,mysql,Php,Mysql,我使用PHP和bootstrap构建了一个简单的用户注册和登录系统。我是一个静态设计师,所以PHP对我来说是一个非常新的东西,到目前为止,我正在努力学习语法和逻辑,但我很喜欢它。实际上,我从网上的某个地方复制了PHP代码,但将其修改到了我的项目中 用户登录后,会被引导到他的个人资料页面profile.php 一旦在个人资料页面,我希望它说欢迎“名字”。现在它说欢迎“用户名”。因此,在这段代码的某个地方,$username变量被保存在会话中 我已经阅读了如何执行此操作,我认为逻辑是-应创建会话-凭

我使用PHP和bootstrap构建了一个简单的用户注册和登录系统。我是一个静态设计师,所以PHP对我来说是一个非常新的东西,到目前为止,我正在努力学习语法和逻辑,但我很喜欢它。实际上,我从网上的某个地方复制了PHP代码,但将其修改到了我的项目中

用户登录后,会被引导到他的个人资料页面profile.php

一旦在个人资料页面,我希望它说欢迎“名字”。现在它说欢迎“用户名”。因此,在这段代码的某个地方,$username变量被保存在会话中

我已经阅读了如何执行此操作,我认为逻辑是-应创建会话-凭据应保存在会话内的数组中-然后调用firstname变量,从而:

<?php echo $_SESSION['firstname']; ?>

最后我希望它说欢迎“firstname”。

您尝试在这里添加
$\u会话['firstname']

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['firstname'] = "HERE YOUR FIRST NAME";
    // $_SESSION['success'] = "You are now logged in";
    header('location: profile.php');
  } else {
    array_push($errors, "Wrong username/password combination");
  }
}

这意味着,$\u会话['firstname']未定义,在这种情况下,您忘记在用户登录时为$\u会话['firstname']赋值

在header.php中:

<?php

session_start();

...

// 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 = md5($password);
    $query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
    $results = mysqli_query($db, $query);
    if (mysqli_num_rows($results) == 1) {

      //fetch result into an associative array.
      $user = mysqli_fetch_assoc($results);

      //$_SESSION['firstname'] should go here
      $_SESSION['firstname'] = $user['firstname'];

      $_SESSION['username'] = $user['username'];
      //$_SESSION['success'] = "You are now logged in"  ;
      header('location: profile.php');
    }else {
      array_push($errors, "Wrong username/password combination");
    }
  }
}

您可以尝试执行
var\u dump($\u SESSION)
查看其中的内容吗?通过删除您的问题并添加上述文本的输出进行更新。您将用户名保存到会话中,但不会保存名字。尝试以与存储用户名相同的方式将名字保存到会话中。Done Praveen-Thanksy您的脚本非常开放,甚至可以在
MYSQLI_u
PDO
API'中使用。您似乎也不想在要输出用户名的脚本中使用
start_session()
。您必须在每个脚本中重新开始会话-不知道如何添加此内容,非常抱歉。我应该把这个放在什么文件里?我应该把它放在哪里?最后,一个人回答了我,而不是一个机器人!非常感谢。它工作完美,不仅如此,我能理解你方法的逻辑和理论。谢天谢地,谢天谢地
<?php echo $_SESSION['username']; ?>
<?php echo $_SESSION['firstname']; ?>
Welcome 
Notice: Undefined index: firstname in 

C:\xampp\htdocs\vacancies\registration\profile.php on line 46
array(2) { ["id"]=> int(1) ["username"]=> string(11) "bum@bum.com" } 
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['firstname'] = "HERE YOUR FIRST NAME";
    // $_SESSION['success'] = "You are now logged in";
    header('location: profile.php');
  } else {
    array_push($errors, "Wrong username/password combination");
  }
}
<?php

session_start();

...

// 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 = md5($password);
    $query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
    $results = mysqli_query($db, $query);
    if (mysqli_num_rows($results) == 1) {

      //fetch result into an associative array.
      $user = mysqli_fetch_assoc($results);

      //$_SESSION['firstname'] should go here
      $_SESSION['firstname'] = $user['firstname'];

      $_SESSION['username'] = $user['username'];
      //$_SESSION['success'] = "You are now logged in"  ;
      header('location: profile.php');
    }else {
      array_push($errors, "Wrong username/password combination");
    }
  }
}