2014-06-24 2 views
0

저는 php/ajax/jquery를 처음 사용하고 있으며 몇 가지 문제가 있습니다. json을 PHP 파일에 전달하고 json 데이터를 사용하여 일부 작업을 실행 한 다음 응답을 다시 발행하려고합니다. 나는 페이스 북 API를 사용하여 사용자 로그인을하고, 세부 사항을 얻고, JSON에 세부 사항을 전송하고, JSON을 서버에 보내고, 사용자 ID가 이미 데이터베이스에 있는지 서버 검사를받습니다. 여기 내 자바 스크립트/JQuery와 여기json을 PHP로 보내고 resposne을 얻으려면

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  ); 
        } 
       } 
     }) 



}); 
} 

내가 그것을 사용자의 ID가 테이블에 이미하지만 단지를 반환하는 경우 1 또는 0을 기반으로 반환 할 내 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); 
    } 

입니다 많은 HTML 태그. .

$sql = mysql_query("SELECT * FROM user WHERE {$_GET['id']}"); 

또는 다른 방법 : 그래서

{"id":"904186342276664","email":"[email protected]","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} 
+0

그리고 네트워크 탭에 무엇이 표시됩니까? – Hackerman

+0

mysql_query를 다시 살펴보십시오. GET Global에 액세스하려고하고 있으며 큰 따옴표가 이스케이프 처리되지 않았거나 제대로 연결되지 않은 문자열입니다. – StaticVoid

답변

0

는 쿼리 부분 수정 같은 json으로 보이는 그것이 당신의 아약스에 dataType를 사용하는 것이 좋습니다 그리고

$sql = mysql_query("SELECT * FROM user WHERE ". $_GET['id']); 

$.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  ); 
        } 
       } 
     }) 



}); 
0

PHP에 $jsonDecoded이 할당 된 곳은 어디입니까? 나에게 할당되지 않은 것 같습니다.

$obj = json_decode($json, true); 
$user_info = $obj['id']; 

을 그리고 당신의 선택은 아무 의미 :

나는 당신이 말하는 의미라고 생각한다. POST 중에 참조하는 $_GET. 아마도 당신이 말하고자하는 의미 :

$sql = mysql_query("SELECT * FROM user WHERE id = {$user_info}"); 
관련 문제