将Json数据解码为PHP变量

时间:2015-02-14 20:55:37

标签: javascript php ajax json angularjs

我使用angularJS ajax

将数据发送到这样的PHP文件

{ username: "someusername", password: "somepassword" }

之前我使用过这样的东西来发送数据

var vars = "username="+fn+"&password="+ln;

但是因为角度发送数据像JSON。我想解码成PHP变量。

这里是我的PHP代码

if(isset($_POST['username']) && isset($_POST['password'])){
    $username = $_POST['username'];
    $password = $_POST['password'];
}

$sql = "SELECT * FROM member WHERE username = '$username' AND password = '$password'";

我试图做的是这样的事情

$array = json_decode(file_get_contents('php://input'))
    $username = $array->username;
    $password = $array->password;


$sql = "SELECT * FROM member WHERE username = '$username' AND password = '$password'";

但不知道该怎么做。也不知道本节会发生什么 #&39;的file_get_contents(' PHP://输入')' 我将数据从本地计算机发送到互联网服务器PHP文件(跨域)

2 个答案:

答案 0 :(得分:0)

要将PHP数组转换为变量,请使用extract function,但这不是一个好方法。

将JSON解码为数组并使用PHP filter functions

在客户端,您需要以下内容:



$http.post(http://your.url,
  {"username"  : someUserName, "password": somePassword}
).then(function (data, status, headers, config) {
  // do things.
});




在服务器端,您应该:

$input = json_decode( file_get_contents('php://input'), true );

$username = filter_var($array['username'], FILTER_SANITIZE_STRING));
$password = filter_var($array['password'], FILTER_UNSAFE_RAW));


// this should work but is bad practice. Don't do it.
// extract($input);
// $username and $password are now available to you

此外,您需要改进代码以防止SQL注入。

您可以在此处阅读:how-can-i-prevent-sql-injection-in-php

答案 1 :(得分:-1)

在AngularJS中使用$ http.post,然后用帖子传入JSON数据,然后在PHP中使用带有json_decode的$ _POST变量,然后在PHP中有一个关联数组。