Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 10.05.2017
Сообщений: 3

В какой части кода прописать редирект на главную страницу

10.05.2017, 07:47. Показов 682. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Есть код главной страницы сайта на ней выводятся все статьи с постраничной навигацией. Проблема в том , что если в адресной строке http://название сайта/?p=1 прописать номер несуществующей страницы то на странице отображается постраничный вывод без статей . Как сделать в случае не существующей страницы происходил редирект на главную страницу сайта index.php.
Если вместо номера страницы набрать буквы то редирект работает.
Вот код страницы и пагинации:
index.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php require_once('inc/db.php');?>
<?php
                try {
 
                    $pages = new Paginator('6','p');
                    
                      
                    $stmt = $db->query('SELECT postID FROM blog_posts_seo');
 
                    //pass number of records to
                    $pages->set_total($stmt->rowCount());
 
                    $stmt = $db->query('SELECT postID, postTitle, postSlug, postDesc, postDate, postImage, postAuthor FROM blog_posts_seo ORDER BY postID DESC '.$pages->get_limit());
                    
                    while($row = $stmt->fetch()){
 
                            
 
                                $stmt2 = $db->prepare('SELECT catTitle, catSlug FROM blog_cats, blog_post_cats WHERE blog_cats.catID = blog_post_cats.catID AND blog_post_cats.postID = :postID');
                                $stmt2->execute(array(':postID' => $row['postID']));
 
                                $catRow = $stmt2->fetchAll(PDO::FETCH_ASSOC);
                        
 
                                $links = array();
                                foreach ($catRow as $cat)
                                {
                                    $links[] = "<a class=\"label label-warning\" href='viewpost.php?id=".$cat['catSlug']."'>".$cat['catTitle']."</a>";
                                }
                            
 
    echo'<div class="col-md-4 col-sm-12 col-xs-12">';
        echo '<div class="wp-block inverse no-margin">';
        echo '<div class="figure">';
          echo '<img src="img/'.$row['postImage'].'">';
          echo '<div class="wp-block-info-over left">';
            echo '<h2>';
              echo '<span class="pull-left">';
              echo '<a href="viewpost.php?id='.$row['postSlug'].'">ПОДРОБНЕЕ</a>';
              echo '<span class="label label-primary">By '.mb_ucfirst($row['postAuthor']).' posted on '.date('jS M Y H:i:s', strtotime($row['postDate'])).'</span>';
              echo '</span>';
            echo '</h2>';
          echo '</div>';
        echo '</div>';
        echo '<p>';                
        echo implode(" ", $links);                
       echo '</p>'; 
       
      echo '</div>';;
    echo '</div>';
}?>
 </div>
 
       
        
        
        <div class="col-md-2 col-sm-12 col-xs-12" style="padding-top: 93px; padding-bottom: 9px; background-color: rgb(249, 115, 82);">
           3
            
        </div>
    </div>
    </div>
 
 
<div class="col-md-12 text-center">
                     
            <?php                        
 
                    echo $pages->page_links();
 
                } catch(PDOException $e) {
                    echo $e->getMessage();
                }
            ?>
            
 </div>
class.paginator.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
<?php
 
class Paginator{
 
        /**
     * set the number of items per page.
     *
     * @var numeric
    */
    private $_perPage;
 
    /**
     * set get parameter for fetching the page number
     *
     * @var string
    */
    private $_instance;
 
    /**
     * sets the page number.
     *
     * @var numeric
    */
    private $_page;
 
    /**
     * set the limit for the data source
     *
     * @var string
    */
    private $_limit;
 
    /**
     * set the total number of records/items.
     *
     * @var numeric
    */
    private $_totalRows = 0;
 
 
 
    /**
     *  __construct
     *  
     *  pass values when class is istantiated 
     *  
     * @param numeric  $_perPage  sets the number of iteems per page
     * @param numeric  $_instance sets the instance for the GET parameter
     */
    public function __construct($perPage,$instance){
        $this->_instance = $instance;       
        $this->_perPage = $perPage;
        $this->set_instance();      
    }
 
    /**
     * get_start
     *
     * creates the starting point for limiting the dataset
     * @return numeric
    */
    private function get_start(){
        return ($this->_page * $this->_perPage) - $this->_perPage;
    }
 
