我接受来自另一个.php文件的预设输入
$Instructor=$_POST["Instructor"];
当我echo $Instructor
时,OUTPUT为Dr. Doom
(这是正确的)
当我通过一个字段集时,我只得到(Dr.)而不是(Doom)。我需要通过整个名称。任何人都可以帮忙。我是PHP的新手,所以请尝试以简单的形式解释。非常感谢你提前。 这是我正在使用的代码。
echo "<fieldset>
<Legend> Contact Information </Legend>
PROFESSOR: <inputname='Professor' type= 'text' value=$Instructor maxlength='35'
disabled='disabled'> </fieldset>"
答案 0 :(得分:3)
你知道你在HTML属性上省略了引号,只有第一个空格的字符才能在你的html中被解释。引用该属性,并使用ENT_QUOTES
选项htmlentities()
使用{{3}}正确转义该属性:
echo "<fieldset ... ... value='" . htmlentities($Instructor, ENT_QUOTES) . "' ... </fieldset>";
请注意,如果没有转义,除了可能破坏输出标记之外,它还容易受到跨站点脚本的攻击。</ p>
答案 1 :(得分:1)
您需要在包含空格的属性值周围加上引号。在您的情况下,他们需要进行转义,因为PHP字符串文字也使用它们:
echo "... value=\"$Instructor\" ...";
答案 2 :(得分:1)
除了可变消毒之外,你忘了引用它:
value=$Instructor
请注意这里的空间:
type= 'text'
顺便说一句,如果你想使用HTML文本块,那么在PHP中有一个很好的语法叫做“heredoc”。
$str = <<<EOF
<fieldset>
<Legend> Contact Information </Legend>
PROFESSOR: <inputname='Professor' type='text' value='$Instructor' maxlength='35' disabled='disabled'>
</fieldset>
EOF;
有什么好处的是文本可以保持人类可读性,并且仍然支持内联变量插值(将“$ something like this”)