Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Очередной вопрос по постраничному выводу

Ответить
Настройки темы
Очередной вопрос по постраничному выводу

Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120


Конфигурация

Профиль | Отправить PM | Цитировать


С самим постраничным выводом у меня проблем нет.
Проблема только с формированием ссылок на страницы.
Проблема заключается в том, что у меня через адресную строку передаётся несколько переменных, поэтому я не могу писать ссылки на страницы таким образом
PHP код: Выделить весь код

href='?page=".$i." ' 



Мне нужно решение, чтобы не зависеть от знания того, сколько и какие переменные передаются в данный момент через адресную строку.

Единственное, до чего я дошёл, это просто вырезать ' page=".$page." ' из $_SERVER['REQUEST_URI'] и навесить на то, что осталось, значение page:
PHP код: Выделить весь код

$number=$i-1;
$uri=$_SERVER['REQUEST_URI'];
$uri=str_replace("&page=".$page,"",$uri);
$text.="<a href='".$uri."&page=".$number."'>".$i."</a> "

$_SERVER['REQUEST_URI'] я могу спокойно использовать, так как в любом случае хоть одна переменная, но наверняка передаётся через адресную строку

Отправлено: 17:29, 27-09-2005

 

Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


vadimiron
$_GET['page']

а также есть:
$_POST, $_REQUEST, $_COOKIE и т. д.

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 22:28, 27-09-2005 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для elfoflorien

Старожил


Сообщения: 158
Благодарности: 1

Профиль | Отправить PM | Цитировать


vadimiron
все переменные из адресной строки хранятся в массиве $_GET или $HTTP_GET_VARS (в PHP5 по умолчанию только $_GET), поэтому обращаться нужно вот так:
PHP код: Выделить весь код

$page$_GET['page']; 


пока писал ответ меня опередили

-------
panem et circences! (c)


Отправлено: 22:30, 27-09-2005 | #3


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


Vlad Drakula,elfoflorien
Сори,блин, не то я объяснил
У меня нет проблем с получением переменной, у меня проблема с тем, что скорей всего адресная строка уже содержит эту переменную (то есть когда не на первой странице), то есть если просто "навесить", то в адресной строке будет уже две переменных page, ещё раз-уже три и тд.

-------
Fortes fortuna adiuvat


Отправлено: 23:20, 27-09-2005 | #4

mar mar вне форума

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


vadimiron
а собственно, почему они у тебя множатся? ведь uri со всеми переменными тоже можно каждый раз формировать по-новому:
типа
PHP код: Выделить весь код

$PHP_SELF'?id='$_GET['id']. 'page='$_GET['page'/* и так далее */ 


.
Кажется, на сей раз я чего-то не поняла

Отправлено: 00:52, 28-09-2005 | #5


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


mar
Самая большая проблема то, что я не знаю какие и сколько там переменных сидят, я не могу сказать есть ли $_GET['id'] или нет.
$_GET['id'] натолкнуло меня ещё на одно решение, которое наверно будет самым правильным. Пройтись по всему массиву $_GET и записывать переменные обратну в строку так как они были, а page поставить свой, то есть что то типа этого:
PHP код: Выделить весь код

foreach($_GET $key=>$value)

{
if(
$key=="page"$url.=$key."=".$page."&"
else $url.=$key."=".$value."&"


-------
Fortes fortuna adiuvat


Отправлено: 12:48, 28-09-2005 | #6

mar mar вне форума

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


Цитата:
Самая большая проблема то, что я не знаю какие и сколько там переменных сидят
вообще-то это грозит инъекцией, или просто не знаешь, есть ли какая-то из обслуживаемых тобой? По-любому, то, что ты сам предложил с foreach - это выход.

Отправлено: 13:52, 28-09-2005 | #7


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


Цитата:
или просто не знаешь, есть ли какая-то из обслуживаемых тобой
Да, просто хочется, чтобы в любой момент можно было бы добалять (или наоборот, удалять) новые переменные в скрипт, которые передаются через адресную строку, при этом не меняя уже написанного кода.

-------
Fortes fortuna adiuvat


Отправлено: 15:39, 28-09-2005 | #8

mar mar вне форума

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


ну, я все-таки (особенно если дело идет о $_GET) предпочитаю из соображений безопасности разбираться с каждой своей предопределенной $_GET -переменной. Чтоб не скормить скрипту инъекции. Собственно, ведь переход на $_GET и $_POST в PHP и был обусловлен соображеиями безопасности

Отправлено: 16:41, 28-09-2005 | #9


Аватара для elfoflorien

Старожил


Сообщения: 158
Благодарности: 1

Профиль | Отправить PM | Цитировать


vadimiron
Цитата:
Да, просто хочется, чтобы в любой момент можно было бы добалять ... новые переменные в скрипт, которые передаются через адресную строку
PHP код: Выделить весь код

$_GET['var_name'

Цитата:
при этом не меняя уже написанного кода
в каком смысле не меняя? что-то я не могу понять, что именно надо?
если хотите формировать новую строку url с переменными, и с возможностью удалять лишние, ненужные переменные, то можно так

PHP код: Выделить весь код

function generate_url$_GET$odd_vars false )

{
    foreach( 
$_GET as $var => $value )
    {
         if( 
$odd_vars && in_array$var$odd_vars )) continue;
        
$url .= "&$var=$value";
    }
    return 
$url;
}
// $odd_vars - массив "лишних" переменных: $odd_vars= array( 'var1', 'var2', 'var3', 'etc' ); 

-------
panem et circences! (c)


Отправлено: 17:07, 28-09-2005 | #10



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Очередной вопрос по постраничному выводу

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Очередной апгрейд видеокарты... GNOM_OS Видеокарты 50 01-12-2009 17:09
Подключение наушников к выводу передней панели на материнке?! Rise111 Хочу все знать 2 21-03-2009 01:49
В очередной раз WSUS Aleksey Potapov WSUS 1 25-07-2008 09:07
2 вопроса по выводу данных из Mysql sadoz1 Вебмастеру 11 29-06-2006 08:54
Глюки 2000 в очередной заход hdv Microsoft Windows NT/2000/2003 13 27-09-2003 10:22




 
Переход