php 如何设置 $_GET 变量

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/5415224/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-25 21:19:53  来源:igfitidea点击:

How to set $_GET variable

phpformsvariablesget

提问by dave

How do i set the variable that the $_GETfunction will be able to use, w/o submitting a form with action = GET?

我如何设置$_GET函数将能够使用的变量,而无需提交表单action = GET

采纳答案by Gaurav

You can create a link , having get variable in href.

您可以创建一个链接,在href 中有get 变量。

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

回答by Pascal MARTIN

$_GETcontains the keys / values that are passed to your script in the URL.

$_GET包含传递给 URL 中脚本的键/值。

If you have the following URL :

如果您有以下网址:

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

Then $_GETwill contain :

然后$_GET将包含:

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


Of course, as $_GETis not read-only, you could also set some values from your PHP code, if needed :


当然,由于$_GET不是只读的,如果需要,您也可以从 PHP 代码中设置一些值:

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

But this doesn't seem like good practice, as $_GETis supposed to contain data from the URL requested by the client.

但这似乎不是好的做法,因为$_GET它应该包含来自客户端请求的 URL 的数据。

回答by Sander Marechal

You can use GET variables in the actionparameter of your formelement. Example:

您可以在元素的action参数中使用 GET 变量form。例子:

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

This will give you fooas a GET variable and quuas a POST variable.

这将为您foo提供 GET 变量和quuPOST 变量。

回答by oriadam

If you want to fake a $_GET (or a $_POST) when including a file, you can use it like you would use any other var, like that:

如果您想在包含文件时伪造 $_GET(或 $_POST),您可以像使用任何其他 var 一样使用它,如下所示:

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

回答by Jens A. Koch

One way to set the $_GETvariable is to parse the URL using parse_url()and then parse the $querystring using parse_str(), which sets the variables into the $_GETglobal.

设置$_GET变量的一种方法是使用解析 URL parse_url(),然后使用解析$query字符串parse_str(),这将变量设置为$_GET全局变量。

This approach is useful,

这个方法很有用

  • if you want to test GET parameter handling without making actual queries, e.g. for testing the incoming parameters for existence and input filtering and sanitizing of incoming vars.
  • and when you don't want to construct the array manually each time, but use the normal URL
  • 如果您想在不进行实际查询的情况下测试 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);

Result: $_GETcontains

结果:$_GET包含

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

回答by Theo

The $_GETvariable is populated from the parameters set in the URL. From the URL http://example.com/test.php?foo=bar&baz=buzzyou can get $_GET['foo']and $_GET['baz']. So to set these variables, you only have to make a link to that URL.

$_GET变量由 URL 中设置的参数填充。从 URLhttp://example.com/test.php?foo=bar&baz=buzz你可以得到$_GET['foo']$_GET['baz']。因此,要设置这些变量,您只需创建指向该 URL 的链接。

回答by sreekanth

For the form, use:

对于表单,请使用:

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

and for getting the value, use the get method as follows:

要获取值,请使用 get 方法,如下所示:

$value = $_GET['name_to_send_using_get'];

回答by Joseph Orlando

You could use the following code to redirect your client to a script with the _GET variables attached.

您可以使用以下代码将您的客户端重定向到附加了 _GET 变量的脚本。

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

This will cause the script to redirect, make sure the die();is kept in there, or they may not redirect.

这将导致脚本重定向,确保将die();其保留在那里,否则它们可能不会重定向。

回答by SkriptZor

I know this is an old thread, but I wanted to post my 2 cents...

我知道这是一个旧线程,但我想发布我的 2 美分...

Using Javascript you can achieve this without using $_POST, and thus avoid reloading the page..

使用 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!";
    }
 ?>