ActionScript 3.0 ve PHP İle İletişim Formu Oluşturmak

Bu uygulamamızda ActionScript 3.0 ve php ile iletişim formu yapacağız. Bu formların amacı kullanıcı ve site sahibi arasında yazılı olarak iletişimin gerçekleşmesini sağlamaktır. Fakat bu iletişimin gerçekleşebilmesi için kullanıcıdan bir takım bilgilerin alınması gerekmektedir (Örn. : Ad, Soyad, mail adresi, mesaj vb.).

Bu uygulamamızda ActionScript 3.0 ve php ile iletişim formu yapacağız. Bu formların amacı kullanıcı ve site sahibi arasında yazılı olarak iletişimin gerçekleşmesini sağlamaktır. Fakat bu iletişimin gerçekleşebilmesi için kullanıcıdan bir takım bilgilerin alınması gerekmektedir (Örn. : Ad, Soyad, mail adresi, mesaj vb.).

İlk olarak kullanıcıdan gerekli bilgileri alabilmek için Flash ve ActionScript 3.0 kısmını halledelim. Yeni bir doküman açalım ve dökümanı belirlediğimiz herhangi bir klasörün içerisine MailYolla ismi ile kayedelim. Sahneye 4 adet Input Text , 1 adet Dynamic Text ve 2 adet buton yerleştirelim. Butonlar için Components panelinde bulunan butonları kullanabilirsiniz. Nesnelerin Instance Name?leri ve yerleşimi için alttaki imajı inceleyebilirsiniz.



Şimdi de yeni bir layer oluşturalım ve ismini Actions olarak değiştirelim. Actions panelini açalım ve kodları yazmaya başlayalım.

Her ihtimale karşılık metin kutularının içerisini boşaltalım ve tab tuşuna basıldığında yağılacak geçişlerin sırasını belirleyelim.


isim_txt.text="";

mail_txt.text="";

konu_txt.text="";

mesaj_txt.text="";

uyari_txt.text="";



isim_txt.tabIndex=1;

mail_txt.tabIndex=2;

konu_txt.tabIndex=3;

mesaj_txt.tabIndex=4;[/cc]



Kullandığımız butonların Label?larını değiştirelim.

[cc lang="ActionScript"]

temizle_btn.label="Temizle";

gonder_btn.label="Gönder";



Uygulama açıldığında fare imlecinin isim_txt adındaki metin kutusunda olmasını sağlayalım. Bunun için stage.focus özelliğini kullanacağız.


stage.focus=isim_txt;



Input Text alanlarına girilecek olan karakter sayılarını sınırlandıralım. Karakter sayılarını sınırlandırabilmek için maxChars özelliğini kullanacağız.


isim_txt.maxChars= 30;

mail_txt.maxChars=40;

konu_txt.maxChars=100;

mesaj_txt.maxChars=500;



Şimdi de temiz_btn isimli butona olay dinleyici ekleyelim ve butona tıklandığında bütün text alanlarının içlerinin boşaltılmasını sağlayalım.



temizle_btn.addEventListener(MouseEvent.CLICK, formuTemizle);



function formuTemizle(e:MouseEvent) {

    isim_txt.text="";

    mail_txt.text="";

    konu_txt.text="";

    mesaj_txt.text="";

    uyari_txt.text="";

    stage.focus=isim_txt;

}



Geriye gonder_btn isimli butona tıklandığında kullanıcıdan aldığımız verileri php dosyasına göndermek kaldı. Fakat butona tıklandığında ilk olarak verileri göndermeyeceğiz. Mesajın gönderilebilmesi için istenilen tüm bilgilerin eksiksiz olarak girilmesi gerekmektedir. Eğer tüm bilgiler eksiksiz olarak girildi ise mail adresinin hatalı olup olmadığını kontrol edeceğiz. Bilgiler eksiksiz ve mail adresi de doğru ise bilgileri php dosyasına göndereceğiz. Bu kontrollerin hepsini if..else if koşullu ifadesini kullarak yapacağız.

