аутентификация входа в систему — как прочитать php echo в Android Studio?

Мне нужно выполнить аутентификацию при входе в систему. Пользователь должен ввести свой адрес электронной почты и пароль, и мы должны проверить, был ли пользователь уже зарегистрирован в базе данных Mysql.

Я прошел много онлайн-уроков и придумал этот код:

PHP:

<?php
$con = mysql_connect('localhost','root','') or die('cannot connect to db');
mysql_select_db('Registration') or die('cannot select db');
if(isset($_POST['email']) && isset($_POST['pass'])) {
$email = $_POST['email'];
$pass = $_POST['pass'];
$query = "SELECT * from Users where user_email='$email' and user_password='$pass'";
$res=mysql_query($query);
}
if(mysql_num_rows($res)>0)
echo 1;
else
echo 0;
mysql_close();

?>

MainActivity (в моем случае LoginActivity):

public class LoginActivity extends ActionBarActivity {
TextView tvEmail,tvPass;
EditText etEmail,etPass;
Button btnLogin;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
tvEmail = (TextView) findViewById(R.id.tvEmail);
etEmail = (EditText) findViewById(R.id.etEmail);
tvPass = (TextView) findViewById(R.id.tvPass);
etPass = (EditText) findViewById(R.id.etPass);
btnLogin = (Button) findViewById(R.id.btnLogin);

btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AttemptLogin login = new AttemptLogin();
login.execute("http://10.0.2.2/loginApp.php");
});
}

и самая важная часть кода (AsyncTask):

private class AttemptLogin extends AsyncTask<String, Void, Boolean>{
String text="";
@Override
protected Boolean doInBackground(String... params) {
InputStream is1 = null;
for(String url1:params) {
try {
ArrayList<NameValuePair> pairs = new ArrayList<>();
pairs.add(new BasicNameValuePair("email", etEmail.getText().toString()));
pairs.add(new BasicNameValuePair("pass", etPass.getText().toString()));
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(url1);
post.setEntity(new UrlEncodedFormEntity(pairs));
HttpResponse response = client.execute(post);
is1 = response.getEntity().getContent();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
BufferedReader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(is1, "UTF-8"), 8);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
String line = null;
try {
while ((line=reader.readLine())!=null) {
text = line + "\n";
}
} catch (IOException e) {
e.printStackTrace();
}
try {
is1.close();
} catch (IOException e) {
e.printStackTrace();
}
}
text = text.replaceAll("\\s+","");
if(text.equals("1"))
return true;
else
return false;
}

@Override
protected void onPostExecute(Boolean bool) {
super.onPostExecute(bool);
if(bool == true)
Toast.makeText(LoginActivity.this,"You are successfully logged in",Toast.LENGTH_SHORT).show();
else
Toast.makeText(LoginActivity.this,"Incorrect email or password",Toast.LENGTH_SHORT).show();

}
}

При запуске приложения ошибки не возникает, однако Я не могу получить сообщение «Вы успешно вошли в систему», даже когда я ввожу правильный адрес электронной почты и пароль.

Если вы просмотрите мой код, вы увидите, что это означает, что мое приложение никогда не получает «1» в качестве вывода из файла php. Я думаю, что это та часть, где я делаю какую-то ошибку (не могу правильно прочитать php echo в приложении), но я не могу понять, в чем конкретно проблема ???

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector