如何通过标题函数发送数据,如post

0 php post header

我尝试将数据从php文件传递到另一个带头函数的php文件.像那样:

header("location:login.php?userName=$username"); 
Run Code Online (Sandbox Code Playgroud)

(该行出现在第一个php文件中.)问题是数据出现在第二个php文件的url中.喜欢GET.我尝试寻找一些例子,但没有成功.我正在寻找如何使它像POST一样?

Thi*_*ter 7

你不能.如果你重定向,你将始终有一个GET请求.

一种可能的解决方案(如果目标脚本位于同一域中)将使用PHP会话将数据存储在服务器上.


nag*_*eeb 5

最初建议使用CURL,我现在认为它可能不是最好的解决方案.如果您只是想在脚本之间保留或传递数据,则可能需要查看Sessions,它允许您在脚本之间设置和保留数据.

例如:

脚本1

session_start();

$_SESSION['userName'] = $username;
Run Code Online (Sandbox Code Playgroud)

脚本2

session_start();

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

echo $username;
Run Code Online (Sandbox Code Playgroud)

这将成功传递两个脚本之间的$ username值.只需将任何变量放入$ _SESSION数组中,它们将在整个脚本中可用.

  • 一定要包含session_start(); 在每个脚本的顶部
  • 查看还包括session_set_cookie_params()以确保您的会话可通过您的域获得和/或不与其他站点的会话冲突.