[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Неправильная нумерация страниц ]:>
DayFun
Суть проблемы: создал сайт-цитатник на подобие баша, только очень простенький ;), вот ссылочка: http://dayfun.ru потом решил добавить раздел с интересными фактами. Скопировал весь в отдельную папку /fact и подключил ему другую базу. Всё работает кроме одной детали. Нумерация страниц в фактах ссылается на странички в корне сайта, тоесть цитатник.
Вот ссылка http://dayfun.ru/fact/ , внизу смотрите на нумерацию страниц.
Вот еще урывок кода php:
$query = mysql_query("SELECT * FROM `quotes` WHERE `status` = 'checked'");
if(mysql_num_rows($query)>0)
{
if(!isset($_GET['id']))
{
$query = mysql_query("SELECT * FROM `config`");
$r = mysql_fetch_array($query);
$num = $r['quotes_num'];
if(!isset($_GET['page']) or empty($_GET['page']) or $_GET['page']<1) $_GET['page'] = 1;
$page = $_GET['page'];
$query = mysql_query("SELECT * FROM `quotes` WHERE `status` = 'checked'");
$posts = mysql_num_rows($query);
$total = intval(($posts-1)/$num)+1;
$page = intval($page);
if($page > $total) $page = $total;
$from = $page*$num-$num;
$query = mysql_query("SELECT * FROM `quotes` WHERE `status`= 'checked' ORDER BY `id` DESC LIMIT $from,$num");
if($query)
{
echo "<table width=750>";
while($r = mysql_fetch_array($query))
{
echo showquote($r['id'],$r['content'],$r['moderator'],$r['date'],$r['rating']);
}
echo "</table><br><br>";
$pervpage = "";
$nextpage = "";
$page2left = "";
$page1left = "";
$page2right = "";
$page1right = "";
if($page != 1) $pervpage = "<a href=/page/1>первая</a> <a href=/page/".($page - 1).">предыдущая</a> " ;
if($page != $total) $nextpage = " <a href=/page/".($page + 1).">следующая</a> <a href=/page/".$total.">последняя</a>";
if($page - 2 > 0) $page2left = " <a href=/page/".($page - 2).">".($page - 2)."</a> | ";
if($page - 1 > 0) $page1left = "<a href=/page/".($page - 1).">".($page - 1)."</a> | ";
if($page + 2 <= $total) $page2right = " | <a href=/page/".($page + 2).">".($page + 2)."</a>";
if($page + 1 <= $total) $page1right = " | <a href=/page/".($page + 1).">".($page + 1)."</a>";
echo "<div align=left>".$pervpage.$page2left.$page1left."<b>".$page."</b>".$page1right.$page2right.$nextpage."</div>";
}


Задача такая: необходимо сделать чтоб в разделе факты нумерация страниц переключала на другие странички этого раздела, а не отправляла обратно на главную.
Что можете посоветовать? Что надо еще выложить для постановки диагноза?



Спустя 9 минут, 32 секунды (4.07.2011 - 21:00) Krevedko написал(а):
подставляй вместо /page/ ставь /fact/
что-то меня терзают большие сомнения, что ты сам создал этот сайт

Спустя 6 минут, 24 секунды (4.07.2011 - 21:06) DayFun написал(а):
поставил, не получилось, пишет такая страница не найдена The requested URL /fact/3 was not found on this server. В чем причина? Можете посмотреть

П.С. Я не писал сам код сайта, думаю если бы я мог это сделать то вопрос бы такой не возник. Я имел ввиду, что решил создать конкуренцию башу)))

Спустя 2 минуты, 36 секунд (4.07.2011 - 21:09) Krevedko написал(а):
с мод реврайтом что-то

