无法识别 php 变量。

标签 php android mysql

我有以下 php 脚本,用户可以在其中通过他的 Android 手机对玩家进行评分并将该数据发布到我的服务器中。

所以:

<?php
  session_start();
  require "init.php";
  header('Content-type: application/json');

  error_reporting(E_ALL); 
  ini_set("display_errors", 1);

  $id = isset($_POST['player_id']);
  $user_id = isset($_POST['User_Id']);
  $best_player = isset($_POST['player']);
  $rate = isset($_POST['rating']);

  if($id && $user_id && $best_player && $rate){

    $sql_query = "insert into rating_players_table values('$id','$best_player','$rate','$user_id');";

    if(mysqli_query($con,$sql_query)){

        $don = array('result' =>"success","message"=>"Επιτυχής πρόσθεση παίχτη");
    }       
   }else if(!$best_player){

        $don = array('result' =>"fail","message"=>"Insert player name");

    }else if(!$rate){

        $don = array('result' =>"fail","message"=>"Rate player");

    }
 echo json_encode($don);

?>

但是我收到一条消息说 echo 中的 $don 变量未被识别。

发送数据的Android代码是:

private void ratingPlayer(final String player, final int rating,final String UserId) {

    String tag_string_req = "req_register";

    StringRequest strReq = new StringRequest(Request.Method.POST,
            URL.URL_BEST_PLAYERS, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            Log.d("Response", "Best player response: " + response.toString());

            try {
                JSONObject jsonObject = new JSONObject(response);
                if (jsonObject.getString("result").equals("success")) {
                    Toast.makeText(getApplicationContext(), jsonObject.getString("message"), Toast.LENGTH_LONG).show();
                } else if (jsonObject.getString("result").equals("fail")) {
                    Toast.makeText(getApplicationContext(), jsonObject.getString("message"), Toast.LENGTH_LONG).show();
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
            Log.e("Error", "Registration Error: " + error.getMessage());
            Toast.makeText(getApplicationContext(),
                    error.getMessage(), Toast.LENGTH_LONG).show();

        }
    }) {
        @Override
        protected Map<String, String> getParams() {
            // Posting params to register urls
            Map<String, String> params = new HashMap<String, String>();
            params.put("player_id", "");
            params.put("User_Id", UserId);
            params.put("player", player);
            params.put("rating", String.valueOf(rating));
            return params;
        }
    };
      // Adding request to request queue
      AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
   }

在哪里

final String player, final int rating,final String UserId

我在 Android 手机的编辑文本字段中输入的值。

有什么问题吗?

谢谢,

西奥。

最佳答案

这样更准确

$id_isSet = isset($_POST['player_id']);
$user_id_isSet = isset($_POST['User_Id']);
$best_player_isSet = isset($_POST['player']);
$rate_isSet = isset($_POST['rating']);

if($id_isSet && $user_id_isSet && $best_player_isSet && $rate_isSet){

    $id = $_POST["player_id"];
    $user_id = $_POST['User_Id'];
    $best_player = $_POST['player'];
    $rate = $_POST['rating'];

    $sql_query = "INSERT INTO rating_players_table VALUES('$id','$best_player','$rate','$user_id');";

    if(mysqli_query($con,$sql_query)){

        $don = array('result' =>"success","message"=>"Επιτυχής πρόσθεση παίχτη");
    }       
   }else if(!$best_player){

        $don = array('result' =>"fail","message"=>"Insert player name");

    }else if(!$rate){

        $don = array('result' =>"fail","message"=>"Rate player");

    }
 echo json_encode($don);

?>

如果你回显 isset($_POST["id"]) 并且是真的你将打印“1”而不是实际的 post 值

关于无法识别 php 变量。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38414491/

相关文章:

mysql - 拉取一列中编号最小的行

mysql - 优化MySQL数据库查询

php - 通过 Wordpress 的自定义字段插件设置背景图片

java - 在 Solr 中搜索 "Hash sign"

android - [在应用程序运行时] 定期执行操作的最佳方式 - 处理程序?

android - 如何以编程方式创建 Menu 实例?即在 onCreateOptionsMenu 之外膨胀一个菜单

状态更改后的 Android Bottom Sheet

php - PDO 执行不会正确注入(inject)数组值

php - 根据设定的价格和月份计算日期之间的价格

mysql - 多个列中具有不同值的多个计数