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

我正处于制作用户可以注册和登录的网站的最后阶段。之后,他们可以上传 .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 .= 


侃侃无极
浏览 237回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP