[SignUp Rest服务在从Android应用程序发出Rest调用时不起作用

问题描述 投票:0回答:1

我在android studio中创建项目,并使用Volley进行注册和登录

我可以使用我使用phpMyadmin在数据库中插入的电子邮件和密码登录我的android应用程序,但是在android中注册不会将电子邮件和密码插入数据库!

这是我的LoginDialog.java代码:

public class LoginDialog extends DialogFragment {
    EditText edtEmail, edtPass;
    Button btnSignup, btnLogin;
    OnSignupClicked onSignupClicked;
    View view;

    @NonNull
    @Override
    public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
        view = LayoutInflater.from(getContext()).inflate(R.layout.login_dialog, null);
        setupViews();
        builder.setView(view);
        return builder.create();
    }



    private void setupViews() {
        btnSignup = (Button) view.findViewById(R.id.btn_loginDialog_signup);
        edtEmail = (EditText) view.findViewById(R.id.edt_loginDialog_email);
        edtPass = (EditText) view.findViewById(R.id.edt_loginDialog_pass);
        btnLogin = (Button) view.findViewById(R.id.btn_loginDialog_login);
        btnSignup.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String email = edtEmail.getText().toString();
                String pass = edtPass.getText().toString();
                userSignup(email, pass);

            }
        });

        btnLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                login(edtEmail.getText().toString(), edtPass.getText().toString());
            }
        });


    }

    private void login(final String myEmail, final String pass) {
        String url = "http://192.168.1.101/login.php";
        StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                if (response.equals("not found")) {
                    Toast.makeText(getContext(), "پست الکترونیک یا رمز عبور اشتباه است", Toast.LENGTH_SHORT).show();
                } else {
                    onSignupClicked.onClicked(response);
                    dismiss();
                }

            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {

                Log.i("LOG", "onErrorResponse: " + error.toString());
            }
        }) {
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String, String> params = new HashMap<>();
                params.put("email", myEmail);
                params.put("pass", pass);
                return params;
            }
        };

        RequestQueue requestQueue = Volley.newRequestQueue(getContext());
        requestQueue.add(stringRequest);
    }

    public void setOnSignupClicked(OnSignupClicked onSignupClicked) {
        this.onSignupClicked = onSignupClicked;
    }

    private void userSignup(final String email, final String pass) {
        String url = "http://192.168.1.101/signup.php";
        StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                Log.i("LOG", "onResponse: "+response);
                onSignupClicked.onClicked(response);
                dismiss();
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.i("LOG", "onErrorResponse: " + error.toString());
            }
        }) {
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String, String> params = new HashMap<>();
                params.put("email", email);
                params.put("pass", pass);
                return params;
            }
        };

        RequestQueue requestQueue = Volley.newRequestQueue(getContext());
        requestQueue.add(stringRequest);
    }

    public interface OnSignupClicked {
        void onClicked(String email);
    }
}

这是我的signup.php代码:

<?php
include "connect.php";
$email = $_POST["email"];
$pass = $_POST["pass"];
$query = "INSERT INTO user(email,pass)VALUES (:email,:pass)";
$res=$connect->prepare($query);
$res->bindParam(":email",$email);
$res->bindParam(":pass",$pass);
$res->execute();

if($res){
    echo $email;
}else{
    echo "error";
}

请指导我如何修复注册以便与数据库连接:X

java android database fragment android-volley
1个回答
0
投票
我必须测试我的系统才能解决您的问题。您可以将此php代码放在服务器上供我测试。但是现在您将这行代码放在了凌空。

@Override public Map<String, String> getHeaders() throws AuthFailureError { Map<String, String> params = new HashMap<String, String>(); params.put("Content-Type", "application/x-www-form-urlencoded"); return params; }

© www.soinside.com 2019 - 2024. All rights reserved.