Подскажиет пожалуйста как объединить два элемента массива $_SERVER $url = $_SERVER['PHP_SELF']; Тут все нормально пока в страницах не появляются данные после знака вопроса. Например: /index.php/content1?start=1 Я знаю чтобы получить данные после знака вопроса нужно использовать $_SERVER['QUERY_STRING']. Пробовала $_SERVER['REQUEST_URI'], неподходит, каждый раз при переходе с ним он приписывает к строке все, после знака вопроса, вот так: /index.php/statj1?start=1 /index.php/statj1?start=1?start=1 /index.php/statj1?start=1?start=1?start=1 Может есть какой то элемент который может всю строку получить, или как объединить эти два элемента чтобы получить строку: /index.php/statj1?start=1 полностью? Ещё нужно учитывать, что страница вызывается как /index.php/content1, так и /index.php/content1?start=1, поэтому и нужно учитывать два варианта.
Как то не так вставляю, незнаю как правильно( Код (PHP): echo "<a href=$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']?page=$p>← Предыдущая</a>"; Ошибка: Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING У меня было вот так Код (PHP): $url = $_SERVER['PHP_SELF']; echo "<a href={$url}?page=$p>← Предыдущая</a>"; Это все хорошо, пока в странице не появляются элементы после ?
вместо $url = $_SERVER['PHP_SELF']; echo "<a href={$url}?page=$p>← Предыдущая</a>"; лучше так $url = $_SERVER['SERVER_NAME']; echo "<a href=http://{$url}/statj1.php?page=$p>← Предыдущая</a>"; если я правильно понял
а если были переданы гет-параметры касающиеся чего-то важного на странице и они должны быть переданы на другие страницы? =) тот же поисковый запрос, например.
Это тоже самое что оставить $url = $_SERVER['PHP_SELF']; а вот так сделать echo "<a href=http://{$url}?start=1&page=$p>← Предыдущая</a>"; не вариант, потому что не обязательно будет это - ?start=1, попасть на эту страницу можно двумя путями, и опять же совсем не обязательно что будет ?start=1, если вдруг внутри статью передвинут, тут может оказатся и ?start=2 и ?start=3, поэтому писать вручную не вариант( Добавлено спустя 8 минут 14 секунд: Хорошо, а как теперь обединить данные $parsed_url['path'] и $parsed_url['query'] в одну переменную? Чтобы уже её ставить в ссылку.
Нашла как объединить, но там возникает такая же проблема, как если просто использовать $_SERVER['REQUEST_URI']. Он берет нужный url, но каждый раз добавляя к нему то что получается после ? у меня постраничный переход в разделе, в итоге получается что /index.php/2012-03-20-13-10-05?start=1 тут нормально, переход по ссылке уже получается /index.php/2012-03-20-13-10-05?start=1&page=1, в следующей ещё добавляет /index.php/2012-03-20-13-10-05?start=1&page=1&page=2 и переход уже неправильный, а вот как взять только эту часть /index.php/2012-03-20-13-10-05?start=1 и чтоб он её не менял после каждого перехода?
Так я попробовала собрать: Код (PHP): $self_url = $_SERVER['REQUEST_URI']; // получаем ссылку $parsed_url = parse_url($self_url); // разбиваем $ur=($parsed_url['query']!='') ? $parsed_url['path']."?".$parsed_url['query'] : $parsed_url['path']; // собираем Но каждый раз как я делаю переход по страницам, в parsed_url['query'], каждый раз попадает новое, сначала /index.php/2012-03-20-13-10-05?start=1, затем уже /index.php/2012-03-20-13-10-05?start=1&page=1 и потом когда это в переменную попало, а она у меня тут Код (PHP): echo "<a href={$url}&page=$p>← Предыдущая</a>"; Она добавит &page=2 и ссылка уже в переменной будет /index.php/2012-03-20-13-10-05?start=1&page=1&page=2 и конечно же не будет работать. Потому что ссылка каждый раз в переменной обновляется, а мне бы её как то 1 раз поймать и чтоб она не менялась.
Все, спасибо большое все получилось) Только проблема небольшая с условием, когда ставить ссылку простую ['PHP_SELF'], а когда эту собранную. Непонятно по чему сделать условие, потому что там все меняется динамически) Но это мелочи, и так хорошо работает. Спасибо большое