2016-08-19 10 views
1

私はなぜApp 1がApp 2の間に私のデータベースにデータを保存するのかを理解しようとしています。2つのアプリはほとんど同じですが、私のデータベースには1つの情報しか登録されていません。どうして?

のAndroidアプリの1とApp 2は、この活動に1つのラインから離れて、まったく同じです:

のApp 1:

package com.example.chris.loginregister; 

import com.android.volley.Response; 
import com.android.volley.toolbox.StringRequest; 

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

/** 
* Created by Chris on 24/07/2016. 
*/ 

public class RegisterRequest extends StringRequest { 

    private static final String REGISTER_REQUEST_URL = "http://tom.comxa.com/Register.php"; 

    private Map<String, String> params; 

    public RegisterRequest(String username, Response.Listener<String> listener){ 

     super(Method.POST, REGISTER_REQUEST_URL, listener, null); 
     params = new HashMap<>(); 
     params.put("username", username); 

    } 

    @Override 
    public Map<String, String> getParams() { 

     return params; 
    } 
} 

代わりの

private static final String REGISTER_REQUEST_URL = "http://tom.comxa.com/Register.php"; 

私が持っていますアプリ2で:

private static final String REGISTER_REQUEST_URL = "http://12.345.67.89/Register.php"; 

両方のアプリは、私が別のアクティビティにSystem.out.println運動を持っているとまったく同じテスト合格:両方のアプリケーションのための私のlogcatは、私が「登録ボタンをクリックしたときに、まったく同じです

//when the Register button is clicked : 
public void onClick(View v) { 
       final String username = etUsername.getText().toString(); 
       System.out.println("first step of the test, at least my button is recognised"); 

       Response.Listener<String> responseListener = new Response.Listener<String>(){ 

        @Override 
        public void onResponse(String response) { 

         try { 
          JSONObject jsonResponse = new JSONObject(response); 
//       boolean success = jsonResponse.getBoolean("second step, recognises my JSON"); 
          boolean success = jsonResponse.getBoolean("success"); 
//       System.out.println("yes, succeeded, it works, it recognises my PHP file"); 

          if (success) { 
           System.out.println("yes, succeeded, it works, it recognises my PHP file"); 
           Intent intent = new Intent(RegisterActivity.this, LoginActivity.class); 
           RegisterActivity.this.startActivity(intent); 

          } else { 
           System.out.println("no, failed, but at least it recognises my JSON"); 
           AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this); 
           builder.setMessage("Register failed") 
             .setNegativeButton("Retry", null) 
             .create() 
             .show(); 
          } 


         } catch (JSONException e) { 

          e.printStackTrace(); 
          System.out.println("no, failed utterly"); 
         } 

         System.out.println("json response: " + response); 
        } 
       }; 

を:

08-20 00:19:16.770 30244-30244/com.example.chris.loginregister I/System.out: first step of the test, at least my button is recognised 
08-20 00:19:16.770 30244-30244/com.example.chris.loginregister I/dalvikvm: DexOpt: illegal method access (call Lcom/android/volley/Request;.finish (Ljava/lang/String;)V from Lcom/example/chris/loginregister/RegisterRequest;) 
08-20 00:19:16.770 30244-30244/com.example.chris.loginregister I/dalvikvm: Could not find method com.android.volley.Request.finish, referenced from method com.example.chris.loginregister.RegisterRequest.access$super 
08-20 00:19:16.770 30244-30244/com.example.chris.loginregister W/dalvikvm: VFY: unable to resolve virtual method 17084: Lcom/android/volley/Request;.finish (Ljava/lang/String;)V 
08-20 00:19:16.770 30244-30244/com.example.chris.loginregister D/dalvikvm: VFY: replacing opcode 0x6f at 0x00c8 
08-20 00:19:17.290 30244-30244/com.example.chris.loginregister I/System.out: yes, succeeded, it works, it recognises my PHP file 
08-20 00:19:17.510 30244-30244/com.example.chris.loginregister I/System.out: json response: {"success":true} 

しかし、App 1だけが実際にmys.comデータベースに詳細をtom.comxa.comで保存します。

理由は何ですか?

のApp 1:

$con = mysqli_connect("webhost", "user", "password", "a7720716_data"); 

のApp 2:

$con = mysqli_connect("webhost2", "root", "password", "mydatabasename"); 
+0

誰もが見るためにインターネットに資格情報を投稿しないでください。 – tadman

+0

これら2つのファイルは、接続先が大きく異なります。それは大きな問題であるようです。 – tadman

+0

@tadman資格情報は現実的ではありません。これらの2つのファイルは、接続先がかなり異なります...はい、2つの異なるIPアドレスです。 – CHarris

答えて

-1

私のPHPファイルがあった

マイregister.phpファイルは、あまりにもちょうど1行少し異なっています書式

$con = mysqli_connect("12.345.67.89", "root", "password", "mydatabasename"); 

にそれを変更:

$con = mysqli_connect("localhost", "root", "password", "mydatabasename"); 

、それが働きました。

関連する問題