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ı;
Text kutucuklarından 4′ü (isim_txt, email_txt, konu_txt, mesaj_txt) input text, rapor_txt ise dynamic text formatındadır.
Butonlar;
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); } }
Süpersin Selman
Hoşgeldin aramıza
Teşekürler Giray, Hoşbulduk.
başlangıç için basit bir ders, artık fırsat oldukça ders eklemeye çalışacağım.
Başlangıç seviyesinde çok güzel bir makale. Ellerine sağlık
@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
hoş bir yazı tebrikler.:)
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]
@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.
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