如何以形式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');?>
答案 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>