0

我有一个多页网站,我还是编程新手,但已经学习了很多 HTML 和 CSS。我的问题是:

如何让我的提交表单按钮获取用户输入数据,并在离线时将其发送到我计算机上的 .txt 文件?

这只是为了让我可以测试我的表单并确保它可以发送输入数据。此表单是一个模型应用程序,包括文本框、单选按钮、选择列表、密码、电子邮件等...

目前我不需要盐哈希或任何安全性,仅用于离线表单测试,谢谢!

编辑:我确实有一个正确设置的提交按钮,但它不会将输入数据发送到任何地方

4

1 回答 1

2

如果您处于离线状态,那么您的计算机将无法接收数据。

但是,如果您的网站位于 Internet 上的 Web 服务器上,则可以将数据保存到服务器上的文本文件中,以供以后访问。

表单本身需要一个动作标签,它告诉表单应该将数据发送到哪里进行处理。它也有一些重要的标签:

<form method="post" action="http://www.yoursite.com/script-to-process-submission.php">
    One: <input type='text' name='inputbox1'/>
    Two: <input type='text' name='inputbox2'/>
</form>

您将所有输入框放在表单标签中。该方法可以是“get”或“post”,这是发送数据的方式。get 方法意味着来自输入框的所有响应都在 url 中发送,用 & 号分隔,如下所示:

http://www.yoursite.com/script-to-process-submission.php?inputbox1=what+the+user+entered&inputbox2=also+what+the+user+entered

这里的问题是长表单可能不会提交所有数据——服务器通常会限制可以通过这种方式发送的输入的长度。使用“post”方法,较长的形式更好。

提交表单并将数据发送到服务器后,您需要使用 Perl 或 PHP 等服务器端语言设置脚本。这是 PHP 中的一个示例:

<?php
$response = "";
foreach ($_POST as $key => $value){
    $response .= $key . " -> " . $value . "\n";
}
// now save to disk in a file called saved_response.txt
// the FILE_APPEND adds the form responses to the text file, and the LOCK_EX locks the file first
file_put_contents('saved_response.txt',$response,FILE_APPEND | LOCK_EX);
exit;

如果您更喜欢 get 方法,请将上面的 $_POST 更改为 $_GET。

重要提示:上述代码不涉及清理,恶意用户可能会将不良数据发送到您的服务器,并造成伤害。您应该考虑对提交的文本进行某种清理,例如:

$clean_value = preg_replace("/[^ 0-9a-zA-Z]/", "_", $value);

你可以把它放在上面的 $response.= 行之前。它的作用是只保留数字和小写/大写字母。

将此 php 代码保存为纯文本文件“script-to-process-submission.php”,然后尝试您的表单。

于 2013-10-09T15:30:32.333 回答