我在网页中有一个多行输入文本框,并希望所有输入的文本更新页面中的另一个文本区域。我怎样才能做到这一点?目前,我知道当你提交表单时,php会将输入写入一个小文本文件,然后将其嵌入页面中。
但是,我是否需要对此进行消毒,以便人们不会注入html。另外,我是否需要为输入框中的每一行添加<p>...</p>
标记?
感谢。
答案 0 :(得分:0)
根据保存更新的方式(只是该实例,永久保存该用户,或永久保存给所有用户),选项范围从Javascript / Jquery简单地将其他文本区域更新为AJAX调用到消毒的php后端脚本并保存更新。
对于<p>
,您可以使用Javascript基于换行符拆分(),然后使用for循环将每个元素添加为<p>text</p>
。这个概念应该适用于任何语言。
答案 1 :(得分:0)
您的工作取决于您的要求。您绝对应该使用htmlspecialchars()
或strip_tags()
来取消任何错误的HTML。之后,您只需使用nl2br()
插入一些<BR>
即可填充所有内容,也可以explode()
添加<p>
字符串并添加{{1}}代码。
答案 2 :(得分:0)
这取决于您要完成的任务。这是一种BLOG条目,其中已经存在的文本仍然存在,并且您输入的内容会被附加?所有文字都被替换了吗?除了这个页面之外的其他任何地方都需要这个文本(数据库,稍后会被召回?)
一旦我们回答了一些问题,我们就可以继续前进:)
另外,您使用的是什么技术?纯HTML,Javascript,PHP,ASP?这将有助于确定您想要完成的最佳方法。 (我确实看到了php,只是想知道我们的选择是什么)
详细说明,我们会弄明白:)...这是一个简单的AJAX调用,将文本文件加载到div ...前提应该工作(如果我把代码放在我的头顶上).... ....
<html>
<head>
<script src="http://code.jquery.com/jquery-1.5.js"></script>
</head>
<body>
<div id="media">
</div>
<form id="myform" method="POST">
<input type="textarea" name="MyParagraph"></textarea>
<input type="button" value="Change Text" onclick='$.get("SterilizeMyText.php",{ nbRandom: Math.random() }, function(data){ $("#media").html(data); });'>
</form>
</body>
</html>
您可以将onclick更改为将采用表单变量的PHP文件($ _REQUEST ['blah'])ahd然后输出已清理的文本(如果您愿意)。
答案 3 :(得分:0)
要清理您的输入,请使用http://htmlpurifier.org/ over strip_tags()。