如何通过html/javascript表单输入在服务器上创建新的html页面

如何通过html/javascript表单输入在服务器上创建新的html页面,javascript,html,forms,Javascript,Html,Forms,我想知道是否可以使用基本的html/javascript表单输入数据,然后单击submit按钮,结果是在web服务器上创建一个新的html文档。初始表单内容将用于确定在创建新html页面时将哪些数据添加到该页面中。大概是使用PHP/MySQL。谢谢。JavaScript在客户端而不是服务器上运行,因此无法直接创建文件。这将在处理表单的服务器上使用PHP脚本完成。这与基于表单数据显示页面非常相似,但它会写入文件: $f = fopen($filename, 'w') or die "Can't c

我想知道是否可以使用基本的html/javascript表单输入数据,然后单击submit按钮,结果是在web服务器上创建一个新的html文档。初始表单内容将用于确定在创建新html页面时将哪些数据添加到该页面中。大概是使用PHP/MySQL。谢谢。

JavaScript在客户端而不是服务器上运行,因此无法直接创建文件。这将在处理表单的服务器上使用PHP脚本完成。这与基于表单数据显示页面非常相似,但它会写入文件:

$f = fopen($filename, 'w') or die "Can't create file $filename";
fprintf($f, "<html>\n<body>\n");
// and so on
fprintf($f, "</body>\n</html>\n");
fclose($f);
$f=fopen($filename,'w')或die“无法创建文件$filename”;
fprintf($f,“\n\n”);
//等等
fprintf($f,“\n\n”);
外国法郎(f美元);

您可以这样做,但我强烈建议不要在网站上放置类似的内容。这样的工具很容易让攻击者在您的站点上放置他们喜欢的任何类型的代码。如果您创建这样的工具,您可以使用Web服务器对目录进行密码保护,或者创建某种身份验证系统。如果您希望能够使用数据库编辑页面,有很多内容管理系统已经允许您这样做。Drupal或Wordpress是两个很好的起点

实际上不需要在服务器上创建整个html页面。更好的方法是将表单的数据保存到数据库中。当您需要显示数据时,只需填充模板并提供服务。这将使管理所有这些页面变得更加容易,因为任何更改只需要在模板中完成,而不需要对创建的文件进行更改

例如,考虑表单有一个名字、姓氏和批注字段。你可能会去商店

{ firstName: 'John', lastName: 'Doe', comment: 'This was good' }
{ firstName: 'Jane', lastName: 'Doe', comment: 'This was bad' }
服务器上可能有一个
template.html
,如下所示:

<html>
<head><title>View Comment</title></head>
<body>
    Name: {{lastName}}, {{firstName}}
    Comment: {{comment}}
</body>
</html>

查看评论
姓名:{{lastName},{{firstName}
注释:{{Comment}}

这使用特定的语法,但您可以选择任何您喜欢的。当发出请求时,您只需用数据填充占位符,瞧!动态html页面。

是否要创建永久的静态页面,或者只是根据表单数据动态返回一个文档?我想在服务器上创建一个可以随时提供的永久文档。这将重复进行,我可能会合并一个命名约定脚本,以便每个文档都有不同的标题,即:doc1.html,doc2.html等。我想知道我是否可以有一个提交按钮,每次单击它时,它都会在服务器上“生成”一个新的“物理”html文档。我相信这是可以做到的,但在谷歌上搜索是一件痛苦的事情,因为关键词充斥着搜索结果“如何创建表单”:(我也这么想了,但不知道怎么做。我想在这一点上可能会有一些html-5 ish规范的附录。如果您的web服务器支持
PUT
操作,您可以在浏览器中构建整个页面,并通过AJAX调用
PUT
而不是
POST
将其上传到服务器。但许多服务器不支持。)“不允许这样做。我假设他们不允许这样做,因为可能存在安全问题等。显然,它必须利用身份验证来防止Random上传任意页面。类似地,您可以编写一个简单的PHP脚本来处理包含整个页面的AJAX数据,并将其写入一个文件。但您必须有good身份验证以防止随机数创建您不想要的页面——您不能依赖它们使用您的JavaScript来创建页面。这就是为什么让脚本构建页面通常更好的原因。