我正在尝试允许用户编辑他们的传记,并且在页面上我希望DB中的可编辑文本显示在文本框中。我该怎么做呢?目前我将文本作为占位符,但我想使其可编辑。
另外对于其他更短的字段,例如用户公司名称,当我插入值作为占位符时(我不希望它像bio一样可编辑,所以它不会每次都重新提交),它不能显示多个单词。我怎样才能解决这个问题。
注意:我编写的函数只显示SQL中的值(如果有),否则显示通用文本,即“bio”或“email”
这是我的函数,其中$ content类似于$ _POST [“bio”]和
<?php
function echo_content($content,$name)
{
if(!empty($content)){
echo($content);
}
else{
echo($name);
}
}
?>
下面是我的html / php,其中$ content是SQL的值。
<div class="form-group">
<legend>Bio: </legend><textarea rows="4" cols="50" class="form-control" name="bio"
placeholder=<?php echo_content($content[0]["bio"],"Bio");?> type="text"/></textarea>
</div>
答案 0 :(得分:0)
您将字符串转储到html属性中,没有引号,所以基本上您正在制作:
<textarea ... placeholder=Four Score and Seven Years ago type="text">
所以你的占位符是Four
,然后有一堆未知/非法属性,Score
,and
,Seven
等......
尝试
<textarea ... placeholder="<?php echo htmlspecialchars($var) ?>" ...>
代替。请注意"
并使用htmlspecialchars()来引用html metachars。
换句话说,您基本上患有自我造成的HTML注射伤口。