1

私はテスト HTML5 ログインフォームに取り組んでおり、フォームを次のように設定しています。

<form id="login" method="POST" action="<?php echo $_SERVER['PHP_SELF'] ?>">
    <h1>Log In</h1>
    <fieldset id="inputs">
        <input id="username" type="text" placeholder="Username" autofocus required>   
        <input id="password" type="password" placeholder="Password" required>
    </fieldset>
    <fieldset id="actions">
        <input type="submit" id="submit" name="submit_data" value="Log in">
    </fieldset>
</form>

[送信] をクリックすると、フォームが同じページに戻されます。POST された要素の配列を出力すると、「submit_data」の 1 つだけが表示されます。「ユーザー名」と「パスワード」が通っていません。

どこが間違っていますか?

4

2 に答える 2

5

入力の名前を指定していません。

<form id="login" method="POST" action="<?php echo $_SERVER['PHP_SELF'] ?>">
    <h1>Log In</h1>
    <fieldset id="inputs">
        <input id="username" type="text" name="username" placeholder="Username" autofocus required>   
        <input id="password" name="password" type="password" placeholder="Password" required>
    </fieldset>
    <fieldset id="actions">
        <input type="submit" id="submit" name="submit_data" value="Log in">
    </fieldset>
</form>

これでこの問題は解決するかもしれません。

于 2012-07-15T17:28:40.540 に答える
0

print_r (使用していると思います) の代わりに isset($_POST['username']) と isset($_POST['password']) のチェックを実行できますか?

<input type="..." NAME="username" ..>  You haven't set var name.

また、プレースホルダーの代わりに、value="Username" および value="Password" を設定します。プレースホルダーを使用するだけでは、値が渡されない場合があります。このテストを参照してください: http://www.w3schools.com/html5/tryit.asp?filename=tryhtml5_input_placeholder

何も指定せずに送信すると、値は渡されません。何かを入力すると、値が渡されます。

于 2012-07-15T17:31:18.740 に答える