2012-09-27 119 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()的数据。