Как установить переменную $_GET

Как установить переменную, которую функция $_GET сможет использовать, без отправки формы с помощью action = GET?

Ответ 1

Вы можете создать ссылку, получив переменную в href.

<a href="www.site.com/hello?getVar=value" >...</a>

Ответ 2

$_GET содержит ключи/значения, которые передаются на ваш script в URL.

Если у вас есть следующий URL-адрес:

http://www.example.com/test.php?a=10&b=plop

Тогда $_GET будет содержать:

array
  'a' => string '10' (length=2)
  'b' => string 'plop' (length=4)


Конечно, поскольку $_GET не доступен для чтения, вы также можете установить некоторые значения из вашего кода PHP:

$_GET['my_value'] = 'test';

Но это не похоже на хорошую практику, так как $_GET должен содержать данные из URL-адреса, запрошенного клиентом.

Ответ 3

Вы можете использовать переменные GET в параметре action вашего элемента form. Пример:

<form method="post" action="script.php?foo=bar">
    <input name="quu" ... />
    ...
</form>

Это даст вам foo как переменную GET и quu как переменную POST.

Ответ 4

Если вы хотите подделать $_GET (или $_POST) при включении файла, вы можете использовать его, как если бы вы использовали любой другой var, например:

$_GET['key'] = 'any get value you want';
include('your_other_file.php');

Ответ 5

Переменная $_GET заполняется из параметров, заданных в URL-адресе. Из URL http://example.com/test.php?foo=bar&baz=buzz вы можете получить $_GET['foo'] и $_GET['baz']. Таким образом, чтобы установить эти переменные, вам нужно только сделать ссылку на этот URL.

Ответ 6

Для формы используйте:

<form name="form1" action="<?=$_SERVER['PHP_SELF'];?>" method="get">

и для получения значения используйте метод get следующим образом:

$value = $_GET['name_to_send_using_get'];

Ответ 7

Вы можете использовать следующий код для перенаправления своего клиента на script с прилагаемыми переменными _GET.

header("Location: examplepage.php?var1=value&var2=value");
die();

Это приведет к перенаправлению script, убедитесь, что die(); хранится там, или они не могут перенаправляться.

Ответ 8

Один из способов установить переменную $_GET - это проанализировать URL-адрес, используя parse_url() а затем проанализируйте строку $query, используя parse_str(), которая устанавливает переменные в $_GET global.

Этот подход полезен,

  • если вы хотите протестировать обработку параметров GET без фактических запросов, например. для тестирования входящих параметров для существования и фильтрации входных данных и дезинфекции входящих варов.
  • и когда вы не хотите каждый раз строить массив вручную, но используйте обычный URL

function setGetRequest($url)
{
    $query = parse_url($url, PHP_URL_QUERY);
    parse_str($query, $_GET);
}

$url = 'http://www.example.com/test.php?a=10&b=plop';

setGetRequest($url);   

var_dump($_GET);

Результат: $_GET содержит

array (
  'a' => string '10' (length=2)
  'b' => string 'plop' (length=4)
)

Ответ 9

Я знаю, что это старый поток, но я хотел опубликовать свои 2 цента...

Используя Javascript, вы можете достичь этого, не используя $_POST, и, таким образом, не перезагружать страницу.

<script>
function ButtonPressed()
{
window.location='index.php?view=next'; //this will set $_GET['view']='next'
}
</script>

<button type='button' onClick='ButtonPressed()'>Click me!</button>

<?PHP
 if(isset($_GET['next']))
    {
          echo "This will display after pressing the 'Click Me' button!";
    }
 ?>