Mail adresinin hatalı olup olmadığını nasıl kontrol edeceğiz? Sorusunu duyar gibi oldum :) Bu kontrolü basit bir şekilde yapabiliriz. Her mail adresinde olması gerekn bir takım karakterler mevcuttur. Bu karakterler @ ve alan adı ve uzantısını ayırmak için kullanılan . ?dır. Biz de kullanıcının girdiği mail adresinde bu karakterlerin olup olmadığını indexOf metodunu kontrol edeceğiz. Eğer aradığımız karakter yok ise geriye dönecek değer -1 olacaktır. Yani kullanıcının girdiği mail adresinde @ veya . karakteri yok ise arama sonucunda geriye -1 değeri dönecektir.

Kontroller sonucu her şey istediğimiz gibi ise verileri php dosyasına göndereceğiz. İlk olarak bir URLVariables nesnesi tanımlayacağız. PHP dosyasına göndereceğimiz verileri bu nesneye birer özellik olarak ekleyecek ve kullanıcıdan aldığımız bilgileri özelliklere değer olarak atayacağız. Sonrasında ise bir URLRequest nesnesi tanımlayarak kullanacağımız php dosyasının yolunu belirteceğiz ve bu nesnenin data özelliğine tanımlamış olduğumuz URLVariables değişkenini değer olarak atayacağız. Son olarak veriyi göndermek ve gönderme işleminin sonucunu almak için bir URLLoader nesnesi tanımlayacağız. Sonucun dönme süresini hesaplama imkanımız olmadığı için URLLoader nesnesine bir olay dinleyicisi ekleyerek işlemin bitip bitmediğini kontrol edeceğiz.

Gonder_btn isimli nesnemize olay dinleyicimizi ekleyelim ve gerekli kontrolleri yapalım.


gonder_btn.addEventListener(MouseEvent.CLICK, mesajiGonder);



function mesajiGonder(e:MouseEvent) {

    if (isim_txt.text==""||mail_txt.text==""||konu_txt.text==""||mesaj_txt.text=="") {

        uyari_txt.text="Lütfen tüm alanları eksiksiz doldurun.";

    } else if (mail_txt.text.indexOf("@")==-1||mail_txt.text.indexOf(".")==-1) {

        uyari_txt.text="Mail adresi hatalı. Lütfen kontrol edin.";

    } else {

        var adres:URLRequest=new URLRequest("php/gonder.php");

        var formBilgileri:URLVariables=new URLVariables();

        var phpLoader:URLLoader=new URLLoader();



        adres.method=URLRequestMethod.POST;



        formBilgileri.isim=isim_txt.text;



        formBilgileri.mail=mail_txt.text;



        formBilgileri.konu=konu_txt.text;



        formBilgileri.mesaj=mesaj_txt.text;



        adres.data=formBilgileri;



        uyari_txt.text="Mesajınız gönderiliyor.";



        phpLoader.load(adres);



        phpLoader.addEventListener(Event.COMPLETE, mesajGonderildi);



    }

}


mesajGonderildi fonksiyonunu oluşturalım. Bu fonksiyon ile php dosyasından geri dönen veriyi alacağız. Geriye dönen veriye göre mail gönderme işleminin sonucunu kullanıcıya bildireceğiz.


function mesajGonderildi(e:Event) {

    if (e.target.data=="mesajGonderildi") {

        uyari_txt.text="Mesajınız Gönderildi";

    } else {

        uyari_txt.text="Gönderme sırasında bir hata oluştu. Lütfen tekrar deneyin.";

    }

}





Flash ve ActionScript 3.0 tarafını hallettik. Şimdi de php tarafını halledelim. Php konusunda çok fazla bilgim olmadığı için açıklamalarda çok derine inemeyeceğim. İlk olarak mailin gönderileceği adresi belirlemek için $to adında bir değişken oluşturuyoruz. Değer olarak ise mail adresimizi atyırouz. Sonrasında ActionScript 3.0 ile gönderdiğimiz verileri php içerisinde oluşturulan değişkenlere değer olarak atıyoruz. En son ise mail metodu ile işlemin sonucunu belirleyip echo komutu ile çıktı alıyoruz. ActionScript tarafında mesajGonderildi isimli fonksyionda kontrol ettiğimiz veri buradaki echo komutu ile çıktı alınan veridir.


<?php  

$to 
"Mail adresinizi buraya yazın.";

$subject $_POST["konu"];

$headers "From: " $_POST["isim"] . "rn";

$headers .= "<".$_POST["mail"].">";

$headers .= "Reply-To: " $_POST["mail"] . "rn";

