В это время я хочу, чтобы пользователь вводил свое имя пользователя и пароль (Data is mocked @MySQL) Но это не работает.
Мой файл.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, хотя я старался следовать многим образцам. Ценить любую помощь