마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

volley 500오류 질문입니다. [closed]

0 추천

안녕하세요.

제가 원래 집컴에 서버를 올려서 쓰고 있다가 aws ec2를 쓰면서 서버에 있던 데이터 다 rds에 옮기고 어플리케이션에서 데이터 받고 수정도 다 되는지 확인 했습니다. 근데 문제가 로그인할 때 인데요. 계정 생성시에는 전혀 문제 없이 잘되는데 로그인 할때만 500에러가 뜹니다..애초에 뭘 하든 BasicNetwork.performRequest: Unexpected response code 500 for url 에러가 뜨면 그냥 내부 오류구나 하겠는데. 로그인 할 떄만 뜨니 제가 뭐 잘못한게 아닌가 싶어서 질문올립니다..

 

private void checkLogin(final String user_id, final String password) {
    // Tag used to cancel the request
        StringRequest strReq = new StringRequest(Method.POST,
                AppConfig.URL_LOGIN, new Response.Listener<String>() {

            @Override
            public void onResponse(String response) {
            Log.d(TAG, "Login Response: " + response.toString());
            try {
                JSONObject jObj = new JSONObject(response);
                boolean error = jObj.getBoolean("error");

                // Check for error node in json
                if (!error) {
                    // user successfully logged in
                    // Create login session
                    session.setLogin(true);

                    // Now store the user in SQLite
                    String uid = jObj.getString("uid");

                    JSONObject user = jObj.getJSONObject("user");
                    String name = user.getString("name");
                    String user_id = user.getString("user_id");
                    String created_at = user.getString("created_at");

                    // Inserting row in users table
                    db.addUser(name, user_id, uid, created_at);

                    // Launch main activity
                    Intent intent = new Intent(LoginActivity.this, MainActivity.class);
                    startActivity(intent);
                    finish();
                } else {
                    // Error in login. Get the error message
                    String errorMsg = jObj.getString("error_msg");
                    Toast.makeText(getApplicationContext(),
                            errorMsg, Toast.LENGTH_LONG).show();
                }
            } catch (JSONException e) {
                // JSON error
                e.printStackTrace();
                Toast.makeText(getApplicationContext(), "Json error: " + e.getMessage(), Toast.LENGTH_LONG).show();
            }      
        }
    }, new Response.ErrorListener() {

       생략 
       }
    }) {

        @Override
        protected Map<String, String> getParams() {
            Log.e("num","6");
            // Posting parameters to login url
            Map<String, String> params = new HashMap<String, String>();
            params.put("user_id", user_id);
            params.put("password", password);
            return params;
        }

    };
    // Adding request to request queue
    AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
}



login.php

<?php

생략

if (isset($_POST['user_id']) && isset($_POST['password'])) {

    // receiving the post params
    $user_id = $_POST['user_id'];
    $password = $_POST['password'];

    // get the user by email and password
    $user = $db->getUserByIdAndPassword($user_id, $password);

    if ($user != false) {
        // use is found
        $response["error"] = FALSE;
        $response["uid"] = $user["unique_id"];
        $response["user"]["name"] = $user["name"];
        $response["user"]["user_id"] = $user["user_id"];
        $response["user"]["created_at"] = $user["created_at"];
        $response["user"]["updated_at"] = $user["updated_at"];
        echo json_encode($response);
    } else {
        // user is not found with the credentials
        $response["error"] = TRUE;
        $response["error_msg"] = "Login credentials are wrong. Please try again!";
        echo json_encode($response);
    }
}
?>

 

DB_Functions.php의 일부분

 

public function getUserByIdAndPassword($user_id, $password) {

        $stmt = $this->conn->prepare("SELECT * FROM users WHERE user_id = ?");

        $stmt->bind_param("s", $user_id);

        if ($stmt->execute()) {
            $user = $stmt->get_result()->fetch_assoc();
            $stmt->close();

            // verifying user password
            $salt = $user['salt'];
            $encrypted_password = $user['encrypted_password'];
            $hash = $this->checkhashSSHA($salt, $password);
            // check for password equality
            if ($encrypted_password == $hash) {
                // user authentication details are correct
                return $user;
            }
        } else {
            return NULL;
        }
    }

질문을 종료한 이유: 자력해걀!!
원펀치맨 (2,860 포인트) 님이 2016년 10월 25일 질문
원펀치맨님이 2016년 10월 26일 closed

1개의 답변

+1 추천
500 이면 서버 에럽니다. 로컬에 html 파일 하나 만드시고 해당 php 파일에 post 날리면서 테스트 해보세요
aucd29 (218,390 포인트) 님이 2016년 10월 26일 답변
보니까 php.ini에러메세지 display여부가 off돼있어서 난 에러였네요. 그게 근본적인
문제는 아니고 php 파일에 맞지않는 형식이 있았는데 제가 안고쳐서 생긴문제였습니다 감사합니다
...