|
|
|
| Здравствуйте! Данный фрагмент кода должен выводит содержимое массива $end в зависимости от запроса посетителя постранично с числом сообщений на странице - 10. Количество страниц подсчитывается верно, однако существует проблема с передачей через ссылку параметров запроса на следующие страницы. Первая выдача осуществляется верно, но при клике по номеру следующей страницы, запрос обрезается до одного слова. Подскажите в чём проблема.
Вот код:
if(count($end)>0)//если массив не пустой
{
$num=10;//задаём число сообщ. на стр.
@$page=$_GET['page'];//извлек. № стр из url
@$prew=count($end);//определяем кол-во записей
// Находим общее число страниц
$tpage = (($prew - 1) / $num) + 1;
$tpage = intval($tpage);
// Определяем начало сообщений для текущей страницы
$page = intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page)||$page<0)
{
$page=1;
}
if($page>$tpage)
{
$page=$tpage;
}
// Вычисляем начиная с какого номера
// следует выводить сообщения
$start = $page * $num - $num;
$end=array_slice($end,$start,$num);
// Выбираем $num сообщений начиная с номера $start
foreach($end as $key=>$value)//делаем перебор массива с конечным текстом
echo $key;//выводим текст в браузер
// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href=res.php?zapros='.$_GET['zapros'].'&page=1>Первая</a> | <a href=res.php?zapros='.$_GET['zapros'].'&page='. ($page - 1) .'>Предыдущая</a> | ';
// Проверяем нужны ли стрелки вперед
if ($page != $tpage) $nextpage = ' | <a href=res.php?zapros='.$_GET['zapros'].'&page='. ($page + 1) .'>Следующая</a> | <a href=res.php?zapros='.$_GET['zapros'].'&page=' .$tpage. '>Последняя</a>';
// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 5 > 0) $page5left = ' <a href=res.php?zapros='.$_GET['zapros'].'&page='. ($page - 5) .'>'. ($page - 5) .'</a> | ';
if($page - 4 > 0) $page4left = ' <a href=res.php?zapros='.$_GET['zapros'].'&zapros='.$_GET['zapros'].'&page='. ($page - 4) .'>'. ($page - 4) .'</a> | ';
if($page - 3 > 0) $page3left = ' <a href=res.php?zapros='.$_GET['zapros'].'&page='. ($page - 3) .'>'. ($page - 3) .'</a> | ';
if($page - 2 > 0) $page2left = ' <a href=res.php?zapros='.$_GET['zapros'].'&page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href=res.php?zapros='.$_GET['zapros'].'&page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
if($page + 5 <= $tpage) $page5right = ' | <a href=res.php?zapros='.$_GET['zapros'].'&page='. ($page + 5) .'>'. ($page + 5) .'</a>';
if($page + 4 <= $tpage) $page4right = ' | <a href=res.php?zapros='.$_GET['zapros'].'&page='. ($page + 4) .'>'. ($page + 4) .'</a>';
if($page + 3 <= $tpage) $page3right = ' | <a href=res.php?zapros='.$_GET['zapros'].'&page='. ($page + 3) .'>'. ($page + 3) .'</a>';
if($page + 2 <= $tpage) $page2right = ' | <a href=res.php?zapros='.$_GET['zapros'].'&page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $tpage) $page1right = ' | <a href=res.php?zapros='.$_GET['zapros'].'&page='. ($page + 1) .'>'. ($page + 1) .'</a>';
// Вывод меню если страниц больше одной
if ($tpage > 1)
{
Error_Reporting(E_ALL & ~E_NOTICE);
echo $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage;
}
}
|
Сам выводимый текст находится в ключе массива. | |
|
|
|
|
|
|
|
для: AsAn
(02.01.2009 в 18:02)
| |
... <a href=res.php?zapros='.$_GET['zapros'].'& ...
|
Это как?
rawurlencode() , htmlspecialchars() уже не нужны? | |
|
|
|
|
|
|
|
для: Trianon
(02.01.2009 в 18:48)
| | Разобрался. С Новогодними праздниками крыша совсем едет )) Забыл кавычки в ссылках поставить. Спасибо Trianon. Только благодаря процитированному фрагменту моего кода увидел ошибку. А в общей массе как-то не разглядел. | |
|
|
|