Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何根据使用PHP从MySQL检索到的用户名和密码打开另一个活动?_Android - Fatal编程技术网

Android 如何根据使用PHP从MySQL检索到的用户名和密码打开另一个活动?

Android 如何根据使用PHP从MySQL检索到的用户名和密码打开另一个活动?,android,Android,在使用PHP脚本确认MySQL中的用户名和密码后,如何在Android Studio中打开另一个活动 我试图使用HTTP,但由于我的SDK版本(28),所以无法使用。所以,现在我尝试使用URL来连接 这是到目前为止我的代码 package com.example.myapp; import android.content.Context; import android.os.AsyncTask; import android.os.Bundle;

在使用PHP脚本确认MySQL中的用户名和密码后,如何在Android Studio中打开另一个活动

我试图使用HTTP,但由于我的SDK版本(28),所以无法使用。所以,现在我尝试使用URL来连接

这是到目前为止我的代码

    package com.example.myapp;


    import android.content.Context;
    import android.os.AsyncTask; 
    import android.os.Bundle; 
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
    import android.widget.Toast;
    import org.json.JSONArray;
    import org.json.JSONObject;
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.io.OutputStreamWriter;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.net.URLEncoder;
    import java.util.ArrayList;
    import java.util.HashMap;

    public class Sign extends AppCompatActivity {

    //Connector Variables

    private static final String jsonurl = "http://192.168.1.2/login2.php";
    private static TextView Info = null, Info2 = null, jSON;
    String username;
    String password;

    String usern[], userp[];
    int counter = 4;
    EditText pas;
    EditText usr;
    Button create_account;
    String ConnectionResult = "";
    Boolean isSuccess = false;
    private Button login;
    private Context text;
    private View view;
    private String LoginSMessage = "Login successful";
    String success = "succesful";


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate( savedInstanceState );
        setContentView( R.layout.activity_sign );

        Button login = findViewById( R.id.btnLogin );
        usr = ( EditText ) findViewById( R.id.etUsername );
        pas = ( EditText ) findViewById( R.id.etPassword );
        Info = ( TextView ) findViewById( R.id.tvInfo );
        jSON = ( TextView ) findViewById( R.id.tvJSON );

        Button create_account = findViewById( R.id.btnCreate );

        login.setOnClickListener( new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                username = usr.getText().toString();
                password = pas.getText().toString();

                String type = "login2";
                GetJSON json = new GetJSON(this);
                json.execute(type, username, password);


            }
        });
    }


       class GetJSON extends AsyncTask<String, Void, String> {
       public GetJSON(Object o) {

       }

       protected String doInBackground(String... params) {

           String type = params[0];
           String login_url = "http://192.168.1.2/login2.php";
           BufferedReader bufferedReader = null;

           if (type.equals( "login2" )) {
               try {
                   String user_name = params[1];
                   String password = params[2];
                   URL url = new URL( login_url );
                   HttpURLConnection con = ( HttpURLConnection ) 
                   url.openConnection();

                   con.setRequestMethod( "POST" );
                   con.setDoOutput( true );
                   con.setDoInput( true );
                   OutputStream outputStream = con.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 = con.getInputStream();
                   bufferedReader = new BufferedReader( new 
                   InputStreamReader( inputStream, "iso-8859-1" ) );

                   StringBuilder sb = new StringBuilder();
                   //bufferedReader = new BufferedReader( new 
                     InputStreamReader( con.getInputStream() ) );

                   String json;
                   while ((json = bufferedReader.readLine()) != null) {
                       sb.append( json + "\n" );
                   }
                   return sb.toString().trim();
               } catch (Exception e) {
                   return null;
               }
           }
           return null;


           }

            @Override
            protected void onPostExecute(String s){
           super.onPostExecute( s );
             jSON.setText(s);
                Log.d("CREATION", "Execution is done"+s);



               }


              }
