Selam arkadaşlar,

5 dakika önce kocaman bi döküman hazırlamışdım fakat forum üzerinde yazdığım için yanlış bi tuşla hepsi uçtu. İlerleyen zamanlarda (yarın yada ertesi gün) sizlere Farklı yada aynı serverda bulunan Sphere - Mysql arasında account sistemini anlatacağım. (Php dosyalarındaki hatalara kadar) Sizlerin merak ettiği örneğin ; "Hangi sorgular sunucuyu yorar, hangileri daha alternatifdir." "2 Tablo arasında sorgu yaparken sorguyu kısaltan şeyler nelerdir ?" ,"Şöyle bir mantık düşünüyorum fakat sql olarak sorgusunu oluşturamıyorum" gibi sorularınıza cevap vermeye çalışacağım yada bilen arkadaşlar cevap vermeye çalışacaklardır. Eğer katılım olursa, ilerleyen zamanlar içinde bilgimi diğer arkadaşlarla paylaşmak isterim, 5-6 sayfalık bir Mysql kitapçığı hazırlayabiliriz hep beraber.

Not : Php ve Jquery hakkında bilmediklerinizi de sorabilirsiniz arkadaşlar.

Saygılarımla,
Leon Jade
Adept
4.3
Canim cok güzel düsünmüssün, tesekkür ederiz hepimiz.

