0

ユーザー入力をフォームにキャッシュしようとしています。私のコードは次のとおりです。

    echo '
<form method="POST">
    Name:<br /><input class="contact_name" type="text" name="contact_name" maxlength="32" placeholder="Enter Name" /><br />
    Email:<br /><input class="contact_email" type="text" name="contact_email" maxlength="50" placeholder="Email Address" /><br />
    Subject:<br /><input class="contact_subject" type="text" name="contact_subject" maxlength="50" placeholder="Subject Line" /><br />
    Message:<br /><textarea class="message_area" name="contact_message" rows="10" cols="50" maxlength="1000" placeholder="Message ..." /></textarea><br />
    <input class="submit_button" name="submit_button" type="submit" value="Send" />
</form>
';

答えを探してみましたが、見つけたのは次のとおりです。

<?php if(isset($contact_name)) { echo $contact_name; } ?>

ただし、フォームが PHP エコー内にあり、基本的なワードプレス プラグインを作成しようとしているため、これは機能しません。フォームを echo と の外に出すたびに、スタイルが台無しになり、フォームのスタイル自体が壊れます。そのため、フォームをプレースホルダーと一緒にエコー内に保持し、ユーザー入力をキャッシュできるかどうか疑問に思っていたので、エラーが表示されてスポットの1つを埋められなかった場合、すべてが消去されるわけではありません.

ありがとうございました。

4

1 に答える 1

1

次に、 をドロップしechoて HTML モードに切り替えます。

?>
<form method="post">
Name:<br /><input ... value="<?php echo (isset($contact_name) ? htmlspecialchars($contact_name, ENT_QUOTES, 'UTF-8') : ''; ?>" />
...
<?php

これを文字列として必要な場合は、出力バッファリングを使用できます。

ob_start();
?>
<input ... />
<?php

echo ob_get_clean();
于 2013-04-12T03:10:03.177 に答える