2014-12-13 76 views
2

一切正常,但“上一页”和“下一页”链接不起作用。一旦我点击“prev”或“next”页面加载,但没有最近或旧的图像显示。链接引用“php?page = -1”为prev“php?page = 1”,对于next,但是像我说的那样,新图片或旧图片仅显示第一个“20”和其他第一个数量的$ record_count分页“上一页”和“下一页”错误

<?php 
$dir = "."; 
opendir($dir); 
$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); 

$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); 

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="?page='.($page-1).'">Prev</a>'; 
    } 
    if($page != $totla_pages){ 
     echo '<a href="?page='.($page+1).'">Next</a>'; 
    } 
} 
?> 
+0

您应该正确初始化您的'$ page'变量并始终将其设置为整数。 – jeroen 2014-12-13 15:23:50

+0

@ jeroen你会怎么做? – 2014-12-13 15:26:27

+0

@ jeroen *咳嗽*初学者在这里......大声笑,如果你可以重新编码它会很棒 – 2014-12-13 15:29:35

回答

0

首先,您需要始终正确地初始化您的变量$page,并将其设置为整数。

要做到这一点,你可以检查查询变量中,如果没有发送,将其设置为1

// somewhere at the top of your script 
if (empty($_GET['page'])) 
{ 
    $page = 1; 
} 
else 
{ 
    $page = (int) $_GET['page']; 
} 

你也可以做多一些检查上$_GET['page']以确保它始终是一个数字大于0.

+0

它仍然不起作用 – 2014-12-13 18:37:17