Neler yeni

Foruma hoşgeldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

OynFrm Reklam Alani OynFrm Reklam Alani
OynFrm Reklam Alani OynFrm Reklam Alani

Sphere, Mysql ve Php İlişkisi

jusT

03ofkosucusu
Katılım
10 Yıl 9 Ay 24 Gün
Mesajlar
70
Tepkime puanı
0
Puanları
0
Yaş
26
Şube
Mersin
Bu dökümanı, pek çok kişiye faydalı olabileceğini düşündüğüm için yazma gereği duydum. Devamı da gelecek.

- !DİKKAT! -
Aşağıdaki örneklerimde güvenlik açığı vardır. Kullanmanız durumunda oluşabilecek hasarlardan, zararlardan ve diğer bilumun şeylerden ben sorumlu tutulamam. Kullanmak ya da kullanmamak tamamiyle sizin elinizdedir.

Neden güvenli bir şekilde yazmadın diye soracak olursanız. Bunları herkesin kullanmasını istemedim diyebilirim. Kullanabilecekler kullansın. Ayak altı olmasın.
- !DİKKAT! -

Öncelikle yeteri derecede mysql bilginizin olması gerekli. (ve tabiki sphere diline de hakim olmanız)

Mysql konusunda yardımcı olabilecek bir link;
Ziyaretçiler için gizlenmiş link, görmek için Giriş yap veya üye ol.


Google da iyi bir arkadaş olabiliyor.
Neyse sphere içinde nerede kullanabiliriz diye düşünüyorum şimdi mysql’i.
Cevap tabiki heryerde olacak.
Sphere.ini’deki mysql ayarlarınızı yaptığınızı ve sunucunuzdaki mysqlin sorunsuz olarak çalıştığını varsayarak, basit bir sistem ile başlayalım;

Sistemin amacı: Mysql kullanarak online player listesi yapmak. Devamında online playerları web sitesi üzerinde ve oyun içerisinde listeletmek.

adım 1 – mysql de tablo yok ise oluşturmak ve içine veri girmek, silmek.

playerlarınıza tanımladığınız eventin (ivent diye okunur) @login ve @logout triggerlarını kullanacağız.

Kod:
on @login
db.connect
db.execute "create table if not exists online_players (playerUid text,playerName text);"
db.execute "insert into online_players values ('<uid>', '<name>');"

on @logout
db.connect
db.execute "delete from online_players where playerUid='<uid>';"


Evet, bu kadarcık. Herhangi bir oyuncu login olduğunda sphere mysqle bağlanıp tablo yok ise tabloyu yaratıyor. Ardından oyuncuyu tabloya giriyor.
Çıktığında ise tablodan siliyoruz. Tabloya istediğiniz kadar alan ekleyebilirsiniz. Kills, Deaths vs.

adım 2 – ince bir ayar
Herhangi bir crash olur da sphere istemediğimiz bir şekilde kapanırsa, elbette playerlardaki @logout triggerları tetiklenemeyecek ve playerlar tabloda asılı kalacaklardır. Bunun için de sphere_serv_triggers.scp adlı dosyada bulunan f_onserver_start fonksiyonu şu şekilde değiştiriyoruz;

Kod:
[function f_onserver_start]
db.connect
db.execute "drop table online_players;"


Böylelikle sunucu açıldığında online_players adındaki tabloyu silecek.
Tekrar playerlar login olmaya başladığında tablo sıfırlanmış olacak.
adım 3 – Peki php ile ben online playerlarımı nasıl sitede gösterebilirim?

O da şöyle oluyor;

Kod:
<?php

$dbhost = 'localhost';
$dbuser = 'kullanici_adi';
$dbpass = 'sifre';
$dbname = 'database_adi';

$connect = mysql_connect($dbhost,$dbuser,$dbpass) or die("Veritabanına bağlanılamıyor<br/><b>Detay:</b>".mysql_error());
mysql_select_db($dbname,$connect) or die("Veritabanına bağlanılamıyor<br/><b>Detay:</b>".mysql_error());

$player_list = mysql_query("select * from online_players");
if(mysql_num_rows($player_list) >= 1){
while ($player_data = mysql_fetch_array($player_list)) {
$playerName = $player_data['playerName'];
echo $playername;
echo "<br />";
}
}
?>
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz

  • Geniş / Dar görünüm

    Temanızı geniş yada dar olarak kullanmak için kullanabileceğiniz bir yapıyı kontrolünü sağlayabilirsiniz.

    Izgara görünümlü forum listesi

    Forum listesindeki düzeni ızgara yada sıradan listeleme tarzındaki yapının kontrolünü sağlayabilirsiniz.

    Resimli ızgara modu

    Izgara forum listesinde resimleri açıp/kapatabileceğiniz yapının kontrolünü sağlayabilirsiniz.

    Kenar çubuğunu kapat

    Kenar çubuğunu kapatarak forumdaki kalabalık görünümde kurtulabilirsiniz.

    Sabit kenar çubuğu

    Kenar çubuğunu sabitleyerek daha kullanışlı ve erişiminizi kolaylaştırabilirsiniz.

    Köşe kıvrımlarını kapat

    Blokların köşelerinde bulunan kıvrımları kapatıp/açarak zevkinize göre kullanabilirsiniz.

  • Zevkini yansıtan renk kombinasyonunu seç
    Arkaplan resimleri
    Renk geçişli arkaplanlar
Geri