android客户端和php服务简单交互
2014-10-09 15:48
288 查看
android客户端和php+mysql+apache搭建的服务器之间的简单交互,实现登入功能。
实现原理就是android客户端发送请求,传给服务器登入的用户名密码,服务器收到这些,连接到数据库查询,如果用户名和密码匹配正确,就输出字符串返回给客户端。
服务器端:
先在mysql里面建一个testlogin的数据库,里面有一个users表,记录了id,用户名和密码。
在php的虚拟目录下新建个php项目,创建conn.php和login.php文件。刚学点php写的不好。
conn.php是连接mysql数据库的。代码如下:
<?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";
}
}
?>
复制代码
php代码写的很烂,服务器算是架设完了。。
android客户端:
布局随意写一下就这样吧:
下面是主要的代码:
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;
}
复制代码
登入成功后会跳到主页:
代码就这样多,实现的最简单的登入方法,其实还有很多要实现的,需要为用户保存用户名和密码及登入成功后或者不成功后的反馈等。
原文作者:
64779
原文地址:
http://my.eoe.cn/lightlz/archive/3911.html
实现原理就是android客户端发送请求,传给服务器登入的用户名密码,服务器收到这些,连接到数据库查询,如果用户名和密码匹配正确,就输出字符串返回给客户端。
服务器端:
先在mysql里面建一个testlogin的数据库,里面有一个users表,记录了id,用户名和密码。
在php的虚拟目录下新建个php项目,创建conn.php和login.php文件。刚学点php写的不好。
conn.php是连接mysql数据库的。代码如下:
<?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";
}
}
?>
复制代码
php代码写的很烂,服务器算是架设完了。。
android客户端:
布局随意写一下就这样吧:
下面是主要的代码:
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;
}
复制代码
登入成功后会跳到主页:
代码就这样多,实现的最简单的登入方法,其实还有很多要实现的,需要为用户保存用户名和密码及登入成功后或者不成功后的反馈等。
原文作者:
64779
原文地址:
http://my.eoe.cn/lightlz/archive/3911.html
相关文章推荐
- android客户端和php服务简单交互
- android客户端和php服务简单交互
- android客户端和php服务简单交互
- android客户端与php服务器的json数据简单交互(一)
- android客户端与php服务器的json数据简单交互(一)
- Android客户端和php+mysql+apache搭建的服务器之间的简单交互
- android客户端与php服务器的json数据简单交互(二)
- Android客户端与数据库交互数据的简单学习
- 简单的android客户端servlet服务端的交互
- Android网络应用之使用Scoket的Android客户端与TCP服务器的简单交互
- Android客户端与PHP服务端交互(一)---框架概述
- Android客户端使用HttpURLConnection doGet与服务器数据交互简单示例
- 简单的Android服务端和客户端登录交互(客户端)
- android 和 php 简单的数据交互
- 十二、 Bmob免费移动后方服务,你不用再搭php+MySQL移动后端 Android studio+Bmob后台服务feedback简单实现
- android 和 php 简单的数据交互
- Android客户端与数据库交互数据的简单学习
- 简单的android客户端servlet服务端的交互
- Android与PHP交互:客户端用HTTP协议与服务端通信
- android 和 php 简单的数据交互