PHP Pagination Script не показывает правильное содержание для номера страницы

Я создал скрипт php для навигации по страницам моего блога назад и вперед, но первая страница отображается правильно, но когда я перехожу на следующую страницу, она показывает правильное число, но все равно показывает то же содержимое, что и раньше. Затем следующая кнопка продолжает показывать текущую страницу.

Вот мой сценарий:

$publication = "magazine";
$ppp = "6";

if(isset($_GET["id"])){$id = $_GET["id"];}else{
header("Location: ".$url."");
exit();
}

if(isset($_GET["currentpage"])){$currentpage = $_GET["currentpage"];}else{
header("Location: ".$url."");
exit();
}

$count_sql = "SELECT id FROM publication_posts WHERE publication = '".$publication."' AND issue = '".$id."'";
$count_res = mysqli_query($con, $count_sql);
$count_total = mysqli_num_rows($count_res);
//If None, Then Exit
if($count_total == 0){
header("Location: ".$url."");
exit();
}

$display_limit = $ppp;
$totalpages = ceil($count_total / $display_limit);//$rowsperpage
$currentpage = $totalpages;

$offset = ($totalpages - 1) * $display_limit;//$rowsperpage

if($currentpage == "0"){
header("Location: ".$url."/issue/".$id."/".$totalpages."");
exit();
}

$posts_sql = "SELECT * FROM publication_posts WHERE publication = '".$publication."' AND issue = '".$id."' ORDER BY id DESC LIMIT ".$offset.", ".$display_limit."";

Еще одна вещь, которую я заметил здесь, это то, что если я установлю текущую страницу на 0все еще показывает issue/id/0в то время как это должно перенаправить на $totalpages

Кто-нибудь знает, где проблема?

Вот моя нумерация страниц:

<?php
// range of num links to show
$range = 0;
if ($currentpage != $totalpages) {
// get next page
$nextpage = $currentpage + 1;
// echo forward link for next page
$link_next = "<a href=\"issue/".$id."/".$nextpage."\"><div class=\"pagiCell pagiNext fadeOut\"></div></a>";
}
else{
$link_next = "<div class=\"pagiCell pagiNextX\"></div>";
}
?>
<?php
// range of num links to show
$range = 0;
if ($currentpage > 1) {
// get previous page
$prevpage = $currentpage - 1;
// echo forward link for next page
$link_prev = "<a href=\"issue/".$id."/".$prevpage."\"><div class=\"pagiCell pagiPrev fadeOut\"></div></a>";
}
else{
$link_prev = "<div class=\"pagiCell pagiPrevX\"></div>";
}
?>
<?php
$link_refresh = "<a href=\"issue/".$id."/1\"><div class=\"pagiCell pagiRefresh fadeOut\"></div></a>";
?>
<?php
$randpage = rand(1,$totalpages);
$link_random = "<a href=\"issue/".$id."/".$randpage."\"><div class=\"pagiCell pagiRandom fadeOut\"></div></a>";
?>

Короткий URL: localhost/publication/magazine/issue/1/1
Длинный URL: localhost/publication/magazine/issue?id=1&currentpage=1

0

Решение

Я думаю, что ваша проблема в том, что ваш $currentpage var — это строка, и вы делаете с ней математические операции, не конвертируя ее. Вы должны напечатать cast: PHP: Тип Жонглирование

$nextpage = $currentpage + 1;
становится $nextpage = (int)$currentpage + 1;

Как сказал Магнус Эрикссон ранее, вы не проверяете свои пользовательские данные на предмет проблем безопасности. Тестирование ваших переменных на ожидаемые значения подразумевает, что, например, PHP: is_int

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]