onuvidelsolnce
Новичок
Зравствуйте, буду очень благодарен если знающий человек поможет решить небольшую проблему в гостевой книге, которую я скачал и установил на свой сайт. Все в ней меня устраивает, только один неприятный момент...
В скрипте есть постраничное разбиение сообщений от посетителей( по десять на каждой странице) внизу есть переход по этим страницам, но вот в том то и заключается проблема при любом номере страницы, точнее при нажатии, все равно выдает 10 последних, но никак не тех которые нужно. Например имеется 20 сообщений, т.е 2-е страницы. и на первой и на второй выводится 10 последних.
На сайте где скачал скрип в коментария нашел реплику к коду где указывается место ошибки, но решения не приводится. Вот она:
Сам код, то место как мне кажется, где нужно исправить ошибку :
хотя может это и не то место, тогда вся гостевая находится здесь:
http://ruseller.com/adds.php?rub=12&id=1685
Если это не сложные действия по исправления тогда помогите кто чем может. хотелось ды при исправлениях отавить все на своих местах. точнее кнопки там всяки и т.п.
Все расковырял, дизайн поменял, с кодировкой намучался, думал все устранил а тут такой фэил. неохота новую гостевую искать. да и мне нравится что без баз данных. простая и легкая не требовательная.
Спасибо.
В скрипте есть постраничное разбиение сообщений от посетителей( по десять на каждой странице) внизу есть переход по этим страницам, но вот в том то и заключается проблема при любом номере страницы, точнее при нажатии, все равно выдает 10 последних, но никак не тех которые нужно. Например имеется 20 сообщений, т.е 2-е страницы. и на первой и на второй выводится 10 последних.
На сайте где скачал скрип в коментария нашел реплику к коду где указывается место ошибки, но решения не приводится. Вот она:
Вот."Да... г-н Попов - вы конечно ас, я нуб, по сравнению с вами, но надо быть внимательнее. В видеоуроке вы небрежно так, вскользь упомянули, что переделали дизайн, в частности перенесли строку с выводом след., пред., страница вниз. Может так оно конечно и красивей, но:
1. сообщения в гостевую выводит цикл
while ($cont больше или равно $cont2)
2. Переменная $cont1 формируется предварительно в коде, который как раз и считает общее число страниц и как раз этот кусок вы перенесли вниз
3. результат: при переходе на любую страницу всегда показывается первые n сообщений
Косяк однако, и причем нехороший."
Сам код, то место как мне кажется, где нужно исправить ошибку :
PHP:
<?
include("gb_config.php");
$page = $_REQUEST['page'];
if (!(file_exists($data_file))){
fopen($data_file,"w") or die("Can't open data file");;
$data=file($data_file);
}else{
fopen($data_file,"r");
$data=file($data_file);
}
$count = count($data);
$total_pages = ceil($count/$messages_per_page);
echo ("<a href=\"javascript:showdiv('signform');\"><strong>$la1</strong></a> <br><br><br>");
if($newest_on_top == 1)
$data = array_reverse($data);
$entries=array_slice($data,$begin,$messages_per_page);
$cont1=count($entries)-1;
$cont2=0;
while ($cont1>=$cont2) {
$entry=$entries[$cont2];
$entry=explode("|",$entry);
$name = $entry[0];
$homepage = $entry[1];
$email = $entry[2];
$message = $entry[3];
//$ip
$stime = $entry[5];
$browser = $entry[6];
$stime = date('m/d/y - g:i A', $stime);
$message = wordwrap($message, $word_wrap, "<br>", true);
//Smiley
$message = ereg_replace(":p", " <img src=\"images/s1.gif\" alt=\":p\" border=\"0\"> ", $message);
$message = ereg_replace(":)", " <img src=\"images/s2.gif\" alt=\":)\" border=\"0\"> ", $message);
$message = ereg_replace(":a", " <img src=\"images/s3.gif\" alt=\":a\" border=\"0\"> ", $message);
$message = ereg_replace(":o", " <img src=\"images/s4.gif\" alt=\":o\" border=\"0\"> ", $message);
$message = ereg_replace(":s", " <img src=\"images/s5.gif\" alt=\":s\" border=\"0\"> ", $message);
$message = ereg_replace(":r", " <img src=\"images/s6.gif\" alt=\":r\" border=\"0\"> ", $message);
$message = ereg_replace(":v", " <img src=\"images/s7.gif\" alt=\":v\" border=\"0\"> ", $message);
$message = ereg_replace(":h", " <img src=\"images/s8.gif\" alt=\":h\" border=\"0\"> ", $message);
$message = ereg_replace(";)", " <img src=\"images/s9.gif\" alt=\";)\" border=\"0\"> ", $message);
$message = ereg_replace(":m", " <img src=\"images/s10.gif\" alt=\":m\" border=\"0\"> ", $message);
//Fix the "&" bug
$message = str_replace("^amp^", "&",$message);
$name = str_replace("^amp^", "&",$name);
//URL
if($convert_link == 1)
$message = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]", "<a href=\"\\0\" target=\"_blank\">\\0</a>", $message);
if($homepage != 'http://'){
$vhomepage = "<a href=\"$homepage\" target=\"_blank\"><img src=\"images/home.gif\" alt=\"$la13\" title=\"$la13\" border=\"0\"></a>";
}else{
$vhomepage = "<img src=\"images/home2.gif\" alt=\"$la13\" title=\"$la13\" border=\"0\">";
}
if($email){
$email = str_replace('@','[at]',$email);
$vemail = "<a href=\"mailto:$email\" target=\"_blank\"><img src=\"images/email.gif\" alt=\"$la12\" border=\"0\"></a>";
}else{
$vemail = "<img src=\"images/email2.gif\" alt=\"$la12\" border=\"0\">";
}
echo ("<div class=\"guestbook_top\"><img src=\"images/user.png\" alt=\"$name\" title=\"$name\"> <b>$name</b> <span style='margin-left:380px;'><font size = 1>$stime </font></span></div><div class=\"guestbook\"> <div align=\"right\" style=\"padding:2px;\"> $vhomepage $vemail <a href=\"gb_admin.php\"><img src=\"images/computer.png\" alt=\"$ip\" title=\"$la16\" border=\"0\"></a> <img src=\"images/world.png\" alt=\"$browser\" title=\"$browser\" border=\"0\"> </div> $message<br><br></div>");
$cont2++;
}
if($count != 0){
echo ("<div class='my11'>$la15: ");
//Print out page number
if (($page - 10) <= 0)
$rp = ($page - 11) * -1;
if (($total_pages - $page) < 10)
$lp = 10 + ($total_pages - $page) * -1;
if ($page != 1 && $page > 11)
echo("<a href=\"JavaScript:ajax('POST','gb_view.php','page','1')\">1</a> ... ");
for ($i=$page - (10 + $lp); $i < $page; $i++){
if ($i < $page && $i > 0){
echo("<a href=\"JavaScript:ajax('POST','gb_view.php','page','$i')\">$i</a> ");
}
}
for ($i=$page; $i <= $page + 10 + $rp; $i++){
if($page==$i){
echo("<b>$i</b> ");
}else if ($i >= $page && $i <= $total_pages){
echo("<a href=\"JavaScript:ajax('POST','gb_view.php','page','$i')\">$i</a> ");
}
}
if ($page != $total_pages && $page < $total_pages - 10)
echo(" ... <a href=\"JavaScript:ajax('POST','gb_view.php','page','$total_pages')\">$total_pages</a>");
}
echo ("</div>");
echo ("<div class='my11'>$la45 <strong>$count</strong></div> <br>");
echo ("<div class='my11'>");
//Make pages
if (isset($page) AND $page > 0)
{
if ($page > $total_pages) {
$page = $total_pages;
} else {
$begin=$page*$messages_per_page - $messages_per_page;
}
} else {
$page = 1;
$begin = 0;
}
$next_page = $page + 1;
$prev_page = $page - 1;
if ($prev_page < 1)
{
$prev_page = 1;
}
if ($next_page > $total_pages)
{
$next_page = $total_pages;
}
if($count != 0){
if($page == 1 && $total_pages == 1){
echo ("<font color = \"#CCCCCC\">$la6</font> | <font color = \"#CCCCCC\">$la7</font>");
}else if($page == $prev_page){
echo ("<font color = \"#CCCCCC\">$la6</font> | <a href=\"JavaScript:ajax('POST','gb_view.php','page','$next_page')\">$la7</a>");
}else if($page == $next_page){
echo ("<a href=\"JavaScript:ajax('POST','gb_view.php','page','$prev_page')\">$la6</a> | <font color = \"#CCCCCC\">$la7</font>");
}else{
echo ("<a href=\"JavaScript:ajax('POST','gb_view.php','page','$prev_page')\">$la6</a> | <a href=\"JavaScript:ajax('POST','gb_view.php','page','$next_page')\">$la7</a>");
}
if($total_pages == 1){
echo(" | <font color = \"#CCCCCC\">$la8</font> | <font color = \"#CCCCCC\">$la9</font> | <a href=\"$home\">$la10</a> <br><br><br>");
}else{
echo(" | <a href=\"JavaScript:ajax('POST','gb_view.php','page','1')\">$la8</a> | <a href=\"JavaScript:ajax('POST','gb_view.php','page','$total_pages')\">$la9</a> | <a href=\"$home\">$la10</a> <br><br><br>");
}
}
echo ("</div>");
?>
хотя может это и не то место, тогда вся гостевая находится здесь:
http://ruseller.com/adds.php?rub=12&id=1685
Если это не сложные действия по исправления тогда помогите кто чем может. хотелось ды при исправлениях отавить все на своих местах. точнее кнопки там всяки и т.п.
Все расковырял, дизайн поменял, с кодировкой намучался, думал все устранил а тут такой фэил. неохота новую гостевую искать. да и мне нравится что без баз данных. простая и легкая не требовательная.
Спасибо.