Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.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
Java 在Android中注册用户-PHP难题?_Java_Php_Android_Mysql - Fatal编程技术网

Java 在Android中注册用户-PHP难题?

Java 在Android中注册用户-PHP难题?,java,php,android,mysql,Java,Php,Android,Mysql,好的,我正在尝试做一个功能,允许人们在我的应用程序上注册帐户。我正在使用android studio进行截击。PHP正在处理服务器端。代码如下: 爪哇: RegisterRequest.java 包james.gcseccomputingapp; 导入com.android.volley.Response; 导入com.android.volley.toolbox.StringRequest; 导入java.util.HashMap; 导入java.util.Map; 公共类RegisterRe

好的,我正在尝试做一个功能,允许人们在我的应用程序上注册帐户。我正在使用android studio进行截击。PHP正在处理服务器端。代码如下:

爪哇:

RegisterRequest.java
包james.gcseccomputingapp;
导入com.android.volley.Response;
导入com.android.volley.toolbox.StringRequest;
导入java.util.HashMap;
导入java.util.Map;
公共类RegisterRequest扩展了StringRequest{
专用静态最终字符串寄存器\u请求\u URL=”http://placeholder.net/register2.php";
私有映射参数;
公共注册表请求(字符串名、字符串姓、字符串电子邮件、字符串用户名、字符串密码、响应.侦听器){
super(Method.POST,REGISTER\u REQUEST\u URL,listener,null);
params=新的HashMap();
参数put(“名字”,名字);
参数put(“姓氏”,姓氏);
参数put(“电子邮件”,电子邮件);
参数put(“用户名”,用户名);
参数put(“密码”,密码);
}
@凌驾
公共映射getParams(){
返回参数;
}
}
Register.java
包james.gcseccomputingapp;
导入android.app.AlertDialog;
导入android.content.Intent;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.Toast;
导入com.android.volley.RequestQueue;
导入com.android.volley.Response;
导入com.android.volley.toolbox.volley;
导入org.json.JSONException;
导入org.json.JSONObject;
公共类注册扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u寄存器);
最终EditText etFirstName=(EditText)findViewById(R.id.etFirstName);
最终EditText etLastName=(EditText)findViewById(R.id.etLastName);
最终的EditText-etEmail=(EditText)findViewById(R.id.etEmail);
最终EditText etUsername=(EditText)findViewById(R.id.etUsername);
最终EditText etPassword=(EditText)findViewById(R.id.etPassword);
最终按钮b注册表=(按钮)findViewById(R.id.b注册表);
bRegister.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
最后一个字符串firstName=etFirstName.getText().toString();
最后一个字符串lastName=etLastName.getText().toString();
最终字符串email=etEmail.getText().toString();
最终字符串username=etUsername.getText().toString();
最终字符串password=etPassword.getText().toString();
Response.Listener responseListener=新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
试一试{
JSONObject jsonResponse=新的JSONObject(响应);
boolean success=jsonResponse.getBoolean(“success”);
如果(成功){
Toast.makeText(register.this,“Work”,Toast.LENGTH_SHORT).show();
意图=新意图(register.this、login.class);
星触觉(意向);
}否则{
AlertDialog.Builder=新建AlertDialog.Builder(register.this);
builder.setMessage(“注册失败”)
.setNegativeButton(“重试”,null)
.create()
.show();
}
}捕获(JSONException e){
e、 printStackTrace();
}
}
};
RegisterRequest RegisterRequest=新的RegisterRequest(名字、姓氏、电子邮件、用户名、密码、响应侦听器);
RequestQueue=Volley.newRequestQueue(register.this);
添加(registerRequest);
}
});
}
}
PHP:

Register.php

这段代码似乎不产生错误,但显然它不能正常工作。当代码运行时,它会在SQL数据库中生成一个条目,正如预期的那样。但这些条目不包含数据?不明白我说的是什么意思?很抱歉,这是代码运行两次后的表截图:

有什么建议吗?有人知道出了什么问题吗?正如我所说,代码在运行时“起作用”,但它并没有达到预期的效果

我是个新手,如果有人能帮我一把,我会非常感激的。干杯

