Link:INB Home|INB English| INB русский язык|INB العربية|INB Türkiye|INB فارسی|INB Español|INB Français|INB Português|INB 國語|INB 中文|INB 日本语|INB 한국어|INB tiếng Việt Flash Dersleri ActionScript 3.0 ve PHP İle İletişim Formu Oluşturmak
INB forum
[Açık kayıt doğrulamak gerek yok!]Hoşgeldiniz! inbforum.COM Internet No Boundaries Forum, Burada dünyanın tartışmalar etrafında arkadaşlarınızla tartışabilirsiniz gelin ve bize katılın! Daimi ismi: tr-inbforum.forumotion.com
INB forum
[Açık kayıt doğrulamak gerek yok!]Hoşgeldiniz! inbforum.COM Internet No Boundaries Forum, Burada dünyanın tartışmalar etrafında arkadaşlarınızla tartışabilirsiniz gelin ve bize katılın! Daimi ismi: tr-inbforum.forumotion.com
INB forum

Hoşgeldiniz! inbforum.COM Internet No Boundaries Forum, Burada dünyanın tartışmalar etrafında arkadaşlarınızla tartışabilirsiniz gelin ve bize katılın! Daimi ismi: tr-inbforum.forumotion.com


You are not connected. Please login or register

《《《《《《《上一页INBforum   Go down

上一页INBforum》》》》》》》View previous topic View next topic Go down  Message [Page 1 of 1]

1Flash Dersleri ActionScript 3.0 ve PHP İle İletişim Formu Oluşturmak Empty Flash Dersleri ActionScript 3.0 ve PHP İle İletişim Formu Oluşturmak Thu Nov 04, 2010 10:45 pm


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.

[You must be registered and logged in to see this image.]

Ş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 Smile 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.";
}
}

[You must be registered and logged in to see this image.]

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.
]

上一页INBforum   Go down

上一页INBforumView previous topic View next topic Back to top  Message [Page 1 of 1]

Permissions in this forum:
You cannot reply to topics in this forum

Copyright ©2009-2010 LTD Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

IT:SINGLESERVGoogle谷歌翻译TranslateFORUMSOFTLAYERGoogle谷歌广告联盟AdSenseAsia

 

Free forum | ©phpBB | Free forum support | Report an abuse | Forumotion.com