我目前正在使用 YouTube 上的教程构建一个简单的登录 Android 应用,该应用从数据库中获取数据并让用户登录。但是,当我点击登录按钮时,无论输入什么,它都告诉我登录已成功。下面是输入数据的 Java 代码和连接数据库的 PHP 代码,每次单击登录时,都会弹出警报对话框,提示“登录成功”。如果用户输入的数据不正确,我希望它显示“登录未成功”,有人可以告诉我怎么做吗?谢谢
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 = "";
这不应该为空。
填写适当的数据
关于java - PHP 和 AlertDialog 在 Android 上不同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43129304/