2016-11-19 9 views
0

私は登録とログインの作業に取り組んでいます。 名前、ユーザー名、パスワードを入力すると、情報はAndroidアプリケーションにアクセスしました。 とToastに 'Registration Success'メッセージが表示されます。 しかし、データはmysql DBに挿入されませんでした。 どうすれば解決できますか?私を助けてください。続きmysqlにデータを挿入する

これはBackgroundTask.java

public class BackgroundTask extends AsyncTask<String,Void,String> { 
    AlertDialog alertDialog; 
    Context ctx; 

    BackgroundTask(Context ctx) { 
     this.ctx = ctx; 
    } 

    @Override 
    protected void onPreExecute() { 
     alertDialog = new AlertDialog.Builder(ctx).create(); 
    } 

    @Override 
    protected String doInBackground(String... params) { 
     String reg_url = "http://35.160.135.119/webapp/register.php"; 
     String login_url = "http://35.160.135.119/webapp/login.php"; 
     String method = params[0]; 
     if (method.equals("register")) { 
      String name = params[1]; 
      String user_name = params[2]; 
      String user_pass = params[3]; 
      try { 
       URL url = new URL(reg_url)     
       HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); 

       httpURLConnection.setRequestMethod("POST"); 
       httpURLConnection.setDoOutput(true); 
       //httpURLConnection.setDoInput(true); 
       OutputStream OS = httpURLConnection.getOutputStream(); 
       BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(OS, "UTF-8")); 
       String data = URLEncoder.encode("name", "UTF-8") + "=" + URLEncoder.encode(name, "UTF-8") + "&" + 
         URLEncoder.encode("user_name", "UTF-8") + "=" + URLEncoder.encode(user_name, "UTF-8") + "&" + 
         URLEncoder.encode("user_pass", "UTF-8") + "=" + URLEncoder.encode(user_pass, "UTF-8"); 


       bufferedWriter.write(data); 
       bufferedWriter.flush(); 
       bufferedWriter.close(); 
       OS.close(); 
       InputStream IS = httpURLConnection.getInputStream(); 
       IS.close(); 
       //httpURLConnection.connect(); 
       httpURLConnection.disconnect(); 
       return "Registration Success..."; 
      } catch (MalformedURLException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } else if (method.equals("login")) { 
      String login_name = params[1]; 
      String login_pass = params[2]; 
      try { 
       URL url = new URL(login_url); 
       HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); 
       httpURLConnection.setRequestMethod("POST"); 
       httpURLConnection.setDoOutput(true); 
       httpURLConnection.setDoInput(true); 
       OutputStream outputStream = httpURLConnection.getOutputStream(); 
       BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8")); 
       String data = URLEncoder.encode("login_name", "UTF-8") + "=" + URLEncoder.encode(login_name, "UTF-8") + "&" + 
         URLEncoder.encode("login_pass", "UTF-8") + "=" + URLEncoder.encode(login_pass, "UTF-8"); 
       bufferedWriter.write(data); 
       bufferedWriter.flush(); 
       bufferedWriter.close(); 
       outputStream.close(); 
       InputStream inputStream = httpURLConnection.getInputStream(); 
       BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "iso-8859-1")); 
       String response = ""; 
       String line = ""; 
       while ((line = bufferedReader.readLine()) != null) { 
        response += line; 
       } 
       bufferedReader.close(); 
       inputStream.close(); 
       httpURLConnection.disconnect(); 
       return response; 

      } catch (MalformedURLException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
     return null; 
    } 

    @Override 
    protected void onProgressUpdate(Void... values) { 
     super.onProgressUpdate(values); 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     if (result.equals("Registration Success...")) { 
      Toast.makeText(ctx, result, Toast.LENGTH_LONG).show(); 
     } else { 
      alertDialog.setMessage(result); 
      alertDialog.show(); 
     } 
    } 
} 

であり、これはこれは、ログをデバッグしているRegister.java

