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