Добрый день всем,
Я нахожусь на завершающей стадии создания веб-сайта, где пользователи могут зарегистрироваться и войти в систему. После этого они могут загружать документы, такие как .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» пользователя (первичный ключ в таблице users) передается в «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.
Мой поиск .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 .=
Помощь очень ценится!