0

私は自分のウェブサイトの登録ページに取り組んでいます。

以下は、登録用の HTML コードとフォームです。

<form action='' method='POST'>
    <table cellspacing='0' cellpadding='0'>
        <tr>
            <td valign='top'>
                <input type='text' name='Username' id='Username' placeholder='Enter your username.'>
            </td>
            <td valign='top'>
                <input type='submit' name='Submit' id='SubmitRegister' value=''>
            </td>
        </tr>
    </table>
    <font style='font-size:13px;color:#aaa;'>3-20 alphanumeric characters - no spaces</font>
</form>

以下は、変数を定義するための PHP (同じページ) であり、登録を続行します。

$Username = secure($_POST['Username']);
$Submit = secure($_POST['Submit']);

ただし、[送信] ボタンをクリックしても何も起こりません。$Submit時にこれを実行しています-

if ($Submit) {
    echo "Test";
}

以下の関数 secure() を使用すると、mysql_real_escape_string() が有効なデータベース接続を必要とするため (これは修正されました)、動作がブロックされるという問題が 1 つわかりました。

これが関数です。

function secure($value) {
    $value = mysql_real_escape_string(strip_tags(stripslashes($value)));
    return $value;
}

私は単純なエラーを見落としているだけかもしれませんが、これは私をいらいらさせ、何日も私を妨げてきました。ありがとうございます。:)

4

4 に答える 4

4

value送信ボタンの属性の実際の値が必要ですisset($Submit)

于 2013-06-06T12:44:37.670 に答える
2

フォームに単純な間違いがあります。送信ボタンの値が空で、コードで使用しています。falseこれは、if 条件に対して常に返されます。

変化する:

<input type='submit' name='Submit' id='SubmitRegister' value=''>

に:

<input type='submit' name='Submit' id='SubmitRegister' value='Submit'>

楽しみ。

于 2013-06-06T12:46:41.633 に答える
1

あなたが言うので、送信ボタンの値は '' ですvalue=''。これは、ここで読み取った値です。$Submit = secure($_POST['Submit']);

空文字列です。また、空の文字列は false と評価されます。したがって、チェックif ($Submit)は false を返し、実行されません。

通常、送信ボタンの値は使用されません。また、チェックは通常、たとえばユーザー名が指定されているかどうかをチェックするだけで行われます。

if ( isset( $_POST['Username'] ) ) { ... }
于 2013-06-06T12:45:13.447 に答える
1

使用する必要があります

if(isset($_POST['Submit']))

それよりも

if ($Submit) 
于 2013-06-06T12:45:28.410 に答える