Спустя 14 минут, 33 секунды (4.07.2011 - 21:23) DayFun написал(а):
Я погуглил, пишут что мод реврайт это конвертация динамического URL и это можно изменить в файле .htaccess . Вот у меня такие строчки там:
Options +MultiViews +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteRule ^id([0-9]+)(/?)$ index.php?id=$1
RewriteRule ^id([0-9]+)/plus(/?)$ index.php?id=$1&rating=plus
RewriteRule ^id([0-9]+)/minus(/?)$ index.php?id=$1&rating=minus
RewriteRule ^page/([0-9]+)(/?)$ index.php?page=$1
RewriteRule ^up$ up.php
RewriteRule ^down$ down.php
RewriteRule ^add$ add.php
RewriteRule ^about$ about.php

<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
Это в корне сайте. Возможно для каталога /fact надо что-то изменить?
Исправьте если что-то не так пишу.

Спустя 32 минуты, 2 секунды (4.07.2011 - 21:55) Zerstoren написал(а):
Либо мне кажется, либо это листалка от Попова?
У него была подобная фигня.

Спустя 10 минут, 35 секунд (4.07.2011 - 22:06) DayFun написал(а):
я думаю Вы ошибаетесь)
Но чуствую Вы что-то знаете, есть предложениея как решить эту проблемку?)
Приму даже ссылу на какой-то гайд) А то я так и не смог чётко сформулировать что я хочу от бедного гугла. А описание как первом посте он не понимает =)

Спустя 10 минут, 7 секунд (4.07.2011 - 22:16) DeeKeiD написал(а):
1. RewriteRule ^fact/page/([0-9]+)(/?)$ index.php?module=fact&page=$1
2. RewriteRule ^([^/]*)$ /fact/index.php?page=$1 [L]

Спустя 8 минут, 56 секунд (4.07.2011 - 22:25) DayFun написал(а):
1. RewriteRule ^fact/page/([0-9]+)(/?)$ index.php?module=fact&page=$1
2. RewriteRule ^([^/]*)$ /fact/index.php?page=$1 [L]
Не помогло , и выдало такую ошибку:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, support@timeweb.ru and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Сайт перестал грузится.

Спустя 57 минут, 53 секунды (4.07.2011 - 23:23) m4a1fox написал(а):
DeeKeiD
Ты сайт человеку сломал! smile.gif

Спустя 3 минуты, 40 секунд (4.07.2011 - 23:26) DayFun написал(а):
DeeKeiD
Ты сайт человеку сломал!
Ну не стоит так жестоко, я не обиделся! Чесно!
к m4a1fox: Лучше бы по делу чтонибудь)

Спустя 2 минуты, 1 секунда (4.07.2011 - 23:28) DySprozin написал(а):
DayFun
надеюсь, ты цифры 1 и 2 не писал? laugh.gif

Спустя 1 минута, 6 секунд (4.07.2011 - 23:29) DayFun написал(а):
нет)

Спустя 2 минуты, 32 секунды (4.07.2011 - 23:32) DayFun написал(а):
Я скопировал как написал DeeKeiD:
Options +MultiViews +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteRule ^id([0-9]+)(/?)$ index.php?id=$1
RewriteRule ^id([0-9]+)/plus(/?)$ index.php?id=$1&rating=plus
RewriteRule ^id([0-9]+)/minus(/?)$ index.php?id=$1&rating=minus
RewriteRule ^fact/page/([0-9]+)(/?)$ index.php?module=fact&page=$1
RewriteRule ^([^/]*)$ /fact/index.php?page=$1 [L]
RewriteRule ^up$ up.php
RewriteRule ^down$ down.php
RewriteRule ^add$ add.php
RewriteRule ^about$ about.php

<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>

Итог: как сказал m4a1fox сломалось!!

Спустя 2 минуты, 35 секунд (4.07.2011 - 23:35) DayFun написал(а):
Возможно причина не в этом, если не трудно еще раз обратите внимание на первый пост и постановку проблемы.
Какие еще мысли? А я гуглю дальше....

