Autore Topic: Problema con parsing PHP  (Letto 1306 volte)

Offline ibrido90

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Ace
Problema con parsing PHP
« il: 02 Settembre 2012, 16:49:56 CEST »
0
Ciao sto costruendo un semplice form di login per imparare a scambiare dati tra un'app client ed una server in php-mysql vi posto i codici :
android_login.php :

Codice (PHP): [Seleziona]
<?php
        session_start();
        $json = $_SERVER['HTTP_JSON'];
       
        $data = json_decode($json);
       
        $email = $data->mymail;

        $pwd= $data->password;
       
       
        $link = mysql_connect("localhost","root","password") or die("Errore in connessione");
       
        mysql_select_db("db");
       
        $sql = mysql_query("SELECT  nome FROM log where mail = '$email' AND password = '$pwd'");
        while($row=mysql_fetch_assoc($sql)){
                $output[]=$row;
                }
        print(json_encode($output));
        mysql_close();
       
?>     
Easy.java
Codice (Java): [Seleziona]
package easy.log;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class Easy extends Activity {
    /** Called when the activity is first created. */
        EditText mailEt;
        EditText pwdEt;
        Button log;
        String mail;
        String pwd;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);  
        mailEt = (EditText)findViewById(R.id.mail);
        pwdEt = (EditText)findViewById(R.id.pwd);
        log = (Button)findViewById(R.id.log);
        log.setOnClickListener(new OnClickListener(){

                        @Override
                        public void onClick(View arg0) {
                                // TODO Auto-generated method stub
                                mail = mailEt.getText().toString();
                                pwd = pwdEt.getText().toString();
                               
                                try{
                                        postData();
                                }catch(JSONException e){
                                        e.printStackTrace();
                                }
                               
                                startActivity(new Intent(getApplicationContext(), Show.class));
                        }
               
        });
    }
   
    public void postData() throws JSONException{
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("http://web/androidlogin.php");
        JSONObject json = new JSONObject();
       
        try{
                json.put("mymail", mail);
                json.put("password", pwd);
               
                JSONArray postjson = new JSONArray();
                postjson.put(json);
               
                httppost.setHeader("json", json.toString());
                httppost.getParams().setParameter("jsonpost", postjson);
               
                System.out.print(json);
                HttpResponse response = httpclient.execute(httppost);
        }catch (IOException e){
               
        }
    }
}
Show.java
Codice (Java): [Seleziona]
package easy.log;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.ParseException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import android.widget.Toast;

public class Show extends Activity{
       
        TextView tv;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);
                setContentView(R.layout.logged);
               
                tv = (TextView)findViewById(R.id.mTv);
               
        String result = null;
                InputStream is = null;
                StringBuilder sb=null;

                //http post
                try{
                        HttpClient httpclient = new DefaultHttpClient();
                        HttpPost httppost = new HttpPost("http://web/androidlogin.php");
       
                        HttpResponse response = httpclient.execute(httppost);
                        HttpEntity entity = response.getEntity();
                        is = entity.getContent();
                }catch(Exception e){
                        Log.e("log_tag", "Error in http connection"+e.toString());
                }
               
                try{
                        BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);;
                        sb = new StringBuilder();
                        sb.append(reader.readLine() + "\n");
                        String line = "0";
                       
                        while((line = reader.readLine()) != null){
                                sb.append(line + "\n");
                        }
                       
                        is.close();
                        result = sb.toString();
                }catch(Exception e){
                       
                }
               
               
                String nome = "";
               
                try{
                        JSONArray jArray = new JSONArray(result);
                        JSONObject json_data = null;
                       
                        for(int i = 0; i< jArray.length();i++){
                                json_data = jArray.getJSONObject(i);
                                nome = json_data.getString("nome");
                        }
                       
                        tv.setText(nome);
                }catch(JSONException e){
                        Toast.makeText(getBaseContext(), "Nessun utente", Toast.LENGTH_LONG).show();
                }catch(ParseException e){
                        e.printStackTrace();
                }
    }
       
}

il problema e' k viene sempre fuori il Toast che dice "nessun utente"

Grazie x l'attenzione :P
Yes i am noob :)

