Autore Topic: Login Form Android to Html  (Letto 1158 volte)

Offline lillogoal

  • Utente normale
  • ***
  • Post: 167
  • Respect: +4
    • Google+
    • lillosogliani
    • Mostra profilo
    • LilloNet
  • Dispositivo Android:
    Galaxy s3, Nexus 7,galaxy s advance,galaxy scl
  • Play Store ID:
    Lillonet Inc.
  • Sistema operativo:
    Windows 8,7 & Kali-Linux
Login Form Android to Html
« il: 25 Novembre 2013, 22:17:36 CET »
0
Salve a tutti,
vorrei capire come potrei realizzare un progetto su android che permetta di collegarti ad una pagina php o html (POST).
Ho trovate svariate guide online ma non ho ben capito molto, ma sopratutto ho provato e non funziona.
Ovviamente vorrei fare un login, di una pagina dove non posso accedere al database MYSQL.
Per ora ho provato così:
Classe AsyncTask:
Codice (Java): [Seleziona]
 private class Connection extends AsyncTask {
        String response = null;
        String value = null;
        String res;

        @Override

        protected Object doInBackground(Object... arg0) {

            ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();
            postParameters.add(new BasicNameValuePair("custcode", codschool.getText().toString()));
            postParameters.add(new BasicNameValuePair("login", id.getText().toString()));
            postParameters.add(new BasicNameValuePair("password", pw.getText().toString()));


            try {
                response = CustomHttpClient.executeHttpPost("link", postParameters);


                res=response.toString();
                res= res.replaceAll("\\s+","");

            } catch (Exception e) {
               // id.setText(e.toString());
            }

            return null;

        }

        @Override
        protected void onPostExecute(Object o) {
            if(res.equals("1"))
                error.setText("Correct Username or Password");
            else
                error.setText("Sorry!! Incorrect Username or Password");



        }

CustomHttpClient:
Codice (Java): [Seleziona]
public class CustomHttpClient {
    /** The time it takes for our client to timeout */
    public static final int HTTP_TIMEOUT = 30 * 1000; // milliseconds

    /** Single instance of our HttpClient */
    private static HttpClient mHttpClient;

    /**
     * Get our single instance of our HttpClient object.
     *
     * @return an HttpClient object with connection parameters set
     */

    private static HttpClient getHttpClient() {
        if (mHttpClient == null) {
            mHttpClient = new DefaultHttpClient();
            final HttpParams params = mHttpClient.getParams();
            HttpConnectionParams.setConnectionTimeout(params, HTTP_TIMEOUT);
            HttpConnectionParams.setSoTimeout(params, HTTP_TIMEOUT);
            ConnManagerParams.setTimeout(params, HTTP_TIMEOUT);
        }
        return mHttpClient;
    }

    /**
     * Performs an HTTP Post request to the specified url with the
     * specified parameters.
     *
     * @param url The web address to post the request to
     * @param postParameters The parameters to send via the request
     * @return The result of the request
     * @throws Exception
     */

    public static String executeHttpPost(String url, ArrayList<NameValuePair> postParameters) throws Exception {
        BufferedReader in = null;
        try {
            HttpClient client = new DefaultHttpClient();
            HttpPost request = new HttpPost(url);
            UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(postParameters);
            request.setEntity(formEntity);
            HttpResponse response = client.execute(request);
            in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

            StringBuffer sb = new StringBuffer("");
            String line = "";
            String NL = System.getProperty("line.separator");
            while ((line = in.readLine()) != null) {
                sb.append(line + NL);
            }
            in.close();

            String result = sb.toString();
            return result;
        } finally {
            if (in != null) {
                try {
                    in.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    /**
     * Performs an HTTP GET request to the specified url.
     *
     * @param url The web address to post the request to
     * @return The result of the request
     * @throws Exception
     */

    public static String executeHttpGet(String url) throws Exception {
        BufferedReader in = null;
        try {
            HttpClient client = getHttpClient();
            HttpGet request = new HttpGet();
            request.setURI(new URI(url));
            HttpResponse response = client.execute(request);
            in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

            StringBuffer sb = new StringBuffer("");
            String line = "";
            String NL = System.getProperty("line.separator");
            while ((line = in.readLine()) != null) {
                sb.append(line + NL);
            }
            in.close();

            String result = sb.toString();
            return result;
        } finally {
            if (in != null) {
                try {
                    in.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
Chi non progetta la sicurezza , programma il fallimento! K.M

Offline matttt

Re:Login Form Android to Html
« Risposta #1 il: 26 Novembre 2013, 08:25:33 CET »
0
Ciao Lillo.
Sono di fretta in sto periodo ma un commento lo butto lo stesso :)
Hai provato a fare una pagina PHP di debug per vedere se i parametri POST vengono passati correttamente?
Codice (PHP): [Seleziona]
<?php
var_dump( $_POST );
?>

Se la parte Android è apposto magari ti manca qualche parametro POST o qualche valore non è corretto.
Le mie apps su Google Play Store:

Offline lillogoal

  • Utente normale
  • ***
  • Post: 167
  • Respect: +4
    • Google+
    • lillosogliani
    • Mostra profilo
    • LilloNet
  • Dispositivo Android:
    Galaxy s3, Nexus 7,galaxy s advance,galaxy scl
  • Play Store ID:
    Lillonet Inc.
  • Sistema operativo:
    Windows 8,7 & Kali-Linux
Re:Login Form Android to Html
« Risposta #2 il: 26 Novembre 2013, 08:34:15 CET »
0
Provo, grazie mille ma non penso sia un questo il problema. .. mancherà qualcosa...
Ad esempio:
Codice (Java): [Seleziona]
postParameters.add(new BasicNameValuePair("login", id.getText().toString()));Nei parametri del basicnamevalue ... cosa devo passargli? Gli ho passato il nome del campo input della text del form login sbaglio?
Chi non progetta la sicurezza , programma il fallimento! K.M

Offline matttt

Re:Login Form Android to Html
« Risposta #3 il: 27 Novembre 2013, 10:09:58 CET »
0
Da una rapida occhiata al tuo codice mi sembra apposto.
Qui c'è un semplice esempio:
Executing a HTTP POST Request with HttpClient - Android Snippets

Per quello ti suggerisco di debuggare bene tramite uno script PHP.
Una volta appurato che i parametri POST vengono passati correttamente puoi cercare le cause altrove... ad esempio controllare bene di aver passato tutti i parametri per il login e che i valori siano tutti corretti (a volte in alcuni siti ci sono dei campi hidden o degli ID senza i quali anche con username a password corretti il login non prosegue)
Le mie apps su Google Play Store:

Offline lillogoal

  • Utente normale
  • ***
  • Post: 167
  • Respect: +4
    • Google+
    • lillosogliani
    • Mostra profilo
    • LilloNet
  • Dispositivo Android:
    Galaxy s3, Nexus 7,galaxy s advance,galaxy scl
  • Play Store ID:
    Lillonet Inc.
  • Sistema operativo:
    Windows 8,7 & Kali-Linux
Re:Login Form Android to Html
« Risposta #4 il: 27 Novembre 2013, 13:02:42 CET »
0
Ho analizzato il codice degli input text username ha l'id ma la password  non ha l'id... come potrei fare?
Hai capito?  Eccoti i codici degli input:
Codice: [Seleziona]
<input class="input_account idesk-force-focus" type="text" id="custcode" placeholder=" Codice scuola" name="custcode" value=""  tabindex="1"
style="width:95%;border-radius: 5px; border: 1px solid #aaaaaa; color: #ff0000; height: 30px; font-size: 16px; padding-left: 4px; "/>

<input class="input_account idesk-force-focus" type="text" id="login"   placeholder=" Codice utente o e-mail" name="login"  value=""  tabindex="2"
style="width:95%; border-radius: 5px; border: 1px solid #aaaaaa; color: #ff0000; height: 30px; font-size: 16px; padding-left: 4px;"/>

<input class="input_account idesk-force-focus" type="password"  placeholder=" Password" name="password"  value=""  tabindex="3"
style="width:95%;border-radius: 5px; border: 1px solid #aaaaaa; color: #ff0000; height: 30px; font-size: 16px; padding-left: 4px;"/>

Ho trovato questo tutorial: http://stackoverflow.com/questions/2793150/how-to-use-java-net-urlconnection-to-fire-and-handle-http-requests
Secondo te va bene? non l'ho ben capito(ho iniziato a leggerlo).
« Ultima modifica: 27 Novembre 2013, 15:40:58 CET da lillogoal »
Chi non progetta la sicurezza , programma il fallimento! K.M

Offline matttt

Re:Login Form Android to Html
« Risposta #5 il: 29 Novembre 2013, 09:40:58 CET »
0
Ok ma... se fai la paginetta PHP di debug che ti dicevo... riesci a ricevere i parametri giusti?
Dovresti passare prima questo punto secondo me.

Altra cosa... parli di "id" nella tua scorsa risposta... in un form non lavori con gli "id" ma con "name".
Quindi in questo caso i parametri che ti interessano sono: "custcode", "login" e "password" (minuscoli)

Quando io parlavo di ID mi riferivo ad eventuali parametri POST (quindi tag HTML INPUT) con nome ID-qualcosa da non ignorare... ma se il form ha solo la parte che hai incollato qui direi che hai solo questi 3 campi per il login...
Le mie apps su Google Play Store:

Offline lillogoal

  • Utente normale
  • ***
  • Post: 167
  • Respect: +4
    • Google+
    • lillosogliani
    • Mostra profilo
    • LilloNet
  • Dispositivo Android:
    Galaxy s3, Nexus 7,galaxy s advance,galaxy scl
  • Play Store ID:
    Lillonet Inc.
  • Sistema operativo:
    Windows 8,7 & Kali-Linux
Re:Login Form Android to Html
« Risposta #6 il: 29 Novembre 2013, 10:21:21 CET »
0
Ok allora i name sono come pensavo... però niente ho provato di tutto... per la pagina di debug appena riesco.
Intanto se riuscissi a risolvere sarebbe l'ideale
Chi non progetta la sicurezza , programma il fallimento! K.M