2017-02-23 167 views
0

Просто я хочу сделать страницу регистрации, которые хранятся пользовательские данные я сделал пост, но никакие данные не хранятся в базе данных phpfileкак размещать данные в MySQL с помощью андроида залп

<?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); 
    } 
?> 

Регистрация 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)); 

     } 
    } 
    } 

нет вещи поджарено и не ошибка отображается в logcat В чем проблема?

+0

В коде почему есть GET метод проверки, когда требуются данные POST?'if ($ _ SERVER ['REQUEST_METHOD'] == 'GET')' изменить его для публикации, это может помочь –

+0

неудача для меня: D я не знаю, как я забыл это: D поблагодарить u ^^ – Amr93

+0

, но как Можно ли добавить изображение в ту же базу данных? – Amr93

ответ

2

На самом деле вы не получаете никакого ответа, потому что в вашей стороне сервера вы сравниваете метод запроса с GET, но на самом деле вы отправляете данные на сервер не загружается из него так изменить его, как это изменение

<?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

yes u r true thx ^^ – Amr93

+0

Но как добавить изображение в той же базе? – Amr93

+0

если это решило вашу проблему, пожалуйста, примите его в качестве правильного ответа. –

0

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

в

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

Загрузить изображение: растровый

  1. загрузки в вашей деятельности и кодирования в строку
  2. на стороне сервера объявить переменную присвоить уникальное имя для каждого изображения, а также объявить путь, где вы хотите, чтобы сохранить изображение

    для например: $path = "uploads/$id.png";

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

  3. после этого вставьте $actualpath в дб

    Примечание: Не забудьте расшифровать на стороне сервера

+0

правильный ответ, но как я могу загрузить изображение в том же база данных ? – Amr93

+0

u хотите загрузить изображение с мобильного на db? –

+0

да .. я хочу это точно – Amr93

1

@ Amr93 Я думаю, у отправляют данные в методе поста и в API you'r проверки

"метод запроса == GET"

Посмотрите на этом

Заменить этот

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

С

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

0

Вы используете тип запроса "POST" в своем андрок код

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

и в php-коде обрабатывать его с помощью запроса «GET». Поэтому код, если условие не выполняется

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

изменить его

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

будет решить вашу проблему