отправленные данные не достигаются через $ _POST («пусто» и, следовательно, результат пуст »), но соединение установлено - PullRequest
0 голосов
/ 15 января 2019

Данные не отправляются в файл php. Условие, если (isset ($ _ POST ['f_name]) не верно.

Подключение к файлу php успешно, и я проверил его, но данные не отправляются.

MainActivity.java

 package com.example.sarah.vent;

 import android.app.ProgressDialog;
 import android.support.v7.app.AppCompatActivity;
 import android.os.Bundle;
 import android.view.View;
 import android.widget.AdapterView;
 import android.widget.ArrayAdapter;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.Spinner;
 import android.widget.Toast;

 import com.android.volley.AuthFailureError;
 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.json.JSONException;
 import org.json.JSONObject;

 import java.util.HashMap;
 import java.util.Map;

public class MainActivity extends AppCompatActivity {

String arr[]={"public","private"};
String privacy;
EditText fi_name,la_name,password,emai;
ProgressDialog pd;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    Button reg=findViewById(R.id.reg);
    fi_name=findViewById(R.id.f_name);
     la_name=findViewById(R.id.l_name);
     password=findViewById(R.id.pass);
     emai=findViewById(R.id.email);
     pd=new ProgressDialog(this);
    reg.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            onclick();
            register();
        }
    });

}


void onclick(){
    final Spinner s=(Spinner) findViewById(R.id.privacy);
    ArrayAdapter<String> m=new ArrayAdapter <String>(this,android.R.layout.simple_spinner_dropdown_item,arr);
    s.setAdapter(m);
    s.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
            i=s.getSelectedItemPosition();
            privacy=arr[i];
        }

        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {

        }
    });
}

private void register() {
    final String f_name=fi_name.getText().toString().trim();
    final String l_name=la_name.getText().toString().trim();
    final String email=emai.getText().toString().trim();
    final String pass=password.getText().toString().trim();
    Toast.makeText(this, f_name, Toast.LENGTH_SHORT).show();
    pd.setMessage("Registering user");
    pd.show();

    StringRequest str=new StringRequest(Request.Method.POST, Constants.URL_REGISTER, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            pd.dismiss();
            try {
                JSONObject jsonObject=new JSONObject(response);
                Toast.makeText(MainActivity.this, jsonObject.getString("message"), Toast.LENGTH_SHORT).show();
            } catch (JSONException e) {
                e.printStackTrace();
                Toast.makeText(MainActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();


            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            pd.dismiss();
            Toast.makeText(MainActivity.this, "not ok", Toast.LENGTH_SHORT).show();

            Toast.makeText(MainActivity.this, error.getMessage(), Toast.LENGTH_SHORT).show();
        }
    }){
        @Override
        protected Map<String, String> getPostParams() throws AuthFailureError {
          Map <String,String> params=new HashMap<>();
           params.put("f_name",f_name);
            params.put("l_name",l_name);
            params.put("email",email);
            params.put("pass",pass);
            params.put("privacy",privacy);return params;
        }
    };

    RequestQueue rQ= Volley.newRequestQueue(this);
    rQ.add(str);
}}

registerUser.php

         <?php
         require '../includes/DbConnect.php';

         $response= array(); 


         if($_SERVER['REQUEST_METHOD']=='POST'){ 


          if(isset($_POST['f_name']) and isset($_POST['l_name']) && isset($_POST['pass']) && isset($_POST['email'])){

            $f_name=$_POST['f_name'];

            $l_name=$_POST['l_name'];

            $email=$_POST['email'];

            $password=$_POST['pass'];

            if(isset($_POST['privacy_level']))
              $p_l=$_POST['privacy_level']; 
            else 
              $p_l="public";


            function generateRandomString($length = 10) {
              $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
              $charactersLength = strlen($characters);
              $randomString = '';
              for ($i = 0; $i < $length; $i++) {
                $randomString .= $characters[rand(0, $charactersLength - 1)];
              }
              return $randomString;
            }

              $r_s=generateRandomString();
              $sql="INSERT INTO users (email,pass,f_name,l_name,privacy_level,random_username) 
              VALUES ('$email','$password','$f_name','$l_name','$p_l','$r_s')";

              if(mysqli_query($project, $sql)){
               $response['error']= false;
               $response['message']="User registered Successfully";
             } 



           else {

             $response['error']= true ;
             $response['message']="Failed to Register";

} }
      echo json_encode($response);  }
       ?> 

Предполагается, что данные достигнут php-файла, но результат пуст. Хотя данные успешно отправляются через почтальона.

...