0

到目前为止,我有一个使用 PHP POST 方法的 HTML 表单。我想要做的是使用包含样式表和表单中没有的内容的输入自动创建一个页面。我知道可以像我一样创建一个这样的 XML 页面,但是你能创建一个 HTML 页面吗?这是我到目前为止所拥有的,包括创建 XML 页面并且创建 HTML 页面很像创建 XML 页面?

HTML 表单:

<form action="insertpage.php" method="post" class="form">
        Noun<input name="form1" value="" type="text">
        Adjective<textarea name="form2"  cols="40" rows="4"></textarea>
            <input type="submit" value="Submit">
        </form>

PHP 创建 XML 文件

$xml = new DOMDocument("1.0");
$root = $xml->createElement ('root');
$xml->appendChild($root);

$form1 = $xml->createElement ('form1');
$vtext = $xml->createTextNode($_POST[form1]);
$form1->appendChild($vtext);
$root->appendChild ($form1);


$form2 = $xml->createElement ('form2');
$advtext = $xml->createTextNode($_POST[form2]);
$form2->appendChild($advtext);
$root->appendChild ($form2);
$xml ->save("words/$_POST[form1].xml"))) or die ("error creating file");

这工作得很好,除了我找不到使用用户输入自动创建 HTML 页面的方法。有没有办法用 PHP 做到这一点,因为那也很完美。顺便说一句,我知道这种方法非常不安全,我正在努力创建一些像验证码这样的安全性。此外,如果你不能用 PHP 做到这一点,是否有任何其他编程语言可以做到这一点?谢谢

4

2 回答 2

1

这是一个非常简单的想法,可以帮助您入门。

HTML 模板:template.html(非常精简)

<div>
    <p>[[name]]</p>
    <p>[[email]]</p>
</div>

HTML 表单:

<form action="whatever.php" method="post">
    <input type="text" name="name" placeholder="name" />
    <input type="text" name="email" placeholder="email address" />
    <button>Create Page</button>
    <input type="hidden" name="create_page" value="true" />
</form>

PHP 脚本:

<?php

if (isset($_POST['create_page']))
{
    $template = file_get_contents('template.html');
    $template_vars = array(
        'name' => $_POST['name'],
        'email' => $_POST['email']
    );
    foreach ($template_vars as $k => $v)
    {
        $template = str_replace("[[{$k}]]", $v, $template);
    }
    file_put_contents('newfilename.html', $template);
}

希望有帮助。

值得一提的是,这对恶意用户输入是开放的,你应该清理所有的帖子数据,这只是一个非常简单的例子。

于 2013-06-09T21:37:49.243 回答
0

只需将 eg<?php echo $_POST['form1'];... ?>标签与<input>.

于 2013-06-09T21:32:26.550 回答