В настоящее время я хочу, чтобы пользователь ввел свое имя пользователя и пароль (данные поддельные @MySQL), но это не работает.
My file.php:
<?php
include("ConnectDatabase.php");
$Username = $_POST['Username'];
$Password = $_POST['Password'];
$q = mysql_query("SELECT Username, Password FROM Users
where Username = '".$Username."' and
Password = '".$Password."'");
if(mysql_num_rows($q) > 0){
print json_encode($q);
}else{
print "1";
}
mysql_close();
?>
Мой файл java:
public class Authentication extends Activity implements OnClickListener,
OnKeyListener, OnCheckedChangeListener {
/** Called when the activity is first created. */
ArrayList<NameValuePair> authentication;
String passIn, userIn, result;
EditText username, password;
CheckBox remember;
Button b_login;
InputMethodManager inputManager;
InputStream is;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// userIn = username.getText().toString();
// passIn = password.getText().toString();
username = (EditText) findViewById(R.id.usrname);
password = (EditText) findViewById(R.id.password);
inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
remember = (CheckBox) findViewById(R.id.remember);
remember.setOnCheckedChangeListener(this);
b_login = (Button) findViewById(R.id.login);
b_login.setOnClickListener(this);
username = (EditText) findViewById(R.id.usrname);
username.setOnKeyListener(this);
password = (EditText) findViewById(R.id.password);
password.setOnKeyListener(this);
}
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.login:
while (true) {
userIn = username.getText().toString();
passIn = password.getText().toString();
try {
sendAuthenticationData(userIn, passIn);
break;
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (WrongInputException e) {
Toast.makeText(Authentication.this, "Invalid username or password", Toast.LENGTH_LONG);
}
// break;
}
Intent intent = new Intent(this, ApplicationMenus.class);
this.startActivity(intent);
clearText(username,password);
break;
}
}
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if ((event.getAction() == KeyEvent.ACTION_DOWN)
&& (keyCode == KeyEvent.KEYCODE_ENTER)) {
// Perform action on key press
inputManager.hideSoftInputFromWindow(v.getWindowToken(), 0);
return true;
}
return false;
}
public void clearText(EditText usr, EditText pass) {
usr.setText("");
pass.setText("");
}
public void sendAuthenticationData(String username, String password)
throws ClientProtocolException, IOException, WrongInputException {
authentication = new ArrayList<NameValuePair>();
authentication.add(new BasicNameValuePair("Username", userIn));
authentication.add(new BasicNameValuePair("Password", passIn));
this.sendData(authentication);
}
public void sendData(ArrayList<NameValuePair> data)
throws ClientProtocolException, IOException, WrongInputException {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(
"path/Authentication.php"); // I use real path here
httppost.setEntity(new UrlEncodedFormEntity(data));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
// is = entity.getContent();
String temp = EntityUtils.toString(entity);
if (temp.equals("1")) {
throw new WrongInputException();
}
}}
Я впервые пишу код, который соединяется с сервером PHP и JSON.Я довольно сильно путаюсь с JSON, хотя старался следовать многим образцам.Ценим за любую помощь