我想创建一个包含多个页面的图库。当用户登录时,我希望他们能够上传图像,查看图像并在主页上查看。
用户还应该能够浏览其他用户发布的其他图像。我已经设置了用户系统并将在稍后修改它,但画廊和php分页系统现在正在杀死我。
我使用以前在网上找到的代码在我的目录中显示图像文件,但到目前为止,这是显示上传的最新图像的唯一代码。 所有图像都被上传到名为“已上传”的文件夹。
使用dreamweaver
和错误日志是:
注意:未定义的变量:第186行的C:\ Users \ User \ Documents \ Xampp \ htdocs \ HT \ index.php中的opendir
警告:readdir()期望参数1为资源,在第186行的C:\ Users \ User \ Documents \ Xampp \ htdocs \ HT \ index.php中给出null
注意:未定义的变量:第187行的C:\ Users \ User \ Documents \ Xampp \ htdocs \ HT \ index.php中的文件
注意:未定义的索引:第197行的C:\ Users \ User \ Documents \ Xampp \ htdocs \ HT \ index.php中的页面
图像正在显示,并且分页具有“First,previous,next和Last”,但图像不可点击,当我尝试用$ dir变量指示它时,它将我发送到错误页面而不是图像我点击了。
分页的问题是,当我点击“first,previous ... bla bla bla”时,它会将我发送到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>';
}
}
?>
答案 0 :(得分:4)
$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);