2 nik666 nik666 于 2016.03.08 09:46 提问

关于android客户端和mysql通过php完成注册功能的问题

自己正在自学中 php还不太会 求一个php的程序可以接收我下面代码的json 并且验证username是否存在 不存在则可以插入username和password~也顺便帮我看看代码哪里有什么问题之类的谢谢了!!!!

3个回答

nik666
nik666   2016.03.08 09:47

public class Register_ extends Activity{
private EditText register_username;
private EditText register_passwd;
private EditText register_repasswd;
private Button register_submit;
public static final int SHOW_RESPONSE=0;

   private class MessageHandler extends Handler
    {
        //持有activity的弱引用 避免内存泄漏
        private final WeakReference<Register_> weakReference;
        public MessageHandler(Register_ activity)
        {
            this.weakReference = new WeakReference<Register_>(activity);
        }
        public void handleMessage(Message msg)
        {
            Register_ activity = weakReference.get();
            //如果activity已经在处于被销毁状态 或者已经被销毁了 不再处理消息
            if (activity == null || activity.isFinishing())
            {
                return;
            }
            switch (msg.what)
            {
                case SHOW_RESPONSE:
                    String response = (String)msg.obj;
                    try
                    {
                        JSONObject jsonObject = new JSONObject(response);
                        Boolean error = jsonObject.getBoolean("error");
                        String message = jsonObject.getString("msg");
                        String result = jsonObject.getString("result");
                        JsonBack jsonBack = new JsonBack(error,message,result);
                        Log.d("Register_",jsonBack.toString());
                        if(jsonBack.isError())
                        {
                            Toast.makeText(Register_.this, jsonBack.getMsg(), Toast.LENGTH_SHORT).show();
                        }
                        if(!jsonBack.isError())
                        {
                            Toast.makeText(Register_.this, "注册成功", Toast.LENGTH_SHORT).show();
                            //onPause();
                            Intent intent = new Intent(Register_.this, Login.class);
                            startActivity(intent);
                            finish();
                        }
                    }catch (Exception e)
                    {
                        e.printStackTrace();
                    }
            }
        }
    }

@Override
protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.signup);
     register_username=(EditText)findViewById(R.id.editText1);
     register_passwd=(EditText)findViewById(R.id.editText2);
     register_repasswd=(EditText)findViewById(R.id.editText3);
     register_submit=(Button)findViewById(R.id.button1);
     register_submit.setOnClickListener(new View.OnClickListener() {

        @Override
         public void onClick(View v)
        {
            if (v.getId() == R.id.button1)
            {
                String username = register_username.getText().toString();
                String password = register_passwd.getText().toString();
                String repassword = register_repasswd.getText().toString();
                if(password.equals(repassword))
                {
                    //使用POST方法向服务器发送数据
                    sendRequstWithHttpClient(username, password);
                }
                else {

                    Toast.makeText(Register_.this, "两次输入的密码不一样", Toast.LENGTH_SHORT).show();
                }
            }
        }


    });    
 }
 private Handler messageHandler=new MessageHandler(this);

private void sendRequstWithHttpClient(final String username,
        final String password) {
     new Thread(new Runnable() {

         @Override
            public void run()
            {
                try
                {
                    HttpClient httpClient = new DefaultHttpClient();
                    String url = "192.168.1.203/EnjoyDemo/register";
                    //第二步:生成使用POST方法的请求对象
                    HttpPost httpPost = new HttpPost(url);
                    //NameValuePair对象代表了一个需要发往服务器的键值对
                    NameValuePair pair1 = new BasicNameValuePair("username", username);
                    NameValuePair pair2 = new BasicNameValuePair("password", password);
                    //将准备好的键值对对象放置在一个List当中
                    ArrayList<NameValuePair> pairs = new ArrayList<NameValuePair>();
                    pairs.add(pair1);
                    pairs.add(pair2);
                    try
                    {
                        //创建代表请求体的对象(注意,是请求体)
                        HttpEntity requestEntity = new UrlEncodedFormEntity(pairs, "utf-8");
                        //将请求体放置在请求对象当中
                        httpPost.setEntity(requestEntity);
                        //执行请求对象
                        try
                        {
                            //第三步:执行请求对象,获取服务器发还的相应对象
                            HttpResponse response = httpClient.execute(httpPost);
                            //第四步:检查相应的状态是否正常:检查状态码的值是200表示正常
                            if (response.getStatusLine().getStatusCode() == 200)
                            {
                                //第五步:从相应对象当中取出数据,放到entity当中
                                HttpEntity entity = response.getEntity();
                                BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent()));
                                String result = reader.readLine();
                                Message message = new Message();
                                message.what = SHOW_RESPONSE;
                                message.obj = result;
                                messageHandler.sendMessage(message);
                                //Log.d("HTTP", "post:" + result);
                            }
                        } catch (Exception e)
                        {
                            e.printStackTrace();
                        }
                    } catch (Exception e)
                    {
                        e.printStackTrace();
                    }
                }catch (Exception e)
                {
                    e.printStackTrace();
                }
            }
        }).start();
    }

}

