我使用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'";
但不知道怎么做。也不知道这一节会发生什么'file_get_contents('php://input')'im将数据从本地计算机发送到互联网服务器PHP文件(跨域)
要将PHP数组转换为变量,请使用提取函数,但这不是一个好方法。
将JSON解码为数组,并使用PHP的过滤函数
在客户端,你需要这样的东西:
$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-hp。
在AngularJS中使用$http.post,然后用post传递JSON数据,然后只使用PHP中的$_post变量和JSON_decode,那么在PHP中就会有一个关联数组。