我想制作一个包含多个页面的图像库。当用户登录时,我希望他们能够上传图像,查看图像并在主页上查看图像。
用户还应该能够浏览其他用户发布的其他图像。我已经完全设置了用户系统,稍后会修改它,但图库和 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);