Я создаю приложение для входа, которое будет проверять имя пользователя и пароль с сервера MySQL. В локальной сети я успешно вошел в систему с эмулятора Android в базу данных MySQL. Я использовал PHP-скрипт для проверки пользователя.
Проблема в том, что я не могу войти с устройства Android в базу данных MySQL. Я сделал Локальную сеть у себя дома и записал PHP-сценарии на сервере. Но он не может войти.
Этот код предназначен для подключения к базе данных MySQL.
<?php
$db_name="user_details";
$mysql_username="root";
$mysql_password="";
$server_name="localhost";
$conn=mysqli_connect($server_name,$mysql_username,$mysql_password,$db_name);
?>
Этот код предназначен для валидации пользователя.
<?php
require "user_conn.php";
$user_name=$_POST["username"];
$user_pass=$_POST["password"];
$mysql_qry="select * from user where username like '$user_name' and password like '$user_pass';";
$result=mysqli_query($conn,$mysql_qry);
if(mysqli_num_rows($result)>0)
{
echo "Login success";
}
else
{
echo "Login not success";
}
?>
Это файл Java кода Android
Login.java
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class Login extends AppCompatActivity {
Button bLogin;
EditText etUser , etPass;@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
etUser = (EditText) findViewById(R.id.etuser);
etPass = (EditText) findViewById(R.id.etpass);
bLogin = (Button) findViewById(R.id.btlogin);
}
public void login(View view){
String u=etUser.getText().toString();
String p=etPass.getText().toString();
String l="login";
Background bg=new Background(this);
bg.execute(l,u,p);}
}
Background.java
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.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;public class Background extends AsyncTask<String, Void,String> {
AlertDialog a;
Context context;
public Background(Context ct) {
// TODO Auto-generated constructor stub
context=ct;
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
a=new AlertDialog.Builder(context).create();
a.setTitle("Login Status");
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
a.setMessage(result);
a.show();
}
@Override
protected void onProgressUpdate(Void... values) {
// TODO Auto-generated method stub
super.onProgressUpdate(values);
}
@Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub
String type=params[0];
String login_url="http://10.0.2.2/login.php";
if(type.equals("login")){
try {
String username=params[1];
String password=params[2];
URL u=new URL(login_url);
HttpURLConnection http=(HttpURLConnection)u.openConnection();
http.setRequestMethod("POST");
http.setDoInput(true);
http.setDoOutput(true);
OutputStream out=http.getOutputStream();
BufferedWriter bf= new BufferedWriter(new OutputStreamWriter(out,"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");
bf.write(post_data);
bf.flush();
bf.close();
out.close();
InputStream in=http.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(in,"iso-8859-1"));
String result="";
String line="";
while((line=br.readLine())!=null)
{
result+=line;
}
bf.close();
in.close();
http.disconnect();
return result;
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.login"android:versionCode="1"android:versionName="1.0" >
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-sdk
android:minSdkVersion="14"android:targetSdkVersion="23" />
<application
android:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".Background"android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
Задача ещё не решена.
Других решений пока нет …