php - 我的 .php/?PHPSESSID=xxxxxxxxxxxxxxxxxx 出现意外响应代码 500

标签 php android mysql session android-volley

我正在尝试访问我的 GetUserData.php 文件,以将数据库中存储的用户信息显示到我的 Android 应用程序的个人资料页面上。我有:

    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,

并且我的 session ID 从用户首次登录时开始存储。但是我收到错误

BasicNetwork.performRequest: http://............/GetUserData.php/?PHPSESSID=54609c62fec7fc28631d708da687ab55 出现意外响应代码 500

这是该方法的其余部分:

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

最佳答案

要启用通过 GET 而不是 cookie 传递 session ID,您可能必须激活 php.ini 中的 session.use_trans_sid 选项,该选项默认情况下处于禁用状态(这意味着,默认情况下, session ID 仅通过 cookie 传递——从不通过 GET 传递)。

关于php - 我的 .php/?PHPSESSID=xxxxxxxxxxxxxxxxxx 出现意外响应代码 500,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35885168/

相关文章:

android - Android LicenseChecker 上“无法绑定(bind)到服务”

android - 如何在 android list 中创建可浏览的 Intent ?

mysql - 匹配..反对

PHP 脚本运行 SQL 更新命令,但它被忽略

javascript - 在 Joomla 3.x 中通过 POST 将数组从 javascript 发送到 php

php - USB key 中的Linux测试环境(apache + php + git)?

php - 在接收文件上写什么脚本?

android - 存储gps数据的格式

mysql - switch 语句内的奇怪结果

java - mybatis查询不太好用