Php получить только get параметры

Просто получить get переменную из url

По ходу я отстал от жизни! Не могу найти связь, вроде и так просто, но не могу сделать — чувствую себя лузером: не могу проверить, есть ли какая переменная get в url и получить значение этого get . знаю, что проверяется isset() , но isset ($_GET[»]) — ничего не дает.

неправильно задал вопрос по ходу! а как превратить $_GET в массив или как записать средствами php $_GET в массив?

3 ответа 3

так я знаю, как получать! это если мы будем знать значение get, в данном случае, когда $_get[‘key1’] придаем значение какое-либо! а если мы такое значение url (foto.ru/gallery.php?boys)? как получить $_get[‘boys’] и значение «boys», если мы знаем только, что это значение $_get?

echo '
'.print_r(array_keys($_GET), true).'

';

foreach($_GET as $key => $value)< echo $key .' = '.$value.'
'; >

Что тут непонятно, и как помочь больше — без понятия

Попробуйте сделать просто

Похожие

Подписаться на ленту

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.7.27.43548

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Источник

Как получить текущий URL в PHP?

Сформировать текущий адрес страницы можно с помощью элементов массива $_SERVER. Рассмотрим на примере URL:

Полный URL

$url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; echo $url;

Результат:

https://example.com/category/page?sort=asc

URL без GET-параметров

$url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $url = explode('?', $url); $url = $url[0]; echo $url;

Результат:

https://example.com/category/page

Основной путь и GET-параметры

$url = $_SERVER['REQUEST_URI']; echo $url;

Результат:

Только основной путь

$url = $_SERVER['REQUEST_URI']; $url = explode('?', $url); $url = $url[0]; echo $url;

Результат:

Только GET-параметры

Результат:

Для преобразования строки с GET-параметрами в ассоциативный массив можно применить функцию parse_str() .

parse_str('sort=asc&page=2&brand=rich', $get); print_r($get);

Результат:

Array ( [sort] => asc [page] => 2 [brand] => rich )

Комментарии 2

Авторизуйтесь, чтобы добавить комментарий.

Другие публикации

Чтение Google таблиц в PHP

Как получить данные из Google spreadsheets в виде массива PHP? Очень просто, Google docs позволяет экспортировать лист в формате CSV, главное чтобы файл был в общем доступе.

Сортировка массивов

В продолжении темы работы с массивами поговорим о типичной задаче – их сортировке. Для ее выполнения в PHP существует множество функций, их подробное описание можно посмотреть на php.net, рассмотрим.

Источник

How to retrieve URL parameters in PHP.

In this beginner PHP tutorial, we will show you how to retrieve query string parameters from a URL. We will also tell you about some of the most common pitfalls.

Take the following URL as an example, which contains two GET parameters:

In the URL above, we have two GET parameters. id, which contains the value 23, and page, which contains the value 34.

Let’s say that we want to retrieve those values so that we can use them in our PHP script.

If we want to retrieve the values of those two parameters, we can access the $_GET superglobal array like so:

//Get our two GET parameters. $id = $_GET['id']; $page = $_GET['page'];

Although the PHP code will work, it wrongly assumes that the GET parameters in question will always exist.

As a result, there is a possibility that our script will throw an ugly undefined index notice if a user removes one of the parameters from the URL.

This will result in PHP spitting out the following message:

Notice: Undefined index: id in /path/to/file.php on line 4

To guard against this kind of issue, you will need to check to see if the GET variable exists before you attempt to use it:

$id = false; if(isset($_GET[‘id’])) < $id = $_GET['id']; >$page = false; if(isset($_GET[‘page’]))

In the example above, we use PHP’s isset function to check whether or not the parameter in question actually exists.

If it does exist, we assign it to one of our variables. If it doesn’t, then our variables will retain their default FALSE values.

Never trust GET parameters. Always validate them.

GET parameters should always be treated with extreme caution.

  1. You cannot assume that they will always exist.
  2. If they do exist, you can’t discount the possibility that the user has tampered with them.

In other words, if you expect id to be an integer value and a user decides to manually change that to “blahblahblah”, your PHP script should be able to handle that scenario.

URL parameters are external variables, and external variables can never ever be trusted.

Never directly print GET parameters onto the page.

Printing out GET parameters without sanitizing them is a recipe for disaster, as it will leave your web application wide open to XSS attacks.

Take the following example:

$page = false; if(isset($_GET['page'])) < $page = $_GET['page']; >if($page !== false)< echo '

Page: ' . $page . '

'; >

Here, we’ve done everything right except the final step:

  1. We check to see if the GET parameter exists before we access its value.
  2. We do not print the page number out if it doesn’t exist.

However, we did not sanitize the variable before we printed it out. This means that an attacker could easily replace our GET variable with HTML or JavaScript and have it executed when the page is loaded.

They could then redirect other users to this “tainted” link.

