Php 使用json时尝试获取非对象错误的属性
我一直得到以下错误Php 使用json时尝试获取非对象错误的属性,php,angularjs,xampp,Php,Angularjs,Xampp,我一直得到以下错误 注意:试图在第4行的D:\XAMPP\htdocs\website\php\login.php中获取非对象的属性 注意:试图在第5行的D:\XAMPP\htdocs\website\php\login.php中获取非对象的属性 我使用AngularJS从表单获取输入,使用console.log函数将数据发送到php,使用php解码json文件,然后检查数据库以查找与输入值匹配的信息 JS: PHP: 您不是先用POST调用login,然后用GET调用login吗?并且您没
注意:试图在第4行的D:\XAMPP\htdocs\website\php\login.php中获取非对象的属性
注意:试图在第5行的D:\XAMPP\htdocs\website\php\login.php中获取非对象的属性
我使用AngularJS从表单获取输入,使用console.log函数将数据发送到php,使用php解码json文件,然后检查数据库以查找与输入值匹配的信息 JS: PHP:
您不是先用POST调用login,然后用GET调用login吗?并且您没有将任何内容传递给GET登录尝试,因此在使用json\u decode
时为非对象。因此,您的脚本正在进行POST尝试,但在GET尝试时打印出错误消息
删除此部分:
$http.get('php/login.php').success(function(logged){
$scope.loggedin = logged;
console.log($scope.loggedin);
})
.error(function(err){
$log.error(err);
});
$http.get是多余的,并且在没有给出任何参数的情况下再次执行login.php,删除$http.get是解决方案
$scope.login = function(acc) {
console.log(acc);//getting data input by user
//post is used to create
$http.post('php/login.php', {'user': $scope.acc.user, 'pass': $scope.acc.pass}).success(function(data) {
console.log(data);
if (data) {//row inserted
// if not successful, bind errors to error variables
console.log("Succesful");
$scope.insertMessage = "Data inserted";
$scope.loggedin = data;
console.log($scope.loggedin);
} else {
// if unsuccessful, bind success message to message
$scope.insertMessage = "Data not inserted";
}
$scope.acc="";//reset values in form to empty
//redirect to list
});
};
var\u转储$data=json\u decode(file\u get\u contents(“php://input"));代码>,你得到了什么?这就是你的问题所在。@ChrisTrudeau对象(stdClass)#1(2){[“user”]=>string(5)“admin”[“pass”]=>string(3)“123”}如果这是输出,你所拥有的应该可以工作,你把var_dump
放在不工作的代码中并运行它?@ChrisTrudeau是的,这就是控制台的样子:。我只是注意到登录函数可能运行了两次,但我不明白为什么会发生这种情况。@ChrisTrudeau直到“成功”通知之前,一切看起来都正常工作。
$http.get('php/login.php').success(function(logged){
$scope.loggedin = logged;
console.log($scope.loggedin);
})
.error(function(err){
$log.error(err);
});
$scope.login = function(acc) {
console.log(acc);//getting data input by user
//post is used to create
$http.post('php/login.php', {'user': $scope.acc.user, 'pass': $scope.acc.pass}).success(function(data) {
console.log(data);
if (data) {//row inserted
// if not successful, bind errors to error variables
console.log("Succesful");
$scope.insertMessage = "Data inserted";
$scope.loggedin = data;
console.log($scope.loggedin);
} else {
// if unsuccessful, bind success message to message
$scope.insertMessage = "Data not inserted";
}
$scope.acc="";//reset values in form to empty
//redirect to list
});
};