取消分配$ _GET中的变量值

时间:2011-03-21 07:42:43

标签: php

我用;

$referrer = $_GET['_url'];

如果我echo $referrer;它将正确显示。

如果我在$ _POST中使用$ referrer,则为空。我认为由于$ referrer被分配到$ _GET 如何将$ referrer 的值提取到另一个变量中,以便不再将其分配给$ _GET?

我希望这是有道理的。

4 个答案:

答案 0 :(得分:1)

$_POST只会包含您从表单发送的数据。

所以,你的代码基本上是正确的。因为您在网址中使用了引荐来源。

如果您真的希望$referer来自$_POST,则必须使用以下代码进行编码:

<form method="post" action="somewhere.php">
  <input type="hidden" name="_url" value="{place the referrer here}" />
</form>

或者,就像@Michael Gillette的回答一样,你可以用$_REQUEST改变它。

答案 1 :(得分:1)

  

希望有道理..

抱歉,但它没有:)

  1. $referrer成为与$_GET['_url']无关的不同变量。它已包含从$ _GET
  2. 中提取的值
  3. $ _GET源变量与$ _POST冲突没有一个原因。
  4. 你的问题出在其他地方。 看来你只是想尝试访问不存在的变量。因为每个变量在执行后都会与整个PHP一起消失。

    PHP脚本执行是原子的。它不像是在您的浏览器中不断运行的桌面应用程序,甚至不是与您的桌面应用程序持久连接的恶魔。它更像是一个命令行实用程序 - 做它的工作和退出。它运行离散:

    1. 浏览器拨打电话
    2. PHP醒来,创建一个HTML页面,将其发送到浏览器并消亡
    3. 浏览器呈现该HTML并将其显示给用户。
    4. 用户点击链接
    5. 浏览器拨打电话
    6. 另一个PHP实例,对前一个调用一无所知,醒来等等
    7. 因此,如果您在一个实例中设置$ referrer并尝试在另一个实例中访问它,则会失败。您必须在下次通话时重新发送它的价值

答案 2 :(得分:0)

使用clone关键字,如本文中的示例所示: http://php.net/manual/en/language.references.php

答案 3 :(得分:0)

你能发布一个你想做的事情的例子吗?

$referrer = $_REQUEST['_url'];

将在GET和POST请求中返回true