0

私はphpで3つの可能な外観を持つ電子メールフォームを持っています。

まず、送信ボタンを使用していないときは、標準で表示してほしい。

次に、送信がクリックされ、データが設定されていない場合。

第三に、データが受け入れられるように入力されたときに、入力されたものを表示したいと思います。

しかし、私は完全なphp初心者であり、正しく理解できないようです。

<?php
    if(isset(sent)) {
        if(isset($_POST['forename']) && !empty($_POST['forename']) {
            echo('<input class="tbox" type="text" name="forename" value="$POST['forename']" /><br>');
        } else {
            echo('<input class="tbox bad" type="text" name="forename" value=""/><br>');
        }
    } else {
        echo('<input class="tbox" type="text" name="forename" value="" /><br>') ;
    }
?>

エラーは「s」と「s」であると思います。予期しない)例外が発生します。これを回避するには、エコーラインをどのように構築する必要がありますか?

4

2 に答える 2

3

これがあなたの問題です:

echo('<input class="tbox" type="text" name="forename" value="$POST['forename']" /><br>');

変数は一重引用符内では解析されず、二重引用符でのみ解析されます。

簡単な解決策は次のとおりです。

echo '<input class="tbox" type="text" name="forename" value="' . htmlspecialchars($POST['forename']) . '" /><br>';

htmlspecialchars私はあなたの変数がhtmlを壊さないようにするために使用したことに注意してください。また、使用するときに括弧を使用する必要はありechoません(ただし、害はありません...)。

于 2013-03-06T17:56:48.840 に答える
1

この行がエラーの原因です。

echo('<input class="tbox" type="text" name="forename" value="$POST['forename']" /><br>');

値を文字列の他の2つの部分と連結する必要があり、その$_POST代わりに$POST

'[…]value="' . $_POST['forename'] . '"[…]'

また、少なくともhtmlentities、入力によってHTMLが破損しない値を使用する必要があります。

htmlentities($_POST['forename'], ENT_QUOTES, "UTF-8")
于 2013-03-06T17:56:33.333 に答える