注意:未定义的索引:仅限Internet Explorer

时间:2013-12-20 15:54:08

标签: javascript ajax internet-explorer

我正在尝试建立一个基于ajax的登录系统......它在所有浏览器中工作正常但IE

生成以下错误

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);                     
}); 

2 个答案:

答案 0 :(得分:1)

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

这意味着你试图获取变量$username的值,即使它从未被声明过。

确保您有一个名为$username的变量,并确保它有一个值。

$username = "";

同样的事情也适用于所有其他的。

您还应该使用isset()检查是否设置了从客户端发布的数据。

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

使用ternary operatorisset

如果没有设置,那么http进程中的某些内容失败了,很可能你没有给你的HTML输入元素一个正确的id,所以当你试图引用时,JavaScript可能不知道你在说什么元素在你发送它们之前,它们在客户端。

确保您已检查过您的开发者工具,检查我提到的内容以及Google错误。

答案 1 :(得分:0)

我同意@ Jonast92的帖子,但我不会选择“IF” 而不是我会使用

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

在这种情况下,你得到帖子的结果,如果它的设置,如果不是它的假。

您可以使用GET and some filter parameters

执行相同的操作