我正在创建一个编辑配置文件页面,我需要验证旧密码是否与已存储在数据库中的密码相同。
我怎样才能做到这一点?下面是我的代码。
如何在本地从数据库中检索保存的列值?
public class MainActivity extends Activity implements AsyncResponse {
//--objects--//
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
///----default value code---///
save.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String old1= oldPW.getText().toString();
String new1= newPW.getText().toString();
String conform1= conformPW.getText().toString();
//case sensitivity checking
if(!( conformPW.getText().toString().equals(newPW.getText().toString()))) {
// Toast.makeText(MainActivity.this, "Password are case sensitive,Please enter the password correctly!", Toast.LENGTH_SHORT).show();
conformPW.setError("New password and confirm password must be the same!");
}
//validation for null entry in old,new and confirm passwrods
if (old1.matches("")) {
oldPW.setError("Please enter the Old Password!");
//Toast.makeText(MainActivity.this, "Please enter the Old Password", Toast.LENGTH_SHORT).show();
return;
}
if (new1.matches("")) {
// Toast.makeText(MainActivity.this, "Please enter the New Password", Toast.LENGTH_SHORT).show();
newPW.setError("Please enter the New Password!");
return;
}
if (conform1.matches("")) {
conformPW.setError("Please enter the Confirmation Password!");
// Toast.makeText(MainActivity.this, "Please enter the Confirm Password", Toast.LENGTH_SHORT).show();
return;
}
//old password confirmation
if (!isValidPassword(old1)) {
oldPW.setError("Invalid Password");
}
//validation for password matching confirmation
if(!isPasswordMatching(new1,conform1)){
conformPW.setError("New password and confirm password must be the same!");
}
//validation for password not less than 6 characters
if(!isValid(new1)){
newPW.setError("Invalid Password");;
}
String key1 = "saasvaap123";
String signupid1 = "26";
String url = "http://gooffers.in/omowebservices/index.php/webservice/Public_User/change_user_pwd?";
CustomHttpClient task = new CustomHttpClient();
task.execute(url,key1,signupid1,old1,new1);
task.delegate = MainActivity.this;
}
});
} //oncreate close
//old password validation
// validating password with retype password
private boolean isValidPassword(String old1) {
if (old1.length() > 6) {
return true;
}
return false;
}
//validation for new and confirm password matching
public boolean isPasswordMatching(String new1, String conform1) {
Pattern pattern = Pattern.compile(new1, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(conform1);
if (matcher.matches() == true) {
//DO nothing
} else {
// do your Toast("passwords are not matching");
Toast.makeText(MainActivity.this,"Passwords does not match", Toast.LENGTH_SHORT).show();
}
return matcher.matches();
}
private class CustomHttpClient extends AsyncTask<String, String, String> {
public AsyncResponse delegate=null;
private String msg;
@Override
protected void onPostExecute(String result) {
/-code-/
delegate.processFinish(result);
}
@Override
protected String doInBackground(String... params) {
if(params == null) return null;
// get url from params
String url = params[0];
String key1 = params[1];
String signupid1 = params[2];
String old1 = params[3];
String new1 = params[4];
ArrayList<NameValuePair> postParameters;
postParameters = new ArrayList<NameValuePair>();
postParameters.add(new BasicNameValuePair("old_password",old1));
postParameters.add(new BasicNameValuePair("password",new1));
postParameters.add(new BasicNameValuePair("key",key1));
postParameters.add(new BasicNameValuePair("signup_id",signupid1));
try {
// create http connection
HttpClient client = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
httppost.setEntity(new UrlEncodedFormEntity(postParameters));
// connect
HttpResponse response = client.execute(httppost);
// get response
HttpEntity entity = response.getEntity();
if(entity != null){
return EntityUtils.toString(entity);
}
else{
return "No string.";
}
}
catch(Exception e){
return "Network problem";
}
}
}