Flex ve Form Mail - Bölüm 1

April 29th, 2009  

  • Digg
  • StumbleUpon
  • del.icio.us
  • Google
  • Furl
  • Technorati
  • BlinkList
  • blogmarks
  • Facebook
  • LinkedIn


Get the Flash Player to see this player.

Bu ders için “Demo Uygulama” güvenlik sebeplerinden ötürü bulunmamaktadır. Kaynak kodları indirip kendi sunucunuzda deneyebilirsiniz.

Ek Kaynaklar:
PHPMailer (Kullandığım mail class’ı)
Aptana (Kullandığım PHP Editörü)

Main.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" viewSourceURL="srcview/index.html">
	<mx:Style source="style/flexAdami.css" />

	<mx:Script>
		<![CDATA[
			import mx.controls.Alert;
			import mx.rpc.events.ResultEvent;
			public function gonderiDurumu(evt:ResultEvent):void {
					gonderButonu.enabled = true;
					switch(evt.currentTarget.lastResult.sonuc) {

						case "evet":
						form_gonderenEposta.text = ""
						form_gonderenAdi.text = ""
						form_konu.text = ""
						form_mesaj.text = ""

						Alert.show("Mesajınız gönderilmiştir","Teşekkürler")
						break;

						case "hayir":
						Alert.show("Daha sonra yeniden deneyiniz","Hata!")
						break;
					}

			}

			public function formGonder(evt:MouseEvent):void {
				gonderButonu.enabled = false
				var veriler:Object = new Object()
				veriler.action = "formGonder"
				veriler.gonderenEmail = form_gonderenEposta.text
				veriler.gonderenAd = form_gonderenAdi.text
				veriler.konu = form_konu.text
				veriler.mesaj = form_mesaj.text
				servis.send(veriler);
			}
		]]>
	</mx:Script>
	<mx:HTTPService id="servis"
				 	url="http://localhost/flexAdamiWebRoot/FormMail/gateway.php"
				 	method="POST"
				 	resultFormat="flashvars"
				 	result="gonderiDurumu(event)"
				 	/>

	<mx:Panel title="Bize Ulaşın" width="500" height="400" paddingLeft="10" paddingRight="10">

	<mx:Form id="epostaFormu" width="100%">
		<mx:FormItem label="Ad:" width="100%" >
			<mx:TextInput id="form_gonderenAdi" width="100%" />
		</mx:FormItem>
		<mx:FormItem label="Eposta:" width="100%" >
			<mx:TextInput id="form_gonderenEposta" width="100%" />
		</mx:FormItem>
		<mx:FormItem label="Konu:" width="100%" >
			<mx:TextInput id="form_konu" width="100%" />
		</mx:FormItem>
		<mx:FormItem label="Mesaj:" width="100%" >
			<mx:TextArea id="form_mesaj" width="100%" height="200" />
		</mx:FormItem>
		<mx:FormItem width="100%" >
			<mx:Button label="Gönder" id="gonderButonu" click="formGonder(event)" />
		</mx:FormItem>
	</mx:Form>

	</mx:Panel>
</mx:Application>

gateway.php

<?php

require_once ("lib/class.phpmailer.php");

switch($_POST['action'])
{
    case "formGonder":
    $mail = new PHPMailer();
    $mail->From = $_POST['gonderenEmail'];
    $mail->FromName = $_POST['gonderenAd'];
    $mail->AddAddress("buraya kendi eposta adresiniz gelicek");
    $mail->Subject = "Siteden Mesaj: ".$_POST['konu'];
	$mail->Body = $_POST['mesaj'];
    if ($mail->Send())
    {
        echo "sonuc=evet";
    } else
    {
        echo "sonuc=hayir";
    }
	break;
}

?>