Ben de bir kere cok uzun bir yazi yazmistim, yararli bilgiler iceren. Ama sonra Ugur kilitlemisti o konuyu, ben de yaziyi gönderince, yalan olmustu. Bir daha yazmadim o yaziyi, cok üzülmüstüm...
O olayı hatırlıyorum David hatta sitede bir yenileme ile ilgili bir ayar yapılmıştı..
Account sistemi yapsan iyi olur herkez böyle birşey arıyor zaten.
@Xearth;
Meak etme en ince ayrıntısına kadar, hatta Jquery ile bile olabilir (: o tarzda bişey yapıp paylaşmayı düşünüyorum.

@Neran;
Sağol ve döküman olayına nasıl üzüldüm anlatamam yahu, Tablo Create'lere kadar herşeyi yapmıştım, account sistemi için PHP Configrasyonlarını fln yazmışdım yanlışlıkla CTRL+ALT+S yapınca :( Text area kayboldu Yolla dedim ama yine işe yaramadı :( Neyse... Şu Facebook Application'umu bitireyim (: Account sistemini de yayımlarım inşallah (:
Döküman aşkımı doğdu sana =)
Arkadaşlar şimdi yeni bir acc sistemi yapmaya gerek olmadığını düşünüyorum ben.Yani tabi yapılabilinir ancak Sphere Server a yaptıgım bir scp ile hazır bir platformun üyelik sisteminde yeni üye olan kişileri test edip direk sphere kendisi veriyi çekiryor.Php , asp veya javascript ile document.write yaptırmıyorum.Tek yaptıgım mysql databasede örneğin users tablosuna ait bölümde yeni bir index oluşturup yeni üye olan kişilerde oluşturduğum indexin değerini 0 olarak belirleyip spherede belirli bir zaman aralığında users bölümünde "0" değerine ait olan yerdeki kullanıcı adı ve şifreyi çekip değeri "1" haline getirttiriyorum.

Bu yapmış olduğum SMF-Phpbb - Php-Fusion - Php-Nuke , Joomla , aklınıza gelebilecek bütün platformlarda çalışıyor şahsen kendim denedim.

Çünkü herkeste gördüğüm genelde bir tek soru var , Foruma ve oyuna aynı anda nasıl üye yapabilirim.Nasıl bunu gerçekleştirirz sorularıdır.

Üyelik kısmı bittikten sonra oyunda şifre bölümünde oyun içerinden örneğin .sifre yaptığımızda şifre değişikliği yapıldığı anda forumdaki bilgilerde otomatik güncelleniyor.Tabi bunu ters mantıklada yapabiliriz.Forumda bilgileri değiştirip oyunda geçerli kılınabilir.Ancak Md5 platformlarda bu biraz sorun yaratıyor.

Kısaca bir kaç görüntü göstermek isterim.Scriptide buraya ekliyorum.Umarım işinize yarar arkadaşlar.Tabiki bu işlemleri gerçekleştirebilmek için Sitenizin Sphere sunucusuyla aynı ortamda bulunması gerekir.



Öncelikle Sphere.ini den Mysql ile ilgili bölümleri aktif etmeniz gerekmektedir.


// MySql configuration.
MYSQL=1
MySqlHost=localhost
MySqlUser=destroy
MySqlPassword=xxxx
MySqlDatabase=sphere

Ve sıra geldi SphereServer dan yapacağımız işleme.Aşağıda verdiğim scripti direk olarak ekleyip üzerinde değişiklik yaparak kendinize göre uyarlayabilirsiniz.

Her savede acclerin kaynını gerçekleştirmek isterseniz sphere_serv_trigger.scp de f_on_server_start ve f_on_server_save kısmına f_acc_sorgulama yı ekleyebilirsiniz.


[function f_acc_sorgulama]
if ( <DB.connected> )
    DB.QUERY "SELECT * FROM fusion_users WHERE status='0'"
    if (<DB.ROW.NUMROWS> > 0)
        for D 0 <eval <DB.ROW.NUMROWS>-1>
            serv.account add <DB.ROW.<eval <LOCAL.R>>.user_name> <eval <DB.ROW.<eval <LOCAL.D>>.password>>
            DB.EXECUTE "UPDATE fusion_users SET status='1' WHERE user_name='<DB.ROW.<eval <LOCAL.D>>.user_name>'"
            serv.log Yeni Uye Kaydi Veritabani Uyarisi: #<eval <LOCAL.R>> Account <DB.ROW.<eval <LOCAL.D>>.user_name> olusturuldu.!
        end
    endif
endif

Oyun içinden şifre değişikliği ile foruma aktarma kısımlarını artık sizlere bırakıyorum.Mysql bilgisi olan kişilerin rahatlıkla halledebileceğine eminim.

Bu sistemin normal php ve diğer dillerle write mantığıyla hazırlananlardan tek bir farkı bulunmaktadır.Serverın kapalı olduğunda herhangi bir sorun yaratmaması en güzel faydasıdır.Sunucu kapalı olduğunda üye olan kişiler on_server_start durumunda db.login den sonra otomatik sphere başladıgında accleri kayda alınır.Diğer mantıkla hazırlananlarda acc çakışmaları , yazım izni hataları ve writing olmama gibi durumlar söz konusu olabiliyordu.Bu basit mantıkla uzun uzun bir dokuman hazırlak yerine üstte belirttiğim gibi işinize yarayacak şekilde yapılandırabilirsiniz.

Umarım faydası olur. / Destroy
@Leon Jade

Güzel yorumun için teşekkür ederim bana sorarsan ben coders' inki gibi güzel bir sistem yazmani isteyebilirim kurulum kolay o yüzden daha faydalı olur hemde 5 harfli şifre yazma vs yaparsın daha iyi olur... şimdiden teşekkür ederim eğer öyle bir sistem yazarsan ilk kullanan ben olacağım.!
Peki şifre değiştirme işlemi? (: Onda da add yaparsan sistem çöker (: Başka şeylere sadık yada, ek duymadan direk kendi sistemini yapmak daha mantıklıdır. Hazıra konma kendin yap derim (: Ayrıca .sifre için bi fonksyon vermemişsin. Eklemek gerekir, account'un olup olmadığını bi kontrol ettirmek gerekir lakin diğer türlü sorunlarla karşılaşılabilir (şifre değişkliği gibi yerlerde (:) writefile yi açma gibi bi ihtiyac'a gerek yok diye düşünüyorum. Ayrıca şifremi unuttum gibi mantıklar nasıl çalışıyor ? Status 0 olması gerekiyor bunlarıda açıklasaydın iyi olurdu, çünkü adam şifresini unutunca sistem yeni bi şifre oluşturup adama vericekdir (md5 sistemlerde ve normalde olması gereken budur). Bunlarıda açıklarsan daha iyi olur.

@Tymaron;
Aşka geldim Uo Yu bırakıyorum inşallah :P Jübile :P

@Xearth;
Komple sistemi yazmam 2-3 saatimi alabilir problem değil fakat döküman tarzında yazmak daha açıklayıcı olabilir.

@LeonJade

Ben sadece yardımcı olabilirmiyim diye bir mesaj verdim ancak belirttiğim gibi şuan kendim bu sistemi kullanıyorum ve şifre değişiklik kısmınıda yayımlamadım.Şahsen bende hiç bir sorun olmuyor.Aynı accnin alınıp alınmama olayıda zaten bildiğin üzere her forumda mevcut.Örneğin Php Fusionda üye olan birisi aynı üyelikle üye olamayacagı için sphereden sadece yeni üye olan kişilerin verilerini oyuna kaydettiriyorum.Şifre unutma kısmına gelince zaten oyundan değiştirilmiş bir şifre foruma entegre ediliyor.Forumdada şifremi unuttum fonksiyonu mevcut :)
Forumdanda şifre unuttum bölümünü yeni şifre yerine eski şifreyi yollama olarak ayarlayabilirsin.Tabiki sen farklı şifre yollasın diyorsan oda güzel onada Status 2 gibi bir şey hazırlarsın değişmiş olan şifreyi gene her türlü sphereden çektirirsin.

Bu dökümanıda kendim yaptım.Hiç biryerden alıntı yapıcak halim yok.Zaten şuanda böyle bir mantıkla çalışan bir sistemide kimsede görmedim.O yüzden içim rahat.Bizde bir şeyler biliyoz işte az çok idare etsin artık :S

Niçin eleştirdin bunu anlamadım.Eğer beğenmediysen kullanmassın.Ben sadece yardımcı olmak adına yazdım senin yazında gördüğüm üzere.
Bilirim jubile'leri =)
Evet umarım eklediğim işinize yarar.Herkes buraya bildiklerini paylaşırsa güzel bir bilgi paylaşımı olacağına inanıyorum.
demirsoy23 : @LeonJade

Ben sadece yardımcı olabilirmiyim diye bir mesaj verdim ancak belirttiğim gibi şuan kendim bu sistemi kullanıyorum ve şifre değişiklik kısmınıda yayımlamadım.Şahsen bende hiç bir sorun olmuyor.Aynı accnin alınıp alınmama olayıda zaten bildiğin üzere her forumda mevcut.Örneğin Php Fusionda üye olan birisi aynı üyelikle üye olamayacagı için sphereden sadece yeni üye olan kişilerin verilerini oyuna kaydettiriyorum.Şifre unutma kısmına gelince zaten oyundan değiştirilmiş bir şifre foruma entegre ediliyor.Forumdada şifremi unuttum fonksiyonu mevcut :)

Bu dökümanıda kendim yaptım.Hiç biryerden alıntı yapıcak halim yok.Zaten şuanda böyle bir mantıkla çalışan bir sistemide kimsede görmedim.O yüzden içim rahat.

Niçin eleştirdin bunu anlamadım.Eğer beğenmediysen kullanmassın.Ben sadece yardımcı olmak adına yazdım senin yazdında gördüğüm üzere.

İlk bende mevcut demişdin de, Xenon du galiba kapalı sanırım, bura için aynısını yapıp arkadaşlara teslim etmişdim (: 2009 başlarında galiba. Xenon yani forumda(Xearth) olarak geçiyor kendisine sorabilirsiniz, Razordan istediği şeyi benim yaptığımı bilir. Neyse. Olay o değil, eleştirme hakkım var, çünkü sen bi işin başını söylüyorsun arkasını söylemiyorsun nerde yardım? Adam nerden devam edicek yahu (: Accountlar açıldı hoba tamamdır account sistemi eee döküman ve yardımcılık bumu ? Komik... Neyse polimiğe girmeye gerek yok. Sağol yinede arkadaşlara sadece 1 Function verdiğin için devamını onlar yazarlar (: :D
İnanmaya bilirsin ama ben kendim düşünerek oluşturdum bunu.Her insan bunu düşünebilir.Şahsen senin böyle bir şey yaptıgından haberim yoktu zaten haberim olsa yayımlamazdım :S Ama emin ol kendim yaptım.

1 Function ile 100 function kapasitesinde de şeyler yaptırabilirsin.Yanlız bu sürekli polemik havasında olmanın sebebini bilmiyorum.Herşeyi biz bileceğiz diye bir şey yok.Gayet basit bir olayı anlattım.Uğraşmaya değmez bir şey ancak bana göreve işlevi olan bir şey.Şahsen 10 ar sayfalık farklı farklı bağlantılarla php sayfa yazmaktan iyidir.
Doğrudur fakat yukarda verdiğin fonksyon sphereserver.net de yayımlanmış bi function

[function f_acc_update]
if ( <DB.connected> )
DB.QUERY "SELECT * FROM accounts WHERE status='0'"
if (<DB.ROW.NUMROWS> > 0)
for R 0 <eval <DB.ROW.NUMROWS>-1>
serv.account add <DB.ROW.<eval <LOCAL.R>>.login> <eval <DB.ROW.<eval <LOCAL.R>>.password>>
DB.EXECUTE "UPDATE accounts SET status='1' WHERE login='<DB.ROW.<eval <LOCAL.R>>.login>'"
serv.log MySQL Debug: #<eval <LOCAL.R>> Account <DB.ROW.<eval <LOCAL.R>>.login> has been created!
end
endif
endif

Burda Link


Edit:
Hani şu çok bilmişliğiniz varya, hani ben yaptım ettim. Yahu evet ben diyorum çok bilmişim, halt ederim ama kendi yazdıklarımla. 1 function al ben sana tüm account sistemini verdim. Ama bunu açıklamak lazım. Ok ? Fazla polimik yapma bence... Daha fazla düşüosn...



Üye Ol veya Giriş Yap

Bu forum başlığına mesaj atmak istiyorsanız hemen üye olun veya giriş yapın.