Androideity

Programación android en español, tutoriales, documentación, noticias, smartphones, tablets, programación android, aplicaciones android

Login en Android usando PHP y MySQL

| | 356 Comentarios

banner

Hola amigos de Android, el día de hoy les voy a mostrar cómo hacer una aplicación que simule el ‘logueo’ o identificación en un sistema alojado en la nube como las que usamos todos los días en diversas aplicaciones.

El tutorial estará divido en 2 partes, la parte web la cual describiré a continuación y la de Android. De momento el API de android no provee ningún método que permita ‘conectarse’ a través de internet directamente a una Base de Datos Remota y ejecutar una consulta dentro de ella. Para poder realizar esto se puede utilizar un web service al cuál se pueda acceder a el pasando diversos parámetros nos devuelve ya sea en formato XML o JSON, nuestro trabajo será obtener esa información devuelta y utilizarla en nuestra app.

Antes de seguir recomiendo haber leído los siguientes tutoriales:

http://androideity.com/2011/09/21/trabajando-con-threads-en-android-iii/

http://androideity.com/2012/06/03/consultar-un-servicio-web-en-android-parte-i/

http://androideity.com/2012/05/19/tutorial-de-widget-tercera-parte-3/

http://androideity.com/2011/10/19/intents-en-android-implicitos/

http://androideity.com/2011/10/17/trabajando-con-intents-en-android-overview/

Básicamente el funcionamiento sería algo así. peticion Cuando todo esté funcionando la aplicación debería hacer lo siguiente:

Login

 Parte web

Para realizar la parte web utilicé como lenguaje en la parte de servidor PHP (Version  5.3.1), como Base de Datos MySQL y como servidor Web Apache. Vamos a simular la nube para realizar pruebas de manera local para eso podemos utilizar XAMPP que pueden descargar del sitio oficial, además está disponible para varios sistemas operativo y es de muy fácil instalación y uso. No voy a explicar cómo instalarlo y configurarlo porque no es el objetivo de este tutorial pero si tienen algun consulta pueden visitar su documentación: http://www.apachefriends.org/es/faq-xampp.html

Base de Datos:

Como ya les comente utilizaremos MySQL, podemos aprovechar la utilidad que provee xampp llamada phpmyadmin por lo cual accederemos mediante http://127.0.0.1/phpmyadmin luego de loguearnos. *si tuvieron algún problema pueden verificar la documentación oficial Vamos a crear una BD llamada ‘droid_login‘ como lo muestra la siguiente imagen:

crearbd

 O si vamos a la solapa SQL podemos ejecutar la siguiente consulta:

CREATE DATABASE droid_login;

Al ser  la aplicación solamente un ejemplo y al no tener un uso real crearemos una tabla llamada ‘usuarios‘ en donde guardaremos el nombre de usuario y password juntos.

 En la vida real para dotar de mayor seguridad el password debería guardarse encriptado y tal vez el usuario y password en tablas separadas.

Podemos crear la tabla ejecutando esta simple consulta:

Create Table usuarios( username varchar(10) NOT NULL , passw varchar(20) NOT NULL )

Con esto basta por ahora con la base de datos.

Dentro de la carpeta htdocs crearemos una carpeta llamada ‘droidlogin’ dentro de la cual colocaremos los siguientes archivos que podrán descargar más abajo, estos serán la parte web de nuestro sistema.

Podrán ver el contenido de estos archivos descargándolo de más abajo, recomiendo estudiar el funcionamiento de cada uno para una mayor comprension.

config.php En este se define el nombre de la base de datos su usuario, password y la ip del servidor.

Actualizacion 25/07/12

Es necesario modificar este archivo para poder adecuarlo a la configuracion de la BD de cada uno.

deberan modificar el valor que esta en rojo.

<?php
/**
* Database config variables
*/
DB_HOST Hace referencia a donde se encuentra la BD si es en el mismo equipo utilizaremos localhost o 127.0.0.1 si se encuentra
en otro equipo deberemos colocar su direcciòn IP.
define(“DB_HOST”, “localhost“);
DB_USER cambiar por el nombre de usuario definido en la configuracion de la BD
define(“DB_USER”, “username“);
DB_PASSWORD Modificar por el password elegido
define(“DB_PASSWORD”, “password“);
DB_DATABASE Nombre de la base de datos reemplazar si se utilizo otro diferente al mencionado anteriormente

define(“DB_DATABASE”, “droidlogin”);

?>

 

connectbd.php Provee los métodos para conectarse y desconectarse a la BD.

funciones_bd.php Provee los procedimientos para interactuar con la BD e insertar nuevos usuarios, validar existencia de usuarios y validar un ‘login’

login.html    Mediante esta página podemos ‘loguearnos’ mediante el navegador sirve para observar la respuesta del sistema.

acces.php  Se encarga de devolver en notacion Json si el logueo es valido

 adduser.html Permite realizar alta de usuarios verificando previamente su existencia utiliza adduser.php

Para poder comprobar qué es lo que hará la aplicación podemos verlo a través del navegador pero primero debemos crear un usuario.

Accedemos a http://127.0.0.1/droidlogin/adduser.html

podemos ingrear

usuario: test

password: test01

adduser

Luego al clickear en ‘Agregar’             

Si queremos volver a agregar el mismo usuario, nos mostrará el siguiente mensaje:

Este usuario ya existe ingrese otro diferente!”

por lo que la aplicacion tambien controlara que no halla usuario repetidos.

Podemos verificar directamente desde la BD los usuarios creados: 

verificamos desde la BD

Antes de pasar a la parte de Android vamos a probar si  todo funciona correctamente.

Para lo cual utilizaremos el archivo login.html

Accederemos a  el mediante http://127.0.0.1/droidlogin/login.html

veremos lo siguiente:

droidlogin html

Ingresamos el usuario y password creados anteriormente.

Si configuramos todo correctamente y nada falla deberiamos acceder al archivo acces.php el cual nos devolvera en notacion json si el logueo fue correcto o no.

[{"logstatus":"0"}]  —> ” logueo invalido” –> debemos verificar que los datos ingresados sean iguales a los creados en la BD.

 [{"logstatus":"1"}]  —> ”logueo valido
Basicamente  esto que nos devuelve el servidor es lo que leera la app de android.
si todo funciono bien pueden seguir con la sig. parte.

Parte Android:

Al proyecto lo llame droidlogin, lo podrán descargar del repositorio.

proyecto

Para la UI he tratado de inspirarme en el contenido link http://inspired-ui.com/tagged/logins aunque son de iOS sirven igual. He creado 2 interfaces para cuando el teléfono se encuentre en posicion horizontal (layout-land)

port-land

  o vertical (layout-port)

 

layout-port

 Para hacer la interfaz más agradable hice que los EditText tengan bordes redondeados, encontré en Stackoverflow un post sobre esto.

La pantalla de login es muy simple tiene un Button y 2 TextView que al presionarlos cada uno hará una acción diferente.

Se encuentran definidos en los siguientes archivos:

/res/layout-port/main.xml

 

layout port main

 

/res/layout-land/main.xml

 

layout land

El xml que utilicé para hacer los bordes redondeados es este:

res/drawable-ldpi/edittext_rounded_corners.xml

xml bordes redondeados

 

Ahora el AndroidManifest.xml.

Como pueden ver hay definidas 2 activities definidos.

Android Manifest

 

Ahora veremos el código principal, comento en cada caso.

/src/test/Droidlogin/Login.java

En la línea número 35 es necesario modificar esa dirección IP y reemplazarla por la del PC en el que esté el servidor web con los archivos descritos anteriormente.

Si van a colocar esto en internet deberían usar el dominio correpospondiente.

Tambien recorriendo revisar el Logcat para entender mejor el funcionamiento.

codigo

Como vemos, utilizo una clase interna asynclogin la cual es una AsyncTask para mostrar el progressdialog hasta que termina de realizarse la validación.

Desde esta clase redirecciono al usuario al HiScreen o en el caso de ser el ‘logueo’ inválido vibramos el teléfono y mostramos el mensaje de error.

También he creado una clase para manejar con mayor facilidad el envío de peticiones a nuestro web service. El manejo de su respuesta se encuentra en: /src/test/Droidlogin/library/Httppostaux.java

Httppostaux

 

Ahora veremos la otra activity a la que seremos redigiridos si el login es correcto.

Para esta también definí dos layouts diferentes para cubrir el cambio de la orientacion de la pantalla.

/res/layout-port/lay_screen.xml

 

 

layout-port-lay_screen

/res/layout-land/lay_screen.xml

layout-land/lay_screen

 

Ahora el código de su clase:

/src/test/Droidlogin/HiScreen.java

clase hiscreen

 

Luego de todo esto,

Si todo fue configurado y funciona correctamente  veremos al HiScreen que comenté anteriormente.

Cuando el usuario presiona Cerrar sesion volvemos a la ventana de logueo.

Pueden bajar el código completo desde nuestro repositorio, podrán acceder clickeando en la imagen más abajo.

En el mismo verán que hay una archivo llamado droidloginweb.zip dentro se encuentran droidlogin. Deberán mover esa carpeta al servidor web en la carpeta htdocs ya que en ella se encuentran todos los archivos para la parte web.

También incluí la carpeta droidlogin suelta.

 

ACTUALIZACIÓN 07/12/12

Dada la cantidad de comentarios en el post he realizado un video en el que les explico paso a paso como hacer andar este ejemplo, espero que les sirva:

Recuerden que si bajan todo el contenido comprimido y lo importan al Eclipse, luego deberán remover las carpetas mencionadas del proyecto.

 Pueden Descargar el codigo utilizado en nuestro tutorial desde nuestro repositorio.

para acceder simplemente den click en la siguiente imagen:

Github

 

Espero que les haya gustado el tutorial. Cualquier consulta o sugerencia no duden en hacerla en el cuadro de comentarios de abajo.

Saludos

Sebastián.

¿Te gustó este tutorial? ¡Compártelo!

 

Comparte este post

Acerca de: sebastiancipolat

Desarrolador web y de aplicaciones moviles, apasionado por la tecnologia y todo lo relacionado con ella, Fanatico de la Ciencia Ficcion y del software libre. De Buenos Aires, Argentina

Sígueme en Twitter

Leer todos mis artículos

También puede interesarte

