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