Android 未连接到数据库以检查用户名和密码

德瓦什·巴特

我在教程视频中看到了这段代码,在该视频中,该应用程序运行良好,甚至显示“登录成功”吐司。

但是当我尝试复制它时,即使我在数据库中输入了正确的用户名和密码,它也对我不起作用。(我尝试使用用户的 LAN IP 和 Wi-Fi IP 使用 XAMPP,还尝试在 000webhost.com 上托管 PHP 脚本,但仍然无法使用任何一种方法)

我的安卓代码:

package com.example.devarsh.googlemapsbustracker;


import android.app.Dialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GoogleApiAvailability;

import java.util.HashMap;
import java.util.Map;

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MainActivity";
    private static final int ERROR_DIALOG_REQUEST = 9001;
    private EditText User_name, Pass_word;
    private Button btnlogin;
    private static String URL_LOGIN = 
    "http://192.168.50.127/Android/login.php";


    //vars
    EditText enroll;


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

        btnlogin = findViewById(R.id.button2);
        User_name = findViewById(R.id.username);
        Pass_word = findViewById(R.id.password);

        btnlogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Login();
            }
        });


        isServicesOK();
    }

    private void Login(){

        String URL = 
    "imagebustracker.000webhostapp.com/Android/parul/login.php";
        RequestQueue requestQueue = Volley.newRequestQueue(this);
        StringRequest stringRequest = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {

                if(response.trim().equals("success")){
                    Toast.makeText(getApplicationContext(), "Login Successfull", Toast.LENGTH_LONG).show();
                    Intent intent = new Intent(getApplicationContext(), Selection_Activity.class);
                    startActivity(intent);
                }else{
                    Toast.makeText(getApplicationContext(), "Login Unsuccessfull", Toast.LENGTH_LONG).show();
                }

            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(getApplicationContext(), "Login Unsuccessfull", Toast.LENGTH_LONG).show();
            }
        }) {
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {

                Map<String, String> params = new HashMap<>();
                params.put("UserName", User_name.getText().toString().trim());
                params.put("PassWord", Pass_word.getText().toString().trim());

                return params;
            }
        };

        requestQueue.add(stringRequest);

    }


    public void isServicesOK() {
        Log.d(TAG, "isServicesOK: checking google services version");

        int available = GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(this);

        if(available == ConnectionResult.SUCCESS){
            //everything is fine and user can make map request
            Log.d(TAG, "isServicesOK: Google Play Services is working");
        }
        else if(GoogleApiAvailability.getInstance().isUserResolvableError(available)){
            //there is an error but we can fix it
            Log.d(TAG, "isServicesOK: An error is there but we can fix it");
            Dialog dialog = GoogleApiAvailability.getInstance().getErrorDialog(this, available, ERROR_DIALOG_REQUEST);
            dialog.show();
        }else{
            Toast.makeText(this, "We cant make maps request", Toast.LENGTH_SHORT).show();
        }
    }
}

在 Android 代码中,我刚刚添加了 if response.trim().equals("success")then 它将启动一个新活动。但是一直提示“登录失败”。

PHP脚本:


<?php
$conn =
 mysqli_connect("localhost","id7263189_root","dev@1234"
 ,"id7263189_logintb");
    mysqli_query($conn, "SET NAMES 'utf8'");

$username = $_POST["UserName"];
$password = $_POST["PassWord"];

$query = 'SELECT id FROM logintb WHERE username = "'.$username.'" and 
password = "'.$password.'"';
$result = mysqli_query($conn,$query) or die('error: ' .mysql_error());

if(mysqli_num_rows($result) == 1){

    echo "success";
}else{
    echo "error";
}


?>

目前我正在使用 XAMPP 连接到 myphpadmin。但是,如果我需要,我会将其托管到 000webhost 以使用真实设备与互联网进行检查。

尼禄

首先,测试您的 PHP 脚本。因此,像这样硬编码用户名和密码变量

$username = "myUsername"; 
$password = "myPassword";

确保 myUsername 和 myPassword 是实际存在于您的数据库中的数据。从那里,在您的 Web 浏览器中调用相同的 URL 并查看响应。是成功还是错误。

另一件值得注意的事情是在您拨打电话时阅读 Android 应用程序中的响应代码。响应代码将清楚地确定它是否甚至与服务通信。但在您的情况下,我建议您打印出 Volleyerror。

此外,请向我提供您在本教程中使用的链接。有时对代码有一双眼睛是好的。

正如您所提到的,您遇到了“登录失败”吐司,这意味着它正在击中 onErrorResponse 函数。因此,将函数更改为以下内容:-

