分页和可点击图像


Pagination and Clickable images

我想制作一个包含多个页面的图像库。当用户登录时,我希望他们能够上传图像,查看图像并在主页上查看图像。

用户还应该能够浏览其他用户发布的其他图像。我已经完全设置了用户系统,稍后会修改它,但图库和 php 分页系统目前正在杀死我。

我使用以前在网上找到的代码来显示我的目录中的图像文件,但到目前为止,这是显示最新上传图像的唯一代码。所有图像都上传到名为"已上传"的文件夹中。

使用 dreamweaver 和错误日志是:

注意:未定义的变量:C:''Users''User''Documents''Xampp''htdocs''HT''index.php 第 186 行中的 opendir

警告:readdir(( 期望参数 1 是资源,空值在第 186 行的 C:''Users''User''Documents''Xampp''htdocs''HT''index.php

注意:未定义的变量:C:''Users''User''Documents''Xampp''htdocs''HT''index.php 中的文件 在第 187 行

注意:未定义的索引:C:''Users''User''Documents''Xampp''htdocs''HT''index.php第 197 行中的页面

图像

正在显示,分页有"第一个、上一个、下一个和最后一个",但图像不可单击,当我尝试使用变量引导它们时$dir它把我发送到一个错误页面,而不是我点击的图像。

分页的问题在于,当我单击"第一个,上一个...bla bla bla"它把我发送到xampp"索引/.../上传">

<?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>';
   }
}
?>
$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);