データベースから3つの情報、1つの整数、1つの文字列、1つの日付を取得します。
それらをエコーアウトして、変数にデータが含まれていることを確認します。
その後、変数を使用してページ上の3つの入力ボックスにデータを入力すると、正しく入力されません。
以下は機能しません。
id: <input type="text" name="idtest" value=$idtest>
はい、変数を表示するには<?php var?>内にある必要があります。
そう:
id: <input type="text" name="idtest" value=<?php $idtest ?> />
フィールドには/
と表示されます。
引用符をエスケープすると、
id: <input type="text" name="idtest" value=\"<?php $idtest ?>\" />
その後、フィールドには\"\"
と表示されます。
単一引用符付き
id: <input type="text" name="idtest" value='<?php $idtest ?>' />
フィールドには何も表示されないか、空白が表示されます。
単一引用符をエスケープすると、
id: <input type="text" name="idtest" value=\'<?php $name ?>\' />
フィールドには\'\'
と表示されます。
スラッシュを使用して(これは正しくないことを知っていますが、ディスカッションから削除するために)、
id: <input type="text" name="idtest" value=/"<?php $name ?>/" />
フィールドには/"/"
と表示されます。
二重引用符、二重引用符のエスケープ、左側のみの二重引用符のエスケープなどは機能しません。
入力ボックスを文字列に設定できます。私はそれを避けることを好むので、セッション変数を使用しようとしませんでした。
ここに何が欠けていますか?
次のようなものを試してください:
<input type="text" name="idtest" value="<?php echo htmlspecialchars($name); ?>" />
つまり、 thirtydotが示唆した と同じですが、XSS攻撃も防止します。
<?=
構文 (注を参照)。ただし、すべてのサーバーで機能するとは限りません。 (構成オプションによって有効になります。)
以下が必要です:
<input type="text" name="idtest" value="<?php echo $idtest; ?>" />
echo
関数は、変数の値を実際に出力するものです。