Html5提交表单按钮 - 发送输入到文件?

时间:2013-07-31 12:13:19

标签: forms submit user-input data-storage form-submit

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

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

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

目前我不需要盐哈希或任何安全性,只需进行离线表格测试,谢谢!

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

1 个答案:

答案 0 :(得分: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方法意味着来自输入框的所有响应都在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',并尝试使用您的表单。