2017-02-23 2 views
0

einfach möchte ich i-Registrierungsseite, die gespeicherten Benutzerdaten Post hat machen, aber keine Daten in der Datenbank phpfile gespeichert, wie Daten in MySQL posten android volley mit

<?php 
    if($_SERVER['REQUEST_METHOD']=='GET'){ 
     $username = $_POST['username']; 
     $email = $_POST['email']; 
     $password = $_POST['password']; 
     $name = $_POST['name']; 
     $phonenum = $_POST['phonenum']; 
     $address = $_POST['addresstext']; 
     require_once('config.php'); 
     $sql = "INSERT INTO users (name,username,email,password,phonenum,address) VALUES ('$name','$username','$email','$password','$phonenum','$address')"; 
     $r = mysqli_query($dp,$sql); 
     if($r){ 
     echo "Successfully Registered"; 
     } 
     else{ 
      echo "Could not register"; 
     }  
     mysqli_close($dp); 
    } 
?> 

Anmeldungen page.java

public class DrSignup extends Activity implements View.OnClickListener{ 

    public static final String REGISTER_URL = "http://giclub.esy.es/Register.php"; 

    public static final String KEY_USERNAME = "username"; 
    public static final String KEY_PASSWORD = "password"; 
    public static final String KEY_EMAIL = "email"; 
    public static final String KEY_NAME = "name"; 
    public static final String KEY_PHONENUM = "phonenum"; 
    public static final String KEY_ADDRESS = "address"; 

    EditText usernametext,nametext,emailtext,phonenumtext,addresstext,passwordtext; 

    TextView link_login; 
    ImageView profileimg; 
    Button btn_signup; 
    private static int RESULT_LOAD_IMAGE = 1; 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.drsingup); 
     link_login = (TextView) findViewById(R.id.link_login); 
     profileimg = (ImageView) findViewById(R.id.profileimg); 
     btn_signup = (Button) findViewById(R.id.btn_signup); 
     usernametext = (EditText) findViewById(R.id.username); 
     nametext = (EditText) findViewById(R.id.name); 
     emailtext = (EditText) findViewById(R.id.email); 
     phonenumtext = (EditText) findViewById(R.id.phonenumber); 
     addresstext = (EditText) findViewById(R.id.addresstext); 
     passwordtext = (EditText) findViewById(R.id.password); 
     link_login.setOnClickListener(this); 
     profileimg.setOnClickListener(this); 
     btn_signup.setOnClickListener(this); 

    } 
    @Override 
    public void onClick(View view) { 
     Intent I = new Intent(this,WelcomeActivity.class); 
     if (view == link_login) 
     { 
      startActivity(I); 
      finish(); 
     } 
     else if (view == profileimg){ 
      Intent i = new Intent(
        Intent.ACTION_PICK, 
        android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
      startActivityForResult(i, RESULT_LOAD_IMAGE); 
     } 
     else if (view == btn_signup){ 
      registerUser(); 

     } 

    } 

    private void registerUser() { 
     final String username = usernametext.getText().toString().trim(); 
     final String password = passwordtext.getText().toString().trim(); 
     final String email = emailtext.getText().toString().trim(); 
     final String name = nametext.getText().toString().trim(); 
     final String phonenum = phonenumtext.getText().toString().trim(); 
     final String address = addresstext.getText().toString().trim(); 


     StringRequest stringRequest = new StringRequest(Request.Method.POST, REGISTER_URL, 
       new Response.Listener<String>() { 
        @Override 
        public void onResponse(String response) { 
         Toast.makeText(DrSignup.this,response,Toast.LENGTH_LONG).show(); 
        } 
       }, 
       new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         Toast.makeText(DrSignup.this,error.toString(),Toast.LENGTH_LONG).show(); 
        } 
       }){ 
      @Override 
      protected Map<String,String> getParams(){ 
       Map<String,String> params = new HashMap<String, String>(); 
       params.put(KEY_USERNAME,username); 
       params.put(KEY_PASSWORD,password); 
       params.put(KEY_EMAIL, email); 
       params.put(KEY_NAME,name); 
       params.put(KEY_ADDRESS,address); 
       params.put(KEY_PHONENUM, phonenum); 
       return params; 
      } 

     }; 

     RequestQueue requestQueue = Volley.newRequestQueue(this); 
     requestQueue.add(stringRequest); 
    } 

    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 

     if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) { 
      Uri selectedImage = data.getData(); 
      String[] filePathColumn = {MediaStore.Images.Media.DATA}; 

      Cursor cursor = getContentResolver().query(selectedImage, 
        filePathColumn, null, null, null); 
      cursor.moveToFirst(); 

      int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
      String picturePath = cursor.getString(columnIndex); 
      cursor.close(); 

      profileimg.setImageBitmap(BitmapFactory.decodeFile(picturePath)); 

     } 
    } 
    } 

