0

ユーザー名とパスワードのログインセクションを表示する単純なログインページがあり、ログインボタンが押されると、フォームデータが処理のためにページに送り返されます。データが有効で、ログインに成功した場合は、ホームページにリダイレクトされます。そうでない場合は、再度ログイン画面が表示され、何が間違っていたか (パスワードが正しくない、フィールドが空であるなど) が通知されます。

私の問題は、特定のブラウザー (Chrome と Opera) では、データを設定するためにフォームを 2 回送信する必要があることです (文字通り設定、isset、empty & is_null チェックを使用してこれを確認しました)。

特定のブラウザー (Chrome & IE) で以前にこれに問題があったことを読んだことがありますが、私が見つけた他の唯一の解決策は、代わりに javascript を使用して情報を渡すことでした。フォームをより「ブラウザフレンドリー」にするためにできることはありますか?

更新 1

これがフォームです。できる限り基本的なもので、特別なことは何もありません。

<form action="loginpage.php" method="POST">
Username: <input type="text" name="Username" autofocus="autofocus" />
<br/>
Password: <input type="password" name="Password" />
<br/>
<input type="submit" name="submit" />
</form>

更新 2

PHP コード

if (isset($_POST['submit']))
{
    if ($_POST['Username']=="" || $_POST['Password']=="")
    {
        echo '<script type="text/javascript">';
        echo "window.alert('You did not fill in a required field.')";
        echo "</script>";
    }
    else
    {
        $username = $_POST['Username'];
        $password = $_POST['Password'];

        $sql = "SELECT * FROM Logins WHERE `Username` = '$username'";
        $validate = mysql_query($sql);

        while ($check = mysql_fetch_array($validate))
        {
            if ($password != $check['Password'])
            {
                echo "<script type='text/javascript'>";
                echo "window.alert('password was incorrect.')";
                echo "</script>";
            }
            else
            {
                header("Location: streaming/videosearch.php?order=dated&q=*");
            }
        }
    }
}
4

2 に答える 2