2016-07-16 18 views
1

私は次のPHPスクリプトを用意しています。ユーザーはAndroid携帯からプレーヤーを評価し、そのデータを自分のサーバーに投稿できます。だから、PHP変数が認識されません。

<?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); 

?> 

私はエコーの内側$ドン変数が認識されないというメッセージを取得しますが。

データを送信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の携帯電話の私の編集テキストフィールドに入れる値。

何が間違っている可能性がありますか?ありがとう、

Theo。

+1

「1」を印刷しません

$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); ?> 

より正しいことだろうが、 1つの内部が偽である場合、 '$ don'は決して初期化されません。 –

+0

私はecho json_encode($ don)を入れます。内部if(mysqli_query($ con、$ sql_query)){..}、しかし私は何も得られません。 – Theo

+0

はい、それは決してそれを得ることはありません。私の答えを見て、助けがあるかどうかを確認してください。 –

答えて

1

これは、あなたがisset($_POST["id"])をエコー、それが真であれば最初のif文がtrueの場合は、実際のポスト値

+0

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

+0

上記の投稿はすべて認識されません:( – Theo

+0

isset()はすべてfalseであることを意味しますか? – greenapps

関連する問題