写入$ _POST是不好的做法?

Maw*_*awg 9 php

如果是file_1.php

<?php

  $_POST["test_message"] = "Hello, world";    

  header("Location: http://localhost/file_2.php");
?>
Run Code Online (Sandbox Code Playgroud)

这是file_2.php

<html>
<head>
</head>
<body>

<?php

  if (!(isset($_POST["test_message"])))
    echo "Test message is not set";
  else
    echo $_POST["test_message"];
?>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

输出是 Test message is not set

这让我想知道是否有人甚至可以写入$ _POST,并且想知道,我想知道这样做是不好的做法.我是否应该让提交按钮和方法的表单为我写邮件给$ _POST,或者写入$ _POST以在文件之间传递数据是否合法?

Ric*_*ams 15

你想要$_SESSION改用.

$_POST对于已经POST到当前页面并且不在页面加载之间保持状态的信息,只有在重定向时实际将某些内容发布到第二个文件时才会填充它.如果你要包含第二个文件,而不是通过标题重定向,那么你所做的就可以了,因为$_POST变量仍然会被设置.

$_SESSION 将保持页面之间的状态,因此将在重定向时完成您想要的.

$_SESSION正确使用,您需要先调用session_start();才能开始会话.PHP手册中有更多信息.


rob*_*lls 6

$_POST["test_message"]在file2.php中为空,因为您实际上没有向该脚本发布任何内容.该$_POST阵列由发布表单数据填充,你可以填充$_GET通过附加一个GET变量,以你的头重定向或存储数据$_SESSION,如果你需要的页面之间的数据持久性.