2016-03-09 86 views
0

我正在嘗試訪問我的GetUserData.php文件以將存儲在數據庫中的用戶信息顯示在我的Android應用程序的配置文件頁面上。我有:意外的響應代碼500爲我的.php /?PHPSESSID = xxxxxxxxxxxxxxxxx

SharedPreferences sharedPreferences = getSharedPreferences(Config.sharedPref, Context.MODE_PRIVATE); 
    String sessionId = sharedPreferences.getString(Config.SID, "SessionID"); 

    StringRequest stringRequest = new StringRequest(Request.Method.GET, Config.SERVER_ADDRESS + "GetUserData.php/?PHPSESSID=" + sessionId, 

和我的會話ID是充分利用當用戶首次登錄存儲但是我得到的錯誤

BasicNetwork.performRequest:意外的響應碼500 http://............/GetUserData.php/?PHPSESSID=54609c62fec7fc28631d708da687ab55

這裏是方法的其餘部分:

private void getUserData() { 

    SharedPreferences sharedPreferences = getSharedPreferences(Config.sharedPref, Context.MODE_PRIVATE); 
    String sessionId = sharedPreferences.getString(Config.SID, "SessionID"); 

    StringRequest stringRequest = new StringRequest(Request.Method.GET, Config.SERVER_ADDRESS + "GetUserData.php/?PHPSESSID=" + sessionId, 
      new Response.Listener<String>() { 
       @Override 
       public void onResponse(String response) { 
        JSONObject jsonObject = null; 
        try { 
         //json string to jsonobject 
         jsonObject = new JSONObject(response); 

         //get json sstring created in php and store to JSON Array 
         result = jsonObject.getJSONArray(Config.json_array); 

         //get username from json array 
         getUserInfo(result); 
        } catch (JSONException e) { 
         e.printStackTrace(); 
        } 
       } 
      }, 
      new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 

       } 
      }); 

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

private void getUserInfo(JSONArray jsonArray){ 
    for(int i = 0; i < jsonArray.length(); i++) { 
     try { 
      JSONObject json = jsonArray.getJSONObject(i); 

      userInfo.add(json.getString(Config.getUsername)); 
     } catch (JSONException e) { 

     } 
    } 
    getFname.setText(userInfo.indexOf(2)); 
} 

回答

0

爲了使會話ID路過的GET而不是餅乾,您可能需要激活session.use_trans_sid php.ini選項,默認情況下是禁用的(這意味着,通過默認,會話ID只通過cookie傳遞 - 從不通過GET)。

+0

我無法編輯php.ini文件。有沒有一種方法可以在登錄時啓用它?例如:'ini_set(「session.use_trans_sid」,true);'??? – cdub

+0

你可以嘗試,不知道它是否會工作。如果您無法使用它,請嘗試在您的請求中發送Cookie標頭。像這樣: 'stringRequest.setHeader(「Cookie」,「PHPSESSID =」+ sessionId);' – AndreFeijo

+0

在我的方法中,我會添加這個嗎?作爲StringRequest中的參數? – cdub

0

快速瀏覽一下...和GetUserData.php /?PHPSESSID = 54609c6 ...看起來相當奇怪爲什麼/在.php之後?

+0

多數民衆贊成我是如何設置它..什麼是正確的格式? – cdub

+0

你能幫我弄清楚我的問題嗎? – cdub

相關問題