2016-04-11 14 views
0

私はまだアンドロイドプログラミングに慣れず、現在DBへの接続方法を学んでいます。 私はオンラインチュートリアルに従っていますが、私はまだ問題に直面しています。 このチュートリアルでは、登録フォームを作成し、ボレーを通じてデータベースに送信する方法について説明します。 ホストとAndroidスタジオとして.hostinger.aeを使用しています。 登録ボタンをクリックするまでエラーが表示されます(登録できませんでした) エラーを見つけられず、デバッグにエラーが表示されません。問題を特定するために何か助けていただければ幸いです。Androidの登録フォームは提出しません(Volley and SQL)

私は、パブリックフォルダでオンラインホストにアップロード2つのphpファイル

するDBConnect PHPデータベース

<?php 
define('HOST','mysql.hostinger.ae'); 
define('USER','--'); 
define('PASS','--'); 
define('DB','u853541076_tuber'); 
$con = mysqli_connect(HOST,USER,PASS,DB) or die('Unable to Connect'); 

とvolleyRegisterのPHP

<?php 
if($_SERVER['REQUEST_METHOD']=='POST'){ 
$username = $_POST['username'];  
$email = $_POST['email']; 
$password = $_POST['password']; 
require_once('dbConnect.php'); 
$sql = "INSERT INTO volley (username,password,email) VALUES('$username','$email','$password')"; 
    if(mysqli_query($con,$sql)){ 
    echo "Successfully Registered"; 
    }else{ 
    echo "Could not register"; 
    } 
    }else{ 
echo 'error'; 
} 

に接続するために使用されるファイルを持っています私のmainactivty .java http://tuber.16mb.comは私のドメインです

package myapp.com.tuberapp; 
import android.os.Bundle; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.View; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 
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 java.util.HashMap; 
import java.util.Map; 
public class MainActivity extends AppCompatActivity implements  View.OnClickListener { 
///The hosting link 
public static final String REGISTER_URL = "http://tuber.16mb.com/volleyRegister.php"; 
public static final String KEY_USERNAME = "username"; 
public static final String KEY_PASSWORD = "password"; 
public static final String KEY_EMAIL = "email"; 
private EditText editTextUsername; 
private EditText editTextEmail; 
private EditText editTextPassword; 
private Button buttonRegister; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    editTextUsername = (EditText) findViewById(R.id.editTextUsername); 
    editTextPassword = (EditText) findViewById(R.id.editTextPassword); 
    editTextEmail= (EditText) findViewById(R.id.editTextEmail); 
    buttonRegister = (Button) findViewById(R.id.buttonRegister); 
    buttonRegister.setOnClickListener(this); 
    } 
    private void registerUser(){ 
    final String username = editTextUsername.getText().toString().trim(); 
    final String password = editTextPassword.getText().toString().trim(); 
    final String email = editTextEmail.getText().toString().trim(); 
    StringRequest stringRequest = new StringRequest(Request.Method.POST, REGISTER_URL, 
      new Response.Listener<String>() { 
       @Override 
       public void onResponse(String response) { 
        Toast.makeText(MainActivity.this, response, Toast.LENGTH_LONG).show(); 
       } 
      }, 
      new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
        Toast.makeText(MainActivity.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); 
      return params; 
     } 
    }; 
    RequestQueue requestQueue = Volley.newRequestQueue(this); 
    requestQueue.add(stringRequest); 
    } 
    @Override 
    public void onClick(View v) { 
    if(v == buttonRegister){ 
     registerUser(); 
    } 
    } 
    } 

manifest.java

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="myapp.com.tuberapp"> 


<uses-permission android:name="android.permission.INTERNET"/> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme.NoActionBar"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    </application> 

    </manifest> 
+0

URLに郵便配達員を使って登録しようとしています。URLに問題があると思います。 –

+0

あなたはどのURLを意味していますか? –

+0

REGISTER_URL = "http://tuber.16mb.com/volleyRegister.php" –

答えて

0

ブラウザのURLに直接アクセスしてください。 http://tuber.16mb.com/volleyRegister.php

これはエラーとなります。エラーの可能性は次のようになります。 1. SQL insert文が間違って作成されています。いくつかのテーブル名またはその他の問題。 2. db設定ファイルがあるかもしれません

+0

ありがとうございます!あなたの右 !私はテーブルの名前が間違って愚かな私を得た。 –

0

クエリはINSERT INTO volley (username,password,email) VALUES('$username','$email','$password')"「一致していません。 "$ username"、 "$ password"、 "$ email")

もう一度サーバーサイドコードを確認して、クエリが既にチェックされているかどうかを確認してくださいテーブルにデータを挿入できました。

+0

私はクエリを編集しましたが、まだ問題はありません。そして、テーブルにデータが挿入されていません。 –

関連する問題