php/mysql:query插入全局用户名,而不是当前登录的用户名

dly7yett  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(389)

摘要

我有一个php脚本,它正在对我的数据库进行查询,除了我当前登录的用户用户名外,所有内容都正确插入。我最终得到了我的db global用户名。
用户名作为会话$\u session['username']传递,我可以回显正确的名称,print\r($\u session)显示所有正确的值。

便笺.php

<?php

session_start();
print_r($_SESSION);

// if user is not logged in
if (!$_SESSION['username']) {
  header('Location: home.php');
}

// when user creates new note
if ($_POST['create_note']) {
  include('includes/functions/func_sanitize.php');

  $username  = $_SESSION['username'];
  $note_name = validate_form_data($_POST['note_name']);

  // connect to db
  include('includes/connection.php');

  // make query to db and return the results
  $query = "INSERT INTO `notes` (`id`, `username`, `note_name`, `note_content`, `date_created`) VALUES (NULL, '$username', '$note_name', '', CURRENT_TIMESTAMP)";

  $result = mysqli_query($conn, $query);

  // close db connection
  if ($result) {
    mysqli_close($conn);
  } else {
    mysqli_close($conn);
    echo 'Error: '.$query.'<br>'.mysqli_error($conn);
  }
}

include('includes/header.php'); 

?>

<div class="notes-container container-fluid pt-4">
  <div class="row mb-5">
    <div class="col-12">

      <div class="row">
        <div class="saved-notes col-10 offset-1 col-md-4 offset-md-0">
          <header class="text-center">
            <h2><?php echo $_SESSION['username']; ?></h2>
          </header>
          <div class="pt-2">
            <form action="<?php htmlspecialchars($_SERVER['PHP_SELF']); ?>" class="form-inline px-1" method="POST">
              <input class="form-control mb-1 mr-1" name="note_name" type="text">
              <input name="create_note" type="submit">
            </form>

          </div>
        </div><!-- col -->

        <div class="current-note col-10 offset-1 col-md-8 offset-md-0">
          <header class="text-center">
            <h2>Current Note</h2>
          </header>
          <form action="<?php htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="POST">
            <textarea name="note_content"></textarea>
            <input class="btn btn-success btn-lg" name="note_submit" type="submit" value="Save">
          </form>
        </div><!-- col -->
      </div><!-- row -->

    </div><!-- col -->
  </div><!-- row -->

<?php include('includes/footer.php'); ?>

您可以在脚本的顶部看到,我检查用户是否使用if($_会话['username']),这是正常工作的,就像我在回显$\u会话['username']之前所说的一样。

goqiplq2

goqiplq21#

已解决

我将connection.php进一步包含在脚本中,它覆盖了$username=$\u session['username']变量。将include('includes/connection.php')进一步向上移动脚本解决了我的问题。

相关问题