0

我正在接受来自另一个 .php 文件的预设输入

$Instructor=$_POST["Instructor"];

当我echo $Instructor,输出是Dr. Doom(这是正确的)

当我通过字段集传递它时,我只得到(Dr.)而不是(Doom)。我需要通过整个名称。任何人都可以帮忙。我是 PHP 新手,所以请尝试以简单的形式进行解释。非常感谢您提前。这是我正在使用的代码。

echo "<fieldset> 
 <Legend> Contact Information </Legend>
 PROFESSOR: <inputname='Professor' type= 'text' value=$Instructor maxlength='35' 
            disabled='disabled'> </fieldset>"
4

3 回答 3

3

由于您在 HTML 属性上省略了引号,因此您的 html 中只会解释第一个空格之前的字符。引用属性,并htmlentities()使用ENT_QUOTES选项正确转义它:

echo "<fieldset ... ... value='" . htmlentities($Instructor, ENT_QUOTES) . "' ... </fieldset>";

请注意,如果没有转义,除了可能破坏输出标记外,它还容易受到跨站点脚本的攻击。

于 2012-06-09T16:17:33.193 回答
1

您需要在包含空格的属性值周围加上引号。在您的情况下,它们需要被转义,因为 PHP 字符串文字也使用它们:

echo "... value=\"$Instructor\" ...";
于 2012-06-09T16:17:36.147 回答
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”)

于 2012-06-09T16:17:58.237 回答