2012-09-27 122 views
0

我正在開發一個使用PHP和MSSQL.I可以連接數據庫和檢索值的web服務。但是當我使用json時,它將不返回任何值。json_encode返回沒有值

用於Web服務的Ajax代碼是

$.ajax({ 
     url: 'http://209.249.81.138/dev/logintalk.php', 
     type: 'POST', 
     data: "username=" + $("#username").val()+"&password=" + $("#password").val(), 
     dataType: 'json', 
     success: function(data){ 
      alert(data); 
     }, 
     error: function(){ 
      alert("failure..."); 
     } 
     }); 
} 

和所使用的PHP代碼是

<?php 

    $server = "server"; 
    $username = "username"; 

    $password = "secret"; 
    $database = "db"; 

    $con = mssql_connect($server, $username, $password) or die("Couldn't connect to SQL Server on $Server"); 

    $users = $_POST['username']; 
    $passwd = $_POST['password']; 

    $selected = mssql_select_db($database, $con) or die("Couldn't open database $database"); 

    mssql_query('SET CHARACTER SET utf8'); 
    $query = "SELECT * FROM zNewUsers WHERE memberid = '$users' AND userid = '$passwd'"; 
    $result = mssql_query($query) or die ("Unable to verify user because "); 
    $row = mssql_fetch_array($result); 
    $count = mssql_num_rows($result); 

    if($count == 0){ 
     $data=array(0=>"Incorrect values..."); 
     $value[]=$data[0]; 
     echo json_encode($value); 
    } 
    else{ 
    $val[]=$row['SessionID']; 
    echo json_encode($val); 
    } 
    mssql_close($con); 

?> 
+4

太晚了,已經是h4ck3d了。 – moonwave99

+1

當您在瀏覽器中打開PHP文件時,您是否看到JSON輸出?此外,而不是使用'alert()'進行javascript調試,請使用[console.log](http://stackoverflow.com/questions/4743730/javascript-what-is-console-log-and-how-do-i -用它)。 –

+1

另請參見:使用瀏覽器的開發人員工具檢查返回的數據。由於語法錯誤,腳本可能不會返回任何內容。 – vstm

回答

0

毫無疑問的一些提示:

  1. success: function(data){ 
        console.log(data); 
        //This is better for debugging if you use firebug, if you don't do it. 
    }, 
    
  2. if($count == 0){ 
        echo json_encode(array(0=>"Incorrect values...")); 
        //Why create new variables? Pass what you want directly to json_encode() 
    } 
    else{ 
        echo json_encode($row['SessionID']); 
    } 
    

回到問題:

你想編碼前進行編碼,並確保它是確定,然後檢查通過 console.log(data)你在瀏覽器中得到什麼,並與我們分享這些信息,以便我們可以幫助更好地

的var_dump()的數據。