В настоящее время я создаю простое приложение для входа в Android с помощью учебника на YouTube, который извлекает данные из базы данных и позволяет пользователю войти в систему. Однако, когда я нажимаю кнопку входа, независимо от того, что ввод, это говорит мне, что вход был успешным. Ниже приведен код Java, в который вводятся данные, и код PHP для подключения к базе данных; при каждом нажатии входа в систему появляется AlertDialog с сообщением «Вход выполнен успешно». Я хочу, чтобы он отображал «Вход не выполнен», если введенные пользователем данные неверны, может кто-нибудь показать мне, как? Спасибо
public class BackgroundWorker extends AsyncTask<String, Void, String> {
Context context;
AlertDialog alertDialog;
BackgroundWorker (Context ctx){
context = ctx;
}
@Override
protected String doInBackground(String... params) {
String type = params[0];
String login_url = "";
if (type.equals("Login")) {
try {
String userName = params[1];
String password = params[2];
URL url = new URL(login_url);
HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);
OutputStream outputStream = httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
String post_data = URLEncoder.encode("userName", "UTF-8")+"="+URLEncoder.encode(userName, "utf-8")+"&"+URLEncoder.encode("password", "UTF-8")+"="+URLEncoder.encode(password, "utf-8");
bufferedWriter.write(post_data);
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1"));
String result ="";
String line ="";
while ((line = bufferedReader.readLine()) != null){
result += line;
}
bufferedReader.close();
inputStream.close();
httpURLConnection.disconnect();
return result;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
@Override
protected void onPreExecute() {
alertDialog = new AlertDialog.Builder(context).create();
alertDialog.setTitle("Login status: ");
}
@Override
protected void onPostExecute(String result) {
alertDialog.setMessage(result);
alertDialog.show();
}@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
}
====
<?php
require "conn.php";
$userName = $_POST["userName"];
$password = $_POST["password"];
$mysql_qry = "select * from database where userName like '$userName' and password like '$password';";
$result = mysqli_query($conn, $mysql_qry);
if(mysqli_num_rows($result) > 0) {
echo "Successful login";
}
else{
echo "Login not successful";
}
В вашем файле conn.php
$dbname = "";
$username = "";
$password = "";
$server = "";
Это не должно быть пустым.
Заполните его соответствующими данными
Других решений пока нет …