$message $_POST["mesaj"] ;

if( 
mail($to$subject$message$headers) ){

        echo 
"mesajGonderildi";

}else if (!
mail($to$subject$message$headers)){

         echo 
"hata";

}

?> ?>



Oluşturduğumuz php dosyasını fla dosyamızı kaydettiğimiz klasör içerisinde php isimli bir klasör oluşturalım ve bu klasör içerisine gonder.php ismi ile kaydedelim.
Kodların tamamı aşağıdaki gibi olacaktır.

ActionScrip 3.0

isim_txt.text="";

mail_txt.text="";

konu_txt.text="";

mesaj_txt.text="";

uyari_txt.text="";

isim_txt.tabIndex=1;

mail_txt.tabIndex=2;

konu_txt.tabIndex=3;

mesaj_txt.tabIndex=4;

temizle_btn.label="Temizle";

gonder_btn.label="Gönder";

stage.focus=isim_txt;

isim_txt.maxChars=30;

mail_txt.maxChars=40;

konu_txt.maxChars=100;

mesaj_txt.maxChars=500;



temizle_btn.addEventListener(MouseEvent.CLICK, formuTemizle);



function formuTemizle(e:MouseEvent) {

    isim_txt.text="";

    mail_txt.text="";

    konu_txt.text="";

    mesaj_txt.text="";

    uyari_txt.text="";

    stage.focus=isim_txt;

}



gonder_btn.addEventListener(MouseEvent.CLICK, mesajiGonder);



function mesajiGonder(e:MouseEvent) {

    if (isim_txt.text==""||mail_txt.text==""||konu_txt.text==""||mesaj_txt.text=="") {

        uyari_txt.text="Lütfen tüm alanları eksiksiz doldurun.";

    } else if (mail_txt.text.indexOf("@")==-1||mail_txt.text.indexOf(".")==-1) {

        uyari_txt.text="Mail adresi hatalı. Lütfen kontrol edin.";

    } else {

        var adres:URLRequest=new URLRequest("php/gonder.php");

        var formBilgileri:URLVariables=new URLVariables();

        var phpLoader:URLLoader=new URLLoader();

        adres.method=URLRequestMethod.POST;

        formBilgileri.isim=isim_txt.text;

        formBilgileri.mail=mail_txt.text;

        formBilgileri.konu=konu_txt.text;

        formBilgileri.mesaj=mesaj_txt.text;

        adres.data=formBilgileri;

        uyari_txt.text="Mesajınız gönderiliyor.";

        phpLoader.load(adres);

        phpLoader.addEventListener(Event.COMPLETE, mesajGonderildi);



    }

}



function mesajGonderildi(e:Event) {

    if (e.target.data=="mesajGonderildi") {

        uyari_txt.text="Mesajınız Gönderildi";

    } else {

        uyari_txt.text="Gönderme sırasında bir hata oluştu. Lütfen tekrar deneyin.";

    }

}


gonder.php

<?php  

$to 
"Mail adresinizi buraya yazın.";



$subject $_POST["konu"];



$headers "From: " $_POST["isim"] . "rn";



$headers .= "<".$_POST["mail"].">";



$headers .= "Reply-To: " $_POST["mail"] . "rn";



$message $_POST["mesaj"] ;



if( 
mail($to$subject$message$headers) ){

        echo 
"mesajGonderildi";

}else if (!
mail($to$subject$message$headers)){

        echo 
"hata";

}



?> ?>


Son olarak gelen mesajlarda Türkçe karakter sorunu yaşarsanız. ActionScript kodlarının en başına


System.useCodePage=true;



satırını ekleyin.
  • Etiketler;
