Flash Builder – AmfPHP – ezSQL – Bölüm 1 – Veri Kaydı

Posted by ismail şimşek | Posted in Actionscript 3.0, Amfphp, Flash Builder, Php | Posted on 24-07-2010-05-2008

0

Merhabalar.

Bu yazımda AmfPHP ve ezSQL ile Flash Builder kullanarak nasıl daha rahat veri kaydedebileceğimizi göstereceğim.
Öncelikle gerekli dosyaları edinelim. ezSQL’i şu adresten indirelim. Bu benim Türkçe karakterler için düzeltme uyguladığım dosya. Bir önceki yazımda bahsetmiştim. Daha sonra amfphp yi şu adresten indirelim. Son olarak amfphp bağlantısını her seferinde yeniden yazmak beni sıktığı için kendi hazırladığım çok basit amfphp sınıfını indiriyoruz.

Şimdide Flash Builderda yeni bir proje açıp email ve şifre girişi yapılan bir form oluşturuyoruz.

<mx:Form>
    <mx:FormHeading label="Kullanıcı Girişi"/>
    <mx:FormItem label="E-Mail">
        <s:TextInput id="email"/>
    </mx:FormItem>
    <mx:FormItem label="Şifre">
        <s:TextInput id="sifre"
                     displayAsPassword="true"/>
    </mx:FormItem>
    <mx:FormItem>
        <s:Button click="onClick()"
                  label="Giriş Yap"/>
    </mx:FormItem>
</mx:Form>

Sınıfımızı import edip gerekli verileri gönderelim.

import com.ismail.amfphp.Connect;
import mx.controls.Alert;

public var amf:Connect;

public function init():void
{
    amf = new Connect();
    amf.setPaths("http://localhost/amfphp/gateway.php","denemeClass.MainDenemeClass.");
}

public function onClick():void
{
    var obj:Object =  {email:email.text,sifre:sifre.text};
    amf.amfphp("kayitEkle",obj,kayitSonucu);
}

public function kayitSonucu (e:Object):void
{
    if(e.toString() == "1")
    {
        Alert.show("Kayit Başarılı.");
    }
    else
    {
        Alert.show("Başarısız.");
    }
}

amf.setPaths() fonksiyonu bizden iki tane veri bekliyor. Birinci veri amfphp nin gateway.php dosyasının yolu. Çünkü bunun üzerinden iletişim kuracak. Diğer veri ise bizim işlemleri yapacak olan php dosyamızın yolu. Bu şekilde yazmamın nedeni şu. Bu adres her veri isteğinde yazılmak zorunda. Biz bir kere verip kurtuluyoruz :D “denemeClass” services klasörü içindeki benim sınıfımın bulunduğu klasör “MainDenemeClass” ise php dosyamın adı.
Gelelim php dosyamıza. Onunda içeriği şu şekilde

<?php
include_once 'ez_sql_core.php';
include_once 'ez_sql_mysql.php';

class MainDenemeClass extends ezSQL_mysql
{
    function MainDenemeClass()
    {
        include_once 'db.php';
        $this->ezSQL_mysql ( DB_USER, DB_PASS, DB_NAME, DB_HOST );
    }

    function kayitEkle($gelenVeri)
    {
        extract($gelenVeri);

        $qq = $this->query("insert into uyeler values('','$email','$sifre')");
        if($qq)
        {
            return 1;
        }
        else
        {
            return 0;
        }
    }
}

Sonunda ?> yok farkettiyseniz. Gerekte yok. Bazen sorun çıkartabiliyor o yüzden koymuyorum. Burada yine aynı sırayla dosyalarımızı import ediyoruz ve sınıfımızı ezSQL_mysql ile extend ediyoruz.
Flash Builder içinden çağırdığımız kayitEkle fonksiyonu bir adet veri kabul ediyor. Bunu fonksiyon içinde extract() ile parçalıyoruz. Bu sayede her gelen veri düzgün bir şekilde ayrıştırılmış oluyor.
İşlemleri yapıp geriye istediğimiz veriyi döndürüyoruz.

