Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Connessione android pagina php

    Buongiorno a tutti io dovrei connettere e mandare dai dati ad una pagina php da un'activity

    //--------------------------------------------------------------------------------------------------------------
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    androidaddingBottom="@dimen/activity_vertical_margin"
    androidaddingLeft="@dimen/activity_horizontal_margin"
    androidaddingRight="@dimen/activity_horizontal_margin"
    androidaddingTop="@dimen/activity_vertical_margin"
    tools:context="aa.slider_2.MainActivity">

    <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="EMAIL"
    android:layout_marginTop="55dp"
    android:id="@+id/textEmail"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true" />

    <EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:inputType="textEmailAddress"
    android:ems="10"
    android:id="@+id/email_box"
    android:layout_below="@+id/textEmail"
    android:layout_centerHorizontal="true" />


    <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="PASSWORD"
    android:layout_marginTop="150dp"
    android:id="@+id/textpsw"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true" />

    <EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:inputType="textPassword"
    android:ems="10"
    android:layout_below="@+id/textpsw"
    android:layout_alignLeft="@+id/email_box"
    android:layout_alignStart="@+id/email_box"
    android:id="@+id/psw_box" />

    <Button
    android:text="ACCEDI"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/btn_accedi"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true" />

    </RelativeLayout>
    //-------------------------------------------------------------------------------------------------------------


    JAVA

    package aa.slider_2;

    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View.OnClickListener;
    import android.view.View;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import android.widget.Button;
    import android.widget.EditText;
    import android.content.Intent;
    import android.app.Activity;
    import java.io.IOException;
    import java.io.*;
    import java.net.URLEncoder;


    //ricorda che quando implementi onclicklistener devi richiamare obbligatoriamente il metodo unclick()
    public class MainActivity extends Activity implements OnClickListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //------------------------------------------------------------------------------------------
    //metto listener il bottone
    final Button btn_accedi = (Button) findViewById(R.id.btn_accedi);
    btn_accedi.setOnClickListener(this);
    }

    public void onClick(View v) {
    // TODO Auto-generated method stub
    switch ( v.getId() ) {
    case R.id.btn_accedi:
    final EditText email = (EditText) findViewById(R.id.email_box);
    final EditText password = (EditText) findViewById(R.id.psw_box);
    //-------------------------------------------------------------------------------------
    try {
    // recuperare il testo inserito dall'utente
    String post_email_1 = email.getText().toString();
    String post_psw_1 = password.getText().toString();


    // codifico le coppie di dati da inviare
    String post_email_2 = URLEncoder.encode("post_email", "UTF-8") + "=" + URLEncoder.encode(post_email_1, "UTF-8");
    String post_psw_2 = URLEncoder.encode("post_password", "UTF-8") + "=" + URLEncoder.encode(post_psw_1, "UTF-8");

    //SCELGO DOVE URL E INZIO LA CONNESIONE
    URL paginaURL = new URL("https://www.malebee.cloud/webservice/log-in/log.php");
    HttpURLConnection client = (HttpURLConnection) paginaURL.openConnection();

    // se devo inviare il dato in POST
    client.setDoOutput(true);
    client.setChunkedStreamingMode(0);

    // scrivo nello stream di uscita
    OutputStreamWriter wr = new OutputStreamWriter(client.getOutputStream());
    wr.write(post_email_2 + post_psw_2);
    wr.flush();
    wr.close();


    }catch (Exception e){}
    break;
    }
    }
    }

    //-----------------------------------------------------------------------------------
    PAGINA PHP

    <?php
    //file di log
    //controllo richieste accessi ( se sono troppe qualcosa non va)
    $mail = ""; $p="";
    require_once("log-in-class.php");
    if ( isset( $_POST["post_email"] )
    {
    $mail = $_POST["post_email"];
    if( isset( $_POST["post_password"] )
    {
    $p = $_POST["post_password"];
    }
    }
    $Access = new LogIn_DBoperations ( $mail, $p );
    $Access->checkAccess();
    $Access->replyWithXML();
    ?>

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da alex.catto Visualizza il messaggio
    dovrei connettere e mandare dai dati ad una pagina php da un'activity
    Ok .. e quali sono i dubbi e/o problemi?

    Di problema "tecnico" ne vedo sicuramente almeno uno. Quando si inviano in POST i parametri secondo il content type application/x-www-form-urlencoded, nome e valore vanno separati da un = (e questo lo fai, ok) ma più coppie nome/valore vanno separate da & (e questo invece non lo fai).

    In sostanza:

    Errato:
    wr.write(post_email_2 + post_psw_2);

    Corretto:
    wr.write(post_email_2 + "&" + post_psw_2);



    P.S. sul forum per cortesia NON postare codice "colorato" (è difficile quotarlo). Posta solo il codice puro mettendolo tra i tag [CODE] [/CODE]
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Ok, grazie. Non so come si può ricevere i dati in XML e convertirli in dati da poter utilizzare.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da alex.catto Visualizza il messaggio
    Non so come si può ricevere i dati in XML e convertirli in dati da poter utilizzare.
    Un documento XML generalmente lo si genera/legge/manipola tramite apposite librerie e ci sono diverse tecniche di parsing/binding. Normalmente non lo si manipola usando banali operazioni sulle stringhe. XML è complesso come regole e sintassi, non si lavora "a mano" come testo.

    Quindi dipende da che tipo di XML è e cosa rappresenta (mostra un esempio, se puoi) e da cosa devi farci.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Ciao.
    Grazie per la tua risposta.
    Avrei un altro problema cioè che ogni volta che clicco su accedi mi da l'exception

    CODICE:
    case R.id.btn_accedi:
    final EditText email = (EditText) findViewById(R.id.email_box);
    final EditText password = (EditText) findViewById(R.id.psw_box);
    //-------------------------------------------------------------------------------------
    try {
    // recuperare il testo inserito dall'utente
    String post_email_1 = email.getText().toString();
    String post_psw_1 = password.getText().toString();


    // codifico le coppie di dati da inviare
    String post_email_2 = URLEncoder.encode("post_email", "UTF-8") + "=" + URLEncoder.encode(post_email_1, "UTF-8");
    String post_psw_2 = URLEncoder.encode("post_password", "UTF-8") + "=" + URLEncoder.encode(post_psw_1, "UTF-8");

    //SCELGO DOVE URL E INZIO LA CONNESIONE

    URL paginaURL = new URL("https://www.malebee.cloud/webservice/log-in/log.php");
    HttpURLConnection client = (HttpURLConnection) paginaURL.openConnection();

    // se devo inviare il dato in POST
    client.setDoOutput(true);
    client.setChunkedStreamingMode(0);

    // scrivo nello stream di uscita
    OutputStreamWriter wr = new OutputStreamWriter(client.getOutputStream());
    wr.write(post_email_2 +"&"+ post_psw_2);
    wr.flush();
    wr.close();


    }catch (Exception e){

    AlertDialog alertDialog = new AlertDialog.Builder(this).create();
    alertDialog.setTitle("Reset...");
    alertDialog.setMessage("errore?");
    alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int which) {
    // in questo punto aggiungi le tue funzioni
    }
    });
    alertDialog.setIcon(R.drawable.chat);
    alertDialog.show();
    }
    break;

    Per rispondere alla domanda precedente il mio codice xml è questo

    <login_response>
    <code>0</code>
    <description>Credenziali corrette</description>

    </login_response>

  6. #6
    Scusa mi ero dimenticato che non potevo postare codice colorato

  7. #7
    Ed inoltre non riesco a far aprire 2 alcune activity con il bottone;
    la activity registrati si apre con il btn_registrati mentre se provo a cliccare su btn_login o btn_drawer non succede nulla

    CODICE


    package aa.slider_2;

    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View.OnClickListener;
    import android.view.View;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import android.widget.Button;
    import android.widget.EditText;
    import android.content.Intent;
    import android.app.Activity;
    import java.io.IOException;
    import java.io.*;
    import java.net.URLEncoder;
    import android.app.AlertDialog;
    import android.content.DialogInterface;


    //ricorda che quando implementi onclicklistener devi richiamare obbligatoriamente il metodo unclick()
    public class MainActivity extends Activity implements OnClickListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //------------------------------------------------------------------------------------------
    //metto listener il bottone
    final Button btn_accedi = (Button) findViewById(R.id.btn_accedi);
    btn_accedi.setOnClickListener(this);
    final Button btn_registrati = (Button) findViewById(R.id.btn_registrati);
    btn_registrati.setOnClickListener(this);


    }

    public void onClick(View v) {
    // TODO Auto-generated method stub
    switch ( v.getId() ) {
    case R.id.btn_accedi:
    final EditText email = (EditText) findViewById(R.id.email_box);
    final EditText password = (EditText) findViewById(R.id.psw_box);
    //-------------------------------------------------------------------------------------
    try {
    // recuperare il testo inserito dall'utente
    String post_email_1 = email.getText().toString();
    String post_psw_1 = password.getText().toString();


    // codifico le coppie di dati da inviare
    String post_email_2 = URLEncoder.encode("post_email", "UTF-8") + "=" + URLEncoder.encode(post_email_1, "UTF-8");
    String post_psw_2 = URLEncoder.encode("post_password", "UTF-8") + "=" + URLEncoder.encode(post_psw_1, "UTF-8");

    //SCELGO DOVE URL E INZIO LA CONNESIONE

    URL paginaURL = new URL("https://www.malebee.cloud/webservice/log-in/log.php");
    HttpURLConnection client = (HttpURLConnection) paginaURL.openConnection();

    // se devo inviare il dato in POST
    client.setDoOutput(true);
    client.setChunkedStreamingMode(0);

    // scrivo nello stream di uscita
    OutputStreamWriter wr = new OutputStreamWriter(client.getOutputStream());
    wr.write(post_email_2 +"&"+ post_psw_2);
    wr.flush();
    wr.close();


    }catch (Exception e){

    AlertDialog alertDialog = new AlertDialog.Builder(this).create();
    alertDialog.setTitle("Reset...");
    alertDialog.setMessage("Errore?");
    alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int which) {
    // in questo punto aggiungi le tue funzioni
    }
    });
    alertDialog.setIcon(R.drawable.chat);
    alertDialog.show();
    }
    break;

    case R.id.btn_registrati:
    try{
    Intent a = new Intent(MainActivity.this, RegistratiActivity.class);
    startActivity(a);
    }catch (Exception e){}
    break;

    case R.id.btn_login:
    try{
    Intent b = new Intent(MainActivity.this, LoginActivity.class);
    startActivity(b);
    }catch (Exception e){}
    break;

    case R.id.btn_drawer:
    try{
    Intent c = new Intent(MainActivity.this, DrawerActivity.class);
    startActivity(c);
    }catch (Exception e){}
    break;

    }
    }
    }

  8. #8
    ciao
    La questione dei bottoni l'ho risola, quella della connessione no perchè ogni volta che clicco su accedi mi fa l'exception

  9. #9
    ciao
    La questione dei bottoni l'ho risola, quella della connessione no perch� ogni volta che clicco su accedi mi fa l'exception
    e l'errore � :"android.os.NetworkOnMainThreadException"

  10. #10
    dopo aver letto in giro ho capito che dovrei usare l'asyncTask ma non saprei come fare, la guida che sto seguendo è la seguente
    http://www.corsoandroid.it/creare_ap...mite_http.html
    Nel punto 6 spiega come fare ad usare l'asincTask ma non saprei come fare mi potreste aiutare

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.