Пагинация и кликабельные изображения

Я хочу сделать галерею изображений, которая имеет несколько страниц. Когда пользователь входит в систему, я хочу, чтобы он мог загрузить изображение, просмотреть его и увидеть на главной странице.

Пользователь также должен иметь возможность просматривать другие изображения, опубликованные другими пользователями. Я полностью настроен на пользовательскую систему и изменю ее позже, но система галерей и разбивки на страницы php убивает меня в данный момент.

Я использовал предыдущие коды, найденные в Интернете, для отображения файлов изображений в моем каталоге, но пока это единственный код, который отображает последние загруженные изображения.
Все изображения загружаются в папку с названием «загружен».

С помощью dreamweaver и журналы ошибок:

Примечание: неопределенная переменная: opendir в C: \ Users \ User \ Documents \ Xampp \ htdocs \ HT \ index.php в строке 186

Предупреждение: readdir () ожидает, что параметр 1 является ресурсом, значение NULL указано в C: \ Users \ User \ Documents \ Xampp \ htdocs \ HT \ index.php в строке 186

Примечание: неопределенная переменная: файл в C: \ Users \ User \ Documents \ Xampp \ htdocs \ HT \ index.php в строке 187

Примечание: неопределенный индекс: страница в C: \ Users \ User \ Documents \ Xampp \ htdocs \ HT \ index.php в строке 197

Изображения показывают, и у пагинации есть «Первый, предыдущий, следующий и последний», но изображения не кликабельны, и когда я попытался направить их с помощью переменной $ dir, это отправило меня на страницу ошибки, а не на изображение, которое я щелкнул ,

Проблема с разбиением на страницы заключается в том, что когда я нажимаю «сначала, предыдущий … бла бла бла», он отправляет меня в xampp «Индекс /…/uploaded».

<?php
$dir = readdir($opendir);
$opendir = opendir($file);
$file = ('uploaded/');

$files = glob("uploaded/*.*");
usort($files, function ($a, $b) {
return filemtime($b) - filemtime($a);
});

$record_count  = 20;
$totla_pages   = ceil(count($files)/$record_count);
$page = $_REQUEST['page']; ///make it dyanamic :: page num
$offset        = ($page-1)*$record_count;
$files_filter  = array_slice($files, $offset,$record_count);

foreach ($files_filter as $file) {
echo "<a href='$dir/$file'><img src='$file' style='height:180px;width:180px; border:2px solid black;  margin:20px 0px 10px  10px; *margin:10px 0px 10px 20px;'></a>";
}

if($totla_pages > 1){
if($page != 1){
echo '<a href="thispage.php?page='.($page-1).'">Prev</a>';
}
if($page != $totla_pages){
echo '<a href="thispage.php?page='.($page+1).'">Next</a>';
}
}
?>

1

Решение

$opendir не был определен, поэтому вы сразу получаете предупреждение, которое затем приводит к остальным ошибкам.

Вам также не нужно readdir() функция, только opendir() Функция будет достаточной.

Вы можете заменить:

$dir = $opendir($opendir);
$opendir = opendir($file);
$file = ('uploaded/');

с:

$file = "uploaded";
$dir = ".";
opendir($dir);

Точка в $dir = "."; для текущей папки, в которой он находится; это должно оставаться таким.


Редактировать:

Чтобы исправить уведомление «неопределенный индекс: страница», как только начальная страница загрузится:

Вы можете избавиться от $page = $_REQUEST['page']; и затем используйте это:

$record_count  = 20;
$totla_pages   = ceil(count($files)/$record_count);
// $page = $_REQUEST['page']; // no longer needed

$home_script = $_SERVER['REQUEST_URI'];
if($_SERVER['REQUEST_URI'] == $home_script) {
$page = "";
}

$offset = ($page-1)*$record_count;
$files_filter  = array_slice($files, $offset,$record_count);
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]