ezSQL ile Türkçe karakter sorunu nasıl aşılır?

Posted by ismail şimşek | Posted in Php | Posted on 24-07-2010-05-2008

0

Merhaba arkadaşlar.

Uzun zaman önce tanıştığım ezSQL sayesinde pek çok işimi kolayca hallettim. Sunduğu imkanlar ve wordpress in altyapısını oluşturması benim kullanma isteğimi arttırmıştı. Öncelikle internette küçük bir araştırma yaptım. İngilizceniz varsa kendi dökümantasyonu herşeyi güzelce açıklıyor. Ama eğer türkçe kaynak isterseniz yakuter in blog sayfasına göz atabilirsiniz.

Buradan->http://www.yakuter.com/ezsql-veritabani-sinifinin-kullanimi/

Ben bunları okuyup irdeleyip kendime uygun bir yapı çıkarttım. Herkesin başına gelmiştir. Php mysql ve türkçe karakter sorunu. Bu ezSQL ile de başıma geldi. O yüzden internette araştırdım ve şöyle bir sonuca ulaştım.

Öncelikle ezSQL’i buradan indirip içinden mysql klasöründeki ez_sql_mysql.php ve shared klasöründeki ez_sql_core.php dosyalarını alıyoruz ve yeni kendi proje dizinimize aktarıyoruz.

Veritabanınızı oluştururken utf8 olarak oluşturun. Veritabanı bağlantısı yaptıktan sonra ise şu kodları yazın.

mysql_query ( "SET NAMES 'utf8'" );
mysql_query ( "SET CHARACTER SET utf8" );
mysql_query ( "SET COLLATION_CONNECTION = 'utf8_turkish_ci'" );

Bunu ezSQL ile otomatik hale getirmek için sql_for_tr.php isimli bir dosya oluşturup bunları içine yazdım. Burada dikkat edilecek nokta şudur. Dosyaların karakter kodlamaları aynı olmalı. Yani dosya ansi ile kodlanmışsa bütün dosyalar ansi olmalı. Tavsiyem ezSQL ve bu dosya için ansi kullanmanız.

Bunlara ek olarak birde db.php isimli bir dosyam var burada host,kullanıcı adı,şifre ve veritabanı adı gibi bağlantıda gerekli olan bilgileri tutuyorum. Onlarda şu şekildeler:

define('DB_HOST','localhost');
define('DB_USER','root');
define('DB_PASS','');
define('DB_NAME','denemeler');

Şimdi bunları nasıl kullanacağız kısmına gelelim. Yeni bir php dosyası oluşturup aşağıdaki kodları sırasıyla yazalım:

include 'db.php';
include 'ez_sql_core.php';
include 'ez_sql_mysql.php';

$db = new ezSQL_mysql ( DB_USER, DB_PASS, DB_NAME, DB_HOST );

Öncelikle db dosyasını çağırdık. Sonra ezSQL dosyalarını çağırdık. Ve bağlantımızı kurduk. Dikkat ettiyseniz sql_for_tr.php doyasını çağırmadık. Bunu bizim için ezSQL kendisi yaptı. ez_sql_mysql.php dosaysının 131. satırına aşağıdaki kodu ekliyoruz.

include 'sql_for_tr.php';

Bu sınıf içinde bağlantı kurulduktan hemen sonra sql_for_tr. dosyasınındaki kodların çalışmasını sağlıyor.

Böylelikle hem veritabanına türkçe karakter kaydedebileceğiz hem de türkçe karakterleri sayfamızda sorunsuzca gösterebileceğiz. Dikkat edilecek bir diğer husus ise şu sayfamızın karakter kodlamasının utf8 olması karakter setinin utf8 olarak ayarlanması. Bunlarda tamamsa sorunsuzca kodlamaya geçebilirsiniz demektir.

Dosyalara şuradan erişebilirsiniz.

