Проблема Отправка данных в mysql в android studio - PullRequest
0 голосов
/ 24 марта 2020

Я сейчас создаю приложение для своего университетского проекта, и я действительно застрял. В настоящее время я пытаюсь отправить данные со своей страницы регистрации приложений в мою базу данных 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 студийным кодом.

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