Как получить переменную php обратно в Android-приложение?

я новичок в программировании в Android Studio, я пытаюсь подключить свое приложение к базе данных MySQL на веб-сервере, echo "login success !!!!! Welcome $user"; работает нормально, как я хочу, но я хочу получить переменную PHP, как $user также вернемся к моей разработке Android Studio, чтобы я мог использовать его для создания сессий в приложении, но я не могу получить переменную
Я получаю эхо, и я использую его где-то еще, чтобы отобразить успех входа в систему. нужна помощь спасибо

    <?php
require "pconn.php";
$username = $_POST["username"];
$password = $_POST["password"];

$username = stripslashes($username);
$password = stripslashes($password);

$hash = md5($password);

$qry = "SELECT * FROM UserLogin WHERE Email='".$username."' and BINARY Password ='".$hash."'";
$result = mysqli_query($conn ,$qry);
if(mysqli_num_rows($result) > 0) {
$row = mysqli_fetch_assoc($result);
$user = $row['Username'] ;
echo "login success !!!!! Welcome $user";
echo $user;
}
else {
echo "login not success";
}?>

и мой класс Java это:

protected String doInBackground(String... params) {
String type = params[0];
String login_url = "http://xaas.com/login.php";
if(type.equals("login")) {
try {
String username = params[1];
String password = params[2];
URL url = new URL(login_url);
HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);
OutputStream outputStream = httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
String post_data = URLEncoder.encode("username","UTF-8")+"="+URLEncoder.encode(username,"UTF-8")+"&"+URLEncoder.encode("password","UTF-8")+"="+URLEncoder.encode(password,"UTF-8");
bufferedWriter.write(post_data);
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1"));
String result="";
String line="";

while((line = bufferedReader.readLine())!= null) {
result += line;
}bufferedReader.close();
inputStream.close();
httpURLConnection.disconnect();
return result;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
}
return null;
}

1

Решение

использование print для отображения чего-либо на php консоль и echo просто часть, которую вы хотите отправить в ответ на устройство Android.

Или, если вы хотите отправить "login success !!!!! Welcome $user" Строка в качестве ответа. Тогда просто получи значение $user на стороне андроида.

Первый раз echo это будет отправлено как ответ. Если вы хотите отправить несколько строк, то создайте json, заполните его всем, что вы хотите отправить, и, наконец, отобразите его. Что-то вроде этого:

$data = [ 'loginMessage' => 'login success !!!!! Welcome $user', 'user' => '$user' ];
header('Content-type: application/json');
echo json_encode( $data );

Затем получить значения обратно на стороне Android, используя JSONObject:

JSONObject responseJSON = new JSONObject(result);
String loginMessage = responseJSON.getString("loginMessage");
String userName = responseJSON.getString("user");
1

Другие решения

Как и во всех ответах, приведенных выше, вам нужно отобразить вывод php как json.
Чтобы добиться этого, вы можете попробовать следующий код в вашем PHP-файле

$result["sessionID"] = $user;
$result["response_message"] = "Log in success!"echo json_encode($result);

Теперь вам нужно проанализировать результат вашего OutputStream, чтобы сделать это, вы можете попробовать следующий код в вашем классе Android

JSONObject jsonobj = new JSONObject([your variables that holds the result from output stream]);
String sessionID = jsonobj.getString("sessionID");
String response_message = jsonobj.getString("response_message");

Обратите внимание, что параметр, который вы передали в jsonobj.getString («идентификатор сессии«) должен совпадать с параметром, который вы передали при объявлении переменной $ response [«идентификатор сессии«] в php файле.

Я также хотел бы предложить вам ознакомиться с синтаксисом JSON.

2

JSON и XML являются распространенными способами возврата данных с веб-сервера в мобильное приложение.

Или введите имя пользователя и пароль непосредственно в Android EditTexts и отправьте данные в скрипт PHP. Только будьте осторожны, что вы используете HTTPS, а не обычный HTTP.

1