我正在尝试建立一个基于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);
});
答案 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 operator和isset
。
如果没有设置,那么http进程中的某些内容失败了,很可能你没有给你的HTML输入元素一个正确的id,所以当你试图引用时,JavaScript可能不知道你在说什么元素在你发送它们之前,它们在客户端。
确保您已检查过您的开发者工具,检查我提到的内容以及Google错误。
答案 1 :(得分:0)
我同意@ Jonast92的帖子,但我不会选择“IF” 而不是我会使用
$username = filter_input(INPUT_POST, 'username');
在这种情况下,你得到帖子的结果,如果它的设置,如果不是它的假。
执行相同的操作