new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Toast.makeText(getApplicationContext(), "Login Unsuccessfull", Toast.LENGTH_LONG).show();
            Log.e(TAG, error); //or
            System.println("VolleyError Start: " + error + " : End VolleyError");
        } 

并请分享错误。如果您有任何问题,请告诉我。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法使用Android连接到数据库

来自分类Dev

Rails无需用户名或密码即可连接到数据库

来自分类Dev

如何在连接字符串中设置用户名和密码以连接数据库?

来自分类Dev

如何检查访问数据库中的用户名和密码

来自分类Dev

Oracle数据库链接-使用用户名中的特殊字符连接到代理

来自分类Dev

Android-登录textView后从sqlite数据库显示用户名

来自分类Dev

Android应用程序存储和调用用户名和密码

来自分类Dev

如何以编程方式启动ssh sever android,以及如何获取连接到设备的用户名和密码

来自分类Dev

Python / Django数据库用户名和密码?

来自分类Dev

无法连接到Android KivyMD上的mysql数据库

来自分类Dev

检查docker连接中的用户名和密码

来自分类Dev

使用用户名和密码的Android Volley GET请求失败

来自分类Dev

Spring应用程序拒绝使用指定的用户名连接到MySql数据库

来自分类Dev

将Android应用连接到MS SQL数据库

来自分类Dev

iOS中是否存在等效的Android sharedpreferences来保存凭据(用户名和密码)?

来自分类Dev

android在另一个活动的edittext中传递用户名和密码

来自分类Dev

如何授予不使用特定用户名和密码的用户访问数据库的权限?

来自分类Dev

Android:存储HTTP基本密码/用户名

来自分类Dev

PHP mySQL检查用户名和密码是否在数据库中

来自分类Dev

数据库连接字符串Windows身份验证,但传递用户名和密码

来自分类Dev

如何在Android中存储用户名/密码?

来自分类Dev

使用Calablash Android将用户名和密码输入Dropbox登录Webview

来自分类Dev

Android登录未与数据库连接

来自分类Dev

如何以编程方式启动ssh sever android,以及如何获取连接到设备的用户名和密码

来自分类Dev

使用用户名和密码连接到openvpn

来自分类Dev

变量“用户名”在数据库中返回0(Android和PHP开发)

来自分类Dev

如何从Firebase数据库中获取Android列表视图中的用户名列表?

来自分类Dev

Redis - 用户名、密码和数据库?

来自分类Dev

通过表单传递数据库用户名和密码,用于 Flask App 中的数据库连接

Related 相关文章

  1. 1

    无法使用Android连接到数据库

  2. 2

    Rails无需用户名或密码即可连接到数据库

  3. 3

    如何在连接字符串中设置用户名和密码以连接数据库?

  4. 4

    如何检查访问数据库中的用户名和密码

  5. 5

    Oracle数据库链接-使用用户名中的特殊字符连接到代理

  6. 6

    Android-登录textView后从sqlite数据库显示用户名

  7. 7

    Android应用程序存储和调用用户名和密码

  8. 8

    如何以编程方式启动ssh sever android,以及如何获取连接到设备的用户名和密码

  9. 9

    Python / Django数据库用户名和密码?

  10. 10

    无法连接到Android KivyMD上的mysql数据库

  11. 11

    检查docker连接中的用户名和密码

  12. 12

    使用用户名和密码的Android Volley GET请求失败

  13. 13

    Spring应用程序拒绝使用指定的用户名连接到MySql数据库

  14. 14

    将Android应用连接到MS SQL数据库

  15. 15

    iOS中是否存在等效的Android sharedpreferences来保存凭据(用户名和密码)?

  16. 16

    android在另一个活动的edittext中传递用户名和密码

  17. 17

    如何授予不使用特定用户名和密码的用户访问数据库的权限?

  18. 18

    Android:存储HTTP基本密码/用户名

  19. 19

    PHP mySQL检查用户名和密码是否在数据库中

  20. 20

    数据库连接字符串Windows身份验证,但传递用户名和密码

  21. 21

    如何在Android中存储用户名/密码?

  22. 22

    使用Calablash Android将用户名和密码输入Dropbox登录Webview

  23. 23

    Android登录未与数据库连接

  24. 24

    如何以编程方式启动ssh sever android,以及如何获取连接到设备的用户名和密码

  25. 25

    使用用户名和密码连接到openvpn

  26. 26

    变量“用户名”在数据库中返回0(Android和PHP开发)

  27. 27

    如何从Firebase数据库中获取Android列表视图中的用户名列表?

  28. 28

    Redis - 用户名、密码和数据库?

  29. 29

    通过表单传递数据库用户名和密码,用于 Flask App 中的数据库连接

热门标签

归档