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

안드로이드 php 연동 질문드립니다

0 추천

로그인 할 때 안드로이드에서 PHP로 값을 보내는 것과 PHP에서 안드로이드로 값을 받는 과정이 안 됩니다.

또 로그인 후 화면을 이동하려고 하는데 onPostExecute(String aVoid)에서 aVoid를 기준으로 값을 비교하여 맞을 경우 화면을 이동시키고 아니면 toast 메시지를 띄우려고 하는데 이 부분도 맞는지 봐주시면 감사하겠습니다 ㅠㅠ!

사소한 부분이라도 조언 부탁드려요!

< php 코드 >

<?php
$con=mysqli_connect("localhost","root","1234","teamProject");
 
if (mysqli_connect_errno($con))
{
   echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
 
$ID = $_GET[ID];
$PW = $_GET[PW];

$sql = "SELECT userPW FROM USERINFORMATION where userID='".$ID."'";

$result = mysqli_query($con, $sql);

$row = mysqli_fetch_array($result);

$data = $row[0];

if(strcmp($data, $PW)){
  echo "0"; // 다르다 
}
else{
  echo "1"; // 같다 
}


mysqli_close($con);
?>

<안드로이드 코드>

public class LoginActivity extends AppCompatActivity {

    private EditText user_ID, user_PW;
    String userID, userPW, stan;
    private String xml;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login_activity);

        user_ID = (EditText) findViewById(R.id.insert_ID);
        user_PW = (EditText) findViewById(R.id.insert_PW);
    }

    public void login(View v) {
        userID = user_ID.getText().toString();
        ;
        userPW = user_PW.getText().toString();
        ;

        phpdo task = new phpdo();
        task.execute(userID, userPW);
}

 

private class phpdo extends AsyncTask<String, Void, String> {

    protected void onPreExecute() {

    }

    @Override
    protected String doInBackground(String... arg0) {

        try {
            String link = "http://172.30.1.1/PHP_connection.php+ID=" + userID + "&PW=" + userPW;
            //http://172.30.1.1/PHP_connection.php+ID=dkdk&PW=dkdkaa;

            HttpClient client = new DefaultHttpClient();
            HttpGet request = new HttpGet();
            request.setURI(new URI(link));
            HttpResponse response = client.execute(request);
            BufferedReader in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

            StringBuffer sb = new StringBuffer("");
            String line = "";

            while ((line = in.readLine()) != null) {
                sb.append(line);
                break;
            }
            in.close();
            return sb.toString();
        } catch (Exception e) {
            return new String("Exception: " + e.getMessage());
        }

    }

    protected void onPostExecute(String aVoid) {
        super.onPostExecute(aVoid);
        //stan = aVoid.toString();
        if (aVoid.equals("1")) {
            Intent intent = new Intent(getApplicationContext(), MainActivity.class);
            startActivity(intent);

        }
    }
}
왜안될까요 (120 포인트) 님이 2020년 4월 30일 질문

1개의 답변

0 추천

http://172.30.1.1/PHP_connection.php+ID=dkdk&PW=dkdkaa;  주소가 맞나요?

get 방식이면,

http://172.30.1.1/PHP_connection.php?ID=dkdk&PW=dkdkaa;  와 같이 ? 로 파라메터 시작 부분 구분해야 할듯 한데요.

익명사용자 님이 2020년 5월 4일 답변
...