2012-05-30 34 views
0

我試圖將數據從PHP文件傳遞到另一個帶有頭文件功能的PHP文件。像這樣:如何通過郵件頭功能發送數據

header("location:login.php?userName=$username"); 

(該行出現在第一個php文件中)問題是數據出現在第二個php文件的url中。像GET。我嘗試尋找一些例子,但沒有成功。我在尋找如何使它像POST?

+0

所以基本上你要做的是將變量/值從一個文件傳輸到另一個文件?你有沒有特別的理由想這樣做? – Bono

+0

可能的重複[PHP的 - 傳遞POST變量與頭()?](http://stackoverflow.com/questions/2447211/php-pass-post-variables-with-header) –

回答

7

你不能。如果你重定向,你總會有一個GET請求。

一個可能的解決方案(如果目標腳本在同一個域中)將使用PHP會話來將數據存儲在服務器上。

+0

我嘗試登錄到網站。有3個文件。與從傳遞數據通過張貼到PHP文件的HTML。該php文件需要根據數據庫檢查登錄。如果登錄成功,我們將傳遞給另一個顯示與此用戶匹配的結果的php文件。我不希望這些值出現在URL中。出於安全原因。 – Ortal

5

最初建議使用CURL,我現在認爲它可能不是最好的解決方案。如果您只是希望在腳本之間保留或傳遞數據,則可能需要查看Sessions,它允許您在腳本之間設置和保留數據。

如:

腳本1

session_start(); 

$_SESSION['userName'] = $username; 

腳本2

session_start(); 

if (isset($_SESSION['userName'])) 
    $username = $_SESSION['userName']; 

echo $username; 

這將成功地通過兩個腳本之間$ username的值。只需將任何變量放入$ _SESSION數組中,它們將在整個腳本中都可用。

  • 一定要包含session_start();在每個腳本的頂部
  • 看看還包括session_set_cookie_params()以確保您的會話可通過您的域名和/或與其他網站的會話不衝突。
+1

這使得服務器發送一個請求,而不是客戶端。所以這可能不是他想要的。 – ThiefMaster

+0

如何讓瀏覽器使用cURL向新目標發佈帖子? –

+0

重新閱讀這個問題,curl可能不是最好的解決方案。 – nageeb