public class RegisterActivity extends Activity { 
    EditText ET_NAME, ET_USER_NAME, ET_USER_PASS; 
    String name, user_name, user_pass; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.register_layout); 
     ET_NAME = (EditText)findViewById(R.id.name); 
     ET_USER_NAME = (EditText)findViewById(R.id.new_user_name); 
     ET_USER_PASS = (EditText)findViewById(R.id.new_user_pass); 
    } 
    public void userReg(View view) 
    { 
     name = ET_NAME.getText().toString(); 
     user_name = ET_USER_NAME.getText().toString(); 
     user_pass = ET_USER_PASS.getText().toString(); 
     String method = "register"; 
     BackgroundTask backgroundTask = new BackgroundTask(this); 
     backgroundTask.execute(method,name, user_name, user_pass); 
     finish(); 

    } 

} 

あるLoginActivity.java

public class LoginActivity extends Activity { 
    EditText ET_NAME,ET_PASS; 
    String login_name,login_pass; 

    @Override 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.login_main); 
     ET_NAME = (EditText)findViewById(R.id.user_name); 
     ET_PASS = (EditText)findViewById(R.id.user_pass); 
    } 
    public void userReg(View view) 
    { 
     startActivity(new Intent(this,RegisterActivity.class)); 
    } 
    public void userLogin(View view) 
    { 
     login_name = ET_NAME.getText().toString(); 
     login_pass = ET_PASS.getText().toString(); 
     String method = "login"; 
     BackgroundTask backgroundTask = new BackgroundTask(this); 
     backgroundTask.execute(method,login_name,login_pass); 

     Intent intent = new Intent(this, MainActivity.class); 
     intent.putExtra("ID", login_name); 
     intent.putExtra("PW", login_pass); 
     startActivity(intent); 

     finish(); 
    } 
} 

です。

$ adb shell am start -n "com.example.jina.a1105gmdemo/com.example.jina.a1105gmdemo.LoginActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -D 
Connecting to com.example.jina.a1105gmdemo 
Connected to the target VM, address: 'localhost:8605', transport: 'socket' 
I/System.out: Sending WAIT chunk 
W/ActivityThread: Application com.example.jina.a1105gmdemo is waiting for the debugger on port 8100... 
I/dalvikvm: Debugger is active 
I/System.out: Debugger has connected 
I/System.out: waiting for debugger to settle... 
I/System.out: waiting for debugger to settle... 
I/System.out: waiting for debugger to settle... 
I/System.out: waiting for debugger to settle... 
I/System.out: waiting for debugger to settle... 
I/System.out: waiting for debugger to settle... 
I/System.out: debugger has settled (1484) 
I/MultiDex: VM with version 1.6.0 does not have multidex support 
I/MultiDex: install 
I/MultiDex: MultiDexExtractor.load(/data/app/com.example.jina.a1105gmdemo-46.apk, false) 
I/MultiDex: Detected that extraction must be performed. 
I/MultiDex: Trying to delete old file /data/data/com.example.jina.a1105gmdemo/code_cache/secondary-dexes/com.example.jina.a1105gmdemo-45.apk.classes2.dex of size 2898496 
I/MultiDex: Deleted old file /data/data/com.example.jina.a1105gmdemo/code_cache/secondary-dexes/com.example.jina.a1105gmdemo-45.apk.classes2.dex 
I/MultiDex: Trying to delete old file /data/data/com.example.jina.a1105gmdemo/code_cache/secondary-dexes/com.example.jina.a1105gmdemo-45.apk.classes2.zip of size 934986 
I/MultiDex: Deleted old file /data/data/com.example.jina.a1105gmdemo/code_cache/secondary-dexes/com.example.jina.a1105gmdemo-45.apk.classes2.zip 
I/MultiDex: Extraction is needed for file /data/data/com.example.jina.a1105gmdemo/code_cache/secondary-dexes/com.example.jina.a1105gmdemo-46.apk.classes2.zip 
I/MultiDex: Extracting /data/data/com.example.jina.a1105gmdemo/code_cache/secondary-dexes/com.example.jina.a1105gmdemo-46.apk.classes2089171779.zip 
I/MultiDex: Renaming to /data/data/com.example.jina.a1105gmdemo/code_cache/secondary-dexes/com.example.jina.a1105gmdemo-46.apk.classes2.zip 
I/MultiDex: Extraction success - length /data/data/com.example.jina.a1105gmdemo/code_cache/secondary-dexes/com.example.jina.a1105gmdemo-46.apk.classes2.zip: 934986 
I/MultiDex: load found 1 secondary dex files 
D/dalvikvm: DexOpt: --- BEGIN 'com.example.jina.a1105gmdemo-46.apk.classes2.zip' (bootstrap=0) --- 
D/dalvikvm: DexOpt: --- END 'com.example.jina.a1105gmdemo-46.apk.classes2.zip' (success) --- 
D/dalvikvm: DEX prep '/data/data/com.example.jina.a1105gmdemo/code_cache/secondary-dexes/com.example.jina.a1105gmdemo-46.apk.classes2.zip': unzip in 66ms, rewrite 778ms 
I/MultiDex: install done 
I/FirebaseInitProvider: FirebaseApp initialization unsuccessful 
I/Adreno-EGL: <qeglDrvAPI_eglInitialize:410>: EGL 1.4 QUALCOMM build: () 
       OpenGL ES Shader Compiler Version: E031.24.00.08 
       Build Date: 03/21/14 Fri 
       Local Branch: AU200+patches_03212014 
       Remote Branch: 
       Local Patches: 
       Reconstruct Branch: 
