2011-03-21 70 views
1

我使用;

$referrer = $_GET['_url']; 

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

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

我希望是有道理的..

+1

你是什么意思与“我使用$ _POST内的$ referrer”? – 2011-03-21 08:04:46

+0

@Col。弹片:我会给你我的例子在你的答案.. – DT85 2011-03-21 08:05:47

回答

1

$_POST将只包含数据如果从形式发送。

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

如果你真的想从$_POST$referer,你就会有这样的代码的东西:

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

或者,像@迈克尔吉列的回答,您可以更改与$_REQUEST

+0

将工作在我的应用程序?这件事真的让我烦恼!我完整的代码:http://www.stackoverflow.com/questions/5363810/get-and-post-issue – DT85 2011-03-21 08:11:05

0

你能发表一个你可能喜欢做什么的例子吗?

$referrer = $_REQUEST['_url']; 

将返回上都获得真正的和POST请求

+0

谢谢@迈克尔吉列 - 我的完整示例:http://www.stackoverflow.com/questions/5363810/get - 问题 – DT85 2011-03-21 08:12:02

1

希望是有道理的..

抱歉,但它不:)

  1. $referrer成为与$_GET['_url']无关的独特变量。它已经包含从$ _GET提取的值
  2. $ _GET来源变量与$ _POST冲突没有单一的原因。

你的问题在别的地方。 看来你只是试图访问不存在的变量。因为每个变量在执行后都会与整个PHP一起死亡。

PHP脚本执行是原子的。它不像桌面应用程序一直在你的浏览器中运行,甚至不是持久连接到你的桌面应用程序的恶魔。它更像是一个命令行工具 - 执行它并退出。它运行离散:

  1. 一个浏览器会调用
  2. PHP醒来,创建一个HTML页面,将其发送到浏览器和模具
  3. 浏览器呈现HTML和它显示给用户。
  4. 用户点击一个链接
  5. 一个浏览器会调用
  6. 另一个PHP实例,一无所知以前的号召,唤醒

所以,如果你设置你的$引用在一个实例中,并试图在另一个实例中访问它,它会失败。你必须重新发送它的价值与下一个电话

+0

@Col。 Shrapnel:我一直在试图找出这个问题2天了..我试图理解为什么$ referrer变空了以及如何解决它.. http://stackoverflow.com/questions/5363810/get- and-post-issue – DT85 2011-03-21 08:06:31

+0

@ DT85 $ _GET ['_ url']在你的其他问题中显然是空的。你为什么期待它和为了什么? – 2011-03-21 08:12:32

+0

@Col。 Shrapnel:方案:'$ referrer =“1234567”'。好的,当用户在表单中提交他们的电子邮件地址时,'if($ _POST ['email']){',它应该这样做:'$ mysqli-> query(“UPDATE coming_soon_emails SET signup = signup + 1 WHERE code = '“。$ referrer。”'“);'在JS中它应该隐藏表单并显示其他div。在$ if($ _POST ['email']){'之前和之后'$ referrer'不是空的。我需要它,因为如果用户注册,它应该更新引用者的“注册”列(通过在DB中使用$ referrer的查找)并用count +1来表示“他们引用了另一个人”。 – DT85 2011-03-21 08:23:42