编辑-我知道没有任何形式的加密,密码以纯文本形式存储。我知道这不应该发生,但这是我这次任务的一件事。它是复杂的,让我们假装它只是另一个字符串。

这里:
mysqli_stmt_bind_param($statement,“siss”、$first_name、$last_name、$email、$username、$password)


您有5个要绑定的变量。但是你有sis就像你有1个字符串,1个int,1个字符串,1个字符串。它应该是sssss,因为5个变量都是字符串。有时,如果您不编写“sssss”而不是“sssss”,您可能会遇到错误。

值(NULL、名字、姓氏、电子邮件、用户名、密码)
这是您真正的语法吗?如果是这样,那就错了。检查它的错误
mysqli\u error($con)
会告诉你。这方面的RTM也
siss
不足以与5一起工作<代码>4!=5
“此代码似乎不会产生错误”-这是因为您没有检查错误。你只是假设而已
package james.gcsecomputingapp;


import com.android.volley.Response;
import com.android.volley.toolbox.StringRequest;

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

public class RegisterRequest extends StringRequest {

    private static final String REGISTER_REQUEST_URL = "http://placeholder.net/register2.php";
    private Map<String, String> params;

    public RegisterRequest(String first_name, String last_name, String email, String username, String password, Response.Listener<String> listener){
        super(Method.POST, REGISTER_REQUEST_URL, listener, null);
        params = new HashMap<>();
        params.put("first_name", first_name);
        params.put("last_name", last_name);
        params.put("email", email);
        params.put("username", username);
        params.put("password", password);
    }

    @Override
    public Map<String, String> getParams() {
        return params;
    }
}
package james.gcsecomputingapp;

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

import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.toolbox.Volley;

import org.json.JSONException;
import org.json.JSONObject;

public class register extends AppCompatActivity {

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

        final EditText etFirstName = (EditText) findViewById(R.id.etFirstName);
        final EditText etLastName = (EditText) findViewById(R.id.etLastName);
        final EditText etEmail = (EditText) findViewById(R.id.etEmail);
        final EditText etUsername = (EditText) findViewById(R.id.etUserName);
        final EditText etPassword = (EditText) findViewById(R.id.etPassword);
        final Button bRegister = (Button) findViewById(R.id.bRegister);

        bRegister.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View view) {
                final String firstName = etFirstName.getText().toString();
                final String lastName = etLastName.getText().toString();
                final String email = etEmail.getText().toString();
                final String username = etUsername.getText().toString();
                final String password = etPassword.getText().toString();


                Response.Listener<String> responseListener = new Response.Listener<String>(){

                    @Override
                    public void onResponse(String response) {
                        try {
                            JSONObject jsonResponse = new JSONObject(response);
                            boolean success = jsonResponse.getBoolean("success");
                            if (success){

                                Toast.makeText(register.this, "Work", Toast.LENGTH_SHORT).show();
                                Intent intent = new Intent(register.this, login.class);
                                startActivity(intent);
                            }else{
                                AlertDialog.Builder builder = new AlertDialog.Builder(register.this);
                                builder.setMessage("Register Failed")
                                        .setNegativeButton("Retry", null)
                                        .create()
                                        .show();
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                };
                RegisterRequest registerRequest = new RegisterRequest(firstName,lastName,email,username,password, responseListener);
                RequestQueue queue = Volley.newRequestQueue(register.this);
                queue.add(registerRequest);
            }
        });
    }


}
<?php
    $con=mysqli_connect("localhost","user","pass","db_database");
    
    $first_namename = $_POST["first_name"];
    $last_name = $_POST["last_name"];
    $email = $_POST["email"];
    $username = $_POST["username"];
    $password = $_POST["password"];
    $statement = mysqli_prepare($con, "INSERT INTO `db_database`.`users` (`user_id`, `first_name`, `last_name`, `email`, `username`, `password`) VALUES (NULL, first_name, last_name, email, username, password)");
    mysqli_stmt_bind_param($statement, "siss",$first_name,$last_name,$email,$username,$password);
    mysqli_stmt_execute($statement);
        
    $response = array();
    $response["success"] = true;  
    
    echo json_encode($response);
    
?>