Actionscript 3.0 Flash Şifreli Giriş Sayfası ve Yönetim Panelinden Sayfaya Veri Gönderme
Bu dersimiz biraz uzun olacak…Flash içinde yönetim paneline giriş yapmak için çeşitli şekillerde şifreli giriş sayfası yapılabilir.isterseniz şifrenizi swf dosyanızda saklayabilirsiniz Bu örnekte olduğu gibi ama bu güvenilir olmadığından biz bu dersimizde daha güvenilir(çok ta abartmayalım-profesyonellerin elinden kurtulabilir) yöntemlerden birini–> php kullanarak yapacağız.Bu yöntemde kullanıcı girişi,hata sayfası,yönetim paneli(bilgi göndermek için) ve web sayfası(gelen bilgiyi görmek ) için 1 tane SWF dosyamız olacak.Yani bu saydıklarımın hepsi tek bir SWF içinde 4 ayrı frame’de olacak.
Bu SWF içinde

1.frame’de kullanıcı giriş sayfası-(Kullanıcı Adı ve şifre girmek için)
2.frame’de şifre yanlış ise uyarı-(kullanıcı adı veya şifre hatalı ise 2.frame’e gelir)
3.frame’de yönetim paneli -(kullanıcı adı ve şifre doğru ise 3.frame’e gelir)
4.frame’de web sayfamız olacak.(Bilgi buraya gelecek)
Bu dosyada Actionscript 3.0 kodları kullanacağız.
Şifremizin doğru ya da yanlış olduğunu PHP içinde kontrol edeceğimiz için bir tane PHP dosyamız olacak.Yani şifremiz SWF içinde değil PHP’de saklı olacak(Güvenlik için)Şifremiz yanlış ise bize uyarı verecek(2.frame’de) doğru ise (3.Frame’e)Yönetim paneline gidecek.
Yönetim panelinden gönderilen veriyi hafızasında tutması ve istediğimiz zaman bize vermesi için bir adet XML dosyası gerekli.Ben XML kullandım.Siz veriyi tutması için veri tabanı kullanabilirsiniz ancak bu kodlarla değil.
Flash ile XML’den veri okuyabiliriz ancak XML içine veri yazdıramayız.Dolayısıyla XML içine veri yazmak için bir tane daha PHP dosyası bize aracı olacak.Yani toplamda :
*1 tane SWF
*1 tane XML
*2 tane PHP olacak .
İlk SWF 4 Frame’den oluşacak.

