如何使用 $_POST 永久更改某些内容

how to use $_POST to change some contents forever

我正在尝试将数据从一个网站填充到另一个网站: a.html:

<form action="b.php" method="post">
<textarea id="myProjects" name="mp"></textarea>
<input id="submit" type="submit" value="Submit" />
</form>

在b.php中:

<?php $content=$_POST['mp'];
echo "you entered ".$content;
?>

这以一种非常奇怪的方式工作,当我点击提交按钮时,我被定向到 b.php 页面,我可以看到我输入的内容。但是如果我重新加载这个页面,而不是刷新,我的内容就会消失,并且 throwWarning: Undefined array key "mp" 看起来从 $_POST 接收到的数据是“临时”存储的。我是 PHP 的新手,所以我不确定该如何解决。

您可以使用 PHP SESSION 功能来保持数据持久化:

在b.php中:

<?php
   // Start the session
   session_start();

   // save the input var as a SESSION property
   if (isset($_POST['mp'])) {
      $_SESSION['content'] = $_POST['mp'];
   }

   // display the property
   echo "you entered " . $_SESSION['content'];

一般来说,您要做的是将 $_POST['mp'] 的值存储到 $_SESSION 变量中,以便它从一个页面请求持续到下一个页面请求。

然而,直接操作这些变量通常是不好的做法。除非您对用户输入进行清理,否则您将面临无数的脚本攻击。尽管涉及一些学习,但您最好使用已建立的 PHP 框架(例如 Laravel),它具有全套验证功能,并为您管理启动会话的过程.一个好的框架还将在许多其他方面为您提供帮助。