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

    });
};