将json传递给php并获取响应
我不熟悉php/ajax/jquery,有一些问题。我试图将json传递给php文件,使用json数据运行一些任务,然后返回一个响应。我正在使用facebook api登录用户,获取详细信息,将详细信息转换为json,向服务器发送json,并让服务器检查数据库中是否已经存在用户id。这是我的javascript/jquery将json传递给php并获取响应,php,jquery,ajax,post,Php,Jquery,Ajax,Post,我不熟悉php/ajax/jquery,有一些问题。我试图将json传递给php文件,使用json数据运行一些任务,然后返回一个响应。我正在使用facebook api登录用户,获取详细信息,将详细信息转换为json,向服务器发送json,并让服务器检查数据库中是否已经存在用户id。这是我的javascript/jquery function checkExisting() { FB.api('/me', function(response) { console.log('Success
function checkExisting() {
FB.api('/me', function(response) {
console.log('Successful login for: ' + response.id );
var json = JSON.stringify(response);
console.log(json);
$.ajax({
url: "php.php",
type: "POST",
data: {user: json},
success: function(msg){
if(msg === 1){
console.log('It exists ' + response.id );
} else{
console.log('not exists ' + response.id );
}
}
})
});
}
这是我的php文件
if(isset($_POST['user']) && !empty($_POST['user'])) {
$c = connect();
$json = $_POST['user'];
$obj = json_decode($json, true);
$user_info = $jsonDecoded['id'];
$sql = mysql_query("SELECT * FROM user WHERE {$_GET["id"]}");
$count = mysql_num_rows($sql);
if($count>0){
echo 1;
} else{
echo 0;
}
close($c);
}
function connect(){
$con=mysqli_connect($host,$user,$pass);
if (mysqli_connect_errno()) {
echo "Failed to connect to Database: " . mysqli_connect_error();
}else{
return $con;
}
}
function close($c){
mysqli_close($con);
}
我希望它根据用户id是否已在表中返回1或0,但它只返回大量html标记。json看起来是这样的
{"id":"904186342276664","email":"ferrylefef@yahoo.co.uk","first_name":"Taak","gender":"male","last_name":"Sheeen","link":"https://www.facebook.com/app_scoped_user_id/904183432276664/","locale":"en_GB","name":"Tadadadn","timezone":1,"updated_time":"2014-06-15T12:52:45+0000","verified":true}
修复查询部分:
$sql = mysql_query("SELECT * FROM user WHERE {$_GET['id']}");
或者另一种方式:
$sql = mysql_query("SELECT * FROM user WHERE ". $_GET['id']);
那么在ajax中使用数据类型总是更好的
$.ajax({
url: "php.php",
type: "POST",
data: {user: json},
dataType: "jsonp", // for cross domains or json for same domain
success: function(msg){
if(msg === 1){
console.log('It exists ' + response.id );
} else{
console.log('not exists ' + response.id );
}
}
})
});
在PHP中,$jsondecodded
在哪里分配?在我看来,这是未经指派的
我想你是想说:
$obj = json_decode($json, true);
$user_info = $obj['id'];
$sql = mysql_query("SELECT * FROM user WHERE id = {$user_info}");
你的选择毫无意义。您的引用$\u在发布过程中获得。也许你是想说:
$obj = json_decode($json, true);
$user_info = $obj['id'];
$sql = mysql_query("SELECT * FROM user WHERE id = {$user_info}");
在网络选项卡上显示了什么…再看看你的mysql\u查询。您试图访问GET Global,但双引号未转义或字符串未正确连接。