Sorularınızı sormaktan çekinmeyin. İyi çalışmalar.

Kpss’ye Girecek Arkadaşlara Küçük Bir Tavsiye

Posted by ismail şimşek | Posted in Havadan Sudan | Posted on 09-07-2010-05-2008

1

İlk okuldaki matematik öğretmenim ve fen bilgisi öğretmenim benim için okuldan lgs yi kazanacak bir kişi varsa oda İsmail’dir demişlerdi. Bu rahatlıkla girdim sınava hakkatende okuldan bir tek ben kazandım lgs yi.

Süleyman Demirel Anadolu Lisesini kazanmıştım. Yıllar geçti öss geldi çattı. Sınava giderken ailemin heyacanını görmeliydiniz. Bense gayet rahat bir şekilde yürüyor aynı zamanda etrafı gözlemliyordum. İnsanlar komiklerdi. 3 saat için bu kadar heyecan fazlaydı bence. O kadar rahattım ki kardeşim bana çok şaşırıyordu anlam veremiyordu :D Annem dualar okuyordu. Babam ne yaptığını pek belli etmediğinden onun için bişey diyemeyeceğim :D Ben sınava girdim. Çıktım. Gene bir rahatlık :D

O dönem için 9 Eylül Bilgisayar Mühendisliğine yetecek bir puan almıştım. Gayet yüksek bir puandı bu :D Tabi şimdi konumuzla alakası olmayan nedenlerden ötürü mühendis filan olamadım. 24. tercihime yerleşip bilgisayar öğretmenliği okudum.

Üniversitede sınavlara olan rahat yaklaşımım arkadaşlarımı çileden çıkartırdı. Allahtan benim gibi birkaç arkadaşım daha vardıda anlaşabiliyordum :D Her sınav öncesi yapılan telaşa anlam veremez, sınavları umursamaz, sınav akşamları bilimum fps, strateji oyunlarını oynayarak geçirirdim. Tabiki herkes gibi ben de geçerdim o sınavlardan. Kimi zaman yüksek puan alırdım kimi zaman hoca vermezdi puan, kimi zaman düşük alırdım. Kimi zaman oraları çalışmayın sormaz derdim, herkes oraları çalışırdı, oralardan soru gelmezdi :D

Nerdeyse yata yata üniversiteyide bitirdim. Şimdi karşımda kpss var. Ben gene rahatım. Galiba 1 hafta önce çalışmayı bıraktım. Sınavlara bazen 15 dakika kadar geç girmişliğim bile oldu ama herkesle birlikte sınavı bitirdim ve hiç boş bırakmadım. Ve bizim taban puana eşdeğer puanlar aldım hep :D   Sanırım sınavları fazla umursamıyorum ya da ballıyım :D Bilmiyorum.

Bunları kendimi övmek için anlatmadım ya da, bakın ben neymişim demek için anlatmadım. Yazının başından beri rahatlıktan bahsediyorum. Anahtar bu işte, “rahatlık”. Yapabileceğine olan “inanç”.

Rahat olmazsan sana hiç bişey yardım edemez. Satır satır ezberlediğin o G8 ülkelerini unutursun. Pavlow kim unutursun. 120/4 = 3 bulursun. Yaparsın bunları çünkü rahat değilsindir. Bişeylerin ters gideceğine inanıyorsundur ve o şeyler ters gider genellikle :D Murphy kanunları :P

Zaten bütün bir sene çalıştın. Artık boşver umursama.

Rahat gir sınava, inan kendine. Biz sana inanıyoruz :D

Ve iyi düşün, iyi olsun ;)

Herkese başarılar.

jquery ile php den dönen veriyi almak – kontrol etmek

Posted by ismail şimşek | Posted in Php, jQuery | Posted on 02-07-2010-05-2008

0

