Ver Mensaje Individual
  #13 (permalink)  
Antiguo 07/12/2015, 14:51
Avatar de satjaen
satjaen
 
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 11 años, 7 meses
Puntos: 10
Respuesta: Conexión a Base de datos Mysql

ok.

Código HTML:
Ver original
  1. 12-07 21:46:18.754 2387-2442/test.Droidlogin E/log_tag: Error in http connection java.lang.IllegalArgumentException: Host name may not be null
  2. 12-07 21:46:19.781 2387-2442/test.Droidlogin E/JSON: ERROR
  3. 12-07 21:46:19.990 2387-2387/test.Droidlogin E/onPostExecute=: err
  4. 12-07 21:46:20.263 2387-2394/test.Droidlogin W/art: Suspending all threads took: 212.480ms
  5. 12-07 21:46:20.615 2387-2394/test.Droidlogin W/art: Suspending all threads took: 5.939ms
  6. 12-07 21:46:21.981 2387-2387/test.Droidlogin I/Choreographer: Skipped 130 frames!  The application may be doing too much work on its main thread.
  7. 12-07 21:46:40.783 2387-2394/test.Droidlogin W/art: Suspending all threads took: 70.790ms


Siempre me dice: "Error:Nombre de usuario o password incorrectos"


Código Java:
Ver original
  1. import java.util.ArrayList;
  2. import org.apache.http.NameValuePair;
  3. import org.apache.http.message.BasicNameValuePair;
  4. import org.json.JSONArray;
  5. import org.json.JSONException;
  6. import org.json.JSONObject;
  7. import test.Droidlogin.library.Httppostaux;
  8. import android.app.Activity;
  9. import android.app.ProgressDialog;
  10. import android.content.Context;
  11. import android.content.Intent;
  12. import android.net.Uri;
  13. import android.os.AsyncTask;
  14. import android.os.Bundle;
  15. import android.os.SystemClock;
  16. import android.os.Vibrator;
  17. import android.util.Log;
  18. import android.view.View;
  19. import android.widget.Button;
  20. import android.widget.EditText;
  21. import android.widget.TextView;
  22. import android.widget.Toast;
  23.  
  24. public class Login extends Activity {
  25.     /** Called when the activity is first created. */
  26.    
  27.     EditText user;
  28.     EditText pass;
  29.     Button blogin;
  30.     TextView registrar;
  31.     Httppostaux post;
  32.     String IP_Server="";//IP DE NUESTRO PC
  33.     String URL_connect="http://"+IP_Server+"www.midomnio.es/droidlogin/acces.php";//ruta en donde estan nuestros archivos
  34.  
  35.     boolean result_back;
  36.     private ProgressDialog pDialog;
  37.    
  38.     @Override
  39.     public void onCreate(Bundle savedInstanceState) {
  40.  
  41.         super.onCreate(savedInstanceState);
  42.         setContentView(R.layout.main);
  43.         post=new Httppostaux();
  44.        
  45.         user= (EditText) findViewById(R.id.edusuario);
  46.         pass= (EditText) findViewById(R.id.edpassword);
  47.         blogin= (Button) findViewById(R.id.Blogin);
  48.         registrar=(TextView) findViewById(R.id.link_to_register);
  49.                    
  50.         //Login button action
  51.         blogin.setOnClickListener(new View.OnClickListener(){
  52.        
  53.             public void onClick(View view){
  54.                  
  55.                 //Extreamos datos de los EditText
  56.                 String usuario=user.getText().toString();
  57.                 String passw=pass.getText().toString();
  58.                
  59.                 //verificamos si estan en blanco
  60.                 if( checklogindata( usuario , passw )==true){
  61.  
  62.                     //si pasamos esa validacion ejecutamos el asynctask pasando el usuario y clave como parametros
  63.                    
  64.                 new asynclogin().execute(usuario,passw);                               
  65.                                
  66.                
  67.                 }else{
  68.                     //si detecto un error en la primera validacion vibrar y mostrar un Toast con un mensaje de error.
  69.                     err_login();
  70.                 }
  71.                
  72.             }
  73.                                                             });
  74.        
  75.         registrar.setOnClickListener(new View.OnClickListener(){
  76.            
  77.             public void onClick(View view){
  78.                
  79.                 //Abre el navegador al formulario adduser.html
  80.                 String url = "http://"+IP_Server+"/www.midomnio.es/droidlogin/adduser.html";
  81.                 Intent i = new Intent(Intent.ACTION_VIEW);
  82.                 i.setData(Uri.parse(url));
  83.                 startActivity(i);              
  84.                                         }          
  85.                                                                 });
  86.                
  87.     }
  88.    
  89.     //vibra y muestra un Toast
  90.     public void err_login(){
  91.         Vibrator vibrator =(Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
  92.         vibrator.vibrate(200);
  93.         Toast toast1 = Toast.makeText(getApplicationContext(),"Error:Nombre de usuario o password incorrectos", Toast.LENGTH_SHORT);
  94.         toast1.show();     
  95.     }
  96.    
  97.    
  98.     /*Valida el estado del logueo solamente necesita como parametros el usuario y passw*/
  99.     public boolean loginstatus(String username ,String password ) {
  100.         int logstatus=-1;
  101.        
  102.         /*Creamos un ArrayList del tipo nombre valor para agregar los datos recibidos por los parametros anteriores
  103.          * y enviarlo mediante POST a nuestro sistema para relizar la validacion*/
  104.         ArrayList<NameValuePair> postparameters2send= new ArrayList<NameValuePair>();
  105.            
  106.                     postparameters2send.add(new BasicNameValuePair("usuario",username));
  107.                     postparameters2send.add(new BasicNameValuePair("password",password));
  108.  
  109.            //realizamos una peticion y como respuesta obtenes un array JSON
  110.             JSONArray jdata=post.getserverdata(postparameters2send, URL_connect);
  111.  
  112.             /*como estamos trabajando de manera local el ida y vuelta sera casi inmediato
  113.              * para darle un poco realismo decimos que el proceso se pare por unos segundos para poder
  114.              * observar el progressdialog
  115.              * la podemos eliminar si queremos
  116.              */
  117.             SystemClock.sleep(950);
  118.                    
  119.             //si lo que obtuvimos no es null
  120.                 if (jdata!=null && jdata.length() > 0){
  121.  
  122.                     JSONObject json_data; //creamos un objeto JSON
  123.                     try {
  124.                         json_data = jdata.getJSONObject(0); //leemos el primer segmento en nuestro caso el unico
  125.                          logstatus=json_data.getInt("logstatus");//accedemos al valor
  126.                          Log.e("loginstatus","logstatus= "+logstatus);//muestro por log que obtuvimos
  127.                     } catch (JSONException e) {
  128.                         // TODO Auto-generated catch block
  129.                         e.printStackTrace();
  130.                     }                  
  131.                      
  132.                     //validamos el valor obtenido
  133.                      if (logstatus==0){// [{"logstatus":"0"}]
  134.                          Log.e("loginstatus ", "invalido");
  135.                          return false;
  136.                      }
  137.                      else{// [{"logstatus":"1"}]
  138.                          Log.e("loginstatus ", "valido");
  139.                          return true;
  140.                      }
  141.                      
  142.               }else{    //json obtenido invalido verificar parte WEB.
  143.                          Log.e("JSON  ", "ERROR");
  144.                         return false;
  145.               }
  146.        
  147.     }
  148.    
  149.          
  150.     //validamos si no hay ningun campo en blanco
  151.     public boolean checklogindata(String username ,String password ){
  152.        
  153.     if  (username.equals("") || password.equals("")){
  154.         Log.e("Login ui", "checklogindata user or pass error");
  155.     return false;
  156.    
  157.     }else{
  158.        
  159.         return true;
  160.     }
  161.    
  162. }          
  163.    
  164. /*      CLASE ASYNCTASK
  165.  *
  166.  * usaremos esta para poder mostrar el dialogo de progreso mientras enviamos y obtenemos los datos
  167.  * podria hacerse lo mismo sin usar esto pero si el tiempo de respuesta es demasiado lo que podria ocurrir    
  168.  * si la conexion es lenta o el servidor tarda en responder la aplicacion sera inestable.
  169.  * ademas observariamos el mensaje de que la app no responde.    
  170.  */
  171.    
  172.     class asynclogin extends AsyncTask< String, String, String > {
  173.          
  174.         String user,pass;
  175.         protected void onPreExecute() {
  176.             //para el progress dialog
  177.             pDialog = new ProgressDialog(Login.this);
  178.             pDialog.setMessage("Autenticando....");
  179.             pDialog.setIndeterminate(false);
  180.             pDialog.setCancelable(false);
  181.             pDialog.show();
  182.         }
  183.  
  184.         protected String doInBackground(String... params) {
  185.             //obtnemos usr y pass
  186.             user=params[0];
  187.             pass=params[1];
  188.            
  189.             //enviamos y recibimos y analizamos los datos en segundo plano.
  190.             if (loginstatus(user,pass)==true){                     
  191.                 return "ok"; //login valido
  192.             }else{         
  193.                 return "err"; //login invalido                   
  194.             }
  195.            
  196.         }
  197.        
  198.         /*Una vez terminado doInBackground segun lo que halla ocurrido
  199.         pasamos a la sig. activity
  200.         o mostramos error*/
  201.         protected void onPostExecute(String result) {
  202.  
  203.            pDialog.dismiss();//ocultamos progess dialog.
  204.            Log.e("onPostExecute=",""+result);
  205.            
  206.            if (result.equals("ok")){
  207.  
  208.                 Intent i=new Intent(Login.this, HiScreen.class);
  209.                 i.putExtra("user",user);
  210.                 startActivity(i);
  211.                
  212.             }else{
  213.                 err_login();
  214.             }
  215.            
  216.                                                     }
  217.        
  218.         }
  219.  
  220.     }
  221.    
  222.  
  223.    
  224.      
  225.     //-----------------------------------------------------------------------