Yorumlar [12 ]

  • onur
    onur

    Merhaba,
    Yine geçerli bir konuyu akıcı ve güzel bir şekilde anlatmışsınız.
    Kod’u kendi bilgisayarımda deneyerek çalıştığını görmek isterdim fakat PHP modülüm kurulu olmadığından maalesef deneyemedim. Benim size sormak istediğim soru; dersinizin sonunda deneme mesajınızda Türkçe mesaj göndermenize rağmen Türkçe karakterler kullanmamanızın nedeni nedir? Türkçe karakterler içeren mesaj göndermek için ayrı bir ayar yapılması gerekiyorsa bunu da sonraki dersinizde anlatabilirmisiniz?

    Çalışmalarınızda başarılar diler, daha sık görsel derslerinizi ilgi ile beklerim.
    Onur


  • FlexAdamı
    FlexAdamı

    Merhaba Onur,

    Yorum için teşekkürler. Türkçe karakterleri kasten girmedim. Flash Player 10 Debugger versiyonunun Mac için Tr karakter sorunu var. Windows (Normal & Debugger) , Mac (Normal) Flash Player versiyonlarından bir sıkıntı olmayacaktır.


  • Onur
    Onur

    Merhaba,
    Cevabınız için teşekkür ederim. Fakat 1 soru daha oluştu bende. O da; Flex ile yazılan ve compile edilen kodlar SWF formatına dönüştürülüp web e konuyor. SWF Decompiler ile tekrar açık koda dönüşen bu program ile mail gönderme url ve parametreleri ele geçirildiğinde, art niyetli kişiler tarafından yazılan program aracılığıyla gereksiz yüzlerce e-posta (veya forum bilgileri) gönderilme imkanı da doğmuş olmazmı ? Bunun önüne nasıl geçilebileceği konusunda bir öneriniz varmı?
    Mesela Java Appletlerde de aynı sorun var fakat bazı programlar ile Java sınıfları çok garip dosya isimleri verilerek kodlar parçalanıp, decompile edilse bile anlaşılması çok zor duruma getirildiğinden bir nebze bu tür art niyetli işlemlerin önüne geçilebiliyor. Böyle birşey Flex içinde geçerlimi?
    İyi çalışmalar.
    Onur


  • FlexAdamı
    FlexAdamı

    Merhaba,

    Flex ile geliştirilen uygulamalar sizinde belirtiğiniz gibi SWF formatında derleniyor. Bu SWF dosyaları çeşitli yazılımlar yada kendi methodlarınız ile şifrelenebilirler. Yaptığımız bu örnekte bu tür bir çalışma yapmadık bu sebepten dileyen kodları rahatça inceleyebilir.

    Başka uygulayabilinecek yollarda bulunmaktadır. Örneğin sunucu tarafındaki programımız istediğin istediğimiz bir domain’den mi geliyor gibi. Diğer bir yöntem ise bir session ile bir token oluşturulması ve bunun flashtan sunucuya gönderilip sunucuda kontrol edildikten sonra gönderimi izin verilmesi gibi. Örnekler çoğaltılabilir.


  • ilker değirmenci
    ilker değirmenci

    Sormak istediğim soru şu. Ben hali hazırda AS2 kullanarak PHP ile mail gönderebiliyorum ve bu yaapılanların hepsini yapabiliyorum ama bu kadar uzun kod satırları yok. Bununüzerine ben neden bunları kullanayım. Bu sorumu sakın bilmişlik olarak algılamayın. Amacım neden Flexi öğrenmemiz gerek derslerinizin hepsini izledim . Ben AS2 ve xml ve PHP kullanarak bir veri tabanı sistemi geliştirdim ve internet sitelerinde kullanıyorum. Ama AS3 gelişti ve Flex gelişti neden bunlara ihtiyacımız var kendimizi dahada zorlamıyormuyuz sürekli bir şeyler öğrenmek zorunda kalıyoruz. Bir sorum da şu eğer bunları öğreneceksek daha aktif nasıl öğrenebiliriz. Taşekkürler


  • Adil
    Adil

    hocam emeğinize binlerce kez teşekkürler anlatığınız konu üzerinde bir çalışma yaptım, windows işletim sistemi kullanıyorum flash player 9 yuklu projeyi yüklediğim bilgisayar ise linux server, uygulama çalıştığında bir problm yok ama türkçe karekterler bozuluyor mailclass dosyasının public $CharSet = ‘iso-8859-1′; sonunu 9 olarak değiştiriyorum yine türkçe karekterlerde sorun çıkarıyor, linux severin apache ayarlarına bakıyorum orası 9 normal, mail gonderim alımlarında türkçe kareketer için server tarafında bir problem yok ama uygulama tarafından gönderilince bozuluyor ne yapabiliriz bu konu hakkında ??


  • FlexAdamı
    FlexAdamı

    Merhaba ilker,

    Temel fark as3′un OOP olması ve çok daha hızlı çalışmasıdır. Bazı temel işler için as2 veya as3 kullanılabilir. Tabiki her ikisinde de yazdıgın programlar aynı işlemi yapabilirler. Neden öğrenmek sorusuna ise dünya bir yöne giderken buna direnmek pek mümkün olmuyor ;) Sen AS2 kullanıp projeler geliştirebilirsin ancak Adobe AS2′ye desteği kestiği zaman yada bir şeyleri AS2′de yapamadığın zaman eninde sonunda AS3′e geçmek durumda kalıcaksın. Burada tavsiyem mümkün olduğu kısa sürede ne zaman zaman bulabilirsen AS3 öğrenmeye çalışmak olucaktır.


  • FlexAdamı
    FlexAdamı

    Merhaba Adil,

    Yorumların için teşekkürler. $CharSet = utf-8′ yapalım birde php dosyasını kayıt ederken dosyayıda “utf-8″ olarak kayıt edelim. Notepad ile açıp “Save as” dediğin zaman alt taraftan dosya encoding’i belirtebilirsin. SWF’yi tutan html dökümanınıda aynı işleri uygulayalım. Bir denermisin. Sorun devam ederse buraya yazabilirsin.


  • Adil
    Adil

    hocam denedim, ama yine de aynı problemle karşılaştım, php dosyalarımı dremweaver kullanarak düzenlediğin için kayıt aşamasında da dosya saklama formatına dikkat etmeme rağmen olmadı hocam bende bir function yazdım i,ğ,ü,ç,ö,ş gibi türkçemizde bulunan karekterleri mecburen cevirmek zorunda kaldım ): , sorun şimdikilik çözüldü, ilgi ve alakanıza çok teşekkür ederim, yeni derslerinizi sabırsızlıkla beklerken çalışmalarınızda başarılar dilerim.


  • alp
    alp

    Merhaba,

    Benim sorum Türkeç karakterler ile ilgili. Flex’te hiçbir ç,ö,ü,ş gibi Türkçe karakterleri text input alanına girebiliyorum ancak ı ve ğ yi tuşladığımda sizin aynı video’nuzdaki gibi tanımsız bir karakter basılıyor ekrana.
    Kaydettiğim text i okuttuğumda da ı karakteri görünmüyor.
    Mac OSX kullanıyorum. Bununla ilgili mi onu da bilemedim.
    Bu durumu düzeltmek için önerebileceğiniz bir şey var mı?


  • FlexAdamı
    FlexAdamı

    Merhaba Alp,

    Flash Player(MAC Version) ile ilgili bir bug. Henüz düzelmedi diye biliyorum.


  • Hocam kaynak dosyalarınızda bulunan php klasöründeki dosyaları localhostta flexAdamiWebRoot klasörünü oluşturdum içine FormMail klasörünü oluşturup FormMail klasörünün içine attım fakat projeyi çalıştırdığımda butona basıyorum hata mesajı bile vermiyor sorun sizce ne olabilir


  • Yorum Ekle

    1. (Gerekli)
    2. (Email adresi geçerli olmalıdır)
    3. (Gerekli)
     

    Ders hakkinda

    Yazar: FlexAdamı
    Yazılım: Flex - AS 3.0
    Seviye: Orta
    1 Puan2 Puan3 Puan4 Puan5 Puan (5 oy, Ortalama: 5/5)
    Loading ... Loading ...
    Bu dersimizde mx:HTTPService etiketini kullanarak bir form mail uygulaması oluşturuyoruz. Burada kullanılan yöntemi benzer şekilde Flex uygulamasından veritabanına veri eklemek için de kullanabiliriz
    BİR KAHVENİ İÇERİM ;)
    Google Friend Connect
    Etiketler
    Ilgili Diger Konular
    Fazlaca Okunanlar