Jump to content
Sign in to follow this  
martinhocosta

Ajuda com Eclipse, Android, MySQL e PHP

Recommended Posts

martinhocosta

boas....

eu tenho um probema com o meu codigo e nao estou a conseguir exprimentar um toturial

tenho classes php na pasta www do servidor wamp e até ai lindamente consigo adicionar a base dados

na parte android tambem aparentente parece estar tudo bem mas, tenho o seguinte erro...

11-27 14:08:55.202: E/getpostresponse(337): result= <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

11-27 14:08:55.202: E/getpostresponse(337): <html><head>

11-27 14:08:55.202: E/getpostresponse(337): <title>403 Forbidden</title>

11-27 14:08:55.202: E/getpostresponse(337): </head><body>

11-27 14:08:55.202: E/getpostresponse(337): <h1>Forbidden</h1>

11-27 14:08:55.202: E/getpostresponse(337): <p>You don't have permission to access /droidlogin/acces.php

11-27 14:08:55.202: E/getpostresponse(337): on this server.</p>

11-27 14:08:55.202: E/getpostresponse(337): </body></html>

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

podem-me audar a sair deste problema.

este é o meu login para a autenticação

package test.Droidlogin;
/*CREADO POR SEBASTIAN CIPOLAT*/
import java.util.ArrayList;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import test.Droidlogin.library.Httppostaux;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.SystemClock;
import android.os.Vibrator;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class Login extends Activity {
/** Called when the activity is first created. */

EditText user;
EditText pass;
Button blogin;
TextView registrar;
Httppostaux post;
// String URL_connect="http://www.scandroidtest.site90.com/acces.php";
String IP_Server="192.168.1.104";//IP DE NUESTRO PC
String URL_connect="http://"+IP_Server+"/droidlogin/acces.php";//ruta en donde estan nuestros archivos

boolean result_back;
private ProgressDialog pDialog;

@Override
public void onCreate(Bundle savedInstanceState) {

	super.onCreate(savedInstanceState);
	setContentView(R.layout.main);
	post=new Httppostaux();

	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);

	//Login button action
	blogin.setonclickListener(new View.onclickListener(){

		public void onclick(View view){

			//Extreamos datos de los EditText
			String usuario=user.getText().toString();
			String passw=pass.getText().toString();

			//verificamos si estan en blanco
			if( checklogindata( usuario , passw )==true){

				//si pasamos esa validacion ejecutamos el asynctask pasando el usuario y clave como parametros

			new asynclogin().execute(usuario,passw);							  


			}else{
				//si detecto un error en la primera validacion vibrar y mostrar un Toast con un mensaje de error.
				err_login();
			}

		}
														});

	registrar.setonclickListener(new View.onclickListener(){

		public void onclick(View view){

			//Abre el navegador al formulario adduser.html
			String url = "http://"+IP_Server+"/droidlogin/adduser.html";
			Intent i = new Intent(Intent.ACTION_VIEW);
			i.setData(Uri.parse(url));
			startActivity(i);				
									}			
															});

}

