그래서 먼저 안드로이드 물건 : 당신이 당신의 주 응용 프로그램 스레드에서 HTTP 요청을 만들려고 노력하고 있기 때문에이 NetworkOnMainThreadException
을 얻고있는 UI 스레드입니다. 이 스레드에서는 차단 작업을해서는 안됩니다. 대신 AsyncTask을 사용하십시오.
은 내가 IllegalArgumentException
의 원인이 무엇 확실치 않지만 나는이 선 것 같아요 :
response = CustomHttpClient.executeHttpPost("http://127.0.0.1/es/check.php", postParameters);
당신은 아마 (로컬 호스트 일반적으로 휴대 전화에서 이해가되지 않습니다) URL을 변경했습니다. 구성 부분은 http
입니다. 어쩌면 원래 코드에서 " http://..."
과 같은 것이 있습니다 (공백 문자에주의하십시오)? 는 PHP에
짧은 참고 :
당신이
SQL injection 부르는
$sql = 'SELECT * from people WHERE username = "' .$_POST['un'] . '" and password = "' .md5($_POST['pw']) . '"';
.
업데이트 : 다음은 몇 가지 예입니다. 그것을 테스트하지 않았 으면 좋겠다.
public class LoginLayout extends Activity {
EditText un,pw;
TextView error;
Button ok;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
un=(EditText)findViewById(R.id.et_un);
pw=(EditText)findViewById(R.id.et_pw);
ok=(Button)findViewById(R.id.btn_login);
error=(TextView)findViewById(R.id.tv_error);
ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new LoginTask().execute(un.getText().toString(), pw.getText().toString());
}
});
}
private class LoginTask extends AsyncTask<String, Void, Object> {
protected Object doInBackground(String... params) {
ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();
postParameters.add(new BasicNameValuePair("username", params[0]));
postParameters.add(new BasicNameValuePair("password", params[1]));
String response = null;
try {
response = CustomHttpClient.executeHttpPost("http://127.0.0.1/es/check.php", postParameters);
String res = response.toString();
res = res.replaceAll("\\s+","");
return res;
} catch (Exception e) {
return e;
}
}
protected void onPostExecute(Object result) {
if (result instanceof String) {
if (result.equals("1")) {
error.setText("Correct Username or Password");
} else {
error.setText("Sorry!! Wrong Username or Password Entered");
}
} else if (result instanceof Exception) {
un.setText(result.toString());
}
}
}
}
관련 코드와 전체 스택 추적을 제공해 주시겠습니까? – Julian
줄리안, 자바 코드를 의미합니까? – RYS
예. 그렇지 않으면 우리는 당신이하려는 일을 짐작할 수 있습니다. – Julian