使用json_decode解析JSON问题(file_get_contents(' php:// input'))

时间:2014-07-31 05:22:58

标签: javascript php json angularjs

我目前正在与AngularJS合作开发一个项目,我正在尝试进行登录和会话。 到目前为止,我正在成功,当我传递正确的参数它工作,但当我输入错误的参数,如null userid和密码或填充的userid和null密码,它不起作用。我想它与php

解析JSON有关

loginCtrl调用loginService登录函数。数据var是用户和密码(首先尝试使用纯文本,然后我会尝试更有趣的事情)。然后将它发送到build_session.php以将其解析为json并匹配登录名和密码。如果它是正确的,它进行身份验证。这是代码。

loginService.js

'use strict';

app.factory('loginService', function($http, $location, sessionService){
    return{
        login:function(data, scope){
            var $promise = $http.post('data/build_session.php', data);
            $promise.then(function(msg){
                var uid = msg.data;
                console.debug(uid); // <<<<<<<<<<<< DEBUG
                if(uid){ //ISSUE IS HAPPENING HERE
                    scope.msgTxt = "";
                    sessionService.set('uid', uid); //THIS IS CALLING SESSIONSERVICE
                    $location.path('/historicoReceitas');
                    scope.moduleState = "loggedIn";

                }

sessionService.js

'use strict'

app.factory('sessionService', ['$http', function ($http) {
    return {
        set:function(key,value){
            return sessionStorage.setItem(key,value);
        },
        get:function(key){
            return sessionStorage.getItem(key);
        },
        destroy:function(key){
            $http.post('data/destroy_session.php');
            return sessionStorage.removeItem(key);
        }
    };
}])

build_session.php

<?php 
    $user = json_decode(file_get_contents('php://input')); // <<<Error
    if($user->cpf == '311.986.988-02' && $user->password == '1234'){
        session_start();
        $_SESSION['uid'] = uniqid('_ang');
        print $_SESSION['uid'];
    }
?>

当我输入正确的数据prom cpf和密码时,调试返回:

_ang53d9d09948e99

但是当我输入不正确的数据(没有登录名或密码)时,它会返回如下内容:

  

注意:尝试在第3行的C:\ Users \ Paolo Cezar \ Dropbox \ RMO \ data \ build_session.php中获取非对象的属性

我猜是一些PHP默认错误页面或其他东西。我看过一些关于如何json_decode(file_get_contents('php:// input'))的抱怨;处理JSON但我没有得到很好的回应。

我使用这两个教程作为我的代码的基础:
https://www.youtube.com/watch?v=4Y6LM4Y_K6c
https://www.youtube.com/watch?v=wz5G2A_enAk

0 个答案:

没有答案