我有一個簡單的登錄頁面,顯示用戶名和密碼登錄部分,當登錄按鈕被按下時,表單數據被髮送回頁面進行處理。如果數據是有效的並且他們已經成功登錄,則將它們引導到主頁,如果不是,則它再次向他們顯示登錄屏幕,並告訴他們他們做錯了什麼(不正確的密碼,空字段等)。HTML表單僅在某些瀏覽器的第二次提交時提交數據*已解決*
我的問題是,對於某些瀏覽器(Chrome和Opera),表單需要提交兩次才能設置數據(字面上設置,我用isset檢查過,空& 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=*");
}
}
}
}
解決方案表單元素的名稱
不要把大寫字母。
'有什麼我可以做的,使形式更「瀏覽器友好」?'不知道 - 沒有看到代碼... –
你能告訴我們的表單代碼? – wgcrouch
正如我所說,它儘可能簡單,但我發佈了它。 – Mason