如何在PHP中显示仅与登录用户相关的数据库数据

如何在PHP中显示仅与登录用户相关的数据库数据,php,jquery,html,mysql,Php,Jquery,Html,Mysql,我正在创建一个待办事项列表,现在,对于用户(不是管理员),用户只能看到只分配给他的任务,他知道,因为在assignee列下是他的名字 但现在,他不仅可以看到自己的任务(拉拉的),还可以看到其他人的任务 假设我已连接到数据库 这是登录表单(login.php) 这是显示数据库的view.php(目前,显示所有用户的所有任务) 任务 受让人 转让人 所以,问题是,我如何从数据库中显示任务,只有登录用户的用户名与受让人同名,或者类似的名称,你知道我的意思。请帮助我,谢谢。我猜表任务中字

我正在创建一个待办事项列表,现在,对于用户(不是管理员),用户只能看到只分配给他的任务,他知道,因为在assignee列下是他的名字


但现在,他不仅可以看到自己的任务(拉拉的),还可以看到其他人的任务


假设我已连接到数据库

这是登录表单(login.php)


这是显示数据库的view.php(目前,显示所有用户的所有任务)


任务
受让人
转让人


所以,问题是,我如何从数据库中显示任务,只有登录用户的用户名与受让人同名,或者类似的名称,你知道我的意思。请帮助我,谢谢。

我猜表
任务
中字段
受让人的值是用户名,它是登录时用于用户身份验证的唯一值。另外,我猜
$\u会话['user']
包含登录用户的用户名

因此,您必须在
MySql
查询中添加一个'where'子句,以便仅动态获取登录用户的数据。将上述查询更改为下面的查询

$tasks = mysqli_query($db, "SELECT * FROM tasks where Assignee=".$_SESSION['username']);

$tasks = mysqli_query($db, "SELECT * FROM tasks where Assignee=".$_SESSION['username']." ORDER BY id DESC LIMIT " . $this_page_first_result . ',' . $results_per_page);

在“任务”查询中添加WHERE子句,以标识属于当前用户的行。此外,您还非常容易受到SQL注入攻击。您需要尽快修复该问题。需要登录用户idWarning!您不应该使用md5对密码进行哈希运算。As:“由于此哈希算法的快速性,不建议使用此函数保护密码”。改为使用和。在会话中设置登录用户名,并使用ASSINEE签入任务查询where子句检查脚本是否对其打开。甚至你也应该考虑使用<代码> MySqLi<<代码>或<代码> PDO< /COD> API,而不是级联值。
function isLoggedIn() {
 if (isset($_SESSION['user'])) {
  return true;
 } else {
   return false;
 }
}

// call the login() function if register_btn is clicked
if (isset($_POST['login_btn'])) {
 login();
}

// LOGIN USER
function login(){
 global $db, $username, $errors;

 // grap form values
 $username = e($_POST['username']);
 $password = e($_POST['password']);

 // make sure form is filled properly
 if (empty($username)) {
  array_push($errors, "Username is required");
 }

 if (empty($password)) {
  array_push($errors, "Password is required");
 }

 // attempt login if no errors on the form
 if (count($errors) == 0) {
  $password = md5($password);

  $query = "SELECT * FROM users WHERE username='$username' AND password='$password' LIMIT 1";
  $results = mysqli_query($db, $query);

  if (mysqli_num_rows($results) == 1) { // user found
   // check if the user is admin or user
   $logged_in_user = mysqli_fetch_assoc($results);

   if ($logged_in_user['user_type'] == 'admin') {
    $_SESSION['user'] = $logged_in_user;
    $_SESSION['success']  = "You are now logged in";

    header('location: index.php');
   } else {
    $_SESSION['user'] = $logged_in_user;
    $_SESSION['success']  = "You are now logged in";

    header('location: view.php');
   }
  } else {
    array_push($errors, "Wrong username/password combination");
  }
 }
}
<?php
 include('function.php');

 if (!isLoggedIn()) {
  $_SESSION['msg'] = "You must log in first";
  header('location: login.php');
 }
?>

<div class="container">
 <table>
  <thead>
   <tr>
    <th> Tasks </th>
    <th> Assignee </th>
    <th> Assigner </th>
   </tr>
  </thead>

  <tbody>
   <?php
    $results_per_page = 10;
    $tasks = mysqli_query($db, "SELECT * FROM tasks");
    $number_of_results = mysqli_num_rows($tasks);
    $number_of_pages = ceil($number_of_results/$results_per_page);

    if (!isset($_GET['page'])) {
      $page = 1;
    } else {
      $page = $_GET['page'];
    }

    $this_page_first_result = ($page - 1) * $results_per_page;

    $tasks = mysqli_query($db, "SELECT * FROM tasks ORDER BY id DESC LIMIT " . $this_page_first_result . ',' . $results_per_page);
    $i = 1; while ($row = mysqli_fetch_array($tasks)) { ?>
     <tr>
      <td class="task"> <center> <?php echo $row['task']; ?> </center> </td>
      <td class="assignee"> <center> <?php echo $row['assignee']; ?> </center> </td>
      <td class="assigner"> <center> <?php echo $row['assigner']; ?> </center> </td>
     </tr>
    <?php $i++; } ?>

    <div class="pagination">
     <div class="pagination-container">
      <div class="pagination-hover-overlay"></div>

      <a href="#0" class="pagination-prev">
       <span class="icon-pagination icon-pagination-prev">
        <i class="icon material-icons">
         keyboard_arrow_left
        </i>
       </span>
      </a>

      <?php
       for ($page = 1; $page <= $number_of_pages ; $page++) {
        echo '<a class="pagination-page-number" href="view.php?page=' . $page . '">' . $page . '</a> ';
       }
      ?>

      <a href="#0" class="pagination-next">
       <span class="icon-pagination icon-pagination-next">
        <i class="icon material-icons">
         keyboard_arrow_left
        </i>
       </span>
      </a>
     </div>
    </div>
   </tbody>
  </table>
$tasks = mysqli_query($db, "SELECT * FROM tasks where Assignee=".$_SESSION['username']);

$tasks = mysqli_query($db, "SELECT * FROM tasks where Assignee=".$_SESSION['username']." ORDER BY id DESC LIMIT " . $this_page_first_result . ',' . $results_per_page);