gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 11:29:13 25 4
gpt4 key购买 nike

我对 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com