Php Android登录应用程序与MySQL数据库
我正试图按照youtube教程创建一个登录应用程序。我使用带有用户名和密码输入的WAMP创建了一个表。它应该显示“登录成功”消息,但无论输入如何,只要我按下登录按钮,就会收到“登录状态”消息 我已经粘贴了下面的所有代码。我希望有人能告诉我我做错了什么 背景活动类别代码:Php Android登录应用程序与MySQL数据库,php,android,mysql,login-script,Php,Android,Mysql,Login Script,我正试图按照youtube教程创建一个登录应用程序。我使用带有用户名和密码输入的WAMP创建了一个表。它应该显示“登录成功”消息,但无论输入如何,只要我按下登录按钮,就会收到“登录状态”消息 我已经粘贴了下面的所有代码。我希望有人能告诉我我做错了什么 背景活动类别代码: package com.example.klm.sql; import android.app.AlertDialog; import android.content.Context; import android.os.Asy
package com.example.klm.sql;
import android.app.AlertDialog;
import android.content.Context;
import android.os.AsyncTask;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import javax.net.ssl.HttpsURLConnection;
public class Background extends AsyncTask<String, Void, String> {
Context context;
AlertDialog alertDialog;
Background (Context ctx){
context = ctx;
}
@Override
protected String doInBackground(String... params) {
String type = params[0];
String user_name = params[1];
String password = params[2];
String login_url = "https://192.168.1.2/login.php";
if(type.equals("Login")){
try {
URL url = new URL(login_url);
HttpsURLConnection httpsURLConnection = (HttpsURLConnection)url.openConnection();
httpsURLConnection.setRequestMethod("POST");
httpsURLConnection.setDoOutput(true);
httpsURLConnection.setDoInput(true);
OutputStream outputStream = httpsURLConnection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
String post_data = URLEncoder.encode("user_name", "UTF-8") + "=" + URLEncoder.encode(user_name, "UTF-8") + "&"
+ URLEncoder.encode("password", "UTF-8") + "=" + URLEncoder.encode(password, "UTF-8");
bufferedWriter.write(post_data);
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
InputStream inputStream = httpsURLConnection.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();
httpsURLConnection.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代码
<?php
require "conn.php";
$user_name = addslashes($_POST["user_name"]);
$user_pass = addslashes($_POST["password"]);
$mysql_qry = "SELECT * from `login_data` WHERE `username` = '$user_name' AND `password` = '$user_pass';";
$result = mysqli_query($conn, $mysql_qry);
if (mysqli_num_rows($result) > 0) {
echo "Login Succes";
} else {
echo "Login Failed";
}
?>
<?php
$db_name = "login";
$mysql_username = "root";
$mysql_password = "";
$server_name = "localhost";
$conn = mysqli_connect($server_name, $mysql_username, $mysql_password, $db_name );
?>
&u POST
?另外,可爱的漏洞…总是一个很好的东西,看到在登录代码。你有使用像运营商。。。。!!!!!它应该是$\u POST[]
,并检查是否引发了任何异常。即使在阿里编辑之后,我仍然会收到相同的消息。在修复登录部分后,我将研究sql注入漏洞。只要您没有忘记,通常会发生什么,直到。。。
<?php
$db_name = "login";
$mysql_username = "root";
$mysql_password = "";
$server_name = "localhost";
$conn = mysqli_connect($server_name, $mysql_username, $mysql_password, $db_name );
?>