如何使用 $_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),它具有全套验证功能,并为您管理启动会话的过程.一个好的框架还将在许多其他方面为您提供帮助。
我正在尝试将数据从一个网站填充到另一个网站: 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),它具有全套验证功能,并为您管理启动会话的过程.一个好的框架还将在许多其他方面为您提供帮助。