Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сохранить URL с switch case 
V
    Опции темы
Spiker
Дата 26.8.2009, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 25.5.2005
Где: Спортзал

Репутация: -2
Всего: -2



дан URL : http://domain/index.php?view=homepage

Задача его "сохранить"

я использовал следущик код 
Код

$self = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] ; 

но он сохраняеть только http://domain/index.php 
а надо весь URL сохранить "http://domain/index.php?view=homepage"


--------------------
Даваите жить дружно! (Леопольд.) :shy67:
PM MAIL MSN   Вверх
SoWa
Дата 26.8.2009, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Элемент $_SERVER['REQUEST_URI']

В элемент $_SERVER['REQUEST_URI'] содержит имя скрипта, начиная от корневой директории виртуального хоста и параметры, т.е. если строка запроса представляет собой адрес:

http://www.mysite.ru/test/index.php?id=1&a...mp;id_theme=512 

то элемент $_SERVER['REQUEST_URI'] будет содержать фрагмент "/test/index.php?id=1&test=wet&id_theme=512". 

Это сообщение отредактировал(а) SoWa - 26.8.2009, 22:52


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Spiker
Дата 26.8.2009, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 25.5.2005
Где: Спортзал

Репутация: -2
Всего: -2



мне это надо для перемещения по страничкам, появляется меня со страничками если на страничке слишком много данных, если пользователь переходит на следующую страничку то его URL становиться + &page=2... если он хочет переити на другую страничку то URL опать сохраняеться и еще добавляет &page=3, тоесть теперь в URL есть &page=2&page=3.

Я подумал чтобы  решить эту проблему мне прийдеться проверять URL на "&page=X" и удалять его и потом добавить к URL новый "&page=X". Как лучьше это сделать?
Код

function getPagingLink($sql, $itemPerPage = 10, $strGet = '') 
{ 
    $result        = dbQuery($sql); 
    $pagingLink    = ''; 
    $totalResults  = dbNumRows($result); 
    $totalPages    = ceil($totalResults / $itemPerPage); 
     
    // how many link pages to show 
    $numLinks      = 10; 

         
    // create the paging links only if we have more than one page of results 
    if ($totalPages > 1) { 
     
        $self = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ; 
         

        if (isset($_GET['page']) && (int)$_GET['page'] > 0) { 
            $pageNumber = (int)$_GET['page']; 
        } else { 
            $pageNumber = 1; 
        } 
         
        // print 'previous' link only if we're not 
        // on page one 
        if ($pageNumber > 1) { 
            $page = $pageNumber - 1; 
            if ($page > 1) { 
                $prev = " <a href=\"$self?page=$page&$strGet/\">[previous]</a> "; 
            } else { 
                $prev = " <a href=\"$self?$strGet\">[previous]</a> "; 
            }     
                 
            $first = " <a href=\"$self?$strGet\">[first page]</a> "; 
        } else { 
            $prev  = ''; // we're on page one, don't show 'previous' link 
            $first = ''; // nor 'first page' link 
        } 
     
        // print 'next' link only if we're not 
        // on the last page 
        if ($pageNumber < $totalPages) { 
            $page = $pageNumber + 1; 
            $next = " <a href=\"$self?page=$page&$strGet\">[next]</a> "; 
            $last = " <a href=\"$self?page=$totalPages&$strGet\">[last page]</a> ";
        } else { 
            $next = ''; // we're on the last page, don't show 'next' link 
            $last = ''; // nor 'last page' link 
        } 

        $start = $pageNumber - ($pageNumber % $numLinks) + 1; 
        $end   = $start + $numLinks - 1;         
         
        $end   = min($totalPages, $end); 
         
        $pagingLink = array(); 
        for($page = $start; $page <= $end; $page++)    { 
            if ($page == $pageNumber) { 
                $pagingLink[] = " $page ";   // no need to create a link to current page 
            } else { 
                if ($page == 1) { 
                    $pagingLink[] = " <a href=\"$self?$strGet\">$page</a> "; 
                } else {     
                    $pagingLink[] = " <a href=\"$self?page=$page&$strGet\">$page</a> "; 
                }     
            } 
     
        } 
         
        $pagingLink = implode(' | ', $pagingLink); 
         
        // return the page navigation link 
        $pagingLink = $first . $prev . $pagingLink . $next . $last; 
    } 
     
    return $pagingLink; 
} 

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


--------------------
Даваите жить дружно! (Леопольд.) :shy67:
PM MAIL MSN   Вверх
SoWa
Дата 26.8.2009, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Цитата(Spiker @  26.8.2009,  23:17 Найти цитируемый пост)
Я подумал чтобы  решить эту проблему мне прийдеться проверять URL на "&page=X" и удалять его и потом добавить к URL новый "&page=X". Как лучьше это сделать?

Легко. Ищешь позицию вхождения подстроки в строку, отсчитываешь длину подстроки, находишь там знак равно, после него удаляешь только цифры и ставишь на их место другие.
Это так поверхностно и не оптимизировано.

Добавлено через 22 секунды
Кстати, 1 тема- 1 вопрос.


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Ипатьев
Дата 27.8.2009, 07:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Так вот откуда у предыдущего вопроса ноги растут.
Причем, что характерно, никто человеку не рассказал ни про массив $_SERVER, ни про массив $_GET
PM MAIL   Вверх
SoWa
Дата 27.8.2009, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Про массив $_SERVER человек понятие имеет, а телепаты в отпуске.

Ой-йо, в пол-второго ночи правда фигово думается, я ересь сказал. GET же тут 

Это сообщение отредактировал(а) SoWa - 27.8.2009, 08:24


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0532 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.