Erol Demirer
1978 yılının en sıcak zamanlarından sayılabilecek Ağustos ayının 23. günü saat 16.30 sıralarında dünyaya gelmiş, yaptığı son dakika atağı ile Aslan burcuna yetişmiştir. <p>İlk ve Ortaokul öğrenimini İzmit’te tamamlamıştır. Lise yıllarına İstanbul Şişli Endüstri Meslek Lisesi’nde başlamış olsa da bir süre sonra eğitim hayatına Kocaeli Endüstri Meslek Lisesi’nde devam etmiştir. Mesleğe olan ilgisi ortaokul yıllarında başlamış olup, o dönemde yaz tatillerinde küçük bir matbaada çalışarak hem meslek, hem de iş hayatına başlamıştır. <p>Çocukluk ve gençlik yılları İzmit’te geçmiştir. Bu zaman zarfı içerisinde çok sık gidip geldiği İstanbul’a yerleşmesi ise askerden sonra 2002 yılı başlarıdır. İstanbul’a yerleştikten sonra bir çok reklam ajansı ve kurumsal firmada Grafik Tasarımcı olarak çalışmıştır. Aynı zamanda Freelance olarakta çeşitli firmalarda çalışmıştır. Bu firmalardan bazıları Üçel Reklam Ajansı, Yüce Yayıncılık, Strateji Parkı, MacroMicro, Koleksiyon Mobilya sayılabilir. Çalışma hayatında bir çok başarılı projeye imza atmıştır. <p>Alanında uzman olduğu konulardaki bilgilerini insanlarla paylaşma isteği sayesinde atıldığı eğitmenlik macerasının başlangıcı ise 2005 yılına dayanmaktadır. Bu dönemde yolları Bilimer Bilişim Akademisi ile kesişmiş ve eğitmenlik hayatına başlamıştır. Bilimer’den sonra Akademi İstanbul’da da Eğitim Görevlisi olarak çalışmıştır. <p>Adobe Photoshop, Adobe Illustrator, Adobe Indesign, Adobe Acrobat Professional, Adobe Flash, Adobe Dreamweaver, Adobe Fireworks, QuarkXPress vb. programlar ile birlikte ActionScript 3.0 ve CSS üzerine de bireysel ve kurumsal eğitimler vermektedir. <p>2008 yılının sonunda Medyasoft’un açmış olduğu Adobe Publishing Expert sınavına katılmış ve sınavı başarı ile bitirerek Adobe Yayıncılık Uzmanı (APE) sertifikasını almaya hak kazanmıştır. <p>2009 yılı ile birlikte Medyasoft ile anlaşmaya varmış ve Medyasoft’un Milli Eğitim Bakanlığı ile birlikte yürütmüş olduğu bir projede Eğitim Görevlisi olarak çalışmaktadır. Proje kapsamında Türkiye’nin çeşitli ilerinde öğretmenlerimize Adobe Web Premium CS3 ve CS4 paketlerinin eğitimleri verilmektedir. <p>Eğitimlerin yanısıra ajans ya da firmalardan gelecek olan tekliflere (Freelance ya da tam zamanlı) açıktır.
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

[b][b]cok guzel bir anlatim olmus , emegine saglik.[/b][/b]
ben de diyorum neden olmuyor.meğer Action Script 3.0 mış.benim flashta 1.0 ve 2.0 arası var.peki bunu nasıl halledebilirim??
Kullandığın flash versiyonunu CS3 ve üzeri bir versiyona yükseltmen lazım.
Teşekkürler tamda aradığım şeydi, Derslerinizi ve anlatımlarınızı takdir ediyorum doğrusu.. Emekleriniz için teşekkürler...
Herkese Merhaba, Öncelikle paylaşımlarınızdan dolayı teşekkür ederim. Bildiğim kadarıyla ASP veya PHP ile yapılan iletişim formlarında yapı değişti. İlgili site altında mail adresi açıp, bilgileri maile yönlendiren ASP veya PHP sayfasına bu mail adresi ve şifresini yazmak gerekiyor. Güvenlik açısından yapının bu şekilde değiştirildiği söyleniyor. Benim sorunum ise Action Script 3.0 la yapılmış, ASP veya PHP ile çalışan böyle bir mail form örneğine ihtiyacım var. Elinizde varsa FLA ve ASP veya PHP sayfasını burda paylaşırsanız minnettar kalırım. Sadece ben değil Flash'la ilgilenen arkadaşlarda eminimki minnettar kalacakalrdır. İlgi ve yardımlarınızdan dolayı şimdiden teşekkür eder iyi çalışmalar dilerim.
paylaşım için teşükkürler güzel anlatmışsınız.bende aynısını yaptım fakat mesaj gönderilirken hata oluştu diyor acaba yardımcı olabilir misiniz.
merhba, örnek dosya yokmu?
mrhb iyi çalışmalar örnek dosya yüklermisiniz?
ÇOK teşekkürler çok faydalı bir ders!
Beyninize sağlık.

Yukarı Git