2013-01-16 13 views
1

嗨我是新来的android和我正在开发一个应用程序,它有一个登录屏幕。使用mysql数据库的Android登录活动

我已经尝试了很多教程,但我不知道如何将mysql数据库连接到我的android应用程序。在所有教程中,他们都使用php来将android应用程序连接到数据库。

我想知道的是,我到底需要放置哪个php文件,以及我需要在哪里以及如何创建php文件。

我正在使用mysql工作台创建数据库。

我使用eclipse 4.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 
?> 
+1

你的应用程序是否与服务器端有某种通信让登录用户?如果是这样,那么你需要上传服务器上的PHP文件。 – skygeek

回答

1

哪儿做我需要把php文件

您需要将PHP文件放入服务器。 (外你需要保持它,你需要购买一个域名和托管服务网络服务器可以使用本地主机,即你的机器,但对于设备)。

在哪?我需要如何创建PHP文件。

您可以在自己机器中创建一个PHP文件。它就像创建一个文本文件一样简单,但扩展名为.php。在windows上使用wamp(LAMP for linux),你可以测试它。它有一个MySQL。 LAMP和WAMP默认会有apache服务器。

在写完php代码和测试完成后不久,您就可以通过FTP将文件传输到您的网络服务器。现在要配置MySQL数据库,您可以在Web服务器上实际使用控制面板。

您需要使用android应用程序的URL来链接PHP文件,这些PHP文件依次与Mysql进行交互。对于登录,可以认为你已经创建了一个php文件作为login.php。在你的本地主机上,你可以将其称为http://localhost/myapp/login.php如果你需要在购买的网络服务器上获得它,那么你的网址将有http://www.yourwebsite.com/myapp/login.php。请注意,myapp只是您上传php文件的文件夹。

现在它只是一种方式,你可以实际上有一个PHP和MySQL为你的android应用程序。我认为教程已经教会了你如何使用php和mysql连接。对于数据交换,您需要了解XML或JSON我认为接下来的教程给了您一个关于它的介绍。

你甚至有一个插件用于eclipse与php一起工作。只需通过互联网获得有关如何安装它的帮助。 This视频可能会帮助你。

+0

我还没有安装wamp服务器只有tomcat服务器和mysql服务器现在分别放置和托管php文件的位置? – user1844638

+0

如果你打开C盘中的wamp文件夹,你会发现一个文件夹“www”,你可以放置你的php文件。以“http:// localhost/yourfilename.php”访问文件。 – Vinay

+0

好的谢谢..... :) – user1844638

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); 
} 

和Android的需求来

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

EDITS:
如果你是USIG纯PHP,你可以做这样的

  1. 在您的服务器上创建一个文件夹。
  2. 创建一个文件test.php创建一个连接文件connection.php
  3. 第一个包含第二个文件。
  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是如何工作的

+0

我安装了一个tomcat服务器。 – user1844638

+0

你可以在那里设置你的PHP应用程序。 –

+0

如何设置我是新来的php和tomcat服务器 – user1844638

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; 

这些都只是片段来,你可以建立在

+0

我有我的系统上安装了一个tomcat服务器如何连接mysql数据库使用它? – user1844638

+0

只是用它来托管你的服务器代码,然后调用从android的服务器链接指向本地服务器 –

2

Here是您正在寻找的完整教程..

像正常的HTML页面,从Android设备到URL张贴登录值和像的例子在PHP文件验证