2014-12-13 2 views
2

모든 것이 제대로 작동하지만 "이전"및 "다음"링크는 작동하지 않습니다. '이전'또는 '다음'을 클릭하면 페이지가로드되지만 최근 또는 오래된 이미지는 표시되지 않습니다. 링크는 이전 "php? page = 1"에 대한 "php? page = -1"를 인용하고 다음에는 새로운 이미지 또는 이전 이미지가 첫 번째 "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

+0

@jeroen 어떻게 할 수 있습니까? –

+0

@jeroen * coughs * beginner here ... 너는 그걸 재 녹음 할 수 있으면 좋겠다. –

답변

0

시작하려면 $page 변수를 항상 초기화하고 정수로 설정해야합니다. 그것은 항상이다

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

당신은 또한 확인 $_GET['page']에 검사를 좀 더 할 수 : 쿼리 변수에 그렇지 않은 경우 전송되는 경우

그렇게하려면, 당신은 1로 설정, 확인하실 수 있습니다 0보다 큰 숫자

+0

여전히 작동하지 않습니다. –