Я создал веб-сайт с использованием PHP с системой входа в систему. Я создал базу данных и систему входа в систему, и она работает, но теперь я работаю над приложением Android, для которого требуется система входа в систему, подключенная к той же базе данных. Когда я нажимаю кнопку входа в систему, приложение перестает работать и переводит меня в меню телефона.
Вот файл входа в PHP с моего сайта
if (isset($_POST['login-submit']))
{
require 'dbh-inc.php';
$mailuid = $_POST['user_name'];
$password = $_POST['password'];
if (empty($mailuid) || empty($password)){
header("Location: ../index.php?emptyFields");
exit();
} else{
$sql = "SELECT * FROM users WHERE uidUsers=?;";
$stmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt, $sql)){
header("Location: ../index.php?sqlError");
exit();
} else {
mysqli_stmt_bind_param($stmt, "s", $mailuid);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
if ($row = mysqli_fetch_assoc($result)){
$pwdCheck = password_verify($password, $row['pwdUsers']);
if ($pwdCheck == false){
header("Location: ../index.php?wrongPassword");
exit();
} else if ($pwdCheck == true){
session_start();
$_SESSION['userId'] = $row['idUsers'];
$_SESSION['userUid'] = $row['uidUsers'];
$_SESSION['userFirst'] = $row['firstUsers'];
$_SESSION['userLast'] = $row['lastUsers'];
$_SESSION['userEmail'] = $row['emailUsers'];
$_SESSION['userPoints'] = $row['userPoints'];
header("Location: ../index.php?LoginSucces");
exit();
}else {
header("Location: ../index.php?wrongPassword");
exit();
}
}
else {
header("Location: ../index.php?noUser");
exit();
}
}
На сайте все работает без проблем. Итак, я открываю свой Java-класс для входа и создаю OnClickListener для моей кнопки входа в систему. в моем случае я написал
String username = uid.getText().toString();
String password = pwd.getText().toString();
String type = "login";
BackgroundWorker backgroundWorker = new BackgroundWorker(this);
backgroundWorker.execute(type,username,password);
Я также создал класс BackgroundWorker:
package com.example.onaca.quiz;
import android.app.AlertDialog;
import android.content.Context;
import android.os.AsyncTask;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
public class BackgroundWorker extends AsyncTask<String, Void, String> {
AlertDialog alertDialog;
Context context;
BackgroundWorker(Context ctx) {
context = ctx;
}
@Override
protected String doInBackground(String... params) {
String type = params[0];
String login_url = "http://quizonwheels.com/includes/login-inc.php";
if (type.equals("login"))
{
try {
String user_name = 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("user_name","UTF-8")+" = "+URLEncoder.encode(user_name,"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();
}
}
return null;
}
@Override
protected void onPreExecute() {
alertDialog = new AlertDialog.Builder(context).create();
alertDialog.setTitle("Login Status");
}
@Override
protected void onPostExecute(String result) {
alertDialog.setMessage(result);
alertDialog.show();
}
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
}
Что я должен сделать? Я новичок в программировании на Java, мне поможет любая информация. Спасибо!
я могу вставить запись моего эмулятора?
Вам нужно открыть консоль журнала, когда ваше приложение выйдет из строя. Имеются ошибки красного цвета, и в этой консоли вызывается иерархия этой ошибки. просто скопируйте эти ошибки и поместите
У меня нет ошибок, просто не работает
разве ваше приложение не закрывается, когда вы нажимаете кнопку входа в систему. как вы сказали. В основном это происходит, когда появляется исключение? эти сведения об исключении есть в консоли
позвольте мне проверить пожалуйста
Это много ... и мне не разрешают комментировать все
просто поставьте первые несколько красных строк, которые объясняют ошибку
Не могли бы вы проверить logcat, он обязательно должен показать ошибку




Вы можете предоставить журнал сбоев?