2011-03-21 195 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