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

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

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

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

$_GET содержит ключи / значения, которые передаются вашему скрипту в 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-адреса, запрошенного клиентом.

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

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

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

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

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

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

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

 $value = $_GET['name_to_send_using_get']; 

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

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

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

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

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

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

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

  • если вы хотите протестировать обработку параметров 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) ) 

Я знаю, что это старая нить, но я хотел опубликовать свои 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!"; } ?>