Şimdi 1. Frame’nin kodlarını yazalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
stop(); //imleç ekran açıldığında text içinde gözüksün. stage.focus = kullaniciAdi_txt; //Türkçe karekter desteğini açmak için. System.useCodePage=true; //textlere girilen verilerin belirli bir sayıda olması için. kullaniciAdi_txt.maxChars=16; kullaniciSifre_txt.maxChars=12; //butona olay dinleyicisi ekleyelim. verikontrol_btn.addEventListener(MouseEvent.CLICK,veriyikontrolet); function veriyikontrolet(event:MouseEvent):void { //butonun çalıştıracağı işlev . //php dosyasının path'ini hafızasında tutmak için URLRequest kullanalım. var req:URLRequest=new URLRequest("http://localhost/sgs/kontrol.php"); //verinin gideceği metodu yazalım req.method=URLRequestMethod.POST //php ile as3 arasında veri alışverişi için bir paket tanımlayalım. var variables:URLVariables=new URLVariables() //as3 içindeki verilerle php içinde ki verileri eşleştirelim. variables.kullaniciAdi=kullaniciAdi_txt.text; variables.kullaniciSifre=kullaniciSifre_txt.text; //URLRequest içine veripaketinden verileri almak için...???? req.data=variables; //Verileri flash içine yükleyecek bir Loader tanımlayalım. var ldr:URLLoader=new URLLoader() //Loader içerisine verileri yüklemek için ldr.load(req) //verilerin yüklendiğini takip etmek için bir olay dinleyicisi ekleyelim. ldr.addEventListener(Event.COMPLETE,kontrolPhpYuklendi) //Olay dinleyicisi sonunda çalıştıracağı fonksiyonu yazalım } function kontrolPhpYuklendi(event:Event):void{ var kontrolVerisi:XML=new XML(event.target.data); durum_txt.text=kontrolVerisi; trace(kontrolVerisi); if(kontrolVerisi=="devam") gotoAndStop(3); else gotoAndStop(2); } |
Şimdi 2.Frame’nin kodlarını yazalım.
1 2 3 4 5 6 |
stop(); geri_btn.addEventListener(MouseEvent.CLICK,geridön) function geridön(e:MouseEvent) { prevFrame(); } |
Şimdi 3.Frame Kodlarını yazalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
stop(); System.useCodePage=true; gonder_btn.addEventListener(MouseEvent.CLICK,git); function git(e:MouseEvent) { var req:URLRequest=new URLRequest("veri.php"); req.method=URLRequestMethod.POST; var variables:URLVariables=new URLVariables(); variables.veri=veri_txt.text; req.data=variables; var ldr:URLLoader=new URLLoader(); ldr.load(req); } siteyeGit_btn.addEventListener(MouseEvent.CLICK,siteyeGit) //Butona olay dinleyicisi ekledim function siteyeGit(e:MouseEvent) //verilen emri yerine getirmek için bir fonksiyon ekledim { nextFrame(); } |
Şimdi 4.Frame kodlarını yazalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
stop(); sonuc_txt.autoSize = TextFieldAutoSize.LEFT; System.useCodePage=true; var veri:XML=new XML(); var adres="veri.xml"; var req:URLRequest=new URLRequest(adres); var ldr:URLLoader=new URLLoader(req); ldr.addEventListener("complete",yuk) function yuk(event:Event) { veri=XML(ldr.data); veri.ignoreWhitespace=false; ldr.load(req); sonuc_txt.text=veri.toString(); sonuc_txt.x=(stage.stageWidth-sonuc_txt.width)/2; } paneleGit_btn.addEventListener(MouseEvent.CLICK,paneleGit) //Butona olay dinleyicisi ekledim function paneleGit(e:MouseEvent) //verilen emri yerine getirmek için bir fonksiyon ekledim { prevFrame(); } |
,
Şimdi 1.Frame’den girilen şifreyi kontrol etmesi için kontrol.php dosyasının kodlarını yazalım:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php $kullaniciAdi="web_dew"; $kullaniciSifre="12345"; if(($kullaniciAdi==$_POST['kullaniciAdi'])&&($kullaniciSifre==$_POST['kullaniciSifre'])) { echo "devam"; } else { echo "dur"; } ?> |
Şimdi yönetim panelinden girilen veriyi XML dosyasına yazdıracak PHP kodlarımızı yazalım:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php header("content type:text/xml"); $dosya = fopen("veri.xml","w"); // veri.xml uzantılı dosya açacağımızı belirttik. //Dosya yoksa bu isimde ve uzantı da oluşturulacak. $veri = $_POST['veri']; // XML kodlarımızı buraya yazacağız $yaz = fputs($dosya,$veri); // fputs ile veri.xml dosyamıza $veri değişkenin de ki değerlerin yazılacağını söyledik. ?> |
Son olarak XML dosyasına veri yazacağız sanmayın çün ki bunu veri.php ile yazdırdık.Bu kodların çalışabilmesi için Localhost içinde çalıştırmanız gerekli.Çün ki php kullandık.(php server side -sunucu taraflı çalışan bir dil olduğu için kendi bilgisayarınızda localhost yoksa çalışmayacaktır.)Kendi bilgisayarınıza wamp kurarsanız localhost sahibi olursunuz ve çalıştırabilirsiniz.En son görünen hali aşağıda ki gibi olmalı:

Aslında yukarıda ki örnek te güvenlik açısından eksik oldu.Çün ki sayfa üzerinde sağ tıklayıp oynat/çal diyen birisi diğer frame’lere şifre bilmeden girebilir.Onun için sayfa içinde sağ tıklanması sonucu çıkan seçenekleri değiştirmeliyiz.Yani 1.frame’ye burada ki dersten faydalanarak kodlar girip sağ tıklanınca gözüken seçenekleri gizleyebiliriz.Bu şekilde diğer frame’lere şifre bilmeden girmesini engelleriz.
merhaba ben adobe cs6 kullanarak as3.0 ile php ve mysql kullanarak bir giriş paneli yaptım. Fla dosyasından açtığımda sorunsuz çalışan panel .swf ile kesinlikle çalışmamakta nedeni ne olabilir?