android和php简单交互
android客户端和php+mysql+apache搭建的服务器之间的简单交互,实现登入功能。
实现原理就是android客户端发送请求,传给服务器登入的用户名密码,服务器收到这些,连接到数据库查询,如果用户名和密码匹配正确,就输出字符串返回给客户端。
服务器端:
先在mysql里面建一个testlogin的数据库,里面有一个users表,记录了id,用户名和密码。
在php的虚拟目录下新建个php项目,创建conn.php和login.php文件。刚学点php写的不好。
conn.php是连接mysql数据库的。代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<?php $dbhost = "localhost:3306"; $dbuser = "root"; //我的用户名 $dbpass = ""; //我的密码 $dbname = "testlogin"; //我的mysql库名 $cn = mysql_connect($dbhost,$dbuser,$dbpass) or die("connect error"); @mysql_select_db($dbname)or die("db error"); mysql_query("set names 'UTF-8'"); ?>login.php代码:<?php include ("conn.php");//连接数据库 $username=str_replace(" ","",$_POST['name']);//接收客户端发来的username; $sql="select * from users where name='$username'"; $query=mysql_query($sql); $rs = mysql_fetch_array($query);if(is_array($rs)){ if($_POST['pwd']==$rs['password']){ echo "login succeed"; }else{ echo "error"; } } ?> |
android客户端:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
class LoginHandler implements Runnable { @Override public void run() { // TODO Auto-generated method stub //get username and password; userName = user_name.getText().toString().trim(); password = pass_word.getText().toString().trim(); //连接到服务器的地址,我监听的是8080端口 String connectURL="http://192.168.1.100:8080/text0/com.light.text/login.php/"; //填入用户名密码和连接地址 boolean isLoginSucceed = gotoLogin(userName, password,connectURL); //判断返回值是否为true,若是的话就跳到主页。 if(isLoginSucceed){ Intent intent = new Intent(); intent.setClass(getApplicationContext(), HomeActivity.class); startActivity(intent); proDialog.dismiss(); }else{ proDialog.dismiss(); // Toast.makeText(ClientActivity.this, "登入错误", Toast.LENGTH_LONG).show(); System.out.println("登入错误"); } } }//登入的方法,传入用户 密码 和连接地址 private boolean gotoLogin(String userName, String password,String connectUrl) { String result = null; //用来取得返回的String; boolean isLoginSucceed = false; //test System.out.println("username:"+userName); System.out.println("password:"+password); //发送post请求 HttpPost httpRequest = new HttpPost(connectUrl); //Post运作传送变数必须用NameValuePair[]阵列储存 List params = new ArrayList(); params.add(new BasicNameValuePair("name",userName)); params.add(new BasicNameValuePair("pwd",password)); try{ //发出HTTP请求 httpRequest.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8)); //取得HTTP response HttpResponse httpResponse=new DefaultHttpClient().execute(httpRequest); //若状态码为200则请求成功,取到返回数据 if(httpResponse.getStatusLine().getStatusCode()==200){ //取出字符串 result=EntityUtils.toString(httpResponse.getEntity()); ystem.out.println("result= "+result); } }catch(Exception e){ e.printStackTrace(); } //判断返回的数据是否为php中成功登入是输出的 if(result.equals("login succeed")){ isLoginSucceed = true; } return isLoginSucceed; } |
©版权声明:本文为【翰林小院】(huhanlin.com)原创文章,转载时请注明出处!
发表评论