Merhaba arkadaşlar. Makalenin başlığından da anlaşılacağı gibi jquery ile php den dönen veriyi nasıl alabileceğimize değineceğim. Aslında bu makaleyi başıma gelen bir sorunun çözümüne ulaştıktan sonra yazıyorum. Yardımları için Şakir Şensoy ve Göksu Kayış’a teşekkür ederim.
Başıma gelen şuydu. Jquery uploadify componenti ile hosta resim yüklüyorum. Eğer işlem başarılı ise 1 değilse 0 aynı resim varsa 2 dönüyor. Tabi bu dönen verilere göre kullanıcıya bir uyarı vermek zorundayım. Bunları kontrol etmek için dönen veriyi if le kontrol edip alert ile uyarıyı vereceğim. Bu konuda sorun yok. Ama dönen veriyi if ile kontrol edemiyordum. Ne yaptıysam olmadı. Ama verinin döndüğünden eminim 
Çözüm ise çok basitmiş. (normal bir ajax request i için yazıyorum kodları. Uploadify için bir satır daha ekleyeceğiz.) Yapmanız gereken şey şu. Php tarafında veriyi json şeklinde göndermek. Yani

if (resimUpload == TRUE)
{
    $json = array(
        "sonuc" => “1”,
        "mesaj" => "Yükleme yapıldı."
    );
    echo json_encode($json);
}

jquery kısmıda şu kodlar var.

function uye_giris()
{
    $.ajax({
        type         : 'POST',
        dataType     : 'json',
        url          : upload.php',
        data         : $('form#resim_sonuc’).serialize(),
        success      : function(data) {
                            if (data.giris == “1”)   {
                                alert(JSON.mesaj);
                            }
                          }
       });
       return false;
}

İşte bu kadar. Bu şekilde dönen veriyi, verileri istediğimiz gibi kullanabiliyoruz. Json sayesinde birden fazla veride döndürebiliyoruz.
Gelelim uploadify ile ilgili olan kısma. Bu component ile dayatype belirleyemiyorum maalesef. Bu durumda dönen verinin json olduğunu ya bizim bildirmemiz lazım yada ona göre bir işlem yapmamız lazım. Dönen veriyi if ile kontrol etmeden önce şunu yazmamız lazım.

eval(“var obj =” + data);

bu şekilde dönen veriyi bir object e atmış olduk. Şimdi aynı şekilde kullanabiliriz. İyi çalışmalar.

swf dosyası güvenlik ihlali

Posted by ismail şimşek | Posted in Actionscript 3.0 | Posted on 24-05-2010-05-2008

0

Merhabalar.

Üzerinde çok zaman harcadığım ve sonunda çözümünü bulduğum bir konuyu paylaşacağım. Hazırlamış olduğunuz uygulama farklı bir server ile iltişime geçiyor ve veri alıyorsa swf dosyanız size güvenliği ihlal ettiğiniz belirten bir uyarı verecek ve çalışmayacaktır. Çünkü swf dosyası bu adrese güvenmez ve veri almanızı engeller.

http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html

adresinden güvenilen site olarak serveri ve kendi dosyanızın bulunduğu dizini kaydedebilir bu sorunu çözebilirsiniz. Ama her zaman işe yaramıyor.

Çözüm basit aslında. Veri alacağınız sunucuda crossdomain.xml isimli bir dosya olası gerekiyor. Dosyanın içeriği şu şekilde

<xml version="1.0">
<cross-domain-policy>
<allow-access-from domain="*"></allow-access-from>
</cross-domain-policy>
</xml>

Bu sorununuzu çözebilir ama zaman zaman farklı uygulamalarda hata almaya devam edebilirsiniz. Bunun önüne geçmek için ise yapmanız gereken şey LoaderContext sınıfını kullanmak.

var context:LoaderContext = new LoaderContext();
context.checkPolicyFile = true;
loader.load(verinin_urlsi,context);

Bu şekilde swf dosyasının izin dosyasını kontrol edip varolduğunu anlamasını sağlamış oluyoruz ve bize bir daha sorun çıkartmıyor.

Kolay gelsin.

Kaynaklar:

http://enginyoyen.com/blog/tr/swf-dosyalarini-guvenlik-ihlali/

Flash Builder 4 ve Amfphp

Posted by ismail şimşek | Posted in Amfphp, Flash Builder | Posted on 11-04-2010-05-2008

0

Merhaba arkadaşlar. Bu yazımda size geçtiğimiz günlerde çıkan Flash Builder 4 ile AmfPHP ilişkisini anlatacağım. Daha önce Flex Builder ile anlatmıştım aynı konuyu ama şimdi ona bakınca ne kadar çok uğraşmışım diye kendime gülüyorum. Devamını Oku »

Actionscript 3.0 – Php – MySql veri alışverişi

Posted by ismail şimşek | Posted in Actionscript 3.0, Php | Posted on 09-04-2010-05-2008

13

Merhaba arkadaşlar. Bu yazımda Actionscript 3.0 ve php ile veritabanından veri çekmeyi, veritabanına veri göndermeyi anlatacağım. Tabi bunu çok basit düzeyde ve amatörce anlatacağım. Bu şekilde anlatacağım çünkü öncelikle bu kullanımı bilmeliyiz. Daha sonra veri alışverişleri için daha farklı yöntemler sınıflar araçlar kullanabiliriz.

Şimdi anlatıma başlayalım.

Devamını Oku »

Flash Builder 4 ve AutoFormat Plug-in

Posted by ismail şimşek | Posted in Flash Builder | Posted on 02-04-2010-05-2008

0

Merhaba arkadaşlar. Flash Builder 4 çıktı indirdim kurdum ve sonra ilk yaptığım şey AutoFormat plugin i eklemek oldu. Düzen herşey :) Çok zorlandım ekleyene kadar. Hepsini anlatacağım.

