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;
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