AS3 & Php ile İletişim Formu

Merhaba Arkadaşlar, flashdersleri.net’teki bu ilk dersimde Flash ve Php ile web sitesinde mail gönderme formu, nasıl yapılır onu anlatacağım.

İşin sadece flash yönünü anlatacağım Php bilgim az olduğu için :) o konuya girmeyeceğm php dosyasını dersin sonunda verdiğim linkten indirebilirsiniz.
Derse başlamadan, önce ders için hazırladığım bu mail_form.fla dosyasını indirip, açın.
.fla’nın içinde, sahnede 5 text kutucuğu ve 2 buton bulunmaktadır.

Text Kutucukları;

  • isim_txt
  • email_txt
  • konu_txt
  • mesaj_txt
  • rapor_txt

Text kutucuklarından 4′ü (isim_txt, email_txt, konu_txt, mesaj_txt) input text,  rapor_txt ise dynamic text formatındadır.

Butonlar;

  • temizle_btn
  • gonder_btn

Hemen Actions panelimizi açıp kodlarımızı yazmaya başlayalım.

İlk olarak her ihtimale karşı bütün text kutucuklarımızı boşaltıyoruz.

 isim_txt.text="";
 email_txt.text="";
 konu_txt.text="";
 mesaj_txt.text="";
//rapor_mc nin visible(görünürlük) değerini false(görünmez) olarak ayarlıyoruz.
rapor_mc.visible=false;

Değikenleri oluşturuyoruz.

var zamanlayici:Timer;
var url_yukle:URLLoader=new URLLoader  ;
var url_adresi:URLRequest=new URLRequest("gonder.php");
url_adresi.method=URLRequestMethod.POST; 
 

Buttonlara olay dinleyicilerini atıyoruz.

 gonder_btn.addEventListener(MouseEvent.CLICK, gonderFNC);
temizle_btn.addEventListener(MouseEvent.CLICK, temizleFNC);

temizleFNC Fonksiyonunu:

 function temizleFNC(e:Event){
 isim_txt.text="";
 email_txt.text="";
 konu_txt.text="";
 mesaj_txt.text="";
mesaj_txt.sdlf
 rapor_mc.visible=false;
} 

gonderFNC Fonksiyonu:

gonderFNC fonksiyonunda ilk olarak rapor_mc nin visible değerini true olarak ayarlıyoruz.

Daha sonra ilk if te, girilmesi zorunlu olan tüm text kutucuklarının boş olup olmadığı kontrol ediliyor.

İlk if’in şartları onaylandıktan sonra else if’te mailKontrolFNC fonksiyonu ile mailin doğrumu yanlışmı girildiği kontrol ediliyor.

else if’in şartlarıda onaylandıktan sonra else ile rapor_mc’nin içindeki rapor_txt’e “Gönderiliyor…” yazdırılıyor, ve sonra email_data adı ile oluşturulan String türünde değişken ile text kutucuklarına girilen değerler URL_vars değişkeniyle Text formatıyla url_adresi değişkenine ardından url_yukle değişkenine eşitleniyor.

url_yukle değişkenine eklene olay denetleyicisi ile veri yuklendikten sonra yanitAlFNC fonksiyonu çağrılıyor.

function gonderFNC(e:Event) {
 rapor_mc.visible=true;
 if (isim_txt.text==""||email_txt.text==""||konu_txt.text==""||mesaj_txt.text=="") {
 rapor_mc.rapor_txt.text="Lütfen tüm alanları doldurunuz.";
 } else if (!mailKontrolFNC(email_txt.text)) {
 rapor_mc.rapor_txt.text="Lütfen email adresinizi kontrol edin.";
 } else {
 rapor_mc.rapor_txt.text="Gönderiliyor...";
 var email_data:String="name="+isim_txt.text+"$email="+email_txt.text+"$konu="+konu_txt.text+"$mesaj="+mesaj_txt.text;
 var URL_vars:URLVariables=new URLVariables(email_data);
 URL_vars.dataFormat=URLLoaderDataFormat.TEXT;

 url_adresi.data=URL_vars;
 url_yukle.load(url_adresi);
 url_yukle.addEventListener(Event.COMPLETE,yanitAlFNC);
 }
}
 

mailKontrolFNC Fonksiyonu:

mailKontrolFNC fonksiyonu ile email_txt text kutucuğuna girilen mail adresinin doğru olup olmadığı kontrol ediliyor.

function mailKontrolFNC(s:String):Boolean {
 var p:RegExp=/^[a-z][\w.-]+@\w[\w.-]+\.[\w.-]*[a-z][a-z]$/;
 var r:Object = p.exec(s)
 if (r==null) {
 return false;
 }
 return true;
}

yanitAlFNC Fonksiyonu

yanitAlFNC fonksiyonunda zamanlayici fonksiyonu ile verilerin belirtilen php dosyasına ulaşıp ulaşmadığı kontrol ediliyor.