    /**
     * set_instance
     * 
     * sets the instance parameter, if numeric value is 0 then set to 1
     *
     * @var numeric
    */
    private function set_instance(){
        $this->_page = (int) (!isset($_GET[$this->_instance]) ? 1 : $_GET[$this->_instance]); 
        $this->_page = ($this->_page == 0 ? 1 : $this->_page);
        
        
    }
 
    /**
     * set_total
     *
     * collect a numberic value and assigns it to the totalRows
     *
     * @var numeric
    */
    public function set_total($_totalRows){
        $this->_totalRows = $_totalRows;
    }
 
    /**
     * get_limit
     *
     * returns the limit for the data source, calling the get_start method and passing in the number of items perp page
     * 
     * @return string
    */
    public function get_limit(){
            return "LIMIT ".$this->get_start().",$this->_perPage";
        }
 
        /**
         * page_links
         *
         * create the html links for navigating through the dataset
         * 
         * @var sting $path optionally set the path for the link
         * @var sting $ext optionally pass in extra parameters to the GET
         * @return string returns the html menu
        */
    public function page_links($path='?',$ext=null)
    {
        $adjacents = "2";
        $prev = $this->_page - 1;
        $next = $this->_page + 1;
        $lastpage = ceil($this->_totalRows/$this->_perPage);
        $lpm1 = $lastpage - 1;
 
        $pagination = "";
        if($lastpage > 1)
        {   
           
            $pagination .= "<ul class=\"pagination pagination-sm\">";
        if ($this->_page > 1)
            $pagination.= "<li><a href='".$path."$this->_instance=$prev"."$ext'><i class=\"fa fa-long-arrow-left\" aria-hidden=\"true\"></i></a><li>";
        else
            $pagination.= "<li class=\"disabled\"><a href=\"#\"><i class=\"fa fa-angle-left\" aria-hidden=\"true\"></i></a></li>";   
 
        if ($lastpage < 7 + ($adjacents * 2))
        {   
        for ($counter = 1; $counter <= $lastpage; $counter++)
        {
        if ($counter == $this->_page)
            $pagination.= "<li class=\"active\"><a href=\"#\">$counter<span class=\"sr-only\"></span></a></li>";
        else
            $pagination.= "<li><a href='".$path."$this->_instance=$counter"."$ext'>$counter</a></li>";                   
        }
        }
        elseif($lastpage > 5 + ($adjacents * 2))
        {
        if($this->_page < 1 + ($adjacents * 2))       
        {
        for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
        {
        if ($counter == $this->_page)
            $pagination.= "<li><li class=\"active\"><a href=\"#\">$counter<span class=\"sr-only\"></span></a></li></li>";
        else
            $pagination.= "<li><a href='".$path."$this->_instance=$counter"."$ext'>$counter</a></li>";                   
        }
            $pagination.= "<li><a>...</a></li>";
            $pagination.= "<li><a href='".$path."$this->_instance=$lpm1"."$ext'>$lpm1</a></li>";
            $pagination.= "<li><a href='".$path."$this->_instance=$lastpage"."$ext'>$lastpage</a></li>";       
        }
        elseif($lastpage - ($adjacents * 2) > $this->_page && $this->_page > ($adjacents * 2))
        {
            $pagination.= "<li><a href='".$path."$this->_instance=1"."$ext'>1</a></li>";
            $pagination.= "<li><a href='".$path."$this->_instance=2"."$ext'>2</a></li>";
            $pagination.= "<li><a>...</a></li>";
        for ($counter = $this->_page - $adjacents; $counter <= $this->_page + $adjacents; $counter++)
        {
        if ($counter == $this->_page)
            $pagination.= "<li><li class=\"active\"><a href=\"#\">$counter<span class=\"sr-only\"></span></a></li></li>";
        else
            $pagination.= "<li><a href='".$path."$this->_instance=$counter"."$ext'>$counter</a></li>";                   
        }
            $pagination.= "<li><a>...</a></li>";
            $pagination.= "<li><a href='".$path."$this->_instance=$lpm1"."$ext'>$lpm1</a></li>";
            $pagination.= "<li><a href='".$path."$this->_instance=$lastpage"."$ext'>$lastpage</a></li>";       
        }
        else
        {
            $pagination.= "<li><a href='".$path."$this->_instance=1"."$ext'>1</a></li>";
            $pagination.= "<li><a href='".$path."$this->_instance=2"."$ext'>2</a></li>";
            $pagination.= "<li><a>...</a></li>";
        for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
        {
        if ($counter == $this->_page)
            $pagination.= "<li class=\"active\"><a href=\"#\">$counter<span class=\"sr-only\"></span></a></li>";
        else
            $pagination.= "<li><a href='".$path."$this->_instance=$counter"."$ext'>$counter</a></li>";                   
        }
        }
        }
 
        if ($this->_page < $counter - 1)
            $pagination.= "<li><a href='".$path."$this->_instance=$next"."$ext'><i class=\"fa fa-long-arrow-right\" aria-hidden=\"true\"></i></a></li>";
        else
            $pagination.= "<li><li class=\"disabled\"><a href=\"#\"<i class=\"fa fa-angle-right\" aria-hidden=\"true\"></i></a></li>";
            $pagination.= "</ul>\n"; 
           
        }
 
 
    return $pagination;
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.05.2017, 07:47
Ответы с готовыми решениями:

Редирект в .htaccess на главную страницу
Добрый день. Смотрел похожие темы на форуме - но это не совсем то, что мне нужно. Раньше сайт был сделан на MS SharePoint. Затем...

Редирект с нерабочих ссылок на главную страницу
Доброго времени суток! Подскажите, пожалуйста, код для редиректа. Ситуация следующая: имеются нерабочие ссылки в которых есть...

Что прописать в кнопке, чтобы она возвращала на главную страницу
Что прописать в кнопке , что бы она возвращала на главную страницу . Кнопка в прописана в отдельном фрейме, а выводить на главную она...

1
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
10.05.2017, 10:16
Как сделать пагинацию?

PHP
1
if ($pn==0||$pn>$pc) notfound();
Добавлено через 2 минуты

Не по теме:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    echo'<div class="col-md-4 col-sm-12 col-xs-12">';
        echo '<div class="wp-block inverse no-margin">';
        echo '<div class="figure">';
          echo '<img src="img/'.$row['postImage'].'">';
          echo '<div class="wp-block-info-over left">';
            echo '<h2>';
              echo '<span class="pull-left">';
              echo '<a href="viewpost.php?id='.$row['postSlug'].'">ПОДРОБНЕЕ</a>';
              echo '<span class="label label-primary">By '.mb_ucfirst($row['postAuthor']).' posted on '.date('jS M Y H:i:s', strtotime($row['postDate'])).'</span>';
              echo '</span>';
            echo '</h2>';
          echo '</div>';
        echo '</div>';
        echo '<p>';                
        echo implode(" ", $links);                
       echo '</p>'; 
       
      echo '</div>';;
    echo '</div>';
Это полный п-ц!



Добавлено через 5 минут
Если хотите именно редирект, то это нужно делать до начала вывода контента страницы. У вас все вперемешку, поэтому трудно сказать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.05.2017, 10:16
Помогаю со студенческими работами здесь

Как сделать редирект с index.html на главную страницу?
Как сделать редирект с index.html на главную страницу? Добавлено через 2 минуты в htaccess

Вставка части кода на Страницу
Привет всем! Если я пишу html страницу, и хочу встроить код из отдельного файла *.html, я использую &lt;!--#include...

В какой части кода освобождать память
Есть проект, который при компиляции формирует DLL. И есть исполняющая программа для этой DLL. Код исполняющей программы изменять нельзя. В...

Поставить на главную страницу им на wordpress страницу опрос, который в итоге рекомендует подходящий по ответам товар
Здравствуйте! Нужен вот такой простенький &quot;опросник&quot; на сайт как на главной странице https://ergobaby.com/ ответить на 2 вопроса...

В какой части кода используется тот или иной класс в C# (Visual Studio 2010)
Здравствуйте! Подскажите пожалуйста могу ли я как-то посмотреть, какие части программы используют тот или иной класс (переменную, метод,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru