Mysql, PHP ve Android ile Apache Web Sunucusuna Bilgi Gönderme


Bu makalede Mysql, PHP ve Android kullanarak Apache Web Sunucusu'na bilgiyi nasıl göndereceğimizi bir örnekle anlatmak istiyorum.
Uygulamamız ile istemci, Sunucu Yöneticisi tarafından kendisine verilen kullanıcı adı ve şifresi ile tablet veya telefon kullanarak sisteme giriş yapacak ve mesajını sunucuya gönderebilecektir.

Sisteme sadece Sunucu Yöneticisi'nin izin verdiği istemciler giriş yapabilecektir. Sunucu Yöneticisi, bir web arayüzü (mesaj_listesi.php) ile mesaj gönderen istemcilerin mesajlarını liste halinde görüntüleyebilecektir.


Uygulamamız için gerekli araçlar:


MySQL Veritabanı ve Tablo Oluşturma:


Aşağıdaki veritabanı ve tablo işlemlerini, PhpMyAdmin adlı Mysql Yönetim aracı ile veya Windows Komut penceresinde, Mysql'e bağlanarak çalıştırabilirsiniz.

CREATE DATABASE android_mysql;
USE android_mysql;

DROP TABLE IF EXISTS `android_user`;
CREATE TABLE `android_user` (
  `username` varchar(100) NOT NULL default '',
  `password` varchar(100) NOT NULL,
  `note` varchar(20) default NULL,
  PRIMARY KEY  USING BTREE (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=latin5;

INSERT INTO `android_user` (`username`,`password`,`note`) VALUES 
 ('user1','2e782c85379a326e','OLD_PASSWORD'),
 ('user2','*00A51F3F48415C7D4E8908980D443C29C69B60C9','PASSWORD'),
 ('user3','8cb2237d0679ca88db6464eac60da96345513964','SHA1'),
 ('user4','827ccb0eea8a706c4c34a16891f84e7b','MD5');

DROP TABLE IF EXISTS `from_user_mess`;
CREATE TABLE `from_user_mess` (
  `mes_id` int(10) unsigned NOT NULL auto_increment,
  `username` varchar(100) default NULL,
  `mesaj_saati` varchar(5) default NULL,
  `mesaj_tarihi` varchar(10) default NULL,
  `mesaj_ad` text,
  `mesaj_konu` text,
  PRIMARY KEY  (`mes_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin5;


Uygulama Dosyaları (PHP):

PHP script dosyalarını Apache/htdocs kök dizininde [android_user] adlı bir klasör açarak bu klasör içinde oluşturmanız gerekir.
(... Apache/htdocs/android_user)

db_connect.php --> Mysql'e bağlanma scripti



<?php
  $DB_HOST = "localhost";
  $DB_USER = "user3";
  $DB_PASS = "12345";
  $DB_NAME = "android_mysql";

  $con = @mysql_connect($DB_HOST, $DB_USER, $DB_PASS);
  if (!$con)
  {
    echo "MySQL ile bağlantı kurulamadı: " . mysqli_connect_error();
  }
    
  $sql = mysql_select_db($DB_NAME, $con);
  if(!$sql)
  {
    echo 'Database seçilemedi.';
  }
?>


login_user.php --> İstemci bağlantı scripti



<?php
header('Content-type: text/html; charset=ISO-8859-9');

require_once __DIR__ . '/db_connect.php';

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

/*
Mysql'de farklı algoritmalar ile şifre üretme :

SELECT OLD_PASSWORD('12345'); = [2e782c85379a326e]
SELECT PASSWORD('12345'); = [*00A51F3F48415C7D4E8908980D443C29C69B60C9]
SELECT SHA1('12345');  = [8cb2237d0679ca88db6464eac60da96345513964]
SELECT MD5('12345'); = [827ccb0eea8a706c4c34a16891f84e7b]

köşeli parantezler dahil değil
*/


//$ara = "SELECT * FROM android_user WHERE username = '".$username."' AND 
//  password = OLD_PASSWORD('$password')";
//$ara = "SELECT * FROM android_user WHERE username = '".$username."' AND 
//  password = PASSWORD('$password')";
//$ara = "SELECT * FROM android_user WHERE username = '".$username."' AND 
//  password = SHA1('$password')";
//$ara = "SELECT * FROM android_user WHERE username = '".$username."' AND 
//  password = MD5('$password')";

$ara = "SELECT * FROM android_user WHERE 
        (username = '".$username."' AND password = OLD_PASSWORD('$password')) OR 
        (username = '".$username."' AND password = PASSWORD('$password')) OR
        (username = '".$username."' AND password = SHA1('$password')) OR
        (username = '".$username."' AND password = MD5('$password'))"; 

$calistir = mysql_query($ara) or die(mysql_error());
$kayit_sayisi = mysql_num_rows($calistir);

 if($kayit_sayisi == 0) 
 { 
   $mesaj = "Kullanıcı adınızı ve/veya şifrenizi hatalı girdiniz. Tekrar deneyiniz...";
   //ekran mesajlarını Türkçe yazdır
   $str = mb_convert_encoding($mesaj, "ISO-8859-9", "UTF-8"); 
   echo $str;
 }
 else  
 {
   echo "BAGLANTI_KURULDU"; 
 }
 
?>

from_user_message.php --> Mesaj gönderme scripti
<?php

header('Content-type: text/html; charset=ISO-8859-9');

require_once __DIR__ . '/db_connect.php';

$mesaj_veri = array();

/*
 mysql_query("SET NAMES 'latin5'"); // mysql_query("SET NAMES 'UTF8'");
 mysql_query("SET CHARACTER SET latin5");
 mysql_query("SET COLLATION_CONNECTION = 'latin5_turkish_ci'");
*/

if (isset($_POST['mesaj_saati']) && isset($_POST['mesaj_tarihi']) && 
    isset($_POST['username']) && isset($_POST['mesaj_ad']) && isset($_POST['mesaj_konu'])) 
{
$username = $_POST['username'];
$mesaj_saati = $_POST['mesaj_saati'];
$mesaj_tarihi = $_POST['mesaj_tarihi'];
$mesaj_ad = $_POST['mesaj_ad'];
$mesaj_konu = $_POST['mesaj_konu'];
    
$inp_query = "INSERT INTO from_user_mess 
 (username, mesaj_saati, mesaj_tarihi,mesaj_ad, mesaj_konu) 
 VALUES('$username','$mesaj_saati','$mesaj_tarihi','$mesaj_ad','$mesaj_konu')";
$kaydet = mysql_query($inp_query);
    
 if ($kaydet) 
 {
 $islem_durumu = "Mesaj başarı ile kayıt edildi...";
 $islem_cevir = mb_convert_encoding($islem_durumu, "ISO-8859-9", "UTF-8");

 $mesaj_veri["DURUM"] = 1;
 $mesaj_veri["D_MESAJI"] = $islem_cevir;
        
 $mesaj_veri = array_map('htmlentities', $mesaj_veri);
 $json = html_entity_decode(json_encode($mesaj_veri));
 echo $json;
 } 
 else 
 {
 $islem_durumu = "Mesaj kaydedilemedi, hata oluştu...";
 $islem_cevir = mb_convert_encoding($islem_durumu, "ISO-8859-9", "UTF-8"); 

 $mesaj_veri["DURUM"] = 0;
 $mesaj_veri["D_MESAJI"] = $islem_cevir;
 
 echo json_encode($mesaj_veri);
 }
} 
else 
{
$islem_durumu = "İstemci tarafından gönderilen bilgiler okunamadı...";
$islem_cevir = mb_convert_encoding($islem_durumu, "ISO-8859-9", "UTF-8"); 

$mesaj_veri["DURUM"] = 0;
$mesaj_veri["D_MESAJI"] = $islem_cevir;
 
echo json_encode($mesaj_veri);
}

?>
mesaj_listesi.php --> Sunucuda Mesaj listeleme scripti


<?php


header('Content-type: text/html; charset=ISO-8859-9');

include ("db_connect.php");

   mysql_query("SET NAMES latin5");
   mysql_query("SET CHARACTER SET latin5");
   mysql_query("SET COLLATION_CONNECTION = 'latin5_turkish_ci'");


   echo '<TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0"
         style="font-size:14px; line-height:16px; border-color:#0080FF;">';

   $baslik = mb_convert_encoding("MESAJ LİSTESİ", "ISO-8859-9", "UTF-8"); 
   echo '<TR HEIGHT="30" style="font-weight:bold; font-size:22px; color:#0033FF; 
  background-color:#E5E5E5;">';
   echo '<TD COLSPAN="5" style="border: 1px solid #DAE0DF; margin: 0 auto; width: 100%;" 
  ALIGN="CENTER">' . $baslik . '</TD>';
   echo '</TR>';
    
   echo '<TR HEIGHT="20" style="font-weight:bold; color:#0033FF; 
  background-color:#CCFF00; ">';

   $gonderen = mb_convert_encoding(" Gönderen ", "ISO-8859-9", "UTF-8"); 
   echo '<TD style="border: 1px solid #DAE0DF; margin: 0 auto; width: 60px;">'.$gonderen.'</TD>';

   echo '<TD style="border: 1px solid #DAE0DF; margin: 0 auto; width: 40px;"> G.Tarihi </TD>';
   echo '<TD style="border: 1px solid #DAE0DF; margin: 0 auto; width: 40px;"> G.Saati </TD>';

   $mesaj_ad = mb_convert_encoding(" Mesaj Adı ", "ISO-8859-9", "UTF-8"); 
   echo '<TD style="border: 1px solid #DAE0DF; margin: 0 auto; width: 300px;">'.$mesaj_ad.'</TD>';

   echo '<TD style="border: 1px solid #DAE0DF; margin: 0 auto; width: 500px;">Mesaj Konusu</TD>';
  
   echo '</TR>';

   $data_list = "SELECT * FROM from_user_mess WHERE (mes_id is not null) 
  order by mesaj_tarihi, mesaj_saati";
//   $data_list = "SELECT * FROM from_user_mess WHERE (mes_id >= 100) 
     order by mesaj_tarihi, mesaj_saati LIMIT 10";
  
   $myData =  @mysql_query ($data_list);
   
   if (!$myData) 
   {
   $error_mes = "Sunucu meşgul yada bulunamadı..";
   $sunucu_durum = mb_convert_encoding($error_mes, "ISO-8859-9", "UTF-8"); 
   echo '<TR HEIGHT="30" style="font-weight:bold; font-size:16px; color:red; 
  background-color:yellow;">';
   echo '<TD COLSPAN="5" style="border: 1px solid #DAE0DF; margin: 0 auto; width: 100%;" 
  ALIGN="CENTER">' . $sunucu_durum . '</TD>';
   echo '</TR>';
   Exit;
   }

   $kayit_sayisi = mysql_num_rows($myData);
   if($kayit_sayisi == 0) 
   {  
   $error_mes = "Hiç bir kullanıcı, henüz mesaj göndermemiş..";
   $kayit_mesaj = mb_convert_encoding($error_mes, "ISO-8859-9", "UTF-8"); 
   echo '<TR HEIGHT="30" style="font-weight:bold; font-size:16px; color:red; 
  background-color:yellow;">';
   echo '<TD COLSPAN="5" style="border: 1px solid #DAE0DF; margin: 0 auto; width: 100%;" 
  ALIGN="CENTER">' . $kayit_mesaj . '</TD>';
   echo '</TR>';
   Exit;
   }

   While ($mesajlar = @mysql_fetch_array($myData))
   {
     $username = $mesajlar["username"];
     $mesaj_saati = $mesajlar["mesaj_saati"];
     $mesaj_tarihi = $mesajlar["mesaj_tarihi"];
     $mesaj_ad = $mesajlar["mesaj_ad"];
     $mesaj_konu = $mesajlar["mesaj_konu"];

     echo '<TR HEIGHT="40" style="background-color:#F0F0F0;">';
    
     echo '<TD style="border: 1px solid #E0E0E0; margin: 0 auto; 
   width: 60px;">' . $username . '</TD>';
     echo '<TD style="border: 1px solid #E0E0E0; margin: 0 auto; 
   width: 40px;">' . $mesaj_tarihi . '</TD>';
     echo '<TD style="border: 1px solid #E0E0E0; margin: 0 auto; 
   width: 40px;" align="center">' . $mesaj_saati . '</TD>';
     echo '<TD style="border: 1px solid #E0E0E0; margin: 0 auto; 
   width: 300px;">' . $mesaj_ad . '</TD>';
   
     echo '<TD style="border: 1px solid #E0E0E0; margin: 0 auto; 
   width: 500px;">' . $mesaj_konu . '</TD>';

     echo '</TR>';
   }
   
   $kayit_mes = $kayit_sayisi . " adet mesaj kaydı listelendi.";
   $rec_count = mb_convert_encoding($kayit_mes, "ISO-8859-9", "UTF-8"); 
   echo '<TR HEIGHT="22" style="font-weight:bold; font-size:14px; color:black; 
  background-color:white;">';
   echo '<TD COLSPAN="5" style="border: 1px solid #DAE0DF; margin: 0 auto; 
  width: 100%;" ALIGN="left">' . $rec_count . '</TD>';
   echo '</TR>';

   echo '</TABLE>';
?>
Uygulama Dosyaları (Android):
JSONParser.java
package com.yeniyaz.mysql_connect;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.List;
import java.nio.charset.Charset;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.URLEncodedUtils;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.HttpStatus;
import org.apache.http.entity.StringEntity;
import org.apache.http.util.EntityUtils;

import org.json.JSONException;
import org.json.JSONObject;

import android.util.Log;

public class JSONParser
{
    static InputStream is = null;
    static JSONObject jObj = null;
    static String json = "";

    public JSONParser() {
     //
    }

    public JSONObject send_Message(String url, String method, List<NameValuePair> params)
    {
        try {
            if(method.equals("POST"))
            {
                DefaultHttpClient httpClient = new DefaultHttpClient();
                UrlEncodedFormEntity entity = new UrlEncodedFormEntity(params, "UTF-8");

                HttpPost httpPost = new HttpPost(url);
                httpPost.setEntity(entity);

                HttpResponse httpResponse = (HttpResponse) httpClient.execute(httpPost);
                HttpEntity httpEntity = httpResponse.getEntity();
                is = httpEntity.getContent();
            }
            else if(method.equals("GET"))
            {
                //Mükerrer kayıt kontrolü için kullanılabilir
                //Alan kontrolünden sonra kayıt yapıldığından şimdi kullanmaya gerek yok

                DefaultHttpClient httpClient = new DefaultHttpClient();
                String paramString = URLEncodedUtils.format(params, "UTF-8");
                url += "?" + paramString;

                Log.v("URL ve PARAMSTRING ", url.toString());
                HttpGet httpGet = new HttpGet(url);


                HttpResponse httpResponse = httpClient.execute(httpGet);

                Log.v("HTTP Post", "Response from server node = " 
    + httpResponse.getStatusLine().getReasonPhrase());
                Log.v("Gelen Cevap KODU: ", httpResponse.getStatusLine().getStatusCode() + "");

                HttpEntity httpEntity = httpResponse.getEntity();
                is = httpEntity.getContent();
            }
        }
        catch (UnsupportedEncodingException e)
        {
            e.printStackTrace();
        }
        catch (ClientProtocolException e)
        {
            e.printStackTrace();
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }

        try {
            //InputStreamReader inp = new InputStreamReader(is, Charset.forName("ISO-8859-9"));
            InputStreamReader inp = new InputStreamReader(is, Charset.forName("UTF-8"));
            BufferedReader reader = new BufferedReader(inp);

            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null)
            {
                //sb.append(line + "\n");
                sb.append(UTF8toISO(line) + "\n");
            }
            is.close();
            json = sb.toString();

            Log.v("JSON DEGERI", json);
        }
        catch (Exception e)
        {
            Log.e("BUFFER ERROR", "Convert Hatasi Olustu : " + e.toString());
        }

        try
        {
            jObj = new JSONObject(json);
        }
        catch (JSONException e)
        {
            Log.e("JSON HATASI", "Data Okunamadi... : " + e.toString());
        }

        return jObj;
    }


    public static JSONObject getjObj()
    {
        return jObj;
    }


    public static void setjObj(JSONObject jObj)
    {
        JSONParser.jObj = jObj;
    }


    public static String UTF8toISO(String str)
    {
        try
        {
            return new String( str.getBytes( "ISO-8859-9" ), "UTF-8" );
        }
        catch ( UnsupportedEncodingException e )
        {
            e.printStackTrace();
        }
        return str;
    }
}

MainActivity.java
package com.yeniyaz.mysql_connect;

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 MainActivity extends Activity
{
    EditText edUser;
    EditText edpass;
    TextView serverMesaj;
    Button btnOnay;

    HttpPost httppost;
    StringBuffer buffer;
    HttpResponse response;
    HttpClient httpclient;
    List<NameValuePair> nameValuePairs;

    ProgressDialog dialog = null;
    Bundle bundle;
    Intent VeriGonder = null;

    private static String url_user = "http://10.0.2.2:80/android_user/login_user.php";
    //private static String url_user = "http://www.sitenizin_adı.com/android_user/login_user.php";

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        edUser = (EditText)findViewById(R.id.edUsername);
        edpass = (EditText)findViewById(R.id.edPassword);
        serverMesaj = (TextView)findViewById(R.id.txtMesaj);
        btnOnay = (Button)findViewById(R.id.btnOnayla);

        btnOnay.setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                dialog = ProgressDialog.show(MainActivity.this, "", "İstek onaylanıyor...", true);
                new Thread(new Runnable()
                {
                    public void run()
                    {
                        istekGonder();
                    }
                }).start();
            }
        });

    } /* onCreate(Bundle */

    /* Sunucuya bağlanmak için istekte bulun */
    void istekGonder()
    {
        try
        {
            httpclient=new DefaultHttpClient();
            httppost= new HttpPost(url_user);

            nameValuePairs = new ArrayList<NameValuePair>(2);
            nameValuePairs.add(new BasicNameValuePair("username", 
      edUser.getText().toString().trim()));
            nameValuePairs.add(new BasicNameValuePair("password", 
      edpass.getText().toString().trim()));

            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            response = httpclient.execute(httppost);

            ResponseHandler<String> responseHandler = new BasicResponseHandler();
            final String response = httpclient.execute(httppost, responseHandler);
            System.out.println("Sunucu cevabı : " + response);

            runOnUiThread(new Runnable()
            {
                public void run()
                {
                    serverMesaj.setText("Sunucu cevabı : " + response);
                    dialog.dismiss();
                }
            });

            if(response.equalsIgnoreCase("BAGLANTI_KURULDU"))
            {
                bundle = new Bundle();
                VeriGonder = new Intent(MainActivity.this, From_User_Message.class);
                //VeriGonder = new Intent("com.yeniyaz.mysql_connect.MESAJGONDER");

                runOnUiThread(new Runnable()
                {
                    public void run()
                    {
                        Toast.makeText(MainActivity.this,"Sunucu ile bağlantı kuruldu", 
    Toast.LENGTH_SHORT).show();
                        serverMesaj.setText("Sunucu ile bağlantı kuruldu.");
                    }
                });

                String veri = edUser.getText().toString().trim();
                bundle.putString("username", veri);
                VeriGonder.putExtras(bundle);

                startActivity(VeriGonder);
            }
            else
            {
                hataGoster();
            }

        }
        catch(Exception e)
        {
            dialog.dismiss();
            System.out.println("Hata oluştu : " + e.getMessage());
        }
    } /* void istekGonder() end */

    public void hataGoster()
    {
        MainActivity.this.runOnUiThread(new Runnable()
        {
        @Override
            public void run()
            {
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setTitle("Hatalı Giriş.");
                builder.setMessage("Kullanıcı bulunamadı.")
                        .setCancelable(false)
                        .setPositiveButton("Tamam", new DialogInterface.OnClickListener()
                        {
                            public void onClick(DialogInterface dialog, int id)
                            {
                                dialog.cancel();
                            }
                        });
                AlertDialog hataVar = builder.create();
                hataVar.show();
            }
        });
    } /* void hataGoster() end */
}

From_User_Message.java
package com.yeniyaz.mysql_connect;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.app.AlertDialog;
import android.widget.Toast;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class From_User_Message extends Activity
{
    private JSONParser jsonParser = new JSONParser();
    private ProgressDialog pD = null;

    private static final String url_post_mesaj = 
  //"http://10.0.2.2:80/android_user/from_user_message.php";
    //private static final String url_post_mesaj = 
  //"http://www.sitenizin_adı.com/android_user/from_user_message.php";
    private static final String KAYIT_DURUM = "DURUM";

    private EditText username;
    private EditText mesajName;
    private EditText mesajKonu;
    private Button geriDon;
    private Button mesajGonder;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_from_user);

        //(1)TextView hosgeldinMesaj = (TextView)findViewById(R.id.txtHeader);
        username = (EditText)findViewById(R.id.edUserName);
        mesajName = (EditText)findViewById(R.id.edMesajName);
        mesajKonu = (EditText)findViewById(R.id.edMesajKonu);

        Bundle VeriAl = getIntent().getExtras();
        String gelenVeri = VeriAl.getString("username");

        //(1)hosgeldinMesaj.setText("[" + gelenVeri + "] kullanıcı adı onaylandı..");
        username.setText(gelenVeri); //Sisteme giriş yapan kullanıcı adını taşı

        geriDon = (Button)findViewById(R.id.btnGeriDon);
        geriDon.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                From_User_Message.this.finish();
            }
        });

        mesajGonder = (Button)findViewById(R.id.btnMesajGonder);
        mesajGonder.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                mesajKontrol();
                //new SaveData().execute();
                mesajName.requestFocus();
            }
        });
    } /* onCreate(Bundle */

    public boolean mesajKontrol()
    {
        final AlertDialog.Builder adb = new AlertDialog.Builder(From_User_Message.this);
        AlertDialog ad = adb.create();

        // Check mesajName
        if(mesajName.getText().toString().length() == 0)
        {
            ad.setTitle("Hata...");
            ad.setMessage("Mesaj Adını girmediniz...[Geri]");
            ad.show();
            mesajName.requestFocus();
            return false;
        }

        // Check mesajKonu
        if(mesajKonu.getText().toString().length() == 0)
        {
            ad.setTitle("Hata...");
            ad.setMessage("Mesaj Konusunu girmediniz...[Geri] ");
            ad.show();
            mesajKonu.requestFocus();
            return false;
        }

        /*
        çift kayıt kontrolüne gerek yok. Kayıttan sonra alanlar temizleniyor.
        */

        new SaveData().execute();
        return true;
    } /* boolean mesajKontrol end*/

    //SaveData fonksiyonu
    class SaveData extends AsyncTask<String, String, String>
    {
        @Override
        protected void onPreExecute()
        {
            super.onPreExecute();
            pD = new ProgressDialog(From_User_Message.this);
            pD.setMessage("Mesajınız gönderiliyor...");
            pD.setIndeterminate(false);
            pD.setCancelable(true);
            pD.show();
        }

        protected String doInBackground(String... args)
        {
            /* mesaj saati */
            long sistem_saati = System.currentTimeMillis();
            SimpleDateFormat gonderi_saati = new SimpleDateFormat("HH:mm");
            String yerelSaat = gonderi_saati.format(new Date(sistem_saati));

            /* mesaj tarihi */
            Date date = new Date();
            SimpleDateFormat gonderi_tarihi = new SimpleDateFormat("dd.MM.yyyy");
            String yerelTarih = gonderi_tarihi.format(date);

            String userN = username.getText().toString().trim();//Sisteme giriş yapan kullanıcı
            String mesajN = mesajName.getText().toString();//mesaj adı
            String mesajK = mesajKonu.getText().toString();//mesaj konusu

            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("username", userN));
            params.add(new BasicNameValuePair("mesaj_saati", yerelSaat));
            params.add(new BasicNameValuePair("mesaj_tarihi", yerelTarih));
            params.add(new BasicNameValuePair("mesaj_ad", mesajN));
            params.add(new BasicNameValuePair("mesaj_konu", mesajK));

            JSONObject json = jsonParser.send_Message(url_post_mesaj, "POST", params);

            Log.d("Mesaj Durumu", json.toString());

            try {
                int durum = json.getInt(KAYIT_DURUM);

                if (durum == 1)
                {
                    //bir işlem yap
                    yerelSaat = null;
                    yerelTarih = null;
                }
                else
                {
                    // mesaj gönderilemedi
                }
            }
            catch (JSONException e)
            {
                e.printStackTrace();
            }

            return null;
        } /* String doInBackground end*/

        protected void onPostExecute(String file_url)
        {
            pD.dismiss();
            mesajName.setText("");
            mesajKonu.setText("");
            Toast.makeText(From_User_Message.this, 
   "Mesajınız başarı ile gönderildi.", Toast.LENGTH_SHORT).show();
        }
    } /* SaveData extends end*/
}
Uygulamanın ekran görüntüleri :




Uygulamanın Kaynak Kodlarını buradan indirebilirsiniz. Kolay gelsin...