Как работать с $ _SERVER

Как работать с $ _SERVER ['QUERY_STRING'] и разбиением на страницы?

Когда моя таблица сортируется по этой ссылке:

<a href="'.$_SERVER['PHP_SELF'].'?sort_name=name&sort=asc" title="'.$lang['sorteer_asc'].'"></a> 

Мой url становится: relation.php? Sort_name = adres & sort = asc

Я использую ссылку для разбивки на страницы:

 echo '<a href="'.$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'].'&page='.$i.'">'.$i.'</a> '; 

И URL-адрес становится: relation.php? Sort_name = adres & sort = asc & page = 2

Пока что так хорошо, но при просмотре на другие страницы это может быть до тех пор, пока: отношение.php? Sort_name = adres & sort = asc & page = 2 & page = 3 & page = 14 & page = 23 & page = 27

Возраст продолжает появляться из-за $ _SERVER ['QUERY_STRING'], как я могу очистить свой url только с сохранением последней страницы и? Sort_name = adres & sort = asc.

Или вы предлагаете другое решение для упорядочения и разбивки на страницы?

Solutions Collecting From Web of "Как работать с $ _SERVER"

Вместо повторного использования QUERY_STRING вы должны собрать его заново с помощью http_build_query() .

 // Merge $_GET with new parameter $QS = http_build_query(array_merge($_GET, array("page"=>2))); // You should apply htmlspecialchars() on the path prior outputting: echo "<a href='" . htmlspecialchars("$_SERVER[PHP_SELF]?$QS") . "'> $i </a>"; 

Таким образом, вы включаете все текущие параметры $_GET , но можете добавлять или заменять записи новыми значениями. И это гарантирует, что каждый появляется только один раз.

Создайте компоновщик ссылок (простой php whitch make array ("a" => "b", "c" => "d") в? A = b & c = d и перестраивайте его каждый раз (например, добавьте «sort_name» = > …, "sort" => …, "page" => …)

Если вы все еще хотите использовать QUERY_STRING – проверьте, содержит ли он & page = … и заменит его (оба сделаны regexp)

Не используйте QueryString, просто создайте переменную в начале вашего скрипта:

 $pagerUrl = $_SERVER['PHP_SELF'].'?sort_name='.$_GET['sort_name']&sort=$_GET['sort']; 

И используйте его в своей ссылке:

 echo '<a href="'.$pagerUrl.'&page='.$i.'">'.$i.'</a> ';