Спустя 1 минута, 50 секунд (4.07.2011 - 23:36) DySprozin написал(а):
DayFun
смотри в error_log (; где лежит, найдешь? (;

Спустя 7 минут, 45 секунд (4.07.2011 - 23:44) DayFun написал(а):
Цитата (DySprozin @ 4.07.2011 - 20:36)
DayFun
смотри в error_log (; где лежит, найдешь? (;

эм, подскажите где его посмотреть?
Вы считаете что вставив в .htaccess это
1. RewriteRule ^fact/page/([0-9]+)(/?)$ index.php?module=fact&page=$1
2. RewriteRule ^([^/]*)$ /fact/index.php?page=$1 [L]
исправит проблему с нумерацией страниц?
Может есть альтернативный вариант? Возможно не правильно написаны ссылки, еще раз очень прошу обратить внимание на код который в первом посте, если надо дам код других страниц.

Спустя 12 минут, 15 секунд (4.07.2011 - 23:56) DySprozin написал(а):
DayFun
у тебя что, денвер? где апач лежит знаешь?

Спустя 3 минуты, 56 секунд (5.07.2011 - 00:00) DayFun написал(а):
купил хостинг тута http://timeweb.ru
в ПУ пишет такое:
Информация о сервере:
Операционная система Linux 2.6
Версия Apache 1.3.41
Версия MySQL 5.0
Версия PHP 5.2.12 (подробнее)
Версия Perl 5.8.8

больше инфы пока не раздобыл) если намекнёте что да как подглянуть, напишу!

Спустя 15 минут, 45 секунд (5.07.2011 - 00:16) DySprozin написал(а):
DayFun
ну это спрашивай у них, где error_logs, обычно папка logs на хостинге лежит рядом с папкой htdocs (;

Спустя 5 минут, 10 секунд (5.07.2011 - 00:21) DayFun написал(а):
Цитата (DySprozin @ 4.07.2011 - 21:16)
DayFun
ну это спрашивай у них, где error_logs, обычно папка logs на хостинге лежит рядом с папкой htdocs (;

я думаю не стоит беспокоить злых жителей службы поддержки, пока не буду уверен что трабл именно там.Если Вы уверены обьясните зачем мне надо знать еррор_логи, и как это поможет исправить нумерацию страниц?

Спустя 1 час, 9 минут, 13 секунд (5.07.2011 - 01:30) DeeKeiD написал(а):
1. RewriteRule ^fact/page/([0-9]+)(/?)$ index.php?module=fact&page=$1
2. RewriteRule ^([^/]*)$ /fact/index.php?page=$1 [L]

имелось ввиду варрианты
1. если модули подключаются через index.php типа index.php?module=test
2. если файлы находятся в другой папке www.myweb.ru/fact/

Ну или можно сделать ещё 1 .htaccess в папке ../fact/

Options +MultiViews +FollowSymlinks
RewriteEngine on
RewriteBase /fact
RewriteRule ^id([0-9]+)(/?)$ index.php?id=$1
RewriteRule ^id([0-9]+)/plus(/?)$ index.php?id=$1&rating=plus
RewriteRule ^id([0-9]+)/minus(/?)$ index.php?id=$1&rating=minus
RewriteRule ^page/([0-9]+)(/?)$ index.php?page=$1
RewriteRule ^up$ up.php
RewriteRule ^down$ down.php
RewriteRule ^add$ add.php
RewriteRule ^about$ about.php

<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>

Спустя 13 минут, 39 секунд (5.07.2011 - 01:44) DySprozin написал(а):
;;как это поможет исправить нумерацию страниц?
это поможет узнать, в чем трабл .htaccess - в логах подробно описана причина ошибки "500 Internal Server Error"

Спустя 3 минуты, 52 секунды (5.07.2011 - 01:48) DayFun написал(а):
я дальше не вижу как исправить нумерацию, я сделал как советовал Krevedko, а именно поменял /page/ на /fact/ в коде, и теперь мне пишет, когда нажимаю на страничку номер 2 или любую другую:
Not Found
The requested URL /fact/2 was not found on this server.
Отображает всегда только первую. И как это вылечить?? user posted image

Спустя 3 часа, 8 минут, 22 секунды (5.07.2011 - 04:56) DeeKeiD написал(а):
Попробуй так RewriteRule ^fact/page/([0-9]+)(/?)$ /fact/index.php?page=$1

Спустя 7 часов, 54 минуты, 28 секунд (5.07.2011 - 12:51) DayFun написал(а):
Цитата (DeeKeiD @ 5.07.2011 - 01:56)
Попробуй так RewriteRule ^fact/page/([0-9]+)(/?)$ /fact/index.php?page=$1

Написал этот код, всё по прежнему, ничего не изменилось. При переходе на вторую страничку http://dayfun.ru/fact/2 выдает:
Not Found
The requested URL /fact/2 was not found on this server.

Прочитал в рунете что связанто с этим вопросом. Возможно запрос неправильно составлен?

$query = mysql_query("SELECT * FROM `quotes` WHERE `status` = 'checked'");
if(mysql_num_rows($query)>0)
{
if(!isset($_GET['id']))
{
$query = mysql_query("SELECT * FROM `config`");
$r = mysql_fetch_array($query);
$num = $r['quotes_num'];
if(!isset($_GET['page']) or empty($_GET['page']) or $_GET['page']<1) $_GET['page'] = 1;
$page = $_GET['page'];
$query = mysql_query("SELECT * FROM `quotes` WHERE `status` = 'checked'");
$posts = mysql_num_rows($query);
$total = intval(($posts-1)/$num)+1;
$page = intval($page);
if($page > $total) $page = $total;
$from = $page*$num-$num;
$query = mysql_query("SELECT * FROM `quotes` WHERE `status`= 'checked' ORDER BY `id` DESC LIMIT $from,$num");
if($query)
{
echo "<table width=750>";
while($r = mysql_fetch_array($query))
{
echo showquote($r['id'],$r['content'],$r['moderator'],$r['date'],$r['rating']);
}
echo "</table><br><br>";
$pervpage = "";
$nextpage = "";
$page2left = "";
$page1left = "";
$page2right = "";
$page1right = "";
if($page != 1) $pervpage = "<a href=/fact/1>первая</a> <a href=/fact/".($page - 1).">предыдущая</a> " ;
if($page != $total) $nextpage = " <a href=/fact/".($page + 1).">следующая</a> <a href=/fact/".$total.">последняя</a>";
if($page - 2 > 0) $page2left = " <a href=/fact/".($page - 2).">".($page - 2)."</a> | ";
if($page - 1 > 0) $page1left = "<a href=/fact/".($page - 1).">".($page - 1)."</a> | ";
if($page + 2 <= $total) $page2right = " | <a href=/fact/".($page + 2).">".($page + 2)."</a>";
if($page + 1 <= $total) $page1right = " | <a href=/fact/".($page + 1).">".($page + 1)."</a>";
echo "<div align=left>".$pervpage.$page2left.$page1left."<b>".$page."</b>".$page1right.$page2right.$nextpage."</div>";
}


Возможно надо изменить и тут и в .htacces? Или еще где-то....

Спустя 1 час, 55 минут, 12 секунд (5.07.2011 - 14:46) DayFun написал(а):
Может кто знает как сделать листалку другими способами? Чтоб обойти эту проблему

Спустя 1 час, 58 минут, 4 секунды (5.07.2011 - 16:44) DayFun написал(а):
апну тему...

Спустя 2 часа, 5 минут, 11 секунд (5.07.2011 - 18:49) DayFun написал(а):
наверх! проблема не решена!

Спустя 2 часа, 40 минут, 46 секунд (5.07.2011 - 21:30) DayFun написал(а):
тема закрыта. решение нашел другое. спасибо всем за ответы и помощь
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.