2013-12-20 61 views
-2

我試圖做一個基於AJAX的登錄系統......它工作正常,在所有的瀏覽器,但IE注意:未定義指數:Internet Explorer的唯一

中生成以下錯誤

Login error 


Notice: Undefined index: username in C:\Server\Apache2\htdocs\php\loginuser.php on line 

Notice: Undefined index: password in C:\Server\Apache2\htdocs\php\loginuser.php on line 

Notice: Undefined index: username in C:\Server\Apache2\htdocs\php\loginuser.php on line 
User with this username does not exist 

爲什麼地獄IE吸如此糟糕。什麼是錯我的代碼...

//ajax send login form values 
$("#loginform").submit(function(){ 
var username=$("#username").val(); 
var password=$("#password").val(); 
$.post("/php/loginuser.php",{username:username, password:password},function(result){ 
$("#err_msg").html(result);      
}); 
+1

而你的HTML表單是...? – DontVoteMeDown

+1

哪個版本的IE,'var_dump($ _ POST)'顯示什麼? – raina77ow

+1

你可以發佈你的loginuser.php嗎? – Dwza

回答

1
Notice: Undefined index: username in C:\Server\Apache2\htdocs\php\loginuser.php on line 

這意味着你正在試圖獲得的值O變量$username即使它從未被聲明過。

確保您有一個名爲$username的變量並確保它有一個值。

$username = ""; 

對於所有其他的情況也是如此。

您還應該使用isset()來檢查從客戶端發佈的數據是否已設置。

$username = isset($_POST["username"]) ? $_POST["username"] : "User not found"; 

使用ternary operatorisset

如果沒有設置,那麼http過程中失敗的東西,很可能你沒有給你的HTML輸入元素一個正確的ID,所以JavaScript可能不知道你在談論什麼元素,當你嘗試在發送它們之前在客戶端引用它們。

確保你已經檢查過你的開發者工具,檢查我提到的和谷歌的錯誤。

0

我同意@ Jonast92的職位,但我不會去的崗位,如果其設定的結果,「IF」 ,而不是我想在這種情況下使用

$username = filter_input(INPUT_POST, 'username'); 

你,和如果不是它的錯誤。

你可以這樣做GET and some filter parameters