To protect ourselves against XSS, we can use the PHP function htmlentities:

//Guarding against XSS if($page !== false)< echo '

Page: ' . htmlentities($page) . '

'; >

The htmlentities function will guard against XSS by converting all special characters into their relevant HTML entities. For example, will become <script>

Источник

Как в php получить текущий URL?

Сегодня поговорим о том, как получить адрес страницы в php.

Зачем это может быть нужно?

Сценарии могут быть разными. Например, у нас используется один и тот же шаблон для разных разделов. Но в одном из разделов нам необходимо вывести (или не вывести) какой-то специфичный блок, которого в других разделах быть не должно.

Вероятно мы захотим сделать это по условию. И именно в условии мы и будем проверять тот ли это раздел.

Возможно с архитектурной точки зрения – это не самое лучшее решение. Однако, очень часто нам достаются уже готовые проекты, с которыми нужно что-то делать.

Получаем URL текущей страницы

Чтобы получить необходимую информацию, мы будем обращаться к такой глобальной переменной в php, как $_SERVER.

Переменная $_SERVER – это массив, который хранит в себе много полезной информации: заголовки, пути, местоположения скриптов.

Если вы хотите посмотреть всё, что хранит этот массив, то можете воспользоваться следующим кодом, который в читабельном виде выведет все значения:

Итак, давайте представим, что у нас есть веб страница следующего вида: http://localhost/php-lessons/url/?name=anna&city=Valencia.

Я тестирую на локальном сервере. Когда вы будете работать с реальным сайтом, который лежит в сети, то вместо localhost у вас будет имя вашего сайта (например exmple.ru).

Что мы видим в нашем подопытном url?

  • Нас может интересовать адрес страницы без GET-параметров;
  • адрес страницы с GET-параметрами;
  • или просто сами GET-параметры без адреса страницы.

Давайте разберемся с каждой ситуацией.

Получаем полный URL страницы в php

Чтобы получить полный URL страницы вместе с GET-параметрами, воспользуемся следующим кодом:

$url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; echo $url;

Сначала мы проверяем, какой протокол используется: https или http.

Если значение $_SERVER[‘HTTPS’] не пусто, значит это https, иначе http.

Далее мы присоединяем двоеточие и 2 слэша, имя домена (хоста) и остальную часть нашего URL.

Результат будет вот таким:

http://localhost/php-lessons/url/?name=anna&city=Valencia

Если протокол нам получать не нужно, то можно сократить код до такого:

Результат тогда будет следующим:

localhost/php-lessons/url/?name=anna&city=Valencia

Получаем URL страницы без GET-параметров в php

Иногда нас не интересуют GET-параметры, которые передаются как часть URL, и нам нужно получить адрес без них.

GET-параметры в нашем случает – это name=anna&city=Valencia

Чтобы отсечь их мы можем использовать php-функцию explode, которая разбивает строку по разделителю.

Наш URL – это ни что иное, как строка. GET-параметры всегда начинают передаваться после знака “?”. Следовательно разделителем будет вопросительный знак.

Функция explode превратит строку в массив с двумя элементами. В первом будет содержаться наш искомый url без GET-параметров, а во втором останутся GET-параметры.

Результат будет таким: http://localhost/php-lessons/url/

Получаем GET-параметры из URL

Здесь совсем все просто. Чтобы получить только GET-параметры будем использовать следующий код:

name=anna&city=Valencia

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

Ставьте лайки, оставляйте комментарии, подписывайтесь на обновления!

Здесь только полезные вещи 😉

Источник

PHP — easiest way to get $_GET parameters string as written in the URL

I’m trying to redirect from one page to another while retaining the parameters. e.g. if I have a page page.php?param1=1&param2=2, what’s the easiest way to extract «param1=1&param2=2»?

4 Answers 4

Use $_SERVER[‘QUERY_STRING’] to access everything after the question mark.

http://www.sample.com/page.php?param1=1¶m2=2 
$url = "http://www.sample.com/page2.php?".$_SERVER['QUERY_STRING']; echo $url; 
http://www.sample.com/page2.php?param1=1¶m2=2 

In addition to Robs answer:

You can use http_build_query and $_GET.
This is build-in and can deal with arrays.
Also you can easily manipulate the GET params this way, befor you put them together again.

unset($_GET['unsetthis']); $query = http_build_query($_GET); 
$querystring = '?' foreach($_GET as $k=>$v) < $querystring .= $k.'='.$v.'&'; >$url .= substr($querystring, 0, -1); 

where $url already contains everything before the ?

you could also use $_SERVER[‘QUERY_STRING’] but as per the PHP manual:

$_SERVER is an array containing information such as headers, paths, and script locations. The entries in this array are created by the web server. *There is no guarantee that every web server will provide any of these; servers may omit some, or provide others not listed here. *

Источник

Читайте также:  Построение кубического сплайна python
Оцените статью