Offline ibrido90

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Ace
Re:Problema con parsing PHP
« Risposta #1 il: 02 Settembre 2012, 20:17:29 CEST »
0
please help!!  :'(
Yes i am noob :)

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
R: Re:Problema con parsing PHP
« Risposta #2 il: 02 Settembre 2012, 20:50:38 CEST »
0
please help!!  :'(

Non servono messaggi del genere, basta postare nella sezione giusta ed aspettare.

Inviato dal mio Galaxy Nexus con Tapatalk 2

Offline ibrido90

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Ace
Re:R: Re:Problema con parsing PHP
« Risposta #3 il: 02 Settembre 2012, 20:53:47 CEST »
0
Non servono messaggi del genere, basta postare nella sezione giusta ed aspettare.


si beh non essendo sicuro della correttezza della sezione.... xD
Yes i am noob :)

Offline ibrido90

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Ace
Re:Problema con parsing PHP
« Risposta #4 il: 03 Settembre 2012, 09:54:51 CEST »
0
Ciao a tutti ieri ho scritto dell'altro codice ma il problema credo sia lo stesso ora posto:
Codice (PHP): [Seleziona]
<?php
       
        $link = mysql_connect("localhost","root","password") or die("Errore in connessione");
       
        mysql_select_db("db");
       
        $mail = $_REQUEST['mail'];
       
        $sql = mysql_query("SELECT * FROM log where mail = '$mail'");
        while($row=mysql_fetch_assoc($sql)){
                $output[]=$row;
                }
        print(json_encode($output));
        mysql_close();
       
?>
la nuova classe:
Codice (Java): [Seleziona]
package easy.log;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class Easy extends Activity {
    /** Called when the activity is first created. */
        EditText mailEt;
        EditText pwdEt;
        Button log;
        String mail;
        String pwd;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);  
        mailEt = (EditText)findViewById(R.id.mail);
        pwdEt = (EditText)findViewById(R.id.pwd);
       
        log = (Button)findViewById(R.id.log);
        log.setOnClickListener(new OnClickListener(){

                        @Override
                        public void onClick(View arg0) {
                                // TODO Auto-generated method stub
                                mail = mailEt.getText().toString();
                                pwd = pwdEt.getText().toString();
                                try{
                                        postData();
                                }catch(JSONException e){
                                        e.printStackTrace();
                                }
                               
                                //startActivity(new Intent(getApplicationContext(), Show.class));
                        }
               
        });
    }
   
    public void postData() throws JSONException{
        String result = "";
        ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
        nameValuePairs.add(new BasicNameValuePair("mail",mail));
        InputStream is = null ;
       
        try{
                HttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new HttpPost("http://thorengardgame.altervista.org/Server/androidlogin.php");
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
             is = entity.getContent();
        }catch(Exception e){
                Log.e("log_tag", "Error in http connection "+e.toString());
        }
       
        try{
             
                        BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                    sb.append(line + "\n");
            }
            is.close();
     
            result=sb.toString();
    }catch(Exception e){
            Log.e("log_tag", "Error converting result "+e.toString());
    }
   
        try{
                Log.i("result : ", result.toString());
            JSONArray jArray = new JSONArray(result);
            for(int i=0;i<jArray.length();i++){
                    JSONObject json_data = jArray.getJSONObject(i);
                    Log.i("log_tag", "id: "+json_data.getInt("id")+
                                ", name: "+json_data.getString("mail")+
                                ", password: "+json_data.getString("password"));
            }
        }catch(JSONException e){
            Log.e("log_tag", "Error parsing data "+e.toString());
   
        }
    }
}

Il problema è che non stampa Log.i() e quindi non so proprio dove sbattere la testa!!  :-(
Yes i am noob :)

Offline ibrido90

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Ace
Re:Problema con parsing PHP
« Risposta #5 il: 03 Settembre 2012, 11:18:50 CEST »
0
Ho risolto...posto un mini tutorial!! :)
Yes i am noob :)

Offline Ideandro

  • Nuovo arrivato
  • *
  • Post: 1
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S Plus
Re:Problema con parsing PHP
« Risposta #6 il: 21 Novembre 2012, 10:07:14 CET »
0
Ho risolto...posto un mini tutorial!! :)

Sarebbe utile questo mini tutorial ma non lo trovo... saresti così gentile da indicarmi dov'è?
Grazie.