//vibra y muestra un Toast
public void err_login(){
	Vibrator vibrator =(Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
	vibrator.vibrate(200);
	Toast toast1 = Toast.makeText(getApplicationContext(),"Error:Nombre de usuario o password incorrectos", Toast.LENGTH_SHORT);
	 toast1.show();		
}


/*Valida el estado del logueo solamente necesita como parametros el usuario y passw*/
public boolean loginstatus(String username ,String password ) {
	int logstatus=-1;

	/*Creamos un ArrayList del tipo nombre valor para agregar los datos recibidos por los parametros anteriores
	 * y enviarlo mediante POST a nuestro sistema para relizar la validacion*/
	ArrayList<NameValuePair> postparameters2send= new ArrayList<NameValuePair>();

				postparameters2send.add(new BasicNameValuePair("usuario",username));
				postparameters2send.add(new BasicNameValuePair("password",password));

	   //realizamos una peticion y como respuesta obtenes un array JSON
		  JSONArray jdata=post.getserverdata(postparameters2send, URL_connect);

		  /*como estamos trabajando de manera local el ida y vuelta sera casi inmediato
		   * para darle un poco realismo decimos que el proceso se pare por unos segundos para poder
		   * observar el progressdialog
		   * la podemos eliminar si queremos
		   */
		SystemClock.sleep(950);

		//si lo que obtuvimos no es null
			if (jdata!=null && jdata.length() > 0){

				JSONObject json_data; //creamos un objeto JSON
				try {
					json_data = jdata.getJSONObject(0); //leemos el primer segmento en nuestro caso el unico
					 logstatus=json_data.getInt("logstatus");//accedemos al valor
					 Log.e("loginstatus","logstatus= "+logstatus);//muestro por log que obtuvimos
				} catch (JSONException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}					

				//validamos el valor obtenido
				 if (logstatus==0){// [{"logstatus":"0"}]
					 Log.e("loginstatus ", "invalido");
					 return false;
				 }
				 else{// [{"logstatus":"1"}]
					 Log.e("loginstatus ", "valido");
					 return true;
				 }

		  }else{	//json obtenido invalido verificar parte WEB.
					 Log.e("JSON  ", "ERROR");
					return false;
		  }

}


//validamos si no hay ningun campo en blanco
public boolean checklogindata(String username ,String password ){

if	 (username.equals("") || password.equals("")){
	Log.e("Login ui", "checklogindata user or pass error");
return false;

}else{

	return true;
}

}		  

/*		CLASE ASYNCTASK
*
* usaremos esta para poder mostrar el dialogo de progreso mientras enviamos y obtenemos los datos
* podria hacerse lo mismo sin usar esto pero si el tiempo de respuesta es demasiado lo que podria ocurrir	
* si la conexion es lenta o el servidor tarda en responder la aplicacion sera inestable.
* ademas observariamos el mensaje de que la app no responde.	
*/

class asynclogin extends AsyncTask< String, String, String > {

	String user,pass;
	protected void onPreExecute() {
		//para el progress dialog
		pDialog = new ProgressDialog(Login.this);
		pDialog.setMessage("Autenticando....");
		pDialog.setIndeterminate(false);
		pDialog.setCancelable(false);
		pDialog.show();
	}

	protected String doInBackground(String... params) {
		//obtnemos usr y pass
		user=params[0];
		pass=params[1];

		//enviamos y recibimos y analizamos los datos en segundo plano.
		if (loginstatus(user,pass)==true){						
			return "ok"; //login valido
		}else{			
			return "err"; //login invalido						
		}

	}

	/*Una vez terminado doInBackground segun lo que halla ocurrido
	pasamos a la sig. activity
	o mostramos error*/
	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);

		}else{
			err_login();
		}

         }

	}

}

Edited by Rui Carlos
GeSHi

Share this post


Link to post
Share on other sites
bioshock

Fugindo um bocado ao tópico, já pensas-te em trabalhar com KSOAP2?

Se fosse KSOAP2 até te podia ajudar, pois trabalho com isso diariamente.

Share this post


Link to post
Share on other sites
HappyHippyHippo

Fugindo um bocado ao tópico, já pensas-te em trabalhar com KSOAP2?

Se fosse KSOAP2 até te podia ajudar, pois trabalho com isso diariamente.

ksoap2 !! demasiado fácil ... não dá pica :D


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
bioshock

ksoap2 !! demasiado fácil ... não dá pica :D

E o objectivo é trabalhar hardcore? :cheesygrin:

Share this post


Link to post
Share on other sites
martinhocosta

tenho aqui uma duvida....

neste momento estou a utilizar

eclipse + Wamp Servidor + php + Mysql....

no php ta optimo 5*

mais mysql

mas no que diz respeito ao eclipse e depois de andar a pesquisar como posso ou o que o KSOAP2 pode ser resolver o meu problema

pois nos toturiais que li nenhum falava deste Ksoap2!!!

cumprimentos

Share this post


Link to post
Share on other sites
HappyHippyHippo

o ksoap2-android é uma biblioteca que que simplifica o consumo de webservices no android

o que perguntas não diz nada sobre uma dúvida em concreto ... afinal o que queres ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.