function yanitAlFNC(e:Event):void {
 var yukleyici:URLLoader=URLLoader(e.target);
 var email_durumu=new URLVariables(yukleyici.data).success;

 if (email_durumu=="yes") {
 rapor_mc.rapor_txt.text="Mesajınız başarılı bir şekilde gönderilmiştir.";
 zamanlayici=new Timer(500);
 zamanlayici.addEventListener(TimerEvent.TIMER, zamanlayiciFNC);
 zamanlayici.start();
 } else {
 mesaj_txt.text="Mesajınız Gönderilemedi.";
 }
}

zamanlayiciFNC Fonksiyonu

zamanlayiciFNC  fonksiyonu belirtilen süreden sonra tüm text kutucuklarının içini boşaltıyor.

 function zamanlayiciFNC(te:TimerEvent):void {
 if (zamanlayici.currentCount>=10) {
 isim_txt.text="";
 email_txt.text="";
 konu_txt.text="";
 mesaj_txt.text="";
 rapor_mc.visible=false;
 zamanlayici.removeEventListener(TimerEvent.TIMER,zamanlayiciFNC);
 }
}

Dosyalar:

Elimden geldiğince, dilim döndüğünce :) anlatmaya çalıştım.
İnşallah faydalı ve beğenilen bir ders olmuştur.
Herkese iyi çalışmalar…
VN:F [1.8.2_1042]
Rating: 9.2/10 (5 votes cast)
AS3 & Php ile İletişim Formu9.2105

8 Responses to “AS3 & Php ile İletişim Formu”

  1. Giray Bal Giray Bal diyor ki:

    Süpersin Selman
    Hoşgeldin aramıza :)

  2. Selman KURT Selman KURT diyor ki:

    Teşekürler Giray, Hoşbulduk.
    başlangıç için basit bir ders, artık fırsat oldukça ders eklemeye çalışacağım.

  3. yakuter yakuter diyor ki:

    Başlangıç seviyesinde çok güzel bir makale. Ellerine sağlık ;)

  4. Selman KURT Selman KURT diyor ki:

    @Yakuter, hocam sizi burda görmek ne güzel, hoş geldiniz.
    Teşekürler, artık zamanla ileri seviyede makaleler yazarım inşallah, şimdilik elimden gelen bu :)

  5. Fullusi Fullusi diyor ki:

    hoş bir yazı tebrikler.:)

  6. forumixir forumixir diyor ki:

    hocam, bu konularda biraz yeniyim. önceki mesajımda beni buraya yönlendirmiştiniz. benim sorum ise şu; ziyaretci alanları doldurduktan sonra gönder butonuna bastığında “gönderilmiştir” yazısı çıktıntan hemen sonra otomatik olarak sayfa içeriğine nasıl erişebilir.?

    önceki mesajım;

    [QUITE]forumixir demiş ki;
    arkadaşlart herkeze merhaba;

    Birşey öğrenme istiyorum, bir site çalışmam var ve bunun içinde pdf dosyaları mevcut. anasayfa hakkımızda gibi yerleri geçtikten sonra Download diye buton koydum herşey güzel sorunsuz çalışıyoruz ancak Download butonuna tıkladıklarında aynı sayfa içinde kullanıcı adı firma ismi ve eposta girmesini istiyorum. üyelik olmayacak. buraya girilen verileri belirlediğim epostaya gitmesini istiyorum. kullanıcı adı firma ve eposta bilgisini yazanlar girişe tıkladığında pdf alanına erişebilecekler. bunu anlatan bi ders veya yardımcı olabilecek arkadaşlar varmı? şimdiden çok teşekkürler

    [/QUITE]

  7. Selman KURT Selman KURT diyor ki:

    @fullusi , teşekürler…

    @forumixir , yanitAlFNC fonksiyonundaki “if” deyiminden sonra dalgalı parantezlerin “{,}” içinde en alt satırda linkini veya komutunu yaz yada istediğin fonksiyonu çağır.

    if (email_durumu==”yes”) {
    .;
    .;
    .;
    http://www.siteadi.com/pdf_dosyasi.pdf
    }

    ben deneme olarak link yazdım.

  8. forumixir forumixir diyor ki:

    hocam çok teşekkürler bilgi için.burada takıldım şöylemi oluyor ;

    if (email_durumu==”yes”) {
    rapor_mc.rapor_txt.text=”Mesajınız başarılı bir şekilde gönderilmiştir.”;
    zamanlayici=new Timer(500);
    zamanlayici.addEventListener(TimerEvent.TIMER, zamanlayiciFNC);
    zamanlayici.start();
    } else {
    mesaj_txt.text=”Mesajınız Gönderilemedi.”;
    }
    http://www.forumixir.com
    }

    birde Gönderiliyor yazıyor ve öylece kalıyor. Mail gitmiyor

Leave a Reply