D/OpenGLRenderer: Enabling debug mode 0 
D/OpenGLRenderer: GL error from OpenGLRenderer: 0x502 
E/OpenGLRenderer: GL_INVALID_OPERATION 
D/OpenGLRenderer: GL error from OpenGLRenderer: 0x502 
E/OpenGLRenderer: GL_INVALID_OPERATION 
D/dalvikvm: threadid=1: still suspended after undo (sc=1 dc=1) 
D/dalvikvm: threadid=12: still suspended after undo (sc=1 dc=1) 
D/dalvikvm: threadid=12: still suspended after undo (sc=1 dc=1) 
D/dalvikvm: threadid=12: still suspended after undo (sc=1 dc=1) 
D/dalvikvm: threadid=12: still suspended after undo (sc=1 dc=1) 
D/dalvikvm: threadid=12: still suspended after undo (sc=1 dc=1) 
D/dalvikvm: threadid=12: still suspended after undo (sc=1 dc=1) 
D/dalvikvm: threadid=12: still suspended after undo (sc=1 dc=1) 
D/dalvikvm: threadid=12: still suspended after undo (sc=1 dc=1) 
I/System.out: Thread-1263(HTTPLog):isShipBuild true 
I/System.out: Thread-1263(HTTPLog):SmartBonding Enabling is false, SHIP_BUILD is true, log to file is false, DBG is false 
W/IInputConnectionWrapper: getTextBeforeCursor on inactive InputConnection 
W/IInputConnectionWrapper: getSelectedText on inactive InputConnection 
W/IInputConnectionWrapper: getTextBeforeCursor on inactive InputConnection 
W/IInputConnectionWrapper: getTextAfterCursor on inactive InputConnection 
W/IInputConnectionWrapper: getSelectedText on inactive InputConnection 
W/IInputConnectionWrapper: getTextBeforeCursor on inactive InputConnection 
W/IInputConnectionWrapper: getTextAfterCursor on inactive InputConnection 
D/dalvikvm: threadid=12: still suspended after undo (sc=1 dc=1) 
D/dalvikvm: threadid=1: still suspended after undo (sc=1 dc=1) 
Disconnected from the target VM, address: 'localhost:8605', transport: 'socket' 

答えて

1

を使用すると、非同期タスクcomplete.like後に実行したい非同期タスク..

finish(); 

で実行し、あなたがそこに受け取ったとしようデータのためのあなたのWebサービスをチェックポストでそのコードを置きます静的な "成功メッセージ"ではなく、サーバースクリプトから取得した結果をlogcatに出力します。

+0

ありがとうございました。エラーログを確認し、PHPコードを修正しました。それは今働く。 あなたの最初のアドバイスを理解できません。 put finish();実行後のトリガーにエラーが発生しました。 –

+0

これは良い練習です。あなたの非同期タスクの実行が終了すると、実行後のcuzが呼び出されます... –

関連する問題