Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    126

    login android con php+mysql

    Ciao a tutti,
    non so se sono nella sezione adatta
    Premesso che questa è la mia prima esperienza con le APP

    non riesco a venirne a capo su questa cosa:

    ho scaricato lo script da internet "AndroidPhpConnection" per effettuare il login tramite app per accedere ad una pag. nello stesso file c'è anche la parte PHP per la connessione al DB check.php

    Codice PHP:

    $hostname_localhost 
    ="xxx.xxx.xxx.xxx";
    $database_localhost ="Sqlxxxxxx_1";
    $username_localhost ="Sqlxxxxx";
    $password_localhost ="xxxxxxxxxx";
    $localhost mysql_connect($hostname_localhost,$username_localhost,$password_localhost)
    ortrigger_error(mysql_error(),E_USER_ERROR);

    mysql_select_db($database_localhost$localhost);
    $username $_POST['username'];
    $password $_POST['password'];

    $query_search "select * from utenti where user = '".$username."' AND pass = '".$password"'";
    $query_exec mysql_query($query_search) or die(mysql_error());
    $rows mysql_num_rows($query_exec);
    //echo $rows;

    //echo $username.' - '.$password;

     
    if($rows == 0) {  echo "No Such User Found";  } else  {    echo "User Found"; } 
    il file AndroidPHPConnectionDemo.java

    codice:
    package pack.coderzheaven;
    
    
    import java.util.ArrayList;
    import java.util.List;
    
    
    import org.apache.http.HttpResponse;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.ResponseHandler;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.BasicResponseHandler;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.message.BasicNameValuePair;
    
    
    import android.app.Activity;
    import android.app.AlertDialog;
    import android.app.ProgressDialog;
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
    import android.widget.Toast;
    
    
    public class AndroidPHPConnectionDemo extends Activity {
        Button b;
        EditText et,pass;
        TextView tv;
        HttpPost httppost;
        StringBuffer buffer;
        HttpResponse response;
        HttpClient httpclient;
        List<NameValuePair> nameValuePairs;
        ProgressDialog dialog = null;
        
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            b = (Button)findViewById(R.id.Button01);  
            et = (EditText)findViewById(R.id.username);
            pass= (EditText)findViewById(R.id.password);
            tv = (TextView)findViewById(R.id.tv);
            
            b.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    dialog = ProgressDialog.show(AndroidPHPConnectionDemo.this, "", 
                            "Validating user...", true);
                     new Thread(new Runnable() {
                            public void run() {
                                login();                          
                            }
                          }).start();                
                }
            });
        }
        
        void login(){
            try{            
                 
                httpclient=new DefaultHttpClient();
                httppost= new HttpPost("http://miosito.it/check.php"); // make sure the url is correct.
                //add your data
                nameValuePairs = new ArrayList<NameValuePair>(2);
                // Always use the same variable name for posting i.e the android side variable name and php side variable name should be similar, 
                nameValuePairs.add(new BasicNameValuePair("username",et.getText().toString().trim()));  // $Edittext_value = $_POST['Edittext_value'];
                nameValuePairs.add(new BasicNameValuePair("password",pass.getText().toString().trim())); 
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                //Execute HTTP Post Request
                response=httpclient.execute(httppost);
                // edited by James from coderzheaven.. from here....
                ResponseHandler<String> responseHandler = new BasicResponseHandler();
                final String response = httpclient.execute(httppost, responseHandler);
                System.out.println("Response : " + response); 
                runOnUiThread(new Runnable() {
                    public void run() {
                        tv.setText("Response from PHP : " + response);
                        dialog.dismiss();
                    }
                });
                
                if(response.equalsIgnoreCase("User Found")){
                    runOnUiThread(new Runnable() {
                        public void run() {
                            Toast.makeText(AndroidPHPConnectionDemo.this,"Login Success", Toast.LENGTH_SHORT).show();
                        }
                    });
                    
                    startActivity(new Intent(AndroidPHPConnectionDemo.this, UserPage.class));
                }else{
                    showAlert();                
                }
                
            }catch(Exception e){
                dialog.dismiss();
                System.out.println("Exception : " + e.getMessage());
            }
        }
        public void showAlert(){
            AndroidPHPConnectionDemo.this.runOnUiThread(new Runnable() {
                public void run() {
                    AlertDialog.Builder builder = new AlertDialog.Builder(AndroidPHPConnectionDemo.this);
                    builder.setTitle("Login Error.");
                    builder.setMessage("User not Found.")  
                           .setCancelable(false)
                           .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                               public void onClick(DialogInterface dialog, int id) {
                               }
                           });                       
                    AlertDialog alert = builder.create();
                    alert.show();                
                }
            });
        }
    }

    ovviamente anche i permessi AndroidManifest.xml

    codice:
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="pack.coderzheaven"
          android:versionCode="1"
          android:versionName="1.0">
          <uses-permission android:name="android.permission.INTERNET"></uses-permission>
        <application android:icon="@drawable/icon" android:label="@string/app_name">
            <activity android:name=".AndroidPHPConnectionDemo"
                      android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity android:name=".UserPage"
                      android:label="@string/app_name" />
        </application>
    
    
    
    
    </manifest>

    il mio problema è che, a quanto ne ho capito, dentro le variabili del PHP

    $username = $_POST['username'];
    $password = $_POST['password'];

    avrei dovuto avere ovviamente i parametri passati nel form della APP
    ma sono vuote

    in quanto facendo la echo delle stesse mi da vuote

    altra cosa importante:
    httppost= new HttpPost("http://miosito.it/check.php");

    cosa che non ho detto!! ho importato il tutto su eclipse senza problemi

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    Che c'entra con javascript?
    No

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    126
    qualcuno può spostare la discussione nella sezione giusta?

    Grazie mille

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    2
    Ci sono parecchie guide sul login in android. Prova questa

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    126
    Quote Originariamente inviata da lucaDev Visualizza il messaggio
    Ci sono parecchie guide sul login in android. Prova questa

    funziona!!

    c'è un problema però non essendo un esperto ho visto che la cosa è molto dispersiva volendo apportare delle modifiche, cioè troppo codice

    spero che qualcuno mi dia una mano sul primo script/app inserito in quanto mi sembra molto più agevole da modificare nelle parti che mi interessano

    ad ogni modo grazie

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.