keine Sache getoastet und kein Fehler wird in logcat angezeigt, was ist das Problem?

+0

in Ihrem Code ermitteln, warum ist es Methode Prüfung erhalten, wenn Sie POST-Daten benötigen?'if ($ _ SERVER ['REQUEST_METHOD'] == 'GET')' ändern Sie es zu Post, kann es helfen –

+0

Pech für mich: D Ich weiß nicht, wie ich das vergessen habe: D danke ^^ – Amr93

+0

aber wie Kann ich ein Bild in derselben Datenbank hinzufügen? – Amr93

Antwort

2

Eigentlich sind Sie keine Antwort bekommen, weil in der Server-Seite Sie Request-Methode mit get vergleichen, aber eigentlich sind Sie Daten an den Server sendet nicht von ihm abrufen, so dass es wie dieses

<?php 
if($_SERVER['REQUEST_METHOD']=='POST'){ 
    $username = $_POST['username']; 
    $email = $_POST['email']; 
    $password = $_POST['password']; 
    $name = $_POST['name']; 
    $phonenum = $_POST['phonenum']; 
    $address = $_POST['addresstext']; 
    require_once('config.php'); 
    $sql = "INSERT INTO users (name,username,email,password,phonenum,address) VALUES ('$name','$username','$email','$password','$phonenum','$address')"; 
    $r = mysqli_query($dp,$sql); 
    if($r){ 
    echo "Successfully Registered"; 
    } 
    else{ 
     echo "Could not register"; 
    }  
    mysqli_close($dp); 
} 
?> 
+0

ja du bist wahr thx ^^ – Amr93

+0

aber wie kann ich Bild in der gleichen Datenbank hinzufügen? – Amr93

+0

Wenn das Ihr Problem gelöst hat, akzeptieren Sie es bitte als richtige Antwort –

0

Änderung

ändern
if($_SERVER['REQUEST_METHOD']=='GET') 

zu

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

Bild hochladen:

  1. Upload-Bitmap in Ihrer Aktivität und codieren in den String
  2. auf der Serverseite deklariert die Variable die eindeutigen Namen zu jedem Bild zugeordnet werden und auch den Weg zu erklären, wo Sie wollen das Bild

    für zB speichern: $path = "uploads/$id.png";

    $actualpath = "http://url_path/xyz/$path;

  3. danach legen Sie die $actualpath in den db

    Hinweis: Vergessen Sie nicht, auf der Serverseite zu dekodieren

+0

richtige Antwort, aber wie kann ich Bild hochladen in der gleichen Datenbank? – Amr93

+0

Sie möchten ein Bild vom Handy auf die db hochladen? –

+0

ja .. ich will dies genau – Amr93

1

@ Amr93 denke ich, u Daten in post-Methode senden und in API Überprüfung you'r

"Request-Methode == GET"

Schauen Sie sich die

Ersetzen Sie diese

($ _SERVER [ 'REQUEST_METHOD'] == 'GET') {

Mit

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

0

Sie verwenden die Anforderungsart "POST" in Ihrem Android-Code

StringRequest stringRequest = new StringRequest(Request.Method.POST, REGISTER_URL, 

und in PHP-Code mit "GET" Anfrage behandeln. So Code, wenn die Bedingung nicht ausgeführt

if($_SERVER['REQUEST_METHOD']=='GET') 

Änderung es

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

es wird Ihr Problem