我有一个多页面的网站,我还是新编程,但已经学到了很多HTML和CSS。我的问题是:
如何让我的提交表单按钮获取用户输入数据,并在离线时将其发送到计算机上的.txt文件?
这很简单,我可以测试我的表单,并确保它可以发送输入数据。此表单是一个模型应用程序,包括文本框,单选按钮,选择列表,密码,电子邮件等...
目前我不需要盐哈希或任何安全性,只需进行离线表格测试,谢谢!
编辑:我确实有一个正确设置的提交按钮,但它不会将输入数据发送到任何地方
答案 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',并尝试使用您的表单。