Comentarios de este artículo

  • http://twitter.com/flowwerg FlorenciaGomez

    Muy bueno, te felicito sebastian, que capacidad intelectual asombrable

    • http://twitter.com/seba_cipolat sebastian cipolat

      Gracias, que bueno que te halla gustado! =)

      • MiguelOsorio

        Hola, disculpa mi comentario, pero menos mal que vos sabéis programar, porque vuestra ortografía en español no es muy adecuada… Se dice Haya, con y…

        El vídeo esta muy genial y os agradezco tan valiosa información…

  • jocast99

    Excelente artículo Sebastián, lo esperaba desde hace mucho, gracias!!

    • http://twitter.com/seba_cipolat sebastian cipolat

      Que bueno me alegra que te halla gustado!

  • Cervecita2

    Es un tutorial magnífico, nivel de calidad de esta web es increíble.
    Saludos

    • http://twitter.com/seba_cipolat sebastian cipolat

      Gracias, que bueno que te halla gustado! =)

  • Adonay Gonzalez

    No es que sea haragán y solo haya clonado el código, pero tiene algunos inconvenientes a la hora de correrlo (modo web, la app Android funciona, pero no eh testeado completamente), tienes que revisar la parte de las conexiones, los nombres de las tablas están mal, (donde hace referencia a esta, pone “usuarios” cuando debería ser “usuarios2″, esto en el archivo funciones_bd.php linea 49, mejor dicho el mysql_query el otro es en la linea 67, mejor dicho dentro de la funcion de login), ademas el nombre de la base de datos que esta dentro del archivo config,php hace referencia a una base de datos distinta (“android_login” cuando es “droid_login”)

    No lo digo para que me ayudes (ya lo solucione), sino mas bien, por todos aquellos que son nuevos en esto y que quieren ver el funcionamiento de este código que queda como anillo al dedo para lo que necesito.

    Ademas, veo que tienes algunos de estos errores en esta entrada


    Al ser la aplicación solamente un ejemplo y al no tener un uso real crearemos una tabla llamada ‘usuarios‘ en done guardaremos el nombre de usuario y password juntos.

    Podemos crear la tabla ejecutando esta simple consulta:
    Create Table usuarios2( username varchar(10) NOT NULL , passw varchar(20) NOT NULL )

    Pero te felicito, vuelvo a repetir, esta excelente, solo un novato de los mas novatos no se daría cuenta de estos errores que quizás dejaste a propósito para que aprendamos el arte del codeo, gracias

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola,
      Gracias por tomarte el tiempo en comentar y detectar esos errores en la publicacion no los habia visto, ya modifique el tutorial ahora deberia estar bien.

      Me alegro que te halla gustado!

      Saludos

      • Jeancarlarojas

        porfa!! pasame el link para descargar el codigo!!! gracias!!!

        • Adonay Gonzalez

          Es muy simple, solo has clic en la imagen que dice GITHUB social coding, cuando te redireccione has clic en el botón de zip (a la par tiene un icono de una nube simbolizando la descarga) y tendras el codigo

        • http://twitter.com/seba_cipolat sebastian cipolat

          Debes hacer como comento Adonay Gonzalez mas abajo.

          Este es link del respositorio.
          https://github.com/Androideity/Login-en-Android-usando-PHP-y-MySQL
          Gracias!

  • Jeancarlarojas

    como puedo descargar el codigo?????

    • mondongovirtual

      haciendo clic en la imagen de github

  • Sosrucer

    Muy Buen tutorial :-)

    Solo he encontrado un error en la parte web:

    Cambiar la línea 8 del fichero config.php de:

    define(“DB_DATABASE”, “android_login”);

    por:

    define(“DB_DATABASE”, “droid_login”);

    Solo hay que quitar “an” de “android_login”.

    Un saludo, y Gracias.

    • Sosrucer

      Para los que tengan un servidor local para probarlo tipo XAMPP, es importante cambiar la línea 36 de login.java por:

      String IP_Server=”10.0.2.2″;//IP DE NUESTRO PC

      para que tome la dirección localhost, que normalmente es 127.0.0.1 o localhost, pero sino no funciona, tomado de: http://blog.sptechnolab.com/2011/02/10/android/android-connecting-to-mysql-using-php/

      Cambiando esto funciona perfecto en local. Un saludo :-) .

      • http://twitter.com/seba_cipolat sebastian cipolat

        Si en parte es correcto hay que modificar esa ip por la de cada uno, tambien deben tener en cuenta que si la direccion ip que tiene su pc es dinamica osea brindada por un servidor DHCP esta puede ser que varie por lo que deberan modificar el codigo cada vez que esta cambie, recomiendo que configuren en su computadora una direccion ip estatica.

        Respecto del código seria en si la linea 35, en la 36 lo que hago es completar la url con la ip de la 35 aunque también se puede reemplazar la variable ‘IP_Server’ de la linea 36 por la ip directamente.

        En si no toma la ip 127.0.0.1 esta es una direccion que hace referencia al propio servidor.( http://es.wikipedia.org/wiki/Loopback) se utiliza para acceder uno mismo a sus propios recursos pero desde el mismo pc osea que si queremos acceder desde otro debemos usar la ip que tenga asignada en la red.
        Me alegra que te halla gustado el tutorial.
        Gracias por haberte tomado el tiempo en comentar y aportar al post.

        Saludos!

      • Princhesa Thay

        me salvaste de una gracias =)

      • Alberto Gutierrez

        gracias viejo tenias problemas con el localhost

      • chelobotix robotix

        ERES UN DIOS! GRACIAS

  • http://twitter.com/wisemaster77 Omar Rentería

    Muy bueno, sólo una cosa. Recuerda siempre seguir las convenciones del lenguaje Java, parece que hiciste alguna mezcla de convenciones JavaPHP cuando codificabas. Recuerda que los métodos en Java se nombran empezando con minúscula y usando CamelCase, ej: “doPost” o “getUserByIdAndEmail”. Según recuerdo el símbolo “_” se utiliza en constantes únicamente, mismas que se escriben en mayúsculas, ej: “HAS_VALID_ACCOUNT”.

    Fuera de eso, una entrada bastante buena :)

    • http://twitter.com/seba_cipolat sebastian cipolat

      ok, gracias lo voy a tener en cuenta.

  • Jesús López Morales

    Buenas, gracias por el tuto, muy currado si señor.

    Solo tengo una pregunta. Estamos trabajando con tablas ejemplo, y como bien dices las “password” en tablas reales de una bbdd de un foro por ejemplo están codificadas.

    ¿Debemos descodificar la contraseña para poder compararla con la que nos ha metido el usuario y así poderle dar login?

    Un saludo, y muchas por el curre ;)

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola,

      A mi parecer si se deberia descodificar la contraseña que esta almacenada en la BD para poder compararla con la ingresada por el usuario, no conozco ninguna otra forma diferente de hacerlo.

      Saludos.

      • Jesús López Morales

        Pero… si están codificadas por algo será xD Bueno, buscaré metodos para hacerlo.

        Gracias, un saludo.

        • http://twitter.com/seba_cipolat sebastian cipolat

          Estan codificadas por razones de seguridad, en ningun momento los datos dejan de estar encriptados en la BD, solamente se acccede al pass descodificado de ese usuario para compararlo por q los datos ingresados no estan encriptados.
          No tengo mucha experiencia con encriptacion tal vez halla alguna otra forma que desconozca.

          Podes dar un vistazo a este tutorial en el que los datos si se guardan encriptados, tal vez te ayude.

          http://www.androidhive.info/2012/01/android-login-and-registration-with-php-mysql-and-sqlite/

          Saludos.

          • Jesús López Morales

            Muchas gracias Sebastián, estoy empezando a tener mucha documentación acumulada xD.

            Lo dicho, gracias y buen curro con el tuto.

            Un saludo.

          • Edder

            No no, en lugar de desencriptar los de la BD, mejor encripta los datos que has pasado, y compara los datos encriptados…

  • Davi Vilar Beteta

    Hola muy buen tuto y buena web para novatos como yo, pero dado mi nula experiencia en php no me salgo, desde el servidor wamp me salen dos errores cuando intento ingresar un usuario nuevo, connectbd.php on line 23 y funciones_bd.php on line 61. Gracias.

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola, para poder ayudarte dime que es lo que dicen los errores exactamente ?

      • Oscar

        hola sebastian no soy muy bueno en php y al momento de usar el adduser para mandar el usuario y contraseña me aparecen estos errores

        Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:AppServwwwdroidloginfunciones_bd.php on line 67

        Fatal error: Call to undefined function json_encode() in C:AppServwwwdroidloginacces.php on line 19

        claro yo estoy usando un app server pero no ahi mucha diferencia solo al momento donde seguardaran los archivos php espero y me puedas solucionar mis dudas el porque da ese error ??

        muchas gracias por cierto un 10 con este tutorial

        • Oscar

          Igual me aparece este otro error

          Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:AppServwwwdroidloginfunciones_bd.php on line 50
          ha ocurrido un error.

          espero y me puedas ayudar explicando porque sedan estos errores
          gracias

          • http://twitter.com/seba_cipolat sebastian cipolat

            Hola,
            Estuve viendo tu problema creo tu problema tal vez se deba a esto:

            1º Fatal error: Call to undefined function json_encode() in C:AppServwwwdroidloginacces.php on line 19

            Puede deberse a que la version de php que utilizes este desactualizada y no incluya Json, que version usas?
            yo uso la 5.3.1, lo podes ver aca http://www.pedroventura.com/php/php-fatal-error-call-to-undefined-function-json_encode/
            si estas usando una version vieja te recomiendo que uses una mas reciente.

            2º Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:AppServwwwdroidloginfunciones_bd.php on line 50

            ¿Modificastes el archivo config.php con los datos de tu BD?
            voy a modificar el post y voy a agregar mas info sobre esto.

            En caso de que si proba creando los usuarios directamente en la base de datos y despues accede mediante el navegador web al formulario de logueo login.html y proba usando el usario y password que creastes manualmente.

            No soy un experto en php pero tal vez eso ayude a resolver el problema o a encaminar una solucion.

            Si alguno conoce alguna solucion diferente es bienvenida!

            espero que sea de ayuda!

            Saludos

        • http://twitter.com/seba_cipolat sebastian cipolat

          Hola
          Que servidor web estan usando, apache?

          • Oscar

            asi es apache

          • john

            Como puedo utilizar esta aplicacion desde internet? he modificado la ip server del programa x a dir publica de mi router y despues e hecho un foorwarding, diriguiendo las peticiones que llegan al router al equipo donde tengo instalado apache al puerto 80, pero se queda pillado en utenticando. Me podria echar alguien una mano? Gracias!

          • https://twitter.com/#!/seba_cipolat sebastiancipolat

            Hola, revisa los comentarios anteriores que ya me preguntaron sobre eso.
            saludos

          • ivonne

            como puedo correrla en android 4.0 porfis

      • Davi Vilar Beteta

        Hola me salen errores por todos lados pero en adduser.html me salen estos dos.

        Warning: mysql_connect() [function.mysql-connect]: Access denied for user ‘username’@'localhost’ (using password: YES) in C:wampwwwdroidloginconnectbd.php on line 19

        Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:wampwwwdroidloginfunciones_bd.php on line 51

        • http://twitter.com/seba_cipolat sebastian cipolat

          Hola, modificastes el archivo config.php con los datos correspondientes a tu BD?

          • Davivilar17

            Si, bd user = username y bd password = passw lo pongo como tu ejemplo

          • http://twitter.com/seba_cipolat sebastian cipolat

            ok, por algun motivo esta rechazando la conexion, ¿usando ese usuario y password te podes conectar a la BD? (podes probar usando phpmyadmin o algun cliente de base datos que permita conectarse a mysql)
            podes probar tambien crear otro usuario para acceder a la bd y ver que ocurre.

            Saludos

          • Davivilar17

            Me parece justo volver a contestar. El problema como ya dije era que no tenia ni idea de php. Pero ahora se un poquito más i entiendo el código y ya me funciona bien en mi web e incluso le he implementado el registro por imei para un sólo dispositivo-usuario. Gracias por el aporte e intentar ayudar a uno que no tenia ni una pequeña base… a veces se hace imposible ayudar…

    • jose daniel pachon O.

      A mi me ocurrio lo mismo pero, lo que tuve que hacer fue modificar el config.php debido a que tenia la siguiente linea define(“DB_PASSWORD”, “1234″); con el password como el tiene su base de datos, entonces lo que debes de hacer es colocar la password que tengas, en mi caso mi password es 1234, espero te sirva

      • Davi Vilar Beteta

        DB_PASSWORD no deberia ser passw o el nombre que le hayas puesto en esa columna en la bd?

        • http://twitter.com/seba_cipolat sebastian cipolat

          Hola,
          no seria el password que definistes cuando configurastes MySQL.

  • Carlos Alberto Florio Luis

    Hola Amigo un apregunta en que trabajas tu para hacer este ejemplo? Eclipse o Appccelerator?

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola yo he utilizado Eclipse.

  • http://twitter.com/seba_cipolat sebastian cipolat

    He actualizado el tutorial, agregue algunas cosas que me di cuenta gracias a sus comentarios que estaban poco explicadas

    sebastian.

  • http://twitter.com/macvirgo14 Mario Contreras ?

    hola, espero que andes de lo mejor y de paso te felicito es un buen tuto solo queria pasarte un tip o bueno un consejo para los que novatos como yo, lo que pasa es que una vez que inicias sesión en la clase HiScreen tu tienes un metodo que cacha el evento del boton BACK me refiero a este

    //Definimos que para cuando se presione la tecla BACK no volvamos para atras
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
    // no hacemos nada.
    return true;
    }

    return super.onKeyDown(keyCode, event);
    }
    a mi parecer siento que no seria como algo correcto hacer que el boton pierda su función para evitar eso lo unico que debes de hacer es finalizar el Activity de login después de iniciar HiScreen tu metodo que realiza dicha función quedaria algo así

    protected void onPostExecute(String result) {

    pDialog.dismiss();//ocultamos progess dialog.
    Log.e(“onPostExecute=”,”"+result);

    if (result.equals(“ok”)){

    Intent i=new Intent(Login.this, HiScreen.class);
    i.putExtra(“user”,user);
    startActivity(i);
    finish();

    }else{
    err_login();
    }

    }
    estoy forza a que el Activity de login se cierre y así cuando presiones el boton BACK no haya problema de que se regrese a login pero ojo tambien ahora cuando le des clic en cerrar sesión antes de finalisar HiScreen tienes que iniciar login si no lo que haría seria salirse de la aplicación y el metodo de tu boton cerrar sesión quedaria así

    logoff.setOnClickListener(new View.OnClickListener(){

    public void onClick(View view){
    //’cerrar sesion’ nos regresa a la ventana anterior.
    Intent i=new Intent(HiScreen.this, Login.class);
    startActivity(i);
    finish();
    }
    });

    bueno al menos a mi me funciona de maravilla espero lo tomes en cuenta y lo pruebes saludos.

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola me alegra que te halla gustado el tutorial!,

      Si es cierto no se si es del todo correcto que el boton pierda la funcionalidad, en si lo habia pensado como para que la unica forma de salir de ese activity sea “cerrando sesion” por eso no se puede volver para atras, es posible que esa funcionalidad en ese punto de la app sea algo para analizar si se le va a dar un uso serio, pero para decir verdad al tratarse de un mero ejemplo no es algo en lo que repare mucho queria hacer mas enfasis en el tema de la validacion del login.

      Te agradezco por tomarte tu tiempo, compartir unas lineas de codigo y aportar al mejoramiento del post.

      Saludos.

  • Ethereal

    Hola, gracias por tu tutorial, llegue hasta la parte de la base de datos,esa parte corre perfecto, la parte en la que eh tenido problemas es en la parte de la conexion en android, parece que no acepta el ip, puesto que cuando pongo el usuario y contraseña en android, sale un anuncio que dice que la aplicación fue parada (unfortunately, droid login has stopped), por otro lado cuando presiono la opcion registrarse me lleva a la direccion url = “http://”+IP_Server+”/droidlogin/adduser.html”; y eh logrado registrar usuarios.
    Por otro lado eh bajado eh instalado el ksoap para la aplicación siguiendo las instrucciones del anterior tutorial.
    Talvez eh pasado algún detalle por alto, de antemano, muchas gracias por el tutorial

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola,

      Veamos algunas cosas:
      1º Si desde tu computadora donde esta el servidor ingresas a
      http://127.0.0.1/droidlogin/login.html y te logueas usando el usuario y clave que creastes, te devuelve [{"logstatus":"1"}]? si no probablemente no se halla creado el usuario.

      2ºRespecto de la IP y la conexion con android
      en /src/test/Droidlogin/Login.java en la linea 35 Modificastes la ip que esta puesta por la de tu servidor?
      sobre este error:
      (unfortunately, droid login has stopped)
      no te sabria decir habria que ver que es lo que muestra el Logcat.

      3º Para este tutorial no es necesario ksoap de hecho no lo nombro en ningun momento puse el enlace al principio para que puedan comprender algunos conceptos basicos.

      Espero que te sea de ayuda.

      saludos.

  • manolo_mono

    Lo que se suele hacer para la contraseña del usuario es cifrarla por ejemplo a un algoritmo de no retorno ( ejemplo: md5 ), es decir que no puedas descifrarlo, entonces a la hora de dar de alta guardas la contraseña en la bbdd con el hash que te da la contraseña cifrándola y entonces al hacer login vuelves a cifrar la contraseña para compararla con la bbdd y si es igual perfecto :) . Os dejo función md5:

    public static String md5( String s ) {

    MessageDigest m = null;

    try {
    m = MessageDigest.getInstance( “MD5″ );

    } catch( NoSuchAlgorithmException e ){

    e.printStackTrace();
    }

    m.update(s.getBytes(),0,s.length());
    String hash = new BigInteger(1, m.digest()).toString(16);
    return hash;

    }

    Es aconsejable hacer las peticiones por https al menos en el login para que no viajen los datos en plano.

    Nota: Encriptar no existe en castellano (cifrar)

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola, Gracias por el aporte!.

  • nonel

    Muy buen post, muy interesante.
    Quería comentarte una duda.
    Tengo que realizar una app que guarde datos de personas, junto a su foto….
    La base de datos sera actualizada con frecuéncia por los mismo usuarios y sobre las mismas tablas, y los datos tienen que tener un mínimo de seugridad.
    La mejor manera de realizarlo es mediante este sistema o recomiendas algún otro?
    Gracias!

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola,
      Este es un ejemplo muy basico y no muy seguro ya que la idea era mostrar solamente como se podia realizar esto de una forma sencilla.
      Por lo que no he tenido en cuenta cuestiones de seguridad como evitar SQLinjection o realizar la conexion usando https (un lector aporto codigo sobre esto.)

      Pienso que podría usarse esta forma como para tener idea gral. y modificarlo.
      no te sabria recomendar ninguna otro.

      Tal vez alguno de los lectores pueda aportarte mas sobre esto.
      Saludos

  • nonel

    otra cuestión….
    es necessario poder acceder via web?
    si solo quiero que se acceda por la aplicación?
    gracias!

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola,
      No, no es necesario.

      Saludos

  • http://www.facebook.com/alois.wirkes Alois Wirkes

    Hola!

    Me sirvio mucho tu tutorial y quiero darte las gracias por publicarlo!
    Ahora bien, estoy tratando utilizando la libreria HttpPostAux para hacer otra conexion a un mismo servidor desde otra Activity utilizando, por supuesto, AsyncTask.
    A pesar de que tuve mucho cuidado a la hora de modificar los metodos OnPreExecute, doInBackground y onPostExecute; y los metodos err_login, loginstatus y checklogindata, cuando hago la prueba desde mi dispositivo android… en el LogCat se imprime una parranda de errores, que a segun son causados por un NullPointerException en la llamada a getserverdata de el medoto loginstatus.

    A que se puede deber esto?

    Si necesitan que publique mi codigo o sea mas preciso, por favor me lo indican, ya que me vendria muy bien algo de ayuda!

    Saludos y gracias de antemano!

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola
      si para mas o menos poder orientarte habria que ver que fue lo que hicistes.
      si el codigo no es muy largo podes publicarlo en caso de que si lo fuese habria q ver la forma de hacermelo llegar para que la viese como para desvirtuar el post.

      Saludos.

  • oscar

    Tengo problemas cuando hago el login por android, me sale “Error:Nombre de usuario o password incorrectos”,tengo una duda, en la clase login.java en String IP_Server=”127.0.0.1/”;//IP DE NUESTRO PC, yo lo estoy trabajando localmente, entonces nose si es la IP esa o la de mi pc o q, me imagino q por esto es el error, agradezco me colaboren con eso
    gracias

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola,

      En ‘IP_Server’ debes poner la IP del servidor web, seguramente tengas el servidor web corriendo en la misma pc que usas el eclipse.
      Recorda que el codigo java se ejecuta dentro del emulador/dispositivo android
      por lo que la ip 127.0.0.1 haria referencia a el mismo y no al servidor.
      Tenes que poner la direccion IP que tenga tu PC en tu red.
      ten en cuenta que si tu pc esta conectada a un router y toma la ip automáticamente esta puede variar, por lo que te recomendaría que le asignes una fija.

      Saludos

    • ruth

      hola no as intentado colocar IP_Server=”10.0.2.2/”; en android reconoce asi el localhost

      • http://sebastiancipolat.com.ar sebastiancipolat

        Hola, yo recomendaria imaginar que el emulador de android es un dispositivo por fuera de la pc y utilizar la ip local del pc en lugar de localhost.
        Saludos

  • Hermadaje

    sebastián muchas gracias por tu aporte me sirve de mucho, en realidad soy un inexperto apenas estoy iniciando en php y android, la pregunta es sobre parte del código que eh bajado de la página pues al momento de entrar al http://localhost/droidlogin/acces.php me manda un error de éste tipo:

    Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:AppServwwwdroidloginfunciones_bd.php on line 68
    [{"logstatus":"0"}]

    Lo siento si mi pregunta es muy tonta pero es que no logro comprender el error si se supone que el código está bien tal cual lo haz subido.

    De antemano muchas gracias.

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola,

      Realizastes toda la configuracion previa en la BD?
      modificastes el config.php?

      saludos

  • Licoresjesus

    GGracias me gusto el curso

  • Marco Antonio

    hola Sebastian disculpa, lo que pasa es q tengo yo una base de datos creada sin embargo el nombre de las tablas es distinto, que es exactamente lo que debería cambiar? solo los php? o tmb modificar el código de android?

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola,
      Deberias modificar el config.php y colocar los datos de correspondientes a tu BD,
      no se como sea pero tene en cuenta que esto funciona con Mysql solamente.

      Tambien deberias modificar en todos las consultas a las bases de datos los nombres de las tablas y el de los campos para cada caso.
      Con eso deberia bastar
      Saludos.

  • Basquet346

    Hola, muy buen tutorial. Lo agradezco mucho, pero tengo un problema en la clase MainActivity, especificamente con la clase R, hice el import de test.droidlogin.r pero aun asi me manda error en la linea getMenuInflater().inflate(R.menu.activity_main, menu); y no se por que. Agradezco de antemano a quienquiera desee ayudarme.

    • Basquet346

      Hola de nuevo, ya arregle el problema que tenia con MainActivity y resultaba que no necesitaba tal clase. Ahora mi problema es que aunque meta un usuario valido con su respectiva contraseña siempre me devuelve que el usuario o contraseña son invalidos y no se por que. He probado tanto en un Smartphone como en el emulador perteneciente a Eclipse.

      • http://twitter.com/seba_cipolat sebastian cipolat

        Hola,
        Revisastes la BD?, realizastes las modificaciones al codigo para adecuarla a tu servidor web.
        Agregastes un usuario?

        Saludos

        • Total_Naive

          Sí, hice los cambios que me describiste y ahora funciona correctamente. Muchas gracias por el gran tutorial :D

          • http://twitter.com/seba_cipolat sebastian cipolat

            De nada , que bueno que te halla funcionado.

            Saludos.

          • http://www.facebook.com/marcos.gomez.52056223 Andy Chango

            Sino les funcionan, prueben cambiar la ip de 127.0.0.1 a 10.0.2.2… que sería como el localhost del teléfono Android; a mi me funcionó!. Suerte Saludos

          • Luis Mendez

            que cambios hiciste

          • Total_Naive

            Hice los cambios en la base de datos

        • Misskiddo

          Hola!,
          primeramente, darte la enhorabuena y sobre todo las gracias por este fantastico manual, me has salvado la vida. XD

          Yo tengo el mismo problema, al hacer el login, siempre me da incorrecto. Me registro, compruebo que se ha actualizado en la base de datos, pero luego no logea.

          Saludos,
          Toñi.

          • Misskiddo

            Me faltaba cambiar una cosilla en el JSONArray jdata=post.getserverdata(postparameters2send, ….)

            gracias de nuevo.

          • http://www.facebook.com/RodrigoRG17 Rodrigo RG

            Que cambios hiciste perdon??

          • http://www.facebook.com/Plasmastyle Victor Tellez

            que cambios realizaste en esa linea??

          • http://www.facebook.com/Plasmastyle Victor Tellez

            que cambios realizaste en esa linea??

          • http://www.facebook.com/Plasmastyle Victor Tellez

            que cambios realizaste en esa linea??

          • mgtuc

            Perdón, que cambios realizaste. Muchas Gracias.

          • Jhon Gonzalez Fandiño

            que cambio se le hace?

        • Princhesa Thay

          hola les cuento que tngo el mismo problema, ya puse la direccion de mi servidor en este caso 127.0.0.1 e igual me sale q el usuario y contraseña no son validos así esten bien.. lograron solucionarlo??

          • http://twitter.com/seba_cipolat sebastian cipolat

            Hola,
            Respondiendo a tu pregunta.

            1- Realizastes las modificaciones al codigo para adecuarla a tu servidor web /BD
            2-Creastes el usuario con http://127.0.0.1/droidlogin/adduser.html ??
            en caso de que si verifica en la BD que se halla creado.
            3-si se crearon los usuarios.
            probastes loguandote con http://127.0.0.1/droidlogin/login.html ??

            verifica todo eso e indicame si hubo algun problema.

            Saludos.

          • Zoe Gonzalez Videaux

            Hola Sebastian,
            ante todo muchas felicidades y MUCHAS GRACIAS por el post, esta SUPER!! Pero bueno tengo el mismo problema que aunque ponga un usuario correcto, el sistema me responde que es incorrecto. Ya he hecho lo que indicas en las respuestas a estas preguntas: Ya modifique el codigo para mi servicio web, he creado un usuario y lo he comprobado en la BD y he entrado al sistema a traves de la web con el mismo usuario, pero nada. Es que acaso ya existe una solucion?

          • http://sebastiancipolat.com.ar sebastiancipolat

            Hola,
            El Codigo que subi funciona correctamente
            no es bug eso, puede deberse a varias cosas.
            Te dejo para que hagas unas pruebas.
            Desde el navegador del celular ingresa al servicio web y trata loguearte a ver que ocurre. recuerda que en el navegador debes poner la ip de red de tu pc Ej:192.168.xxx.xxx o como fuese no la local 127.0.0.1, si podes logearte todo anda bien debe ser algo del codigo en android que te falto modificar, recorda cambiar la ip en el codigo java tmb.
            Si tampoco anda no te sabria decir habria que verificar todo, podrias bajarte el codigo de nuevo.
            si no te anduvo indicame que version de android usas y que servidor web y os.

            Saludos.

  • Daniel_guanocunga

    buenaso justo lo que estaba buscando gracias

  • Dthenier

    Estimado Sebastian, eh revisado cuidadosamente, varias veces el tutorial y creo encontrar la razón por la que no corre el programa, en el AndroidManifest.xml tu trabajas con la versíon, , actualmelnte estoy trabajando con el version Ice Cream Sandwich, podrías confirmarme con que versión estas trabajando.

    atte
    Ethereal

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola,
      En este tutorial use la version 8.
      Si no te anda deberias modificarlo por el numero de version que corresponda en tu caso segun lo que decis al 15.

  • Cxdiag

    Hola! Increible explicación..lo malo que no veo el lugar dónde bajar los archivos que comentas en la parte php…

    Dónde estan los links?

    Muchisimas gracias!!

    Y gran aporte!!!

    • http://twitter.com/seba_cipolat sebastian cipolat

      hola.
      se explico en un comentario anterior.

  • nonel

    hola,

    como se podría realizar el login automático, es decir, la primera vez que me conecto a la app introduzco usuario y contraseña y luego en posteriores conexiones desde el dispositivo no es necesario….Estilo app de facebook

    gracias y salu2.

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola.
      Habria que modificar la aplicacion y la primera vez que se realiza un login existoso,
      guardar el usuario y el password en el telefono ya sea en una BD o en el shared preferences, luego la aplicacion al iniciar deberia buscar esos datos almacenados y realizar el login automaticamente sin solicitarselos nuevamente al usuario.

      saludos.

  • Marco Antonio

    Hola sebastina

    solo quería preguntar si tendrías un tiempo para que me explicaras brevemente como pasar una tabla completa de una BD mysql a android.. y que se muestre ordenada… es mucho trabajo.. es que use tu aplicación para darme una idea para una aplicación que hice y solo me falta esa parte.

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola disculpa pero no esta relacionado con el tutorial.

  • felibim

    Hola, muy buena a portacion… me gustaria que me ayudes a enviar notificaciones des de php hacia la aplicacion de android…
    Es decir que al momento en que se aga alguna consulta en php y se guarde en la BD. mande un mensaje de que se a echo dicha transaccion…

  • Jandreys15

    men en que lado estan los archivos de php para descargar no los veo gracias

  • Juan Reyes

    MUY BUEN APORTE…

    PERO YA REALIZE TODO SIEMPRE ME DEVUELVE QUE EL USUARIO Y EL PASSWORD SON INCORRECTOS…

    QUE PODRE TENER MAL…

    GRACIAS.

    • http://twitter.com/seba_cipolat sebastian cipolat

      dale un vistazo al video.

  • Mejulesca

    Hola, soy nueva en esto y quisiera saber si puedo tomar datos de edittext y buscarlos en una base de datos. Es decir ejemplo Colocar en un edittext y coloco computadora y cuando le doy al boton me despliegue todos los diferentes tipos de marcas que hay. Pero quiero que se conecte a una base de datos!
    Que temas puedo buscar para lograr esto??

  • Mejulesca

    Por cierto muy buenos tutoriales. Gracias por tu esfuerzo y dedicacion!

  • http://www.facebook.com/joaquin.ampuero.5 Joaquin Ampuero

    gracias por el aporte, tengo problemas con la aplicación, tengo mi base de datos y página en un host, y al realizar la consulta se cierra la aplicación

    • http://twitter.com/seba_cipolat sebastian cipolat

      hola dale un vistazo al video.

  • Francisco Mancera

    Todo bien hasta que quiero correr el login en el emulador, el problema es que ya agregué 2 usuarios, cambié mi IP en el código de java y seguí todos los pasos, el problema es que no me reconoce los datos, me dice que el usuario o el password están equivocados, ¿Que debo revisar para corregir esto?

    • http://twitter.com/seba_cipolat sebastian cipolat

      hola agregue un video dale un vistazo

  • Andrey_201015

    Men tengo un problema con tu proyecto todo me sal hasta cuando le doy login para entrar hay se me totea lo hice con la version 2.3.3 api 10 la verdad no se que pasa y me pudieras ayudar aca esta mi correo andrey_201015@hotmail.com gracias

    • http://twitter.com/seba_cipolat sebastian cipolat

      hola agregue un video dale un vistazo!

  • Jorge Coronel

    hola como estas, muy buen tut, me sirvio, y mas analizando el codigo, me sorprendo aprender y que se tomen la molesta de ayudarnos.
    Bien una duda se puede alojar datos de un webservices de su base de datos se alojen en la mia de sqlite android? espero pudieran hacer tal tutu avanzado

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola si se puede hacer eso hay muchas aplicaciones que lo hacen.

  • Yorks_

    bueno te felicito por la aplicacion tengo easyphp y no me corre la aplicacion y no se que hacer

    • http://twitter.com/seba_cipolat sebastian cipolat

      hola dale un vistazo al video.

  • Jorge Coronel

    fenomenal, no estaria nada mal uno que enviara el registro, si no tiene cuenta xD

  • http://twitter.com/seba_cipolat sebastian cipolat

    Como veo que hay demasiados comentarios sobre este post (la mayoria sobre los mismos problemas los cuales suelene ser q omiten algunos pasos), en cuanto pueda voy a subir un video de como configurar todo esto ya que tal vez con la explicacion no alcance.

  • Jesus Solis

    Hola que tal la verdad esta super bn todo muy interesante!! pero tengo un problema con el login siempre me marca error en usuario y password ya revise en las tablas e incluso agregue desde mi cel mas usuarios pero cuando intento entrar me marca error

  • Gibran

    Muyy muy bueno es lo que necesitaba!! muchismas gracias!

  • Matias

    Muy bueno el post!!! Lo probe pero se me queda en “Autenticando…” Hasta que vuelve a la aplicacion. Que puede ser?

    • Matias

      Este es el error que me aparece en el logcat: Error in http connection java.net.SocketException: The operation timed out

      • https://twitter.com/#!/seba_cipolat sebastiancipolat

        Este error puede deberse a que el servidor tarde mucho tiempo en responder y la conexion caduca, realizastes las modificaciones al codigo como indique?
        si tratas de logearte via web da algun problema?
        las pruebas las haces en un servidor local o lo subistes a internet?
        en caso de que hallas modificado todo y este en internet podes probar modificando el timeout
        http://stackoverflow.com/questions/4470457/java-net-socketexception-the-operation-timed-out-problem-in-android

        espero q sirva saludos.

      • http://twitter.com/seba_cipolat sebastian cipolat

        Hola eso puede ser por que el servidor tarde mucho en responder.
        si lo estas corriendo en local proba logeandote via web y ver que pasa.
        si lo subistes a internet y supongamos que esta todo bien podria modificarse el tiempo de timeout

  • http://www.facebook.com/gonzalo.granada.9 Gonzalo Granada

    Buenas!..excelente tutorial,para los que estamos arrancando con android, realmente muy,muy interesante…felicidades por el tutorial !..

    • https://twitter.com/#!/seba_cipolat sebastiancipolat

      Gracias, que bueno que te halla gustado.

    • http://twitter.com/seba_cipolat sebastian cipolat

      Gracias!

  • Alexander

    Muy bueno aporte, pero necesito una ayuda, en la clase login donde esta la linea de configurar la ip y el “URL_Connect” entiendo que se escribe en el mismo codigo los datos, pero lo que necesito hacer es que la app tenga un menu de opciones con un editText en donde se pueda editar la URL o la IP desde la misma app….es decir el usuario tenga la opcion de cambiar el misma la direccion url de los archivos php sin tener que cambiarlo en el codigo…Espero alguien me pueda dar una ayuda, Saludos

  • jonathan

    como seria el código para registrar un usuario desde la aplicación sin tener la necesidad de usar el navegador?
    gracias

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola,
      habria que pasarle a adduser.php el usuario y password por POST.

  • nigarcia

    Necesito ayuda con la parte php… Cuando ingreso los datos en el adduser o en access, al hacer click en agregar o login, este me redirige a sus respectivos códigos php. Adjunto dos capturas de pantallas para que veas el resultado de intentar agregar o ingresar

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola,
      Vaya que raro nunca me paso algo asi, de seguro debe ser algo con el servidor web que estas usando.
      saludos.

    • Groxor

      Si alguien mas tiene este problema es porque abrio el archivo .php desde el navegador con su ruta de windows, y no debe ser así si nó que en vez de file:///C blabla deben usar http://localhost/droid_login/acces.php

      Saludos

  • http://twitter.com/avilesluis_man Luis Manuel

    Hola Buen Día.

    Excelente manual tengo unos problemas quiero pedir su gran ayuda! les dejo los errores! main cannot be resolved or is not a field setContentView(R.layout.main);

    user= (EditText) findViewById(R.id.edusuario);

    pass= (EditText) findViewById(R.id.edpassword);

    blogin= (Button) findViewById(R.id.Blogin);

    registrar=(TextView) findViewById(R.id.link_to_register); link_to_register cannot be resolved or is not a field

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola,
      Es raro he probado el codigo varias veces y no daba errores.
      dale un vistazo al video.
      saludos.

  • Erick Ramos
  • http://www.facebook.com/LiLiYaSmInE Jassita Chibi Kawaii Valle

    Gracias buen tutorial.. ins preguntita sirve tambien eso si quiero conectar a una base de datos postgres??

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola, el codigo que hice usa MySql , para poder usar postgres habria que hacer algunas modificaciones seguramente.
      saludos.

  • Maria Lara

    Al compilarlo me aparece el siguiente error: Package deployment failed with: INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION

  • Maria Lara

    Ayuda porfavor:)

  • Juam12

    te consulto xq funciona solamente cuando el celular esta conectado a wifi! y no cuando esta conectado a 3g o 2g o internet del telefono! sabrias la solucion?

  • Juam12

    @twitter-517563286:disqus por que solo funciona con wifi y no cuando el cel esta con otra conexion como 3g 2g etc!

    • http://twitter.com/seba_cipolat sebastian cipolat

      por que cuando te conectas con wifi estas dentro de la misma red q esta el servidor, con 3g no. Puede andar con 3g pero en lugar de poner la ip local tenes q poner la ip q te da tu isp.

  • junior

    Hola sebastian las librerias de php estan siendo actualizadas .. las cuales en tu tutorial son aquellas.. por lo tanto te pediria que mejoraras eso .. muy bueno el tuto gracias por todo

    • http://twitter.com/seba_cipolat sebastian cipolat

      no entendi bien q queres decir , pero ok gracias.

      • junior

        que las libreriasque utilizas como por ejemplo esta mysql_fetch_row son absoletas para mysql 5.0+ … como otras librerias que estas utilizando
        http://php.net/manual/es/function.mysql-fetch-row.php

        • http://twitter.com/seba_cipolat sebastian cipolat

          Hola, ok ya entendi lo que querias decir.
          Gracias por aclararlo pero para el ejemplo con ese codigo simple basta no es necesario actualizarlo ya que el tutorial no esta focalizado
          en php si no en android.
          quedaria en cada uno si van a usar ese codigo hacer sus modificaciones.

          saludos.

  • carlos_dmr

    Hola, de primeras felicitarte por el estupendo post ya que es muy útil e intuitivo.

    Pero tengo unos problemas con la App. Android que no acabo de solucionar.

    Para testear el servidor web, he probado a logearme con usuarios previamente guardados en la DB y funciona correctamente, es decir, me devuelve 1 si no hubieron fallos y 0 si sucedió algún error.

    Entonces el problema viene en esta linea de código de la clase httppostaux de la app android:

    if (is!=null){//si obtuvo una respuesta

    getpostresponse();

    return getjsonarray();

    }

    Ese “if” siempre obtengo que “is” es igual a null. Por lo tanto deduzco que ” httppostconnect(parameters,urlwebserver);” no se ha realizado correctamente.

    He debugado hasta esa linea de código, y parece estar bién hasta ahí. A parte, he tenido en cuenta que la IP del server es la IP de mi pc. Y la verdad es que no se que puede estar pasando. Alguna idea?

    gracias

    • carlos_dmr

      solved!

      • http://twitter.com/seba_cipolat sebastian cipolat

        genial!

      • Klaus

        Perdona como lo has solventado? Tengo el mismo problema, Gracias!

        • http://twitter.com/seba_cipolat sebastian cipolat

          Hola,
          carlos_dmr tiene razon en cuanto dice que
          Ese “if” siempre obtengo que “is” es igual a null. Por lo tanto deduzco que ” httppostconnect(parameters,urlwebserver);” no se ha realizado correctamente.
          de seguro el problema es que hay algun error cuando hace la peticion.
          te recomiendo que revises el logcat y veas si da algun error y tambien que controles si colocaste la ip del servidor correctamente.

          En lo que es referido a codigo funciona bien ya que a muchos le anduvo sin problemas, por lo gral siempre son problemas relacionados con los cambios que hay que hacer para que ande con el servidor como explique en el video.

          Saludos

  • http://www.facebook.com/profile.php?id=100000177315271 William Vladimir Rodríguez Qui

    uhm.. hace tiempo use tu aplicacion y pude hacer una aplicacion que agregue , elimine, edite, listar datos de una bd en mysql y sql. Gracias a ti pude hacerlo ;)

    pero ahora resulto un problema, tengo un trabajo que hacer que consiste hacer una solucion multiplataforma (aplicacion web , en escritorio y android), las tres aplicaciones tiene que trabajar con el mismo webservice, ya termine la aplicacion de android y web pero la de escritorio aun no se como hacer que se conecte al webservice, la aplicacion para escritorio quiero hacerla en java pero aun no se como , sabes como puedo hacer para enviar y recibir datos de una aplicación escritorio java al web service, el web service que tengo es el mismo que tu usaste claro con algunas modificaciones , si puedes ver la pagina que subi : http://tallerii.comuf.com/ , por cierto la aplicacion que tengo que hacer es solo el mantenimiento de una tabla no es la gran cosa pero es una tarea :( para guiarnos de ahi y poder hacer un proyecto mucho mas grande.

    Ojala me puedas ayudar nuevamente :)

  • Jose

    Sabes cambie la ip en la confguracion android pero cuando inicio sesion con un usuario previamente agregado me sale todo el rato autentificando

  • Neka

    Hola! se que hace tiempo que nose comenta nada en el post pero bueno… Tengo creada una aplicacion para android y lo unico que me queda es meter los datos que me ingresa el usuario en una base de datos a la cual accedo de manera remota ya que esta alojada en un servidor especifico.

    He probado tu tutorial adaptandolo a mi aplicacion, ala hora de hacer la conexion con el httppostaux me sale el error de Error in http connection org.apache.http.conn.HttpHostConnectException: Connection to http://ip_remota refused.. eso se que quiere decir que no ha realizado la peticion http correctamente, pero nose como solucionarlo.
    Agradeceria tu ayuda, gracias. Muy buen tutorial porcierto!

    • https://twitter.com/#!/seba_cipolat sebastiancipolat

      Hola,
      En el error veo algo raro:
      Error in http connection org.apache.http.conn.HttpHostConnectException: Connection to ‘ http://ip_remota ‘ refused..
      Esto esta raro http://ip_remota? ip_remota es una variables? o lo pusistes vos para no poner la ip en el comentario?
      si es una variables entonces es que en lugar de dar el valor de ip que contiene imprime su nombre, si eso ahi esta el error.
      Saludos

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola,
      En el error veo algo raro:
      Error in http connection org.apache.http.conn.HttpHostConnectException: Connection to ‘ http://ip_remota ‘ refused..
      Esto esta raro http://ip_remota? ip_remota es una variables? o lo pusistes vos para no poner la ip en el comentario?
      si es una variables entonces es que en lugar de dar el valor de ip que contiene imprime su nombre, si eso ahi esta el error.
      Saludos

      • Neka

        Hola!!Muchas gracias por contestar!!! Ya he solucionado el problema, era problema de puertos y que el servidor que no estaba bien configurado! No era problema de codigo.
        Ahora tengo el siguiente problema:
        mysql_fetch_row() expects parameter 1 to be resource, boolean given in C:xampphtdocslogin.php on line 147

        Aunque me supongo yo que es problema de mi login.php, ya lo solucionaré.

        Muchas gracias :-)

  • ramiro madriaga

    Hola me tira un error Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:xampphtdocsdroidloginfunciones_bd.php on line 52

    ha ocurrido un error.

    Cuando quiero agregar un usuario en http://localhost/droidlogin/adduser.php

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola puede que sea algun problema con la base de datos.
      Seguistes las instrucciones q comente en el video?
      Proba agregando el usuario directamente en la BD y trata de loguearte desde login.html

      • http://twitter.com/RicTheImpaler Ricardo

        Perdona, pero en el trabajo tenemos capado youtube :(

    • http://twitter.com/RicTheImpaler Ricardo

      Me ocurre lo mismo, por qué puede ser?

      he buscado un poco las funciones que se usan y en http://php.net/manual/es/function.mysql-num-rows.php siempre me pone que está deprecated, es posible que mi version de PHP sea el problema?

      Si es así como puedo comprobarlo?

  • jcgandroid

    Hola,

    Tengo hecha una app que funciona en android 2.3.7, pero que si la corro en un 4 o 4.1 o 4.2 no se conecta. En aquel momento, vimos que era un tema de seguridad de android 4, pero no se puso que habia que variar para que te dejara autentificar y llegar al servidor asi como recibir datos el teléfono. ¿alguien me puede dar una pista?

    Gracias.

    • http://twitter.com/seba_cipolat sebastian cipolat

      es raro lo probe en jelly bean y andaba bien.

      • Guest

        tienes por casualidad el proyecto completo a ver si puedo probarlo con lo que yo tengo hecho sin tener que picarme todo a mano?
        Gracias…

        • http://twitter.com/seba_cipolat sebastian cipolat

          Hola,
          Podes descargar el proyecto desde el repositorio en github que figura al final de tutorial.
          saludos.

          • jcgandroid

            es verdad, que despiste… probaré tu versión a ver si varía el resultado… gracias!

      • jcgandroid

        ME lo voy a a bajar completo ahora y el finde lo pruebo con los datos de mi base de datos a ver si es que use otra cosa para conectar con mysql… Gracias por este lugar de aprendizaje y a a ti por estar por ahí siempre…

      • jcgandroid

        Cierto, la tuya funciona perfectamente en 4.2.2. Eres un fiera. Una pregunta, ¿si fusilamos parte o todo tu codigo para una app (cambiando dibujos o no), deberemos incluir alguna mención o algo? ¿es correcto?

        • https://twitter.com/#!/seba_cipolat sebastiancipolat

          Hola, jaja gracias.
          hice el codigo con propositos de aprendizaje y para el que lo quiera usar pueda sentirse libre de usarlo pero todo el contenido de androideity esta bajo la licencia Creative Commons (ver este link http://creativecommons.org/licenses/by-nc-sa/2.5/mx/) por lo que pueden copiarlo distribuir, ejecutar y comunicar públicamente la obra y hacer obras derivadas pero si deben incluir una mencion a la fuente original del codigo.

          Una aclaracion importante como habras visto el codigo tanto de android y php es muy simple por lo cual es hipervulnerable y no inclui ningun tipo de validacion ni conceptos de seguirdad si se van a basar en este para una app van a tener q modificar la mayoria (o buena parte) del codigo y hacerlo un poco mas robusto por q seria muy simple de vulnerar, ademas puede haber algun que otro bug ya q no lo probe mucho, no se olviden de eso para evitar problemas en el futuro.

          Saludos.

  • Alfectus

    Muy bueno el tutorial todas mis felicitaciones sebastian, pero me gustaria preguntarte como se podria hacer una aplicacion, por ejemplo un tabla de ciudades que contiene una foto y el nombre de la ciudad, de una base de datos mysql y usando php. Espero que tenga respuestas :)

    • http://twitter.com/seba_cipolat sebastian cipolat

      De la misma forma que hicimos aca.
      En la bd no se guarda la imagen si no el path en donde esta la imagen.

      • Alfectus

        Perdón Sebastian cipolat pero creo que no me exprese bien, o no entendí bien, yo quiero es por ejemplo sacar un listado de ciudades donde apareciera el nombre y una foto de la ciudad, usando php y mysql, por ejemplo:

        España:
        Madrid
        Barcelona


        Portugal:
        Lisboa

        Fracia:
        Páris

        Como se podría hacer.

        • http://twitter.com/seba_cipolat sebastian cipolat

          Hola,

          Para ese caso yo haria algun codigo en php que por ejemplo cuando le pases como parametro españa o el nombre del pais te devuelva en JSON el listado de ciudades y por ejemplo para cada ciudad halla una referencia con la url de la imagen de cada ciudad.
          La aplicacion en android lo que deberia hacer es leer la respuesta del servidor, parsearlo y agregarlo a un listview por ejemplo.

          y lo que te decia de la imagen es que en ese json que devuelva dentro de cada ciudad la url de la imagen asi la app de android la saca de ahi.
          te dejo este link tal vez te sirva
          http://www.androidhive.info/2012/01/android-json-parsing-tutorial
          Saludos.

  • http://twitter.com/RicTheImpaler Ricardo

    Hay un pequeño error en el fichero config.php, lo cierto es que si se sigue los pasos, y nos descargamos los ficheros fuente, hay una incongruencia en los nombres define(“DB_DATABASE”, “droidlogin”).

    En cambio al principio de este tutorial (muy bueno!!) se sugiere el nombre de droid_login, nótese que lleva una barra_baja.

    A mi este pequeño detalle me ha llevado un buen rato jeje.

    • http://twitter.com/seba_cipolat sebastian cipolat

      si es vdad, por eso es importante ver el video y seguir los pasos q indique en el tutorial.

  • http://twitter.com/RVJosue Josue RV

    Tremendo tutorial gracias, muy buena la pagina

  • jairo

    MAGISTRAL!!

    una pregunta.

    tengo un cpanel (El Ejm no corre), por lo que veo, creo que es necesario un servidor Linux (VPS), en donde tenga una BDD mysql, para levantar servicios.

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola,
      En este caso lo pense como para probarlo uno mismo con su propia pc, pero es correcto si quisieramos q esto funcione en internet deberia estar en un hosting o vps.

  • juanjo cantero

    Muy interesante, he aprendido mucho. Gracias por tu dedicacion.

    • http://twitter.com/seba_cipolat sebastian cipolat

      de nada q bueno q te halla servido.

  • http://twitter.com/RVJosue Josue RV

    Muchas gracias de nuevo por el tutorial tengo una pequeña duda, si por ejemplo en la tabla usuarios agregara una columna que almacenara otro dato por decir promedio y quedara así mi tabla (username,passw,prom) como puedo desplegar el dato prom en la pantalla lay_screen(HiScreen), ya le moví a php, también creando nuevas variables en java y xml y nada mas no me visualiza el dato en la pantalla

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola,
      Lo que deberias hacer es leer del Json que devuelve php el valor prom, de la misma forma que utilize para leer “logstatus” en el metodo loginstatus pero con ese valor.
      luego para pasarselo a HiScreen se lo podes pasar mediante un intent como hice con el user.

      espero q te sirva.
      Saludos

      • http://twitter.com/RVJosue Josue RV

        Gracias, ya le estuve viendo y aun nada.

        • http://twitter.com/seba_cipolat sebastian cipolat

          Hola,
          lo que devuelve todo ese php es correcto? esa parte anda bien?
          en caso de que si te recomiendo que debuges la app y veas linea a linea los valores que va tomando y por que no anda.

          • http://twitter.com/RVJosue Josue RV

            si cuando hago inicio de sesión con login.htm me devuelve [{"logstatus":"1"},{"promstatus":"1"}] en acces.php pero nada mas no en la app

      • http://twitter.com/RVJosue Josue RV

        Saludos de nuevo perdón por las molestes.Mira así me quedo: mi tabla es:no_control,clave,promedio

        en funciones_bd.php en login quedo asi:

        public function login($user,$passw,$prom){

        $result=mysql_query(“SELECT COUNT(*) FROM inicio WHERE no_control=’$user’ AND clave=’$passw’ “);

        $count = mysql_fetch_row($result);

        $result2=mysql_query(“SELECT COUNT(*) FROM inicio WHERE promedio=’$prom’ “);

        $count2 = mysql_fetch_row($result2);

        en acces.php quedo:

        $prom = $_POST['promedio'];

        require_once ‘funciones_bd.php’;

        $db = new funciones_BD();

        if($db->login($usuario,$passw)){

        $resultado[0]=array(“logstatus”=>”0″);

        $resultado[1]=array(“promstatus”=>”0″);

        }else{

        $resultado[0]=array(“logstatus”=>”1″);

        $resultado[1]=array(“promstatus”=>”1″);

        }echo json_encode($resultado);

        Cree un nuevo método llamado promestatus y tiene lo mismo que loginstatus solo cambiando los valores para que sea promestatus y promstatus.

        creo un nuevo

        protected String doInBackground2(String… params) {

        prom=params[0];

        if (promestatus(prom)==true){

        return “ok”;

        }else{

        return “err”;

        }

        }

        y prom lo mando a onPostExecute para que en HiScreen lo mande a esta linea user = extras.getString(“prom”);//usuario

        Gracias de antemano.

  • Luis

    Hola, primero agradeciéndote por tu tutorial, es muy bueno. Quizá la pregunta sea muy tonta pero se necesita bajar algo además de lo que mencionas, algo de Java? Es que al momento de importar tu proyecto me salen muchos errores en el Httppostaux.java.

    Muchas gracias de antemano, saludos.

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola,
      Para que esto ande obviamente es necesario tener instalado el plugin de android para eclipse y por supuesto tenes instalado el sdk de android.
      con eso deberia estar fijate que es lo dicen los errores, si no podes probar apretando ctrl+shift+o para que resuelva las dependecias solo eclipse.
      saludos.

      • http://twitter.com/seba_cipolat sebastian cipolat

        tambien fijate si en el proyecto no hay una carpeta llamada droidlogin que tiene archivos php adentro, si esta esa carpeta sacala de ahi.
        podes probar tambien, haciendo un clean al proyecto en eclipse

  • Jean

    Funciona este Login en Android si la Base de Datos esta en un servidor externo? (no local), en otras palabras, habrá problema con el acceso a la Base de Datos de manera remota? Gracias!… me gusto mucho el tutorial!

    • https://twitter.com/#!/seba_cipolat sebastiancipolat

      Hola, si deberia funcionar.

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola, deberia funcionar bien tanto local como en un servidor externo,
      lo unico al ser externo por supuesto habra mas delay.

  • Yhair

    que tal amigo muy buen tutorial y muy entendible para usuarios super novatos como yo jeje disculpa una pregunta donde dice que IP_Server pongo la dirección ip del servidor web en donde tengo mis archivos a consultar y me manda el siguiente error:

    E/AndroidRuntime(1979): FATAL EXCEPTION: main
    E/AndroidRuntime(1979): java.lang.SecurityException: Requires VIBRATE permission

    como podría resolver esos errores es que al momento de ingresar el usuario y contraseña dice autentificando y después de un rato se cierra la aplicación de ante mano gracias por el tutorial y la ayuda

    • https://twitter.com/#!/seba_cipolat sebastiancipolat

      Hola este error
      E/AndroidRuntime(1979): java.lang.SecurityException: Requires VIBRATE permission
      es referido a que en el android manifest no esta puesto que tenga permiso para acceder a la vibracion del telefono.
      tenes q agregar esto:

      Como esta aca
      https://github.com/Androideity/Login-en-Android-usando-PHP-y-MySQL/blob/master/AndroidManifest.xml

      Saludos.

    • truefail

      IP_Server puede ser exactamente la ip, o simplemente agrega la direccion (de estar en la web), pero tu problema no es ese, si no que no has dado permiso en el manifiesto

      agrega esa linea a tu manifiesto

      • http://twitter.com/seba_cipolat sebastian cipolat

        si es correcto, gracias x aportar

        • truefail

          de nada, gracias a ti por el gran aporte, me ha servido mucho

  • http://twitter.com/rcdo_ac Ricardo Amaro Chacón

    Tengo el mismo problema que @jcgandroid:disqus me corre perfecto en versiones anteriores a la 4.0, pero en esa version no me funciona.. como puedo solucionar ese problema..?

    • https://twitter.com/#!/seba_cipolat sebastiancipolat

      Hola que raro eso no te sabria decir de momento, voy a probarlo para ver si me ocurre lo mismo y si encuentro como modificarlo actualizo el post.
      Saludos.

    • truefail

      a mi me funciona perfecto, es mas lo he probado en mi telefono y tablet … las dos arriba de 4.0

      • http://twitter.com/seba_cipolat sebastian cipolat

        Cuando pueda lo voy a probar en android 4.0 para ver si ocurre lo mismo.

  • Juan Chovis

    Esta muy bueno tu tutorial eh (Y) pero tengo una pequeña duda. Me funciono de manera perfecta en el emulador pero cuando corro la aplicacion desde el celular, no me da paso al saludo. Sabes cual es la razon de eso? Espero tu respuesta ya que es muy importante esto para mi, utilizare esta aplicacion para titularme en mi escuela :)

    • https://twitter.com/#!/seba_cipolat sebastiancipolat

      Hola, no te sabria decir por que pasa eso,
      en los telefonos en los que lo probe anduvo bien,
      yo probaria tratar de debugear la aplicacion y ver paso a paso que es lo que hace de seguro descubris el motivo.

      Saludos.

    • truefail

      lo hiciste en un servidor local?, si es asi, el dispositivo debe estar en la misma red … si el servidor es en la web, verifica si en el manifiesto esta el permiso para acceder a internet

      • http://twitter.com/seba_cipolat sebastian cipolat

        Hola, es correcto, verifica si la ip que estas utilizando es correcto.
        tmb te recomiendo que debuges la app para ver que lo que ocurre.

        • Juan Chovis

          asi es, una vez lo hizo bien pero despues ya no funciono :/ pero ya lo movi al servidor de mi escuela y funciona de manera perfecta, te lo agradezco me servira de mucho ya que lo utilizare para mi proyecto de titulacion

  • Topollin

    Hola antes que nada muy buen tutorial solo que tengo una duda, si en mi caso tengo una pagina Web ya en internet como puedo haser consultas a lbase de datos pero desde el movil. es parecido a este ejemplo?..

    • https://twitter.com/#!/seba_cipolat sebastiancipolat

      Hola, si podria hacerse de la misma forma q hice aca, ojo no quiero decir que todo el codigo de la parte web que este aca te sirva ,pero como idea sirve.

    • truefail

      depende de la consulta, si quieres enviar una imagen, o quieres recibir mas datos es un poco diferente …

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola, el principio de funcionamiento es similar a este, lo unico depende de lo que quieras hacer el codigo sera diferente obviamente.

  • Victor Vega

    Muchisimas gracias excelente aporte :)

  • Daniel Ferrández

    Enorme Solución !!!! Muchísimas gracias por compartir esto ;)

  • WendelRodrigues

    Su reproductor tutorial está muy bien, me ha gustado mucho, más que hice todo lo que has dicho, he cambiado la ip a mi ip y localhost 127.0.0.1:8080 también cambió en more’m config.php no tener acceso … ¿Qué no lo sé, yo no sé mucho acerca de ArrayJSON y uno de los errores del LogCat y por la misma! Gracias de antemano si se puede ayudar a que venga.

    • https://twitter.com/#!/seba_cipolat sebastiancipolat

      Hola, dale un vistazo a los comentarios anteriores que tuvieron el mismo problema.
      saludos

  • Juan Carlos Doni Colina

    Buenas noches, excelente tutorial, tengo una pregunta tu crees que sea posible realizar una conexión hacia sql server 2008??. Saludos

    • https://twitter.com/#!/seba_cipolat sebastiancipolat

      Hola, no directamente como ya explique en el tutorial pero si por medio de algun webservice por asi llamarlo como hice aca.

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola si es posible, la unica forma q conozco es mediante un ‘web service’ como hice aca.

  • alexis

    Demasiadas Gracias, estoy aprendiendo Android y a la vez desarrollando mi proyecto de titutlación y estos tutoriales han sido de mucha ayuda, que bkn contar con este tipo de comodines.
    saludos!

    • https://twitter.com/#!/seba_cipolat sebastiancipolat

      Hola, me alegro q te sirvan.
      saludos

    • sebastian cipolat

      De nada me alegro de que te sea util.

  • Ángel Patricio

    Buenas tardes, primero que nada unas grandísimas felicitaciones por tu trabajo, veo que te tomas el tiempo para responder a cada una de los cientos de comentarios y apoyos que te piden.

    Te pido apoyo por que tengo una duda en la parte del SDK, mi servidor php responde perfectamente a la solicitud con un [{"logstatus":"1"}] pero lamentablemente cuando la requisición la hace la aplicación, el log me responde con el siguiente error:

    04-27 18:04:30.757: E/log_tag(570): Error parsing data org.json.JSONException: End of input at character 0 of

    Si tienes tiempo apreciaría mucho tu apoyo.

  • http://twitter.com/brhayam18 Brhayam

    hola soy nuvo en php y bueno tengo este error
    mysql_num_rows () espera parámetro 1 sea de recursos, boolean given en C: wamp www droidlogin funciones_bd.php on line 51

    a que se debe??

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola, seguistes las intrucciones del video?
      revisa los comentarios anteriores que creo q alguien ya pregunto eso.
      saludos

  • http://twitter.com/DavidBaygorrea David Baygorrea

    amigooo una pregunta , me descargue el codigo y me funciono perfectamente , pero si kisiera por ejemplo una ves q haya inciado la sesion me diriga hacia otra ventana donde me permita agregar usuarios o tal ves nose con otra nueva tabla agregar datos de cualquier tipo como se podria hacer eso amigo de antemano muchas gracias

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola, eso va mas hall del tutorial,
      dale un vistazo a los otros post del blog que te van a ayudar con eso.

  • http://twitter.com/marce_509 marcela bolaños

    Hola, muchas gracias por este tutorial.

    Quisiera saber si tienes un tutorial o me puedes aconsejar en cuanto a ingresar datos a una base de datos desde android. De antemano muchas gracias

    • https://twitter.com/#!/seba_cipolat sebastiancipolat

      Hola, eso se puede hacer como hicimos aca pasandole los datos a un webservice y que este sea el que se comunique con la bd.
      segun tengo entendido no hay ninguna forma en android de ejecutar una query directamente en una BD.

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola reivs el blog, que hay tutoriales sobre eso.

  • Ryan

    Que tal viejo, la aplicación corrió a la perfección en el simulador y en mi dispositivo estando conectado a mi wifi, pero he ahí mi pregunta, cuando cambié a la red de datos móviles no funcionó, se quedo cargando, te agradecería que pudieras explicarme a que se debe eso?

    • https://twitter.com/#!/seba_cipolat sebastiancipolat

      Hola, en uno de los comentarios anteriores ya me preguntaron y explique sobre eso, basicamente es xq cuandote conectas por 3g ya no estas en la misma red con tu pc.
      saludos.

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola, revisa los comentarios anteriores que ya preguntaron sobre eso.
      saludos

  • Diana Bolaños

    Hola, muy bueno el tutorial me ha sido de gran ayuda. Quisiera saber si tienes un tutorial en el que completes las acciones ya que en el ejemplo das dos opciones más Registrarse y olvidó su contraseña. En cuanto al primero (registrarse) si no es mucha molestia te agradezco cualquier tipo de información que me permitiera esto; pues me ha costado mucho trabajo el ingresar datos a una base de datos alojada en un servidor.
    De antemano muchas gracias

    • http://twitter.com/seba_cipolat sebastian cipolat

      Hola yo haria eso de la misma forma que hicimos aca llamando a un webservice por asi decirlo y pasarle los parametros por post o get como si fuese una llamada ajax por ej, la parte del servidor es la que se va a encargar de leer los paremtros q recibe analizarlos y agregarlos a la bd.

      Para este tipo de apps es mejor pensarlas como si fuese una web que usa ajax.

      saludos

  • camilo

    Buen día Sebastián.. Excelente post

    Tengo una pregunta.. Tengo que subir un aplicativo desarrollado en android con la misma funcionalidad (accedo al archivo php para que se conecte a mysql y me retorne una respuesta) en un hosting gratis.. Esto quiere decir acceder al archivo php desde mi móvil vía internet ej: http://www.mihosting.histingratis.com/acces.php, subi los archivos al hosting y al acceder desde el móvil me genera error.. Quisiera saber si tengo que realizar otro proceso o si lo que estoy haciendo si se puede hacer??

    • https://twitter.com/#!/seba_cipolat sebastiancipolat

      Hola con subir el archivo al hosting bastaria, si desde tu pc podes acceder y se ve bien desde el movil tambien deberia funcionar.
      no se cual es el error genera, depende de eso la solucion.

      Saludos

  • http://www.facebook.com/marcos.gomez.52056223 Andy Chango

    Muchas gracias; realmente necesitaba un ejemplo como este!!, me funcionó perfecto!!!

  • emer gio

    Que tal, te comento q este link no funciona. http://127.0.0.1/droidlogin/login.html
    agradeceria tu ayuda. saludos.

    • https://twitter.com/#!/seba_cipolat sebastiancipolat

      Hola, dale un vistazo al video y fijate si omitistes algun paso.
      saludos

  • jota

    eres el mostro hermano.. gracias.. como muchos por aqui hablo ingles a la perfeccion, y bueno he buscado tutoriales por todos lados en ingles y español y este es por lejos el mejor … explicación clara y sencilla para todos los que necesitamos saber de donde sale cada variable :) saludos y continua con esos aportes..

    • http://sebastiancipolat.com.ar sebastiancipolat

      gracias!

  • Adrian Vizcaino

    Lo primero agradecerte este tutorial, es de lejos el que mejor he entendido.
    Tengo un problema en la parte del Registro. Tengo creada la función y los archivos necesarios en php para realizar el registro. Si lo pruebo desde navegador funciona todo correcto, pero el problema viene al ejecutarlo desde android….. La aplicación muere cuando llega a esta linea:

    JSONArray jdata=post.getserverdata(postparameters2send, ruta);

    Me he asegurado de que postparameters2send contenga los 3 valores correctamente agregados que necesita el formulario en php, y me he asegurado de que ruta apunte correctamente al archivo adduser.php

    Tienes alguna idea de porque muere la aplicación ahi ??? En el logcat me devuelve:

    threadid=9: thread exiting with uncaught exception (group=0×40018578)

    Un saludo

    • http://sebastiancipolat.com.ar sebastiancipolat

      Hola, no la verdad que no se habria que debugear la aplicacion para ver que ocurre.

      Saludos

  • Paul

    por favor, me puedes ayudar con el siguiente error?
    no tengo permisos de acceso al archivo acces.php, en el documento le doy acceso total y nada… ayuda por favor

    • http://sebastiancipolat.com.ar sebastiancipolat

      Hola, No se que OS y servidor estes usando por lo q no te puedo ayudar, te recomiendo que veas los permisos que tiene el archivo y el directorio en el que este, si no puedes crear otro archivo en ese mismo directorio con el mismo contenido y ver q ocurre-

      Saludos.

  • jcgandroid

    Hola, esto creo que es una pregunta para Sebastian… estoy usando parte del codigo como base, llevo mucho avanzado, pero no consigo saber como hacer un insert en la base de datos de 2 campos adicionales a un user. Tengo el php creo que correcto, pero no se que poner en java, supongo que algo jnson, pero no lo entiendo bien. Ya he pasado la parte de verificar user y pass y ahora me he pasado el user y pass mediante un bundle a otra pantalla y quiero rellenar 2 campos más. Pero no lo veo… ¿me dais alguna idea? como llamo al fichero adddatosnuevos.php y le paso los 4 campos??

    • jcgandroid

      Este seria el adddatosnuevos.php

      db = new DB_Connect();
      $this->db->connect();

      }

      // destructor
      function __destruct() {

      }

      /**
      * agregar coordenadas
      */
      public function addcoord($lib1, $lib2, $username, $password) {

      $result = mysql_query(“INSERT INTO usuarios(username,lib1,lib2,passw) VALUES( ‘$username’, ‘$lib1′, ‘$lib2′, ‘$password’ )”);

      // check for successful store

      if ($result) {

      return true;

      } else {

      return false;
      }

      }

      }

      ?>

      • jcgandroid

        y este el adddatos por llamarlos de alguna manera:

        • jcgandroid

          bueno, sino sebastian, cualquiera que sepa como hacerlo. La parte php la tengo relativamente clara, o por lo menos se por donde tirar, pero la parte android, aunque me funciona la conexion y escribir datos en la base de datos. Durante el layout de login. Ahora en el segundo layout no no se replicarlo, de hecho me gustaria solo escribir, no tengo que hacer controles como en el login y supongo que el codigo es mas corto, pero no lo he entendido bien en el login porque no soy capaz de replicar los necesario en el segundo layout… ¿alquien puede darme algunas pinceladas? Gracias.

          • http://sebastiancipolat.com.ar sebastiancipolat

            Mira el link que te pase antes

      • http://sebastiancipolat.com.ar sebastiancipolat

        Si vas a llamar al adddatosnuevos.php directamente desde la app de android esta mal lo que pusistes ya que en ninguna parte toma los parametros que le pasas por POST/GET y se los pasa a addcoord(), creo que la cosa va por ese lado.
        Saludos.

    • http://sebastiancipolat.com.ar sebastiancipolat

      Hola, eso lo podes hacer facilmente usando el codigo que hice, lo unico que tenes que hacer es crear un archivo en tu servidor web (con el nombre que quieras) y este reciba por parametros lo datos que me comentas, este php sera el que tendra la logica para conectarse a la bd y realizar el insert y desde la app android lo que debes hacer es llamar a ese archivo y pasarle los parametros que quieras. si tenes dudas con esto te recomiendo que lo leas varias veces al tutorial.
      Tambien podes leer este link que te va a ser util.http://www.androidhive.info/2012/05/how-to-connect-android-with-php-mysql/
      Saludos

  • Jorge Erickson Paz Diaz

    Hola queria saber si me peude ayudar tengo un aplicativo web una cuenta ftp donde esta toda mi informacion ahora deseo hacer una version de esa web en adroid es posible y si es asi podrias ayudarme a tener una idea de como comenzar?

  • Pilar

    Hola, gracias por el tutorial, solo preguntarte una cosa, sabrías decirme como puedo hacer para que además del acceso a la base de datos mysql, se creara una base de datos en el propio móvil. Es decir que se sincronizen

    • http://sebastiancipolat.com.ar sebastiancipolat

      Hola,
      para crear una bd en el telefono, podes usar SqLite, busca en el blgo que ya hay un post sobre eso.
      Ahora para que se sincronizen eso ya es mas dificil, una vez que la crees deberias llenarla con los datos que sacas de la de mysql.
      dale un vistazo al tutorial q te mencione, te va a servir
      saludos

  • Ivonne

    cuando lo quiero correr en android version 4 me dice que usuario y contraseña incorrecto
    la pregunta es se puede utilizar en versiones recientes del android

    • ivonne

      les agradecería me puedan ayudar

  • ivonne

    Ya lo volví a intentar y corre perfecto gracias ahora solo hay que adaptarlo para poder insertar pero con la conexión fue mucha ayuda gracias

    • http://sebastiancipolat.com.ar sebastiancipolat

      Genial!

  • Franco

    Excelente tutorial, se te agradece un buen

  • Javier

    Excelente tutorial. Bien redactado y muy bien planteado en todos los puntos. Perfectas las descargas. Muy bien, de verdad, muy buen trabajo. Enhorabuena. Seguid así. Y muchas gracias.

    • http://sebastiancipolat.com.ar sebastiancipolat

      Gracias, me alegro que te halla gustado.
      saludos

  • tux

    Muy buen post!! gracias por el aporte, tengo un problema con letras con tilde. Por ejemplo si tengo “canción” en la tabla, cuando leo el json y mando ese texto me lo muestra como “canción” no como “canción”. Si pongo “canción” en la tabla el json se me regresa como Null. ¿cómo podría corregir esto para que interprete las tildes y cualquier otro caracter?.

    Gracias desde ya

  • Groxor

    Excelente amigo! Lo explicas muy bien lo hice sin problemas..

    A ver si me puedes ayudar un poco :D lo que pasa es que lo estoy haciendo para una pagina externa.. Pero cuando pulso el boton de entrar me da error, ¿porque? porque en la pagina no me muestra si es [{"logstatus":"1"}] o [{"logstatus":"0"}], como podría verificar de otra manera si me logueo? Supongo que podría leer parte del código fuente o el titulo de la pagina, pero como lo haría? si me podrías ayudar por favor :D

    Muchas gracias!

  • Esteban Asr Vázquez

    Excelente tutorial Sebastián, me has aclarado muchas cosas acerca de la conexión a mysql.

    Espero me puedas ayudar con una dificultad que me surgió, paso que configure todo lo necesario para echar a andar el proyecto e incluso puedo ingresar usuarios desde la aplicación Android a la base de datos, pero no los reconoce para logear; al ejecutar el login.html en el navegador me da el siguiente error

    Fatal error: Call to undefined function json_encode() in C:Program Files (x86)xampphtdocsdroidloginacces.php on line 20

    Y este es el código que tengo en acces.php:

    login($usuario,$passw)){

    $resultado[]=array(“logstatus”=>”0″);
    }
    else

    {

    $resultado[]=array(“logstatus”=>”1″);

    }

    echo json_encode($resultado);

    ?>

    Tendrás idea de como solucionarlo Sebastián? (=

  • joan

    Hola,

    gracias por este tutorial. Me parece muy útil.

    Después de insertar el login me aparece un error de JSON.
    Adjunto una captura de pantalla del registro por si me podeis echar un cable para solucionarlo.

    Muchas gracias.

  • Alejandro

    Muchas gracias por todo! Me ha ayudado mucho!
    Una consulta sólamente…el tema de la seguridad, para que quien vea el codigo no note la dirección php para luego acceder al archivo, como se puede hacer?
    Se hace por redirección del servidor? Gracias!!!

    • http://sebastiancipolat.com.ar sebastiancipolat

      Hola, en el codigo siempre tiene que estar la url presente no se me ocurre ninguna forma de ocultarlo,
      la parte de seguridad deberia estar del lado del servidor.
      tal vez habria que ver si se puede obfuscar el codigo o algo asi.

      Saludos

  • nathan

    Muy bueno el tutorial, una consulta como puedo pasar en parametro del text de usuario a otra actividad segun tu codigo de login?

    Agradezco de antemano.

    • http://sebastiancipolat.com.ar sebastiancipolat

      Hola, lo podes pasar como parametro en el intent.

      Saludos

  • Pau Recacha

    Holas,lo primero me encanta tu post, soy novatillo en esto y me cuesta pero voy haciendo. La cosa es que me ocurre como muchos y es que cuando enciendo el emulador con el programa acabado pongo como usuario “test” y pass “test01″ tal y como haces en el video me salta el error de que el Usuario y la Pass no son validos.

    La BD tiene el nombre correcto, la TD también y tengo el usuario test con su passw test01. El archivo.php (config.php) està correctamente modificado con el usuario de phpmyadmin (root) predeterminado. (He mirado por internet y me parece que podría ser por problemas de privilegos, no tengo ni idea voy muy perdido)

    Mire el logcat por ver que ocurría y dice:

    ——————————————————————————————————–

    08-24 13:40:22.222: E/getpostresponse(822):

    08-24 13:40:22.222: E/getpostresponse(822): 403 Forbidden

    08-24 13:40:22.222: E/getpostresponse(822):

    08-24 13:40:22.222: E/getpostresponse(822): Forbidden

    08-24 13:40:22.222: E/getpostresponse(822): You don’t have permission to access /droidlogin/acces.php

    08-24 13:40:22.222: E/getpostresponse(822): on this server.

    08-24 13:40:22.222: E/getpostresponse(822):

    08-24 13:40:22.233: E/log_tag(822): Error parsing data org.json.JSONException: Value <!DOCTYPE of type java.lang.String cannot be converted to JSONArray

    08-24 13:40:23.217: E/JSON(822): ERROR

    08-24 13:40:23.217: E/onPostExecute=(822): err

    ——————————————————————————————————–

    La ip que puse es la de mi PC y no la del localhost ya que tambien me tira error.

    No se que hacer la verdad podrias contestar aunque sea un poco tarde para el post?

  • Pau Recacha

    08-24 13:40:23.217: E/JSON(822): ERROR

    08-24 13:40:23.217: E/onPostExecute=(822): err

    ———————————————————————————————————–
    Sigo con mi comentario al parecer no me sale todo en el otro que puse.

    Pues eso, la verdad no se que ocurre puede que sea una tonteria.
    Salu2

  • valentin

    hola, muy buen tutorial. trate de hacerlo con Android Studio y compila sin errores pero cuando lo ejecuto la app me sale un cartel que dice “unfortunately app has stopped”. Es porque uso Android Studio en vez de Eclipse

    • http://sebastiancipolat.com.ar sebastiancipolat

      Hola, la verdad que no lo probe con Android Studio, no lo utilizo actualmente.

    • sebastian cipolat

      No creo.

  • Fabian Crull

    Valla exelente ejemplo me ha funcionado muy bien ya he creado una aplicación muy similar para control de accseoso :) muchas gracias

    • sebastian cipolat

      Genial!

  • carlos arturo

    Muy buen tutorial amigo, gracias por el aporte

    • sebastian cipolat

      de nada!

  • David

    hola, excelente post, pero me he trabado en las primeras lineas,cuando quiero ingresar un de prueba “test”, contraseña “test01″, me aparece este error

    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:xampphtdocsdroidloginfunciones_bd.php on line 51
    ha ocurrido un error.

    • sebastian cipolat

      Hola, de seguro te falto modificar algo.

    • Jesús

      Lo has resuelto?

    • JGonzales

      Me salia un mensaje similar y era porque no había creado la tabla usuario.

  • Pablo

    Muy bien explicado, se agradece mucho,ahora mi problema es como mantener al usuario logueado para seguir haciendo mas consultas a la DB, si tienen alguna data x donde seguir investigando se agradece, Saludos!!

    • sebastian cipolat

      Hola, el codigo que hice no tiene ningun Timeout asi que siempre esta logueado, eso depende del caso seria algo a mejorar

  • Jhon Gonzalez Fandiño

    Sebastian excelente tuto.. queria hacerte una pregunta, yo lo segui paso a paso y tengo un problema y es que siempre me sale el error de login y ya vi si creo bn el usuario y contraseña, todo esta bn, porque pasa esto?

    • sebastian cipolat

      Hola, no te lo sabria decir pueden ser muchas cosas, repasa el video por si te falto algo.

  • zelda-franco

    Estos aportes son los que enriquecen internet. Gracias!!

  • mondongovirtual

    Hola Sebastian, te habla Carlos de Venezuela. Estaba viendo tu excelente tutorial de login en android usando php y mysql. En la parte web todo me sirve prefectamente, inclusive puedo acceder a esa parte desde el browser de mi celular con la ip de mi localhost. Pero cuando corro la app con esa misma ip, no funciona, me dice usuario incorrecto.

    • http://sebastiancipolat.com.ar sebastiancipolat

      Hola, Gracias.
      Es bastante raro eso xq si podes acceder desde el navegador del telefono la aplicacion tambien deberia poder acceder ya que la peticion es por http, dale un vistazo al LogCat y ver si da algun error tmb fijate si no modificastes nada en el codigo.

      Saludos.

    • sebastian cipolat

      Hola, revisa el codigo algo mal debe haber,
      podes debuguear la app y ver si esta tomando bien lo que ingresas en los camposde texto.

  • Mauricio

    Como puedo hacer para crear un web service para poder subir mi apliacion que estoy creando en android eclipse

    • sebastian cipolat

      Hola, lo siento pero no puedo explicarte eso escapa el foco del tutorial, hay muchas formas de hacerlo.

  • jaime

    tengo el mismo error que paul antes que Adrian Vizcaino espero me puedas ayudar a resolverlo

  • jaime

    tengo el mismo error que Paul como lo puedo resolver

  • Camilo sexto

    el ultimo loguin del tutorial que se hace desde una maquina virtual android se puede subir a un servidor o web o solo es una aplicacion que tenemos que instalar en nuestro android para loguearnos

  • Camilo sexto

    el ultimo loguin del tutorial no lo podemos subir a ningun servidor es una aplicacion que tenemos que instalar en nuestro android para loguearnos. eclipse no hace no hace aplicaciones para web sino aplicaciones de escritorio

    • http://sebastiancipolat.com.ar sebastiancipolat

      Hola,
      Te recomiendo que leas de nuevo todo el tutorial de forma completa y mires el video.

      Saludos

  • Juan Urdaneta

    Estimados:
    los felicito buen aporte a los que nos gusta el tema. Mi pregunta como hago para recoger de la lectura hecha a la base de datos varios datos de una tabla y presentarlos como consulta en el movil que tiene android, ya que solo tiene un ok
    recogido. gracias de antemano

    Juan Urdaneta

    • http://sebastiancipolat.com.ar sebastiancipolat

      Hola,
      En este caso eso debe hacerse del lado de php, osea en lugar de devolver en json ok deberia devolver la informacion obtenida.
      Saludos.

  • martinho

    Belo toturial.

    mas tenho aqui um problema

    aparece este error e nao conecta ao webservice.

    11-27 14:08:55.202: E/getpostresponse(337): result=
    11-27 14:08:55.202: E/getpostresponse(337):
    11-27 14:08:55.202: E/getpostresponse(337): 403 Forbidden
    11-27 14:08:55.202: E/getpostresponse(337):
    11-27 14:08:55.202: E/getpostresponse(337): Forbidden
    11-27 14:08:55.202: E/getpostresponse(337): You don’t have permission to access /droidlogin/acces.php
    11-27 14:08:55.202: E/getpostresponse(337): on this server.
    11-27 14:08:55.202: E/getpostresponse(337):
    11-27 14:08:55.223: E/log_tag(337): Error parsing data org.json.JSONException: Value <!DOCTYPE of type java.lang.String cannot be converted to JSONArray
    11-27 14:08:56.241: E/JSON(337): ERROR
    11-27 14:08:56.261: E/onPostExecute=(337): err

    como posso resolvelo….

    • http://sebastiancipolat.com.ar sebastiancipolat

      Por favor comentarios en español solamente.
      Ver comentarios previos que ya se hablo sobre ese problema.

  • sebastian

    Hola, tengo una duda, estoy usando WAMP server para hacer la prueba pero cuando ejecuto el adduser.html y agrego el nuevo usuario, el explorador se queda cargando y nunca termina ni arroja ningun error.
    Gracias

    • http://sebastiancipolat.com.ar sebastiancipolat

      Hola no te sabria decir, proba con otro browser para ver si pasa lo mismo.

      Saludos

  • ricardogot2010

    Esta muy bueno este tutorial… Saludos a sebastiancipolat !! Lo compartiré

    • http://sebastiancipolat.com.ar sebastiancipolat

      Me alegro q te guste, gracias.
      Saludos.

  • Javier Roman Skate

    excelente aporte solo una petición, tendrás algún tutorial para la parte de registro de usuarios saludos

    • http://sebastiancipolat.com.ar sebastiancipolat

      Hola,le los comentarios anteriores ya preguntaron eso. saludos

  • Mario

    Buen día Mi nombre es Mario y soy de Colombia estoy analizando y haciendo los pasos pero al importar el proyecto me sale un error en la clase Httppostaux hay algo que se deba tener?

    • http://sebastiancipolat.com.ar sebastiancipolat

      Hola, no no hay nada especial q se deba tener, fijate cual es el error que menciona.
      Saludos

  • David Reyes

    Excelente! Único método que realmente funciona. Aplausos

  • Nigel

    Interesante gracias por el aporte

    • http://sebastiancipolat.com.ar sebastiancipolat

      de nada saludos.

  • Ramiro Poeta

    Hola sebastian tengo un problema muy importante eh usado tu tutorial para hacer exactamente lo que hiciste que es un simple login. Lo segui y funciono perfectamente ehe stado usandolo como la parte inicial de mi app que para iniciar una secion pero desde ayer me tira este error “Error parsing data org.json.JSONException: End of input at character 0 of” y no se que puede ser no eh modificado absolutamente nada de tu codigo y ademas estaba funcionando perfecto solo q un dia queria ver una cosa y puff no podia entrar eh debugeado todo el codigo y la unica parte donde tira error es en
    BufferedReader reader = new BufferedReader(new InputStreamReader(is,”iso-8859-1″),8);
    StringBuilder sb = new StringBuilder();
    String line = null;
    while ((line = reader.readLine()) != null) {

    Jamas entra al while porque line nunca deja de ser null al parecer por lo que creo me esta tirando error al descodificarlo o lo esta bajando mal al json porq hay veses muy pocas donde entra perfecto y las otras tira ese error.
    Si me podrias ayudar te lo agradeseria porque este error a frenado todo el desarrollo que estaba haciendo desde ya gracias un saludo

  • Valeria

    hola, hice los cambios necesarios y cuando ingreso en la aplicacion usuario y contraseña me dice que son incorrectos, como soluciono esto ??

  • Hernan Serrano Morales

    Ya he hecho lo que indicas en las respuestas a estas preguntas: Ya
    modifique el codigo para mi servicio web, he creado un usuario y lo he
    comprobado en la BD y he entrado al sistema a traves de la web con el
    mismo usuario, pero nada.
    ¿Es que acaso ya existe una solucion? Por que no la veo publicada por ningun lado.

  • Hernan Serrano Morales

    el usuario y el password estan correctos pero en android me sigue indicando lo contrario. Descubri que el objeto JSON queda siempre en null

    • http://sebastiancipolat.com.ar sebastiancipolat

      Hola debe ser algo de tu servidor a muchas personas le anduvo lo que indica que el codigo esta bien. saludos

  • Nico

    Excelente tu tutorial amigo

  • Raul cacacho

    Si funciona solo que en windows sino se conecta pero desde debian si muy buen aporte gracias

    • http://sebastiancipolat.com.ar sebastiancipolat

      Hola, yo uso linux, pero en windows deberia andar bien tmb si le da problemas tienen que revisar la configuracion de su servidor local.
      saludos

  • Jorge Alejandro Lopez Perez

    Perdona la molestia, pero cuando lo ejecuto tanto en mi movil como en mi pc aparece que la clave o el usuario son incorrectos, en el eclipse aparece un error que dice algo como

    04-29 14:06:26.363: E/getpostresponse(6042): You don’t have permission to access /droidlogin/acces.php

    con otros errores, todo me funciono normal hasta el momento de correr la api, en ese momento manda esos errores. Espero puedas ayudarme.

    • http://sebastiancipolat.com.ar sebastiancipolat

      Hola, dale un vistazo a los permisos que tienen los archivos en el servidor, saludos.

  • Jose Luis Valentin Rodriguez

    Hola apenas vi tu publicacion, realmente me sirvio de mucho gracias.

  • Felipe Morales Aliaga

    Si alguno de ustedes tuvo este error “Unable to resolve target ‘android-8′” se soluciona instalando la api 8 desde el sdk manager

    • Felipe Morales Aliaga

      Muchas gracias por compartir el codigo

  • ANGEL AUGUSTO DIAZ OSPINA

    tengo este incoveniente:
    Fatal error: Call to undefined function json_encode() in C:AppServwwwdroidloginacces.php on line 20

  • Richard Apolinario

    me sale todo el lado de PHP, pero cuando lo ejecuto en la Aplicacion, siempre me sale un error dando a entender que me confundi en el usuario o la contraseña.

  • David Perez

    hola que tal,si quiero probarlo en un telefono solo basta con cambiar la ip o que as hay que cambiar??

  • Lukas

    Respecto al boton de back para volver a la pantalla de login, creo que lo mejor sería que una vez pulsado el boton actuase como el boton home así nos aseguramos de que solo entre en la pantalla login por el acceso de HiScreen

    @Override
    public void onBackPressed() {
    Intent backtoHome = new Intent(Intent.ACTION_MAIN);
    backtoHome.addCategory(Intent.CATEGORY_HOME);
    backtoHome.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(backtoHome);
    }

  • Mustafa Ali

    Disculpa al registrar a un usuario tengo este error.

    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/mustafa/Escritorio/WebDesign/droidlogin/funciones_bd.php on line 41

    Ha ocurrido un error.

  • mar

    tego prblemas con esta linea en la R
    setContentView(R.layout.lay_screen);

  • Iker

    Buenos Dias,

    Buenisimo el aporte, muchas gracias Sebastian!
    Me gustaria saber si se podria utilizar el metodo getserverdata de Httppostaux sin pasarle parametros, simplemente para obtener unos datos y actualizar un BD local.

    un saludo.

  • Kristian Arango

    Hola esta muy bueno el tutorial, ¿de que manera puedo implementar esto con un servidor http y una base de datos postgresql?. De ante mano gracias.

  • DAVIS ANDRES ALVAREZ VARGAS

    Hola,primero decirte que tu tutorial esta muy bueno, esta muy claro todo. lo que si tengo una duda. Como soy nuevo en esto recien aprendiendo del tema y no entiendo lo siguiente. Probe tu aplicacion en mi emulador del pc y ningun problema, despues lo probe en mi celular y no me muestra la informacion. como lo puedo hacer para que funcione y se conecte desde mi celular? Saludos

  • juan Diego

    Perfecto el ejemplo, lo descargue y lo configure para PostgreSQL y funciona a la perfección. Muchas gracias ya con esto puedo hacer muchas más cosas.
    Disculpa que “reviva” un post de hace 2 años :p

    • http://sebastiancipolat.com.ar sebastiancipolat

      me alegro, saludos

    • http://sebastiancipolat.com.ar sebastiancipolat

      Hola,
      Que bueno me alegro que te sirva y hallas podido ir mas allá del tutorial.
      Saludos

  • Kristian

    ¿Como puedo usar los datos de la base de datos, “nombre y apellido” y mostrarlos en el TextView?….

  • jose

    Buenísimo que bueno que hay personas que comparten su conocimiento, con una pregunta no tendras algun post en el que enseñes a hacer juegos y animaciones en android? de antemano gracias saludos desde Guatemala…

    • http://sebastiancipolat.com.ar sebastiancipolat

      Hola lo siento, no tengo nada de eso. saludos

  • Brayan

    Hola Sebastian, se pudo arreglar lo del Usuario y Password incorrecto ?? La verdad es que no se me ocurre como arreglarlo. Ya intente casi todo.

    Saludos.

  • Brayan

    Buenas, alguien con un error parecido …favor de responder

  • Anderson

    Hola un excelente post y muy útil, estuve tratando de hacer una
    conexión de una DB siguiendo los pasos que tu das, la parte de php
    me funciona muy bien al momento de hacer la validaciones.

    Pero en la parte de android tengo un problema me sale el mensaje
    de que usuario o claves incorrectos, le hice una debug al código de
    android para ver por que siempre me sale ese mensaje asi el usuario y
    la clave estén bien por que cuando pruebo con el login de php me
    devuelve [{"logstatus":"1"}] y el error es en la
    librería httppostaux en la linea HttpResponse
    _response = _httpcliente.execute(_Httppost); aca se devuelve al
    catch(Exception
    e), no pasa de esta linea si de pronto tienes una idea uy me puede
    colaborar q lo agradezco

    • http://sebastiancipolat.com.ar sebastiancipolat

      Hola, no se que excepcion esta devolviendo como para guiarte, pero en esa linea es cuando se hace la peticion al servidor, te recomiendo
      que trates de ver por que se genera la excepcion en ese punto.
      saludos

    • Sebastian Puebla

      Hola, yo lo que hice cuando no me funcionaba el logeo, fue resolver algunos detalles del archivo httpd.conf especificamente hablando en la parte donde dice ejemplo “require local” eso debes desactivarlo, y también debes tener en cuenta de que el celular se deba conectar desde el browser a tu localhost, con la IP, ejemplo 127.0.0.1, espero que se haya entendido, soy malo explicando pero cualquier duda me avisas.

  • Alvaro Doune

    La verdad muy buen tutorial para comenzar a entender el mundo Android con servicios REST, y lo mejor de todo es que hayas dejado todo el código!

    Un totorial de los buenos tiene que tener su respectivo repo en github

  • maya

    hola muchas gracias primeramente, a mi me sale todo perfecto, pero yo lo testeo en mi movil version android 4.4w y solamente se queda esperando y en logcat me dice que error al conectarse al http… refused sabes si es por la version???

  • jorge alexander valencia valen

    Excelente tutorial, amigo un favor como hacer lo mismo pero con Java o netbeans es decir el Webservice tiene un tutorial muchas gracias