nik666
nik666 这是我的代码 提问时忘了贴上去
2 年多之前 回复
dongfeng9ge
dongfeng9ge   Ds   Rxr 2016.03.08 10:50

你要找的是不是《Android和PHP最佳实践》?

v331687828
v331687828   2016.03.08 11:19

找个网络框架用用吧,你这效率太低,PHP一样是抛接口给你,username什么的为空需要客户端也就是android来判断,然后提交,回调接受服务器返回的json。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
采用php与Mysql数据库完成用户注册登录等操作
1、采用PHP与Mysql数据库,完成用户注册程序,注册表单项可自由指定,尽量包含所有表单类型,注册成功后在新页面显示注册信息,注册中需要上传的照片的操作功能使用自定义函数调用,并在注册成功后显示照片。 2、采用PHP与Mysql数据库,完成用户登录功能。 步骤如下: (1)数据库设计: users.sql: set default_storage_engin
Android与PHP服务器交互用户登录与注册
Android与PHP服务器交互用户登录与注册实例源码
Android PHP Okhttp3模拟登陆和注册
Android+PHP+OKHttp3+MySQL 完成登陆验证和注册功能
Android+PHP+Mysql实现用户登录
很多Android应用都有用户登录,一般来讲,整个过程会涉及到android登录客户端、后端的服务器和后台的数据库。常见的实现方式就是android、php和mysql的组合,本文通过一个实例来介绍如何实现这个看起来简单而又非常实用的用户登录功能。
用php实现简单的登录和注册功能
最近在学习php··· 来实现简单的用户登录注册功能
【php学习】php+mysql实现用户注册功能
学了五天的php之后终于学到了MySQL。 因为以前学过MySQL,所以感觉还挺简单的,就花了几个小时写了个注册功能。 第一步、创建数据库 首先在dos命令行新建了数据库“mydb”; 详细命令: d:    //切到d盘,安装的时候我把xampp装在了d盘下 cd \xampp\mysql\bin   //进入MySQL的bin目录 mysqladmin -u root c
PHP+MySQL登录注册,完整版,详细注释
PHP+MySQL登录注册,完整版,详细注释
Android通过Servlet连接MySQL 实现登陆/注册(数据库+服务器+客户端)
转载至:http://www.bkjia.com/Androidjc/1045369.html#comment Android通过Servlet连接MySQL 实现登陆/注册(数据库+服务器+客户端),androidmysql写在最前:   在实际开发中,相信每个项目都会有用户登陆注册功能,这个实现的方法很多,下面是我实现的方法,供大家交流。   新人发帖,万分紧张,怎么样才能装作一副经常发帖的样子
加入数据库mysql实现android注册登陆功能的客户端服务器源码与解析socket
我11月21日发表了“实现android注册登陆功能的客户端服务器源码与解析”的博客,刚刚加入了数据库,把我自己加入数据库的过程和又完善了服务器的代码分享一下 一、阅读要求 同11月21日发表博文,如果没有阅读的话建议先阅读后再阅读本博文 对数据库有基本的了解和掌握 二、实现情况 1、解决了在注册时忽然退出再次注册这种情况下,服务器端的bug 2、解决了在注册时忽然退出
JavaWeb + mySQL + Android 实现Android简单的注册登录
服务器: 使用的是tomcat 服务器,下载地址:http://tomcat.apache.org/download-80.cgi tomcat配置在http://blog.csdn.net/u013062469/article/details/49360755有介绍。 服务器代码我使用MyEclipse2013编写,