java - 使用 MySql 和 PHP 进行 Android 登录

标签 java php android mysql

我对 Android 很陌生。我尝试使用 PHP 和 Mysql 创建登录应用程序。我提到了一个来源,他使用了一个名为 GenAsync.jar 的库来避免“他说”的许多编码。然而,我遵循了他的指示,但不幸的是我无法登录。问题是什么?难道是因为我在移动设备上运行它,而不是像他演示的那样在模拟器上运行?我也使用在线服务器,但他的演示使用本地主机。请帮帮我吗?非常感谢。

package issa.example.com.mysqldatabase;


import android.content.Intent;
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.Toast;

import com.kosalgeek.asynctask.AsyncResponse;
import com.kosalgeek.asynctask.PostResponseAsyncTask;

import java.util.HashMap;

public class MainActivity extends AppCompatActivity implements AsyncResponse{

    EditText etUsername, etPassword;
    Button btnLogin;

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

        etUsername = (EditText)findViewById(R.id.etUsername);
        etPassword = (EditText)findViewById(R.id.etPassword);
        btnLogin = (Button)findViewById(R.id.btnLogin);

        btnLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                HashMap postData = new HashMap();
                postData.put("btnLogin", "Login");
                postData.put("mobile", "android");
                postData.put("user_name", etUsername.getText().toString());
                postData.put("pass_word", etPassword.getText().toString() );

                PostResponseAsyncTask loginTask =
                        new PostResponseAsyncTask(MainActivity.this, postData);
                loginTask.execute("http://mchucha.com/android/logini.php");
            }
        });
    }

    @Override
    public void processFinish(String output) {
        if(output.equals("success")){
            Intent intent = new Intent(MainActivity.this, Activity2.class);
            Toast.makeText(this, "Login Successfully",
                    Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(MainActivity.this, "Login Failed", Toast.LENGTH_SHORT).show();
        }

    }
}    

PHP script text
<?php
$servername = "localhost";
$username = "mchuchac_user";
$password = "123";
$dname = "mchuchac_db";

$conn = mysqli_connect($servername, $username, $password, $dname);
    if (!$conn){
        die ("connection failed: " .mysqli_connect_error());
    }

    else {
        echo " connection success";
    }

?>

<?PHP 
    include_once("connection.php"); 
    if( isset($_POST['user_name']) && isset($_POST['pass_word']) ) { 
        $username = $_POST['user_name'];
        $password = $_POST['pass_word'];

        $query = "SELECT username, password FROM tbl_client ". 
        " WHERE username = '$username' AND password = '$password'"; 

        $result = mysqli_query($conn, $query);

        if($result->num_rows > 0){
            if(isset($_POST['mobile']) && $_POST['mobile'] == "android"){ 
                echo "success"; 
                exit; 
            } 
            echo " Login success";
        } else{ 
            echo "Login Failed <br/>"; 
        } 
    } 
?>

最佳答案

虽然您的问题不太清楚(您为失败做了什么并将用户名和密码值传递给 php/web 服务),但我想尝试通过执行一些步骤来帮助您解决失败/错误。

  1. 首先确保DB连接良好。

    $conn = mysqli_connect($servername, $username, $password, $dname); 如果(!$ conn){ die ("连接失败:".mysqli_connect_error()); } 别的 { echo "连接成功"; }

  2. 通过回显 $username 和 $password 来检查用户名和密码值是否已在 Web 服务中传递。
  3. 如果第二步运行良好,请按如下方式调试查询:

    $query = "从 tbl_client 中选择用户名、密码"。 "WHERE 用户名 = '$username' AND 密码 = '$password'";

在 mysql 应用程序中运行该查询(例如 phpmyadmin)。

这就是我的解释,希望对你有帮助。

关于java - 使用 MySql 和 PHP 进行 Android 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37694285/

相关文章:

android - HttpUrlConnection.connect失败

Java字符串换行/缩进匹配

java - 如何在远程 ejb 查找期间设置超时?

java - NullPointExceptionError 需要帮助

php - <?php language_attributes(); ?> 在 html 标签上

php - 使用 XMLHttprequest 上传文件 - multipart/form-data 中缺少边界

android - 语法错误: Unterminated quoted string [Makefile]

java - java中日期转换失败

php - PHP 7.0.20:异常的代码为0

java - 划掉文字