Я сейчас создаю приложение для своего университетского проекта, и я действительно застрял. В настоящее время я пытаюсь отправить данные со своей страницы регистрации приложений в мою базу данных Mysql. Я смог установить соединение из-за журналов ошибок, показывающих, что соединение было успешным, но данные не отправляются в базу данных?
Я пробовал несколько способов отправки данных через php, но, похоже, это не имеет значения. Я надеялся, что кто-то может указать на мою ошибку и помочь мне преодолеть это препятствие, на котором я так долго застрял.
Регистрация. java
package com.example.projectv1;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;
import com.android.volley.AuthFailureError;
import com.android.volley.DefaultRetryPolicy;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONObject;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class SignUp extends AppCompatActivity {
ImageView nxtPage;
EditText Fname;
EditText Lname;
EditText Email;
EditText Password;
EditText RePassword;
private String sendURL = "https://tg322.brighton.domains/AppPHP/get_data.php";
private RequestQueue requestQueue;
private static final String TAG = SignUp.class.getSimpleName();
int success;
private String TAG_SUCCESS = "Success";
private String TAG_MESSAGE = "Message";
private String tag_json_obj = "json_obj_req";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sign_up);
nxtPage = (ImageView) findViewById(R.id.NextPage);
Fname = (EditText) findViewById(R.id.editTextFName);
Lname = (EditText) findViewById(R.id.editTextLName);
Email = (EditText) findViewById(R.id.editTextEmail);
Password = (EditText) findViewById(R.id.editTextPassword);
RePassword = (EditText) findViewById(R.id.editTextRePassword);
requestQueue = Volley.newRequestQueue(getApplicationContext());
nxtPage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent startActivity = new Intent(SignUp.this, HomePage.class);
startActivity(startActivity);
sendData();
}
});
}
//public void GetData(){
// TempFname = Fname.getText().toString();
// TempLname = Lname.getText().toString();
// TempEmail = Email.getText().toString();
// TempPassword = Password.getText().toString();
// }
private void sendData(){
StringRequest request = new StringRequest(Request.Method.POST, sendURL, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try{
JSONObject jobj = new JSONObject(response);
success = jobj.getInt(TAG_SUCCESS);
if(success == 1){
Toast.makeText(SignUp.this, jobj.getString(TAG_MESSAGE), Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(SignUp.this, jobj.getString(TAG_MESSAGE), Toast.LENGTH_SHORT).show();
}
}catch (Exception e){
Toast.makeText(SignUp.this, "Error Occured " + e, Toast.LENGTH_SHORT).show();
}
}
}, new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError error){
Toast.makeText(SignUp.this, error.getMessage().toString(), Toast.LENGTH_SHORT).show();
}
}) {
@Override
public Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("F_Name" , Fname.getText().toString());
params.put("L_Name" , Lname.getText().toString());
params.put("Email" , Email.getText().toString());
params.put("Password" , Password.getText().toString());
return params;
}
};
request.setRetryPolicy(new DefaultRetryPolicy(10000, 1, 1.0f));
requestQueue.add(request);
}
}
DatabaseConfig. php
<?php
$HostName = "localhost";
$HostUser = "tg322_admin";
$HostPass = "1234";
$DatabaseName = "tg322_AndroidAppDatabase";
$con = mysqli_connect($HostName,$HostUser,$HostPass,$DatabaseName);
if(!$con){
echo "Error occured in connection";
}
?>
get_data. php
<?php
include "DatabaseConfig.php";
class user{}
$fname = ($_POST['F_Name']);
$lname = ($_POST['L_Name']);
$email = ($_POST['Email']);
$pass = ($_POST['Password']);
$query = "INSERT INTO 'Login_Details' ('id' , 'F_Name' , 'L_Name' , 'Email' , 'Password') values (NULL, '".$fname."' , '".$lname."' , '".$email."' , '".$pass."')";
mysqli_query($con,$query);
if($query){
$response=new user();
$response->success=1;
$response->message="Successfully uploaded";
die(json_encode($response));
}else{
$response=new user();
$response->success=0;
$response->message="Failed to upload";
die(json_encode($response));
}
mysqli_close($con);
?>
Это результат при запуске моего приложения :
Произошла ошибка org. json .JSONException: Нет значения для успеха
Редактировать
После добавления error_reporting(E_ALL);
к обоим php скриптам, я уверен, что ошибка не ie с кодом php, так как об ошибке не сообщается. {"success":1,"message":"Successfully uploaded"}
Это ответ от моего php кода, поэтому я успешно подключаюсь к базе данных, но я не уверен, в чем проблема с моим android студийным кодом.