package com.example.myapp;
导入android.content.Context;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.support.v7.app.AppActivity;
导入android.view.view;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.TextView;
导入android.widget.Toast;
导入org.json.JSONArray;
导入org.json.JSONObject;
导入java.io.BufferedReader;
导入java.io.BufferedWriter;
导入java.io.InputStream;
导入java.io.InputStreamReader;
导入java.io.OutputStream;
导入java.io.OutputStreamWriter;
导入java.net.HttpURLConnection;
导入java.net.URL;
导入java.net.urlcoder;
导入java.util.ArrayList;
导入java.util.HashMap;
公共类标志扩展了AppCompative活动{
//连接器变量
私有静态最终字符串jsonurl=”http://192.168.1.2/login2.php";
私有静态文本视图Info=null,Info2=null,jSON;
字符串用户名;
字符串密码;
字符串usern[],userp[];
int计数器=4;
编辑文本pas;
编辑文本usr;
按钮创建账户;
字符串ConnectionResult=“”;
布尔值isSuccess=false;
私人按钮登录;
私人语境文本;
私人视野;
私有字符串LoginSMessage=“登录成功”;
字符串success=“successful”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_标志);
按钮登录=findViewById(R.id.btnLogin);
usr=(EditText)findViewById(R.id.etUsername);
pas=(EditText)findViewById(R.id.etPassword);
Info=(TextView)findViewById(R.id.tvInfo);
jSON=(TextView)findViewById(R.id.tvJSON);
按钮create_account=findviewbyd(R.id.btnCreate);
login.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
username=usr.getText().toString();
password=pas.getText().toString();
字符串类型=“login2”;
GetJSON=新的GetJSON(此);
json.execute(类型、用户名、密码);
}
});
}
类GetJSON扩展异步任务{
公共GetJSON(对象o){
}
受保护的字符串doInBackground(字符串…参数){
字符串类型=参数[0];
字符串登录\u url=”http://192.168.1.2/login2.php";
BufferedReader BufferedReader=null;
if(type.equals(“login2”)){
试一试{
字符串user_name=params[1];
字符串密码=参数[2];
URL=新URL(登录\ URL);
HttpURLConnection con=(HttpURLConnection)
openConnection();
con.setRequestMethod(“POST”);
con.设置输出(真);
con.setDoInput(真);
OutputStream OutputStream=con.getOutputStream();
BufferedWriter BufferedWriter=新的BufferedWriter(新的
OutputStreamWriter(outputStream,“UTF-8”);
字符串post\u data=URLEncoder.encode(“用户名”,“UTF-8”
)+“=”+URLEncoder.encode(用户名,“UTF-8”)+“&+
urlcoder.encode(“密码”,“UTF-8”)+“=”+
urlcoder.encode(密码为“UTF-8”);
bufferedWriter.write(post_数据);
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
InputStream InputStream=con.getInputStream();
bufferedReader=新的bufferedReader(新的
InputStreamReader(inputStream,“iso-8859-1”);
StringBuilder sb=新的StringBuilder();
//bufferedReader=新的bufferedReader(新的
InputStreamReader(con.getInputStream());
字符串json;
而((json=bufferedReader.readLine())!=null){
sb.append(json+“\n”);
}
使某人恢复原状;
}捕获(例外e){
返回null;
}
}
返回null;
}
@凌驾
受保护的void onPostExecute(字符串s){
super.onPostExecute(s);
jSON.setText;
Log.d(“创建”、“执行完成”+s);
}
}

我希望我的代码能够在MySQL中确认用户名和密码后打开另一个活动。

您可以在服务器上编写以下PHP脚本:

$con=mysqli_connect("localhost","uname","pass","dbname");

   if (mysqli_connect_errno($con)) {
      echo "Error in connection : " . mysqli_connect_error();
   }

   $uname= $_POST['username'];
   $pass= $_POST['password'];
   $result = mysqli_query($con,"SELECT * FROM tableName where uname='$uname' and pass='$pass'");
   $row = mysqli_fetch_array($result);
   $data = $row[0];

   if($data){
      echo "Login success";
   }

   mysqli_close($con);
现在在你的android应用程序中,你可以有一个简单的if条件

@Override
protected void onPostExecute(String s){
  super.onPostExecute( s );
  jSON.setText(s);
  Log.d("CREATION", "Execution is done"+s);
  if(s!=null){
    Intent i = new Intent(your_current_activity_name.this,your_next_activity_name.class);
    startActivity(i);
  }else{
    Toast.makeText(getApplicationContext(), "Login credentials wrong", Toast.LENGTH_LONG).show();
  }
}