Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.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
创建PHP页面的自定义响应_Php_Android_Mysql_Okhttp3 - Fatal编程技术网

创建PHP页面的自定义响应

创建PHP页面的自定义响应,php,android,mysql,okhttp3,Php,Android,Mysql,Okhttp3,我正在创建一个连接到MYSQL数据库的应用程序,用户可以在其中登录或注册。在register类中,我使用OKHTTP3注册一个新用户。OKHTTP3向执行查询的php页面发出请求。页面的响应总是相同的(代码:200,消息:“empty”)。我想定制php页面的响应,比如代码和消息,这样我就可以知道注册是否成功。我怎么做 请尽量简单 我的OKHTTP3请求: String reg_name = username.getText().toString(); String re

我正在创建一个连接到MYSQL数据库的应用程序,用户可以在其中登录或注册。在register类中,我使用OKHTTP3注册一个新用户。OKHTTP3向执行查询的php页面发出请求。页面的响应总是相同的(代码:200,消息:“empty”)。我想定制php页面的响应,比如代码和消息,这样我就可以知道注册是否成功。我怎么做

请尽量简单

我的OKHTTP3请求:

String reg_name = username.getText().toString();
            String reg_pass = password.getText().toString();
            String reg_url = "https://collectcards.000webhostapp.com/register.php";

            OkHttpClient client = new OkHttpClient();

            RequestBody formBody = new FormBody.Builder()
                    .add("user_name", reg_name)
                    .add("user_pass", reg_pass)
                    .build();

            Request request = new Request.Builder()
                    .url(reg_url)
                    .post(formBody)
                    .build();

            client.newCall(request).enqueue(new Callback() {
                @Override
                public void onFailure(Call call, IOException e) {
                    // Request failed
                }

                @Override
                public void onResponse(Call call, Response response) throws IOException {
                    // Handle whatever comes back from the server
                    String res = response.message(); //MESSAGE IS ALWAYS EMPTY, COSE IS ALWAYS 200
                    if(res.equals("OK")) { //ID LIKE TO CUSTOM THE MESSAGGE TO SAY OK WHEN IT GOES WELL AND NOTOK WHEN IT FAIL
                        ok = true;
                        risposta = "Registrazione Avvenuta";
                    }else {
                        risposta = "Registrazione Fallita";
                        ok = false;
                    }
                    mHandler.post(new Runnable() {
                        @Override
                        public void run() {
                            Toast.makeText(thisContext, risposta, Toast.LENGTH_LONG).show();
                            if (ok) {
                                Intent myIntent = new Intent(thisContext, mainMenuActivity.class);
                                thisContext.startActivity(myIntent);
                            }else{
                                password.setText("");
                                username.setText("");
                            }
                        }
                    });



                }
            });
我的php页面:

<?php  

 $connessione = mysqli_connect("localhost", "usr", "psw", "db");

 $user_name = $_POST['user_name']; 

 $user_pass = $_POST['user_pass'];  

 $query =  "INSERT INTO `player` (`username`, `password`, `money`) VALUES ('".$user_name."', '".$user_pass."', '100');";

 $risultato = mysqli_query($connessione, $query);

if($risultato){
 //CUSTOM MESSAGGE
}else{

}

 ?>

您可以使用
http\u response\u code()设置正在输出的代码,例如:

http_response_code(500); 
如果出现服务器错误,400表示错误请求,等等。对于正文,您应该能够
在正文中回送它。我建议您做一些类似于
json\u encode()
”的操作,对数据数组进行加密

请不要使用PHP关闭标记


警告:当使用
mysqli
时,您应该使用和将用户数据添加到查询中。不要使用字符串插值或串联来完成此操作,因为您已经创建了严重的错误。永远不要把
$\u POST
$\u GET
或任何用户数据直接放入查询中,如果有人试图利用你的错误,这可能是非常有害的。是的,我会使用它,谢谢:)你的意思是这样的:如果($risultato){http\u response\u code(1);}否则{http\u response\u code(2)}@gianmarcoferuzzi是的,就是这样。但从长远来看,如果你使用它,你的生活会轻松得多。那么,这家餐厅呢?我怎么能定制它呢?我只使用过框架——这些框架为我处理所有返回的东西——但我认为您只是从脚本中输出它。从回声“foo”开始测试传输,然后一旦知道它工作,您就可以在其中放入任何您喜欢的内容。正如我所说,我建议输出一个
JSON
编码的数组,这样你就可以以一种易于处理的格式发送数据。你知道关于这方面的有用指南吗?我的意思是用JSON发送数据。我已经使用了JSON,但只是从服务接收而不是发送。厚度:)