在我的表格中显示输出数据,以便我可以编辑

时间:2010-12-09 21:12:05

标签: php html forms content-management-system file-get-contents

如何以形式textarea(edit.html)显示输出的数据(contents.html)。我在表单页面中使用了一个JS HTML WYSIWYG编辑器(TinyMCE),以便让没有HTML经验的人更容易进行编辑。

(我知道XSS攻击,但我现在只想让它工作。) 我试过回声,但它不起作用,任何人都知道我怎么能实现这个目标?

此致

edit.php //将表单数据提交到contents.html

<?php file_put_contents("content.html", print_r($_POST['content'], true)); ?>
<form method="post">
<textarea name="content" style="width:960px; margin: 0 auto;" rows="20" cols="20">


</textarea>
<input type="submit" name="save" value="Submit" />
</form>

contents.html

//使用表单

提交的内容为空

的index.php

//从contents.html中检索数据并显示

<?php echo file_get_contents('content.html');?>

1 个答案:

答案 0 :(得分:0)

只需在转义后打印textarea中的内容即可。这将阻止表单中的XSS(edit.php),并使HTML内容正确显示。

if语句检查表单是否已提交。如果是这样,$_POST['content']的内容将写入content.html。注意:isset($_POST['save'])name="save"是可选的,用于检查表单是否已提交,但如果您有多个提交选项(例如,预览按钮),则需要它。

<?php
if(isset($_POST['save']) && filter_has_var(INPUT_POST, 'content')){
    file_put_contents("content.html", filter_input(INPUT_POST, 'content'));
}
?>

<form method="post">
<textarea name="content" style="width:960px; margin: 0 auto;" rows="20" cols="20"><?php
echo htmlentities(file_get_contents("content.html"));
?></textarea>
<input type="submit" name="save" value="Submit" />
</form>