提问人:Johnny Bravo 提问时间:6/14/2023 最后编辑:ADysonJohnny Bravo 更新时间:6/14/2023 访问量:63
使用 PHP 将表单输入写入文本文件
Write form inputs to text file using PHP
问:
我正在尝试做的是在提交时将表单中的输入写入单独的文本文件中。请注意,表格不能更改。
问题是,如何将输入保存在单独的 TXT 文件中? 这是形式:
<form method="post">
<textarea id="name"></textarea>
<textarea id="message"></textarea>
<input type="submit" name="submit">
</form>
这是我尝试这样做的方式:
<?php
if(isset($_POST['submit']))
{
$name = $_POST['#name'];
$message = $_POST['#message'];
$text = $name . "," . $message . "\n";
$fp = fopen('questions.txt', 'a+');
if(fwrite($fp, $text)) {
// ini_set('display_errors', 1);
// ini_set('display_startup_errors', 1);
// error_reporting(E_ALL);
echo 'Thank you!';
}
fclose ($fp);
} ?>
请注意,我在这里阅读了许多解决方案,所有表单都具有带有名称的输入(即)。不幸的是,我的表单无法更改,这就是为什么我尝试(未成功)使用希望使用输入 ID(注意 #)。name='message'
$name=$_POST['#name']
是否可以在不修改表单的情况下将输入保存到文本文件? 文件问题.txt存在,可写 777。
谢谢。
答:
1赞
symcbean
6/14/2023
#1
这里有一个问题目录。
这就是为什么我尝试(未成功)使用 $name=$_POST['#name'] 希望使用输入 ID(注意 #)。
通过使用提供的 Web 开发人员工具查看浏览器发送的数据或将表单指向(例如),检查这一点非常微不足道:
<pre>
<?php print_r($_POST); ?>
</pre>
至少在Firefox中,除了提交按钮之外,浏览器不会将任何数据发送回服务器。如果您不能使用表单重写 HTML 页面(或添加 Javascript),那么这将永远无法奏效。
暂且不谈......
我可以将输入保存到文本文件吗
是的,但这是一个坏主意。我们使用数据库来存储数据有多种原因。
它是可写的 777
这总是一个坏主意。允许 PHP 写入 Web 根目录中的文件也是如此。
评论
0赞
Johnny Bravo
6/19/2023
我可以添加 Javascript。如上所述,它是一个加密的WP联系人插件,因此无法更改文件/表单。我不太关心安全性,我只想要一个额外的日志来证明有人联系了我,因此有了额外的 777 文件。我认为这是最简单的方法,但我开始怀疑。插件本身保留日志,外部文件将是这些消息的某种备份。PS 为什么要提到javascript,有没有办法使用js?
评论
<?php
Unfortunately, my form cannot be altered
...为什么不呢?这毫无意义。如果没有它们,表单永远不会向服务器发送任何内容,无论您在 PHP 中更改了什么。数据永远不会到达 PHP。