Bunu nasıl yaptığıma geçmeden önce Flash Builder ile ilgili bir kaç bilgi vereyim. Artık daha az kod yazarak ek çok işi başarabileceğiz. O nasıl oluyor ki öyle diyorsanız size 2.5 dakika süren şu videoyu izlemenizi tavisyeediyorum. Herşey gayet açık şekilde gözüküyor :)

Devamını Oku »

Flash Builder 4 duyuruldu

Posted by ismail şimşek | Posted in Flash Builder | Posted on 01-04-2010-05-2008

0

Flash Builder 4
Merhaba arkadaşlar. Biraz geç kaldım bu haberi vermek için ama bazı haberlerim daha var onlarıda anlatacağım.

Flash Builder ın tam sürümü duyuruldu. Yine öğrenciler ve işsizler için ticari kullanımı yasak olan versiyonları ücretsiz. Flash Builder i adobe.com dan indirebilirsiniz.
Gerekli şifre için ise şuraya uğramanız yeterli.

php ile sayfa yönlendirme

Posted by ismail şimşek | Posted in Php, Pratik Bilgiler | Posted on 30-03-2010-05-2008

0

Çoğu zaman sayfamızdan başka bir sayfaya geçmek isteriz. Bunu javascript ile kolayca hallederiz. location.href ile.

Php kullanırken ise bunu header( “Location: diger_sayfamiz.php” ); şeklinde yaparız. Ama içerik oluşturduktan sonra header kullanmaya çalışıyorsak hata alacağızdır. Daha geniş bilgi için aşağıdaki linki ziyaret edin:

Cannot modify header information – headers already sent hatası alıyorum ? Nasıl düzeltirim ?

Gelelim bugün araştırırken öğrendiğim yeni yönteme. Bu yöntem benim çok hoşuma gitti. Hemen kodları vereyim.

function yonlen($sure,$sayfa)
{
    $deger = "<meta http-equiv='refresh' content='".$sure.";url=".$sayfa."'>";
    echo $deger;
}

Kullanımı ise çok basit. Yapmanız gereken tek şey sayfanızın kaç saiye sonra yönleneceğini vermek ve yönleneceği sayfayı vermek. Yani;

yonlen(1,"diger_sayfa.php");