2016-11-09 16 views
0

AWSでapache2 ubuntuサーバーを設定しました。このサーバーにmySQLデータベースを作成しました。今はアンドロイドアプリケーションからデータベースを更新しようとしていますが、 。私のDBに接続できないのはなぜですか

これは、データベースに接続する必要があるサーバー側のPHPファイルです。

<?php 
define('HOST','ec2-54-171-67-69.eu-west-1.compute.amazonaws.com'); 
define('USER','root'); 
define('PASS','password'); 
define('DB','ugproject'); 

$con = mysqli_connect(HOST,USER,PASS,DB) or die('Unable to Connect'); 
?> 

これはJavaメソッドです。

private static final String REGISTER_URL = "ec2-54-171-67-69.eu-west-1.compute.amazonaws.com/volleyRegister.php"; 
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); 
    } 

これは私が取得エラーです:

E/Volley: [126] BasicNetwork.performRequest: Unexpected response code 412 for http://[email protected]/volleyRegister.php  

私はより多くの情報、感謝のために気軽にできる限り明確にすることを試みました。

+0

[HTTP 412コード](http://stackoverflow.com/questions/20282193/how-to-use-http-412-code)にチェックを入れましたか? –

+0

リクエストヘッダーとは関係がありますが、わかりません。 また、データベースに接続するPHPファイルの正しい形式ですか? – Gabrielbu

+0

私のPCブラウザでブラウザから「http:// ubuntu @ ec2-54-171-67-69.eu-west-1.compute.amazonaws.com/volleyRegister.php」に行くと「あなたはサイト「ec2-54-171-67-69.eu-west-1.compute.amazonaws.com」にユーザ名「ubuntu」でログインしますが、Webサイトには認証は必要ありません。これはあなたを騙そうとする試みかもしれない」 - それが理由だろうか?間違ったURL文字列ですか? –

答えて

0

Error code 412

を意味する前提条件は

にそれがサーバー上で試験したときに偽と評価リクエストヘッダフィールドの一つ以上で与えられた前提条件に失敗しました。この応答コードにより、クライアントは現在のリソースメタ情報(ヘッダーフィールドデータ)に前提条件を置くことができ、要求されたメソッドが意図されたリソース以外のリソースに適用されないようにします。

これは、あなたが

http://ec2-54-171-67-69.eu-west-1.compute.amazonaws.com/volleyRegister.php

を提供されたURLは、Webサーバを実行しているようだが、適切にPHPスクリプトを解釈されていないという事実によって、可能性の高い原因である - それが表示されますPHPファイルの原文を私に教えてください。

<?php 

if($_SERVER['REQUEST_METHOD']=='POST'){ 
$username = $_POST['username']; 
$email = $_POST['email']; 
$password = $_POST['password']; 

require_once('dbConnect.php'); 

$sql = "INSERT INTO users (username,password,email) VALUES ('$username','$email','$password')"; 


if(mysqli_query($con,$sql)){ 
echo "Successfully Registered"; 
}else{ 
echo "Could not register"; 

} 
}else{ 
echo 'error'; 
} 
?> 

PHPプラグインがインストールされていないか、正しく設定されていない可能性があります。

これはアプリ側ではなくサーバー側での問題です。

+0

LAMPスタックをインストールして – Gabrielbu

0

これは機能するかもしれません。

DB名

$コン=にmysql_connect(HOST、USER、PASS)OR死ぬセパレート( 'MySQLへ接続できませんでした。');

mysql_select_db(DB);

+0

同じエラーが発生する – Gabrielbu

0

あなたのコメントの1つ(here)にあるこのリンクに基づいて、コードを印刷しているので、PHPがサーバーにインストールされているようには見えません。

最も簡単にインストールするには、Ubuntuでsudo apt-get install lamp-server^コマンドを使用しています。

PHPが必要な場合は、sudo apt-get install php7.0を使用してください。インストールしたら、sudo service apache2 restartを使用してapacheサーバーを再起動し、PHPインストールを適用します。

PHPが動作している場合は、ファイルにこのコードを書くテストするために、そしてあなたがあなたのブラウザでそこに行くときに、PHPのインストールに関するデータの完全なテーブルを取得する必要があります:

<?php 
phpinfo(); 
?> 
+0

LAMPスタックをインストールした後にはうまくいきました – Gabrielbu

関連する問題