为了账号安全,请及时绑定邮箱和手机立即绑定

使用户只能看到自己上传的文件

使用户只能看到自己上传的文件

PHP
侃侃无极 2021-06-18 14:09:31
我正处于制作用户可以注册和登录的网站的最后阶段。之后,他们可以上传 .pdf 和 .docx 等文件并搜索这些文件。用户数据存储在我的用户表中,其中包含以下内容:idUsers int(11) PRIMARY KEY NOT NULL,  uidUsers TINYTEXT NOT NULL,  emailUsers TINYTEXT NOT NULL,  pwdUsers LONGTEXT NOT NULL,然后我有一个名为“文件”的表,其中存储了我存储的用户上传的文件。该表包含以下内容:id int(11) PRIMARY KEY NOT NULL, usersId int(11) NOT NULL, - (Foreign key for idUsers in  users table)name varchar(255) NOT NULL,title varchar(255) NOT NULL,forfatter varchar(255) NOT NULL, (forfatter = author) size int(11), download int(11) (for later use)因此,当特定用户登录并上传文档时,用户“id”(用户表中的主键)将传递给我的文件表中的“usersId”。到目前为止,所有这些都运行良好。然后用户可以使用搜索功能,用户可以在其中搜索文档的名称、标题和作者,这也很好用。我只需要确保用户只能看到自己上传的文件。但我想不通。到目前为止,我已经尝试了许多不同的解决方案。我试过一个我看到的建议,我试图让我的 mysqli_query 看起来像这样:"SELECT *   FROM files  WHERE id    AND usersId name LIKE '%$searchingq%'     OR title LIKE '%$searchingq%'     OR forfatter LIKE '%$searchingq%'    AND usersId='.$usersId.'"那效果不佳。感觉会话没有找到当前 $_SESSION 的 ID。我的搜索 .php 看起来像这样:    $usersId = $_SESSION['userId'];    $output = '';    if (isset($_GET['search']) && $_GET['search'] !== ' ') {        $searchingq = $_GET['search'];        $q = mysqli_query($conn, "SELECT * FROM files WHERE `usersId` = {$usersId} AND (`name` LIKE '%{$searchingq}%' OR `title` LIKE '%{$searchingq}%' OR `forfatter` LIKE '%{$searchingq}% )");         $c = mysqli_num_rows($q);        if($c == 0) {            $output = '<p>No search results for: "' .$searchingq. '"</p>';        } else {            while($row = mysqli_fetch_array($q)) {                $name = $row['name'];                $title = $row['title'];                $forfatter = $row['forfatter'];                $download = $row['downloads'];                $output .= 
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 236 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信