Zoque.Forum
»
Ders III: Flash MX & PHP Mail Form
|
| ActionScript ve Arşiv Bölümü Flash, Director, Live Motion Bölümünde önemli olduğunu düşündüğümüz mesajların toplandığı yeni bölüm. Arama motorundan daha eski mesajlara ulaşılabilir. |
![]() |
|
|
LinkBack | Seçenekler |
|
|
#1 (permalink) |
|
Üyelik Tarihi: 09.05.2005
Yer: Ankara
Yaş: 26
Mesaj: 148
|
flash MX ile son derece kullanışlı bir mail formu yapmak bir miktar action script bir miktar da PHP bilgisi ile çok zor olmayan bir uygulama. Bunun için boş bir flash çalışması açarak (Kısayol: CTRL +N) işe koyuluyoruz.
mail formu dilediğimiz bir frame'de kullanmak için movie clip tarzında hazırlamamız yerinde olacaktır. Bu sayede main timeline'dan bağımsız çalışabilen bir mail form oluşturcağız. Kısacası yeni oluşturduğumuz flash çalışmasında ilk işlemimiz Insert --> New Symbol (Kısayol: CTRL + F8) ile bir movie clip oluşturmak olmalı. Bu movie clip içersinde ilk layer'ımıza rectangle tool ile (Kısayol: R) bir background çizebiliriz. Bir üst layer'a yine aynı aracı kullanarak bir üst çizgi eklememiz görsellik açısından hoş olacaktır. Bir başka layer'a da static text aracını kullanarak (Kısayol: T) İsim, E-Posta ve Mesajınız sabit yazılarını yazalım. Hatta bu üç durağan yazıyı yeni bir movie clip haline getirip instance name'ini mailintro koyabiliriz. Her farklı frame'de farklı durağan yazıyı parlak hale getirip bunları birazdan tanımlayacağımız input text field'ler ile kontrol etmek için böyle bir çalışma yaptık. Şimdi ilk oluşturduğumuz movie clip'e dönerek yeni bir layer'da yine text aracı ile bu sefer properties penceresinden (Kısayol: CTRL +F3) input text seçili olmak koşuluyla üç tane text field oluşturalım ve bunların instance name'lerini sırasıyla name , mail ve bod verelim. Elbette maili gönderebilmek veya formu temizleyebilmek için bir Gönder bir de Temizle butonuna ihtiyacımız olacak. (Lütfen butonların instance name'lerini sırasıyla sendbutton ve clearbutton olarak verelim.) Formun eksik ya da yanlış doldurulmasına karşın bir tane de Geri Dön butonunun olması hiç de fena olmaz. Bu kadar laf salatasından sonra gelelim sadet olan Action script kısmına. Her frame'de bir başka kod yazana kadar ben fonsiyonlar ve dizelerle çalışan bir kodlamayı uygun buldum. Bu kodların hepsini movie clip'imizin içinde birinci frame'e yerleştirmemiz yeterli olacaktır. Kod:
stop(); //başlangıç anında filmi durdurduk. Name.text = "Misafir" ;//Açılışta yazacak olan name yazısı. mail.text = "account@mailserver.com" ;//Açılışta yazacak olan mail yazısı. Bod.text = "Bu Alana Mesajınızı Yazınız..." ;//Açılışta yazacak olan bod yazısı. name.tabIndex = 1; mail.tabIndex = 2; bod.tabIndex = 3; cleanbutton.tabEnabled = false; sendbutton.tabEnabled = false; //buraya kadar tab tuşunun kullanımı ayrıntısını gerçekleştirdik. errors = new Array(); //hataların bir dize olarak tanımlanmasını sağlayacağız. function ClearMailForm() { Name.text = ""; mail.text = ""; Bod.text = ""; errorLog.text = ""; errors.length = 0; //formu temizleyecek olan fonksiyonu tanımladık. } function ValidateMailForm() { errorLog.text = ""; errors.length = 0; ValidateName(); ValidateEmail(); ValidateBody(); if (errors.length > 0) { gotoAndStop (5); errorLog.htmlText = "<font color='#000000'><b>Lütfen Bilgileri Düzeltiniz:</b></font><br><br>"; var j = -1; while (++j < errors.length) { errorLog.htmlText += errors[j] + newline; //formun doğruluğunu kontrol eden fonksiyonumuzu tanımladık. Hata mevcutsa beşinci frame'e gidip yazdırmasını istedik. } } else { Translation (); gotoAndStop (10); loadVariablesNum("mail.PHP", 0, "POST"); //formda hata yoksa ara işlemi yapacak olan fonksiyonun çalışmasını isteyerek değişkenlerin gideceği PHP dosyasını ve filmin 10. frame'e gitmesi gerektiğini gösterdik. } } function ValidateName() { if (Name.text == "Misafir") { errors.push("<font color='#FF0000'>Lütfen Gerçek İsminizi Giriniz!</font>");//İsim alanında Misafir yazıyorsa verilecek hatayı belirttik. } if (Name.text.length < 2 || isNaN(Name.text) == false) { errors.push("Lütfen İsminizi Giriniz!");//İsim alanına girilen karekter sayısı ikiden azsa verilecek hatayı belirttik. } } function ValidateEmail() { if (mail.text.indexOf("@") < 2) { errors.push("<b>@</b> simgesi olmayan bir mail adresi girdiniz!");//mail alanında girilmesi gereken @ karekterinin kontrolünü ve verilecek hatayı belirttik. } if (mail.text.lastIndexOf(".") <= (mail.text.indexOf("@") + 2)) { errors.push("<b>.</b> simgesi olmayan bir E-mail adresi girdiniz!");//mail alanında girilmesi gereken . karekterinin @ karekterine göre yerini kontrol ederek verilecek hatayı belirttik. } if (mail.text.length < 8) { errors.push("mail Adresi Yeterince Uzun Değil!");//mail alanına sekiz karekterden daha kısa bir mail adresi yazıldığı vakit veerilecek hatayı belirttik. } if (mail.text == "account@mailserver.com") { errors.push("<font color='#FF0000'>Lütfen E-mail Adresinizi Giriniz!</font>");//mail alanında account@mailserver.com yazıyorsa verilecek hatayı belirttik. } } function ValidateBody() { if (Bod.text == "Bu Alana Mesajınızı Yazınız...") { errors.push("<font color='#FF0000'>Lütfen Mesajınızı Yazınız!</font>"); //Bod alanına girilen yazıyı kontrol ettik ve verilecek hatayı belirttik. } if (Bod.text.length < 2 || isNaN(Bod.text) == false) { errors.push("Mesajınız Yeterince Uzun Değil!"); //Bod alanına girilen yazının karekter değerini kontrol ettik ve verilecek hatayı belirttik. } } function Translation() { NameFrom = Name.text; //NameFrom adlı değişkeni Name instance name'ine sahip text field ile ilişkilendirdik. MailFrom = mail.text;//MailFrom adlı değişkeni mail instance name'ine sahip text field ile ilişkilendirdik. Body = Bod.text;//Body adlı değişkeni Bod instance name'ine sahip text field ile ilişkilendirdik. } Name.onSetFocus = function () { mailintro.gotoAndStop("isimlik"); if (Name.text == "Misafir") { Name.text = ""; //Name adlı text field seçildiğinde ona bağlı static text'in parlak olmasını ve misafir yazısının silinmesini sağladık. } } mail.onSetFocus = function () { mailintro.gotoAndStop("postalik"); if (mail.text == "account@mailserver.com") { mail.text = ""; //mail adlı text field seçildiğinde ona bağlı static text'in parlak olmasını ve account@mailserver.com yazısının silinmesini sağladık. } } Bod.onSetFocus = function () { mailintro.gotoAndStop("mesajlik"); if (Bod.text == "Bu Alana Mesajınızı Yazınız...") { Bod.text = ""; //Bod adlı text field seçildiğinde ona bağlı static text'in parlak olmasını ve Bu Alana Mesajınızı Yazınız... yazısının silinmesini sağladık. } } Kod:
on (release) {
mailintro.gotoAndStop(1);
ClearMailForm();
}
Kod:
on (release) {
mailintro.gotoAndStop(1);
ValidateMailForm();
}
Kod:
on (release) {
gotoAndStop(1);
}
Kod:
Thanks.htmlText = "Sayın " +NameFrom+ " Mesajınız Alınmıştır. Görüşleriniz Bizim İçin Önemlidir, Teşekkür Ederiz." ; Oldukça iyi tasarlanmış, göze hitap eden ve kodlaması sağlam bir mail form uygulamasını da böylece anlatmış olduk. mail.PHP dosyasının içeriğini aşağıda bulacaksınız. Yine yapılması gereken tek şey File --> Save (Kısayol: CTRL + S) ile çalışmamızı kaydetmek. Hoş burada kaydedilmişi var. mail.PHP dosyası içeriği: Kod:
<?PHP //Değişkenlerin Alınması ve İşlenmesi $eski = array("ı", "ç", "ÄŸ","ü","ÅŸ","ö","İ","Äž","Ü","Åž","Ö","Ç"," ","\r"); $yeni = array("ı", "ç", "ğ","ü","ş","ö","İ","Ğ","Ü","Ş","Ö","Ç"," ","<br>"); $NameFrom= str_replace($eski, $yeni, $NameFrom); $MailFrom= str_replace($eski, $yeni, $MailFrom); $Body= str_replace($eski, $yeni, $Body); //Türkçe karekter sorununu da bu işlemci ile çözümlüyoruz. $MailTo = "flasher@tuzuner.gen.tr"; $site = "tuzuner.gen.tr'den E-Posta Gönderildi."; $DateandTime = date("d-m-Y H:i:s"); if ($REMOTE_ADDR == "") $ip = "no ip"; else $ip = getHostByAddr($REMOTE_ADDR); $MailBody = " [------------------------------------------------------------------] Isım : $NameFrom E-Posta : $MailFrom Mesaj : $Body [------------------------------------------------------------------] Sistem : $HTTP_USER_AGENT Hostname : $ip IP adresi : $REMOTE_ADDR Tarih : $DateandTime [------------------------------------------------------------------] "; //Mailin gönderilmesi mail($MailTo, $site, $MailBody, "From: $NameFrom <$MailFrom>"); ?>
__________________
Çocukken her sabah Tanrı'ya yeni bir bisiklet alması için dua ederdim.Ama sonunda insan Tanrı ilişkisinin böyle olmadığını anladım ve kendime yeni bir bisiklet çaldıktan sonra her sabah günahlarımın affedilmesi için O'na dua ettim. "Al Capone" flasher & eiNsteiN Mesaj flasher tarafından 17.11.2005 (21:49) yeniden düzenlendi.. |
|
|
|
|
|
#3 (permalink) |
|
Üyelik Tarihi: 05.11.2005
Yer: bursa
Yaş: 22
Mesaj: 33
|
Re: Ders III: Flash MX & PHP Mail Form
Çok kullanışlı ve güzel bi çalışma hazırlamışsın ellerine sağlık.Fakat çalışmanın preview'inde ad soyad veya mesaj alanına tıkladığında,solunda beyaz fontlarda ad soyad e mail yazısı geliyor.Bunun nedenini bulamadım açıklarsan sevinirim.Bu arada bu çalışmanın telefon ve şehir sorgularının olduğu versiyonu lazım bunu nasıl hazırlayacağımı açıklayabilirmisin acaba? yada yapılmışı varsa elinde gönderirsen çok sevinirim.Şimdiden teşekkür ederim...
|
|
|
|
|
|
#4 (permalink) | |
|
Üyelik Tarihi: 09.05.2005
Yer: Ankara
Yaş: 26
Mesaj: 148
|
Kod:
Name.onSetFocus = function () {
mailintro.gotoAndStop("isimlik");
if (Name.text == "Misafir") {
Name.text = ""; //Name adlı text field seçildiğinde ona bağlı static text'in parlak olmasını ve misafir yazısının silinmesini sağladık.
}
}
mail.onSetFocus = function () {
mailintro.gotoAndStop("postalik");
if (mail.text == "account@mailserver.com") {
mail.text = ""; //mail adlı text field seçildiğinde ona bağlı static text'in parlak olmasını ve account@mailserver.com yazısının silinmesini sağladık.
}
}
Bod.onSetFocus = function () {
mailintro.gotoAndStop("mesajlik");
if (Bod.text == "Bu Alana Mesajınızı Yazınız...") {
Bod.text = ""; //Bod adlı text field seçildiğinde ona bağlı static text'in parlak olmasını ve Bu Alana Mesajınızı Yazınız... yazısının silinmesini sağladık.
}
Alıntı:
__________________
Çocukken her sabah Tanrı'ya yeni bir bisiklet alması için dua ederdim.Ama sonunda insan Tanrı ilişkisinin böyle olmadığını anladım ve kendime yeni bir bisiklet çaldıktan sonra her sabah günahlarımın affedilmesi için O'na dua ettim. "Al Capone" flasher & eiNsteiN Mesaj flasher tarafından 18.11.2005 (10:34) yeniden düzenlendi.. |
|
|
|
|
|
|
#6 (permalink) |
|
Üyelik Tarihi: 23.10.2005
Yer: Eregli
Yaş: 20
Mesaj: 60
|
Re: Ders III: Flash MX & PHP Mail Form
Flasher güzel yazı olmuş , tebrik ederim.Yalnız PHP kodu register_globals'ın "off" olduğu sunucularda sorun çıkartır.REMOTE_ADDR , HTTP_USER_AGENT gibi bilgiler $_SERVER[] dizisi içinde tanımlanmalı.Aynı şekilde $mailFrom gibi değişkenlerde hangi method ile yollanıyorsa o global dizinin içine alınmalı.(flash kodlardan bunu çıkartamadım.)
__________________
http://www.benzinliktekiadam.com |
|
|
|
|
|
#7 (permalink) |
|
Üyelik Tarihi: 09.05.2005
Yer: Ankara
Yaş: 26
Mesaj: 148
|
İsim soyisim
Şehir: Telefon No: mail: Mesajınız: gibi bir mail form için yapmanız gereken ufak eklentiler mevcut. Örneğin Location ve Phone gibi birer text field (variable) atayıp bunu opsiyonlu doldurabilir alanlarda olduğu gibi direkt (herhangi bir mantıksal sorgulamaya girmeden) PHP dosyasına gönderebilirsiniz. PHP dosyası içeriği; <?PHP //Değişkenlerin Alınması ve İşlenmesi $eski = array("ı", "ç", "ÄŸ","ü","ÅŸ","ö","İ","Äž","Ü","Åž","Ö","Ç", " ","\r"); $yeni = array("ı", "ç", "ğ","ü","ş","ö","İ","Ğ","Ü","Ş","Ö","Ç"," ","<br>"); $NameFrom= str_replace($eski, $yeni, $NameFrom); $MailFrom= str_replace($eski, $yeni, $MailFrom); $Location= str_replace($eski, $yeni, $Location); $Body= str_replace($eski, $yeni, $Body); //Türkçe karekter sorununu da bu işlemci ile çözümlüyoruz. $MailTo = "flasher@tuzuner.gen.tr"; $site = "tuzuner.gen.tr'den E-Posta Gönderildi."; $DateandTime = date("d-m-Y H:i:s"); if ($REMOTE_ADDR == "") $ip = "no ip"; else $ip = getHostByAddr($REMOTE_ADDR); $MailBody = " [------------------------------------------------------------------] Isım : $NameFrom Şehir : $Location Telefon : $Phone E-Posta : $MailFrom Mesaj : $Body [------------------------------------------------------------------] Sistem : $HTTP_USER_AGENT Hostname : $ip IP adresi : $REMOTE_ADDR Tarih : $DateandTime [------------------------------------------------------------------] "; //Mailin gönderilmesi mail($MailTo, $site, $MailBody, "From: $NameFrom <$MailFrom>"); ?> şeklinde değişiklik gösterecektir. Telefonu isteyeceğimiz değişkenimiz yalnızca sayılardan olacağı için hiçbir vakit Türkçe karakter sıkıntısı yaşamayacak. O nedenledir ki str_replace fonksiyonunu onun üzerine uygulamadık. Şayet Location ve Phone değişkenleri için de mantıksal sorgu yapılmak istenirse ValidateLocation, ValidatePhone gibi iki fonksiyon daha tanımlanıp bunların ValidateMailForm içinde çalıştırılmaları gerekmektedir. Lüzumlu görünürse bu fonksiyonları da yazabilirim.
__________________
Çocukken her sabah Tanrı'ya yeni bir bisiklet alması için dua ederdim.Ama sonunda insan Tanrı ilişkisinin böyle olmadığını anladım ve kendime yeni bir bisiklet çaldıktan sonra her sabah günahlarımın affedilmesi için O'na dua ettim. "Al Capone" flasher & eiNsteiN |
|
|
|
|
|
#9 (permalink) |
|
Üyelik Tarihi: 07.03.2003
Yer: İzmir
Yaş: 25
Mesaj: 449
|
Re: Ders III: Flash MX & PHP Mail Form
Merhaba,
Türkçe karakter atamalarında bir problem var; "Ş" ve "Ğ" harfleri düzgün çıkmıyor
__________________
ozguraltay.com //Açıldı, beklerim... labs.ozguraltay.com //outside of the box GreenAerosol.deviantart.com //Online galerim |
|
|
|
|
|
#10 (permalink) |
|
Üyelik Tarihi: 09.05.2005
Yer: Ankara
Yaş: 26
Mesaj: 148
|
Kod:
$eski = array("ı", "ç", "ğ","ü","ş","ö","İ","Ğ","Ü","Ş","Ö","Ç"," ","\r");
$yeni = array("ı", "ç", "ğ","ü","ş","ö","İ","Ğ","Ü","Ş","Ö","Ç"," ","<br>");
Siz flash player 8 ile mi denediniz?
__________________
Çocukken her sabah Tanrı'ya yeni bir bisiklet alması için dua ederdim.Ama sonunda insan Tanrı ilişkisinin böyle olmadığını anladım ve kendime yeni bir bisiklet çaldıktan sonra her sabah günahlarımın affedilmesi için O'na dua ettim. "Al Capone" flasher & eiNsteiN |
|
|
|