현재 id 와 pass 를 php 로 보내 로그인시 아이디 비번 확인을 하고 있습니다.
========php==========
$id = $_GET[id];
$pass = $_GET[pass];
$pass = md5($pass);
$query = "SELECT id ,pass FROM member WHERE id = '$id' AND pass = '$pass'";
$data = mysql_query($query);
if (mysql_num_rows($data) ==1){
$output = 1;
}else{
$output = 0;
}
print (json_encode($output));
?>
이렇게 아이디와 비번이 일치하면 1을 아니면 0을 보내고있습니다.
============안드로이드===========
class CheckId extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
dialog = ProgressDialog.show(Login.this, "", "잠시만 기다려주세요..");
dialog.setCancelable(false);
}
@Override
protected String doInBackground(String... arg0) {
StringBuilder html = new StringBuilder();
try {
String url = "서버URL";
url += "id=" + id + "&";
url += "pass=" + pass + "&";
HttpURLConnection conn = (HttpURLConnection) new URL(url)
.openConnection();
if (conn != null) {
conn.setConnectTimeout(10000);
conn.setUseCaches(false);
if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
BufferedReader br = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
String line = br.readLine();
if (line == null) {
}
html.append(line + '\n');
while (true) {
line = br.readLine();
if (line == null) {
break;
}
html.append(line + '\n');
}
br.close();
}
conn.disconnect();
checked = html.toString();
Log.d("checked",checked);
}
} catch (Exception e) {
e.printStackTrace();
}
return checked;
}
@Override
protected void onPostExecute(String arg0) {
if (checked.equals("1")) {
Toast.makeText(Login.this, "확인11", Toast.LENGTH_LONG)
.show();
}else{
Toast.makeText(Login.this, "취소222", Toast.LENGTH_LONG)
.show();
}
dialog.dismiss();
}
}
이렇게 하면 Log.d("checked",checked); 에 정상적인 아이디와 비번을 보내도 0이 돌아오네요 ...
디비에 당연히 md5 로 암호화 되어 저장되있고 쿼리문에서 변수자리에 그냥 직접적인 아이디와 비번을 넣고
웹에서 확인하면 정상적으로 0 과 1이 찍힙니다.. 어디에 문제가 있는건지 감이 안오네여 ㅠㅠ