1

こんにちは私はAndroidを初めて使用し、ログイン画面を備えたアプリを開発しています。

多くのチュートリアルを試しましたが、mysqlデータベースをAndroidアプリに接続する方法がわかりません。すべてのチュートリアルで、彼らはphpを使用してAndroidアプリをデータベースに接続しました。

私が知りたいのは、phpファイルを正確にどこに配置する必要があるのか​​、そしてphpファイルをどこにどのように作成する必要があるのか​​ということです。

mysqlワークベンチを使用してデータベースを作成しています。

私はEclipse4.2を使用してJavaコードを記述しています。

こんにちは私は次のコードを使用して、入力したユーザー名が正しいかどうかをphpコードと一緒にチェックしていますが、問題は常に間違ったユーザー名が表示されることです。

String response = null;
try {
response = CustomHttpClient.executeHttpPost("http://192.168.3.27/abc/check.php", postParameters);  //Enetr Your remote PHP,ASP, Servlet file link
String res=response.toString();
// res = res.trim();
res= res.replaceAll("\\s+","");
//error.setText(res);
error.setText(res);
if(res.equals("1")){
    Intent myIntent = new Intent(LoginActivity.this, HomeActivity.class);           
startActivity(myIntent);

}
else
error.setText("Sorry!! Incorrect Username or Password");

これは私のphpコードです。

<?php
$un=$_POST['username'];
$pw=$_POST['password'];
//connect to the db
$user = ‘root’;
$pswd = ‘root’;
$db = ‘mylogin’;
$conn = mysql_connect(‘localhost’, $user, $pswd);
mysql_select_db($db, $conn);
//run the query to search for the username and password the match
$query = “SELECT * FROM userpass WHERE login_id = ‘$un’ AND login_pass = ‘$pw’”;
$result = mysql_query($query) or die(“Unable to verify user because : ” . mysql_error());
//this is where the actual verification happens
if(mysql_num_rows($result) > 0)

echo 1;  // for correct login response
else
echo 0; // for incorrect login response
?>
4

4 に答える 4

2

これがあなたが探している完全なチュートリアルです。

通常のHTMLページと同様に、AndroidデバイスからURLにログイン値を投稿し、例のようにphpファイルで認証します

于 2013-01-16T06:10:41.447 に答える
1

この目的のために、phpアプリケーションを作成し、サーバーでホストする必要があります。次に、phpを使用してAndroidアプリケーションによってヒットされる関数(またはオンラインで利用可能なリンク)を作成し、それら(関数)はAndroidに必要なjson_encodedとしてデータを出力します。この方法を使用して、アプリケーションを簡単にセットアップできます。
私は通常Codeigniterフレームワークを使用しており、このように機能します。

myapp/
    system/
    application/
         controllers/
             mycontroller

mycontrollerにはこのような機能がいくつかあります

function test(){
    $username = $this->uri->segment(3);
    $password = $this->uri->segment(4);
    // other stuff like fetch data from db table in the variable $data

    header('Content-Type: application/json');
    echo json_encode($data);
}

そしてアンドロイドはこれを必要とします

http://testdomain/myapp/index.php/mycontroller/test/username/password

編集:
あなたがプレーンphpを使用している場合は、このように行うことができます

  1. サーバー上にフォルダーを作成します。
  2. ファイルtest.phpを作成します接続ファイルconnection.phpを作成します
  3. 最初のファイルに2番目のファイルを含めます。
  4. test.phpにという名前の関数を作成します

include('connection.php');

function index($username,$password)
{
    //query database table
    //if result is success full
    //  $data   =   array('message'=>'login success');
    //else
    //  $data   =   array('message'=>'login failed');
    //
    //header('Content-Type: application/json');
    //echo json_encode($data);  
}

アドレスバーからこのようにアクセスできます

 http://tomcatserver/test.php/index/testuser/testpassword

PHPがどのように機能するかを調査する必要があります

于 2013-01-16T05:55:03.157 に答える
1

raheelの答えを簡単に説明したいのですが、私なりの方法で。重要なことは、私のSQLにアクセスするためにサーバーとクライアントの通信が必要なことです。そのためには、Androidアプリからのリクエストに応答するサーバーを作成する必要があります。ご要望は以下の通りとなります

HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://example.com/script.php?var1=androidprogramming");
try {
    HttpResponse response = httpclient.execute(httpget);
    if(response != null) {
        String line = "";
        InputStream inputstream = response.getEntity().getContent();
        line = convertStreamToString(inputstream);
        Toast.makeText(this, line, Toast.LENGTH_SHORT).show();
    } else {
        Toast.makeText(this, "Unable to complete your request", Toast.LENGTH_LONG).show();
    }
} catch (ClientProtocolException e) {
    Toast.makeText(this, "Caught ClientProtocolException", Toast.LENGTH_SHORT).show();
} catch (IOException e) {
    Toast.makeText(this, "Caught IOException", Toast.LENGTH_SHORT).show();
} catch (Exception e) {
    Toast.makeText(this, "Caught Exception", Toast.LENGTH_SHORT).show();
}

出力の消費は次のようになります:

private String convertStreamToString(InputStream is) {
    String line = "";
    StringBuilder total = new StringBuilder();
    BufferedReader rd = new BufferedReader(new InputStreamReader(is));
    try {
        while ((line = rd.readLine()) != null) {
            total.append(line);
        }
    } catch (Exception e) {
        Toast.makeText(this, "Stream Exception", Toast.LENGTH_SHORT).show();
    }
    return total.toString();
}

その場合、サーバー側は次のようになります。

$connection = mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die('Unable to connect');
$db = mysql_selectdb(DB_NAME,$connection) or die('Database not found');
if(isset($_GET['var'])) :
    $query = "SELECT [a few parameters] FROM [some table] WHERE [some conditions]";
    $resultset = mysql_query($query);
    $row = mysql_fetch_array($resultset)
    echo $row['[column name]'];
else:
    echo "No get Request Received";
endif;

これらは、構築可能なスニペットにすぎません

于 2013-01-16T06:02:14.450 に答える
1

phpファイルをどこに配置する必要がありますか

PHPファイルをサーバーに配置する必要があります。(ローカルホスト、つまりマシンを使用できますが、外部のデバイスの場合は、ドメインとホスティングサービスを購入する必要があるWebサーバーにローカルホストを保持する必要があります。)

どこでどのようにphpファイルを作成する必要がありますか。

自分のマシン自体でPHPファイルを作成できます。テキストファイルを作成するのと同じくらい簡単ですが、拡張子は.php。です。Windows(LAMP for linux)でWampを使用すると、テストできます。MySQLが含まれています。LAMPとWAMPにはデフォルトでApacheサーバーがあります。

PHPコードの記述とテストが終了したら、FTPを介してファイルをWebサーバーに転送できます。これで、MySQLデータベースを構成するために、実際にWebサーバーのコントロールパネルを使用できます。

PHPファイルをリンクするにはAndroidアプリケーションのURLを使用する必要があり、これらのPHPファイルはMysQLと相互作用します。ログインの場合、login.phpとしてphpファイルを作成したように考えてみましょう。ローカルホストでは、次のように参照できhttp://localhost/myapp/login.phpます。購入したWebサーバーで取得する必要がある場合は、URLにが表示されますhttp://www.yourwebsite.com/myapp/login.php。myappは、phpファイルをアップロードした単なるフォルダーであることに注意してください。

これで、Androidアプリケーション用にPHPとMySQLを実際に使用できるようになりました。チュートリアルは、phpおよびmysql接続の使用について教えてくれたと思います。データ交換については、XMLまたはJSONについて知っておく必要があります。従ったチュートリアルで、XMLまたはJSONについての紹介が得られたと思います。

Eclipseがphpで動作するためのプラグインもあります。それをインストールする方法については、インターネットを介して助けを得るだけです。このビデオはあなたを助けるかもしれません。

于 2013-01-16T06:16:43.253 に答える