некоторые проблемы в использовании $ _POST для подключения от приложения к серверу - PullRequest
1 голос
/ 01 мая 2020

Я учусь накануне выпуска.

Я хочу интегрировать приложение и сервер.

Но эта проблема не решена .. Пожалуйста, помогите мне.

Я думаю, что используйте $ _post для отправки данных с android на сервер.

Но это не Продолжение.

Сервер постоянно получает '-1', поэтому android studio возникает ошибка.

пожалуйста, прочитайте мой код и обратную связь со мной!

** я использую php для сервера и использую android studio.

<?php

@extract($_POST);

if(!isset($_SESSION)) {
    session_start();
}

$con=mysqli_connect("localhost","root","1234","teamProject");

if (mysqli_connect_errno($con))
{
   echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

if(isset($_POST['userID']) && isset($_POST['userPW'])){

  $userID = $_POST['userID'];
  $userPW = $_POST['userPW'];

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

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

  $row = mysqli_fetch_array($result);

  $data = $row;

  if(strcmp($data, $userPW)){
    echo "0"; // 다르다 
  }else{
    echo "1"; // 같다 
  }
}
else{
  echo "-1"; //값이 전달되지 않았다. 
}

mysqli_close($con);
?>

publi c класс LoginActivity расширяет AppCompatActivity {

HttpResponse response;
HttpClient httpClient;
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);

    /*if (Build.VERSION.SDK_INT > 9) {
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
    }*/

    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);
    /*if(stan.equals("1")){
        Intent intent = new Intent(getApplicationContext(), MainActivity.class);
        startActivity(intent);
    }else{

    }*/

}

// 회원가입 버튼 클릭 시
public void signUp(View v) {
    Intent intent = new Intent(getApplicationContext(), SignUpActivity.class);
    startActivity(intent);
}

// 비회원 이용 버튼 클릭 시
public void nonMember(View v) {
    Intent intent = new Intent(getApplicationContext(), MainActivity.class);
    startActivity(intent);
}

// 아이디 비번 찾기 버튼 클릭 시
//  화면 구현 필요
public void findIDPW(View v) {

}

@SuppressLint("StaticFieldLeak")
private class phpdo extends AsyncTask<String, Void, String> {

    protected void onPreExecute() {

    }

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

        try
        {
            //   전송 모드 설정 - 기본적인 설정이다
            //--------------------------

            // 전송 방식은 POST
            httpClient = new DefaultHttpClient();
            HttpPost request = new HttpPost("http://172.30.1.1/PHP_connection.php");

            Vector<NameValuePair> nameValue = new Vector<NameValuePair>();
            nameValue.add(new BasicNameValuePair("userID", userID));
            nameValue.add(new BasicNameValuePair("userPW", userPW));
            //전송하고자 하는 데이터의 신호 와 해당데이터의 값

            HttpEntity entity = new UrlEncodedFormEntity(nameValue, HTTP.UTF_8);
            request.setEntity(entity);

            HttpClient client = new DefaultHttpClient();
            HttpResponse res = client.execute(request);
            HttpEntity entityResponse = res.getEntity();
            InputStream im = entityResponse.getContent();
            BufferedReader reader = new BufferedReader(new InputStreamReader(im, StandardCharsets.UTF_8));

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

            while ((line = reader.readLine()) != null) {
                sb.append(line);
                break;
            }

            im.close();

            return sb.toString();

        }catch (UnsupportedEncodingException e) {
            e.printStackTrace();

        }catch (IOException e) {
            e.printStackTrace();
        }
        return null;

    }

    protected void onPostExecute(String aVoid) {

        super.onPostExecute(aVoid);
        if (aVoid.equals("1")) {
            Intent intent = new Intent(getApplicationContext(), MainActivity.class);
            startActivity(intent);
        }
        else if(aVoid.equals("0")){
            Toast myToast = Toast.makeText(LoginActivity.this,"pass error!", Toast.LENGTH_SHORT);
            myToast.show();
        }
        else{
            Toast myToast = Toast.makeText(LoginActivity.this,"error!", Toast.LENGTH_SHORT);
            myToast.show();
        }
    }
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...