уменьшение количества php пагинационных ссылок до 10 - PullRequest
1 голос
/ 30 апреля 2020

Я создавал управляемый данными веб-сайт, отображающий общую информацию о странах мира. Это сделано для того, чтобы на каждой странице отображалась 1 страна, и вы можете перейти к следующей стране, щелкнув ссылку на страницу. Единственная проблема, с которой я сталкиваюсь - я не могу ограничить количество видимых ссылок. Я попытался сделать это для l oop с первой строкой, такой как: for ($ i = $ Page; $ i <= min ($ Page + 9, $ TotalRecords); $ i ++) {что сокращает его до 10 Однако записи приводят к поломке веб-сайта, когда я проверяю веб-адрес, вводя индекс. php? page = aa. </p>

<nav class="mt-5">
   <ul class="pagination pagination-lg justify-content-center">
       <?php
          if( isset($Page) ) {
             if ($Page > 1 ) {
       ?>
       <li class="page-item">
          <a href="index.php?page=<?php echo $Page-1; ?>" class="page-link">&laquo;</a>
       </li>
       <?php 
               } 
           }
       ?>
       <?php
       global $ConnectingDB;
       $sql = "SELECT COUNT(*) FROM countriesinfo";
       $stmt = $ConnectingDB->query($sql);
       $RowPagination = $stmt->fetch();
       $TotalRecords = array_shift($RowPagination);
       $RecordPagination = $TotalRecords / 1;
       $RecordPagination = ceil($RecordPagination);
       for ($i = $Page; $i <= $RecordPagination; $i++) {     
            if( isset($Page) ) {
                  if ($i == $Page) 
                          {  
       ?>
       <li class="page-item active">
             <a href="index.php?page=<?php echo $i; ?>" class="page-link"><?php  echo $i; ?></a>
       </li>
       <?php
            } else {
       ?>  
       <li class="page-item">
            <a href="index.php?page=<?php echo $i; ?>" class="page-link"><?php  echo $i; ?></a>
       </li>
       <?php      
                 }
              } 
           } 
       ?>
       <?php if (isset($Page) && !empty($Page) ) {
             if ($Page+1 <= $RecordPagination) {
       ?>
       <li class="page-item">
           <a href="index.php?page=<?php echo $CountryId+1; ?>" class="page-link">&raquo;</a>
       </li>
       <?php 
      } 
     }
   ?>
 </ul>
</nav>

1 Ответ

0 голосов
/ 01 мая 2020

Я проверяю веб-адрес, вводя индекс. php? Page = aa.

Чтобы убедиться, что переменная get является числом, используйте php is_numeri c () bulit в функции, и если это не заставит его номер 1. Это остановит сайт от взлома, когда кто-то манипулирует переменной страницы.

Вот код, который поможет вам, поместите в начале страницы.

  if(is_numeric($page)){
      $page = $page; // if $page is a number do nothing
     }else{
       $page = 1; //else set $page to 1 which  will fetch data from  beginning
    }
...