0

別の .php ファイルからのプリセット入力を受け入れています

$Instructor=$_POST["Instructor"];

Iecho $Instructorの場合、OUTPUT はDr. Doom(正しい)

フィールドセットに渡すと、(Doom) ではなく (Dr.) のみが取得されます。名前全体が渡される必要があります。誰でも助けてください。私は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の優れた構文があります。

$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 に答える