Düzenleme : Bu çalışmadaki php dosyası zaman zaman sorun çıkartmaktadır.Bu nedenle flash8 başlığı altındaki 2 örneği incelemenizi öneririm.Sorunun ne olduğunu henüz çözemedim.
Bu çalışmamızın mail gönderme dışında diğer bir
özelliği size mesaj gönderen kişiye otomatik yanıt
iletmesidir.
Flash aracılığı ile mail göndermek için mutlaka
php deneyiminizin olması gerekmez.Webde bu konu ile ilgili birçok
php mail dosyası bulmanız mümkündür.Actionscript biliyorsanız
bir php dosyasında hangi alanları düzenleyeceğinizi kolaylıkla
anlarsınız.Bu tür entegre çalışmalardaki esas flash içinde kullanılan
input ve dinamik metin kutularının değişken adlarını, php dosyasında
kullanarakı işleyip yorumlamaktır.
Önce alttaki mail dosyasını inceleyin.Şayet isim,
mail ve mesaj kısımlarının bir veya birkaçını boş bırakır veya
hatalı mail adı kullanarak mesaj göndermeye kalkarsanız ilgili
kutuda gereken hata mesajını göreceksiniz.Deneme amaçlı hatalı
mail gönderiniz.
Buradan gönderilen mesajlar kullanmadığım bir
mail hesabına yollanacağından elime geçmeyecektir.
Şimdi düzgün olarak ilgili kutuları doldurun
ve kullandığınız bir email adresini yazın.Mesajı gönder tuşuna
bastıktan sonra mailinizi kontrol edin.Size otomatik bir cevap
gönderilecektir.
//Kullanıcıya mail gönderiliyor
mail("$email","$sitename sayfası",
"Merhaba,\n
$sitename sayfamı ziyaret ettiğiniz için
teşekkürler,mailinize en kısa süre içinde yanıt verilecektir.\n
Saygılarımla,
Lazoid
$siteaddress","FROM:$adminaddress");
//cevap
$sendresult = "Mailiniz gonderilmistir ";
print("answer=".urlencode($sendresult)."&");
endif;
?>
Yukardaki php sayfasında sadece kırmızı ile
yazılan yerleri değiştirebilirsiniz. Bunlar size ve maili gönderen
kişiye iletilen cümlelerdir. $fname , $email , $comments
kısımları flashda metin kutusuna atanan değişkenlerin isimleridir
ve bu alana yazılan metni yorumlar.$sendresult = "Mailiniz
gonderilmistir "; bu dizin mail gönderilme işlemi tamamlandığında
formmailin sağ tarafına eklenen dinamik metin kutusunda görüntüleneceklerdir.Sayfamız
flash amaçlı olduğundan php dosyası derinliğine yorumlanmayacaktır.Zaten
dikkatle incelediğinizde hangi bölümün neresi için kullanıldığını
kolaylıkla anlayabilirsiniz.
Swf dosyasının hazırlanması:
Aslında sayfanın hazırlanmasında hiçbir özellik yoktur.Yukardaki
swf dosyasını incelediğinizde sahnede 3 input kutu,
bunların hemen sağında bir dinamik metin kutusu
, altta 2 adet buton mevcuttur.
Burda sorulan sorulardan birisi metin kutularına
nasıl girinti ve çıkıntı imajı verildiğidir.Bu çok basit bir işlemdir.Deneme
amaçlı flashta yeni bir sayfa açın. Sahneye dinamik veya input
bir metin kutusu çizin.Fakat kutunun border alanını boş bırakın.
Üste bir layer ekleyin.Araç kutusundan line aracını seçin
ve en ince çizgi ile kutunun sınırları üzerine bir dikdörtgen
çizin.Şayet sol ve üst kenardaki çizgiyi siyah sağ ve alttaki
çizgiyi beyaz yaparsanız sayfamızdaki gibi bir girinti görüntüsü
gözlenir. Sol ve üst çizgiyi beyaz, sağ ve alttaki çizgiyi siyah
yaparsanız bu sefer bir kabartma imajı ortaya çıkacaktır. Bu 2
özellik butonlarda da kullanılmıştır.
Çizim işleri tamamlanmışsa şimdi isimlendirme işlemini
yapalım.
1- İnput kutulara sırası ile şu
instance nameleri atayalım. kutu0, kutu1
,kutu2
2- Dinamik metin kutusuna şu instance
name`i verin: sonuc
3-Gönder butonuna buton0 ve sil
butonuna buton1 adını atayın.
Burada sadece 1.kareye komutlar atanmış ve tüm işlemler
bu komutla sağlanmaktadır.Komutumuz:
/*Bir değişkene php dosyasının
adı atanıyor*/
mailform = "mailform.php";
/*Gönder butonuna basılınca daha sonra
tanımlanacak formGonder fonksiyonu çalışacaktır*/
buton0.onRelease = function(){
formGonder();
};
/*Sil butonuna basıldığında metin kutularını
temizlemek için null değeri atanıyor*/
buton1.onRelease = function(){
kutu0.text="";
kutu1.text="";
kutu2.text="";
sonuc.text="";
};
/*Burada kutu1 yani email
adresinin yazılması gereken alan denetleniyor.Sıra ile kutu1 e
girilecek metin uzunluğu en az 7 rakam içermektedir.Bir @ işareti
içermeli, @ işaretinden sonra en son tesbit edilen " ."
işaretine kadar alanda en az 2 karakter bulunmalıdır ve son olarak
noktadan sonra en az 2 karakter bulunmalıdır. Bunlar en az karakterle
yazılabilecek standart email adresi şartlarıdır. Şayet şartlar
yerine gelmişse sonuç true değilse false olarak dönecektir*/
function degerlendir() {
if (kutu1.text.length>=7){
if (kutu1.text.indexOf("@")>0){
if ((kutu1.text.indexOf("@")+2)<kutu1.text.lastIndexOf(".")){
if (kutu1.text.lastIndexOf(".")<(kutu1.text.length-2)){
return (true);
}}}}
return (false);
};
/*Şayet yukardaki şartlar
false olursa mail kutusuna "hatalı email" ikazı gelecektir.Altta
ise isim kutusuna hiç karakter yazılmamışsa veya 2 den az karakter
girilmişse "isim gereklidir" yazılacak.Aynı işlem mesaj
kutusu içinde istenmektedir.selection.setFocus() ise hatalı kutudaki
metnin siyah renkle seçilip dikkati çekmesi amacı ile eklenmiştir*/
function formGonder() {
if (!degerlendir()){
kutu1.text = "Hatalı e-mail";
selection.setFocus(kutu1);
}
if (kutu0.text == null || kutu0.text.length < 2 ){
kutu0.text = "İsim gereklidir";
selection.setFocus(kutu0);
}
if (kutu2.text == null || kutu2.text.length < 2 ){
kutu2.text = "Mesaj yazmalısınız";
selection.setFocus(kutu2);
}
/* Bir şartı başlatıyoruz
artık, yukarda tanımladığımız fonksiyonlar olumlu ise yani şartlar
yerine getirilmişse (sırası ile degerlendir() fanksiyonu true
ise ve kutularda ilgili hata mesajı yoksa) metin kutularına yazılan
değerler php dosyasına gönderiliyor ve sonuc kutusuna "lütfen
bekleyiniz..." şeklinde bir uyarı gönderiliyor.İşlem tamamlandıktan
sonra mesaj iletiliyor ve sonuç kutusuna php dosyasında yazılmış
olan "mailiniz gönderilmiştir" metni yükleniyor*/
if (degerlendir() && kutu0.text != "İsim gereklidir"
&& kutu2.text != "Mesaj yazmalısınız"){
formData = new LoadVars();
formData.fname = kutu0.text;
formData.email = kutu1.text;
formData.comments = kutu2.text;
formData.action = "send";
sonuc.text = "Lütfen bekleyiniz ...";
replyData = new LoadVars();
replyData.onLoad = function(success){
if(success){
sonuc.text = replyData.answer;
trace(replyData.answer); }
};
formData.sendAndLoad(mailform, replyData);
}
};
Çalışmamız bundan ibarettir. Flash içinde metin
kutularına yazılan değerlerin Türkçe desteği için server php.ini
dosyasında düzenleme yapılmış olmalıdır.Php konusunda sadece kullanabilecek
kadar deneyimim olduğundan TR karakter sorununuz olursa bu konuda
daha deneyimli arkadaşlardan destek almanızı öneririm.
NOT: Çalışmadaki Türkçe karakter
ve gelen maildeki satır geçiş sorunu Aykut Ardıç (websayfası:
http://www.fuardunyasi.com) arkadaşımız tarafından düzeltilmiştir.
Desteği için kendisine teşekkür ederim. İndireceğiniz zip dosyasındaki
php kodları revize edilmiştir.