当我重新加载网页时,fopen功能一直向我发送重复版本的表单



这里是html/php

<html>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"] ?>">
Enter message<br> <textarea rows="4" cols="40" name="form"></textarea><br>
<input type="submit">
</form>
<?php
$formvalue = $_POST["form"];
if ($formvalue == TRUE) {
$file = fopen("logindetails", "a");
fwrite($file, PHP_EOL);
fwrite($file, $formvalue);
fclose($file);                     
}
else {
die();
}
?>
</html>

现在,每当我重新加载页面时,就会出现先前提交的值或新的换行符如何解决这个问题

请帮

我期望网页上的表单值被提交并显示在服务器上的一个文件上,并且每个表单提交要更新的文件,但相反,它重复先前发送的值到文件中,页面刷新或者如果我没有在表单中填写任何内容,则在表单中添加一个空白的新行
属性到我的表单

为了避免您的POST或GET再次被发送,您可以检查&首先处理在脚本中,然后将脚本重定向到同一页面。一旦重定向,如果刷新页面,它将被发送任何POST或GET请求。

可能更新的代码示例:

<?php
if(isset($_POST["form"])) {
$formvalue = $_POST["form"];
if ($formvalue == TRUE) {
$file = fopen("logindetails", "a");
fwrite($file, $formvalue);
fwrite($file, PHP_EOL);
fclose($file);  
header('Location: ' .  $_SERVER['SCRIPT_NAME']);// calls again your page before printing anything
}
}
?>
<html>
<body>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"] ?>">
Enter message<br> <textarea rows="4" cols="40" name="form"></textarea><br>
<input type="submit">
</form>
</body>
</html>

相关内容

  • 没有找到相关文章