2012-05-30 35 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