Sphere MySQL — Sitede Ölüm İstatistiği
UO-Developer.com — AppServ, table_olumler, addslashes ve olumler.phpSitede ölüm listesini göstermek için aşağıdaki adımları uygulayabilirsiniz. Son 25 ölüm listelenir; her yeni ölüm sıranın en üstüne geçer. Anlatılan en basit halidir — tasarımı dilediğiniz gibi geliştirebilirsiniz.
Konu: MySQL ölüm tablosu + PHP web listesi — adım adım | Seviye: Orta
İlgili: Sitede Ölüm İstatistik | Online Ölüm Saatleri | MySQL Kurulumu
! DİKKAT !
PHP örneği eski mysql_* fonksiyonlarını kullanır — PHP 7+ sürümlerinde kaldırılmıştır. AppServ eski PHP sürümüyle uyumludur; modern hosting'de mysqli veya PDO tercih edin.
! DİKKAT !İçindekiler
- 1 — AppServ kurulumu
- 2 — Veritabanı oluşturma
- 3 — sphere.ini MySQL ayarları
- 4 — Bağlantı testi
- 5 — f_onserver_start
- 6 — Tablo oluşturma
- 7 — addslashes fonksiyonu
- 8 — on=@Death kayıt
- 9 — olumler.php
- 10 — Test ve yayın
1. AppServ Kurulumu
Makinenizde MySQL sunucusu yoksa ve WAMP / AppServ tarzı programlar yüklü değilse AppServ kurun.
- Adres sorulduğunda localhost yazın
- Portu olduğu gibi bırakın
- Administrator kullanıcı adı ve şifresini kendinize göre ayarlayın
Zaten MySQL sunucunuz varsa bu adımı pas geçin.
AppServ: appserv.org — Download
2. Veritabanı Oluşturma
http://localhost/phpmyadmin adresine admin kullanıcı adı ve şifrenizle giriş yapın.
Yeni veritabanı oluştur — adına olumler yazın — tırnak işareti koymadan — ve veritabanını yaratın.
3. sphere.ini — MySQL Ayarları
sphere.ini dosyasını açın. Yaklaşık 36. satırlarda şu bölümü bulun:
// MySql configuration.
//MYSQL=0
//MySqlHost=
//MySqlUser=
//MySqlPassword=
//MySqlDatabase=Slashları kaldırın, MYSQL=0 değerini 1 yapın ve kendi bilgilerinizi girin:
// MySql configuration.
MYSQL=1
MySqlHost=localhost
MySqlUser=benimusernameim
MySqlPassword=sifrem
MySqlDatabase=olumler- MySqlUser — phpMyAdmin admin kullanıcı adınız
- MySqlPassword — admin şifreniz
- MySqlDatabase — olumler — az önce oluşturduğunuz veritabanı
Ayrıntı: Türkçe Sphere.ini
4. Bağlantı Testi
Sphere konsolunu açın:
db.connect10 saniye kadar bekleyin, ardından:
show db.connectedÇıktıda 1 görürseniz veritabanına başarıyla bağlanıyorsunuz demektir.
5. f_onserver_start — Otomatik Bağlantı
sphere_serv_triggers.scp dosyasını açın. f_onserver_start fonksiyonunun altına ekleyin:
[FUNCTION f_onserver_start]
db.connect
return 1Sunucuyu kapatıp açın — artık her açılışta veritabanına otomatik bağlanır.
6. Tablo Oluşturma — table_olumler
Tekrar phpMyAdmin — olumler veritabanına tıklayın. Yeni tablo oluştur — tablo adı table_olumler, alan sayısı 5.
Alanları şöyle tanımlayın:
- id — INT — birincil anahtar — AUTO_INCREMENT
- olen — VARCHAR — ölen karakter
- olduren — VARCHAR — öldüren karakter
- zaman — VARCHAR — saat / tarih
- yer — VARCHAR — bölge
SQL ile oluşturmak isterseniz:
CREATE TABLE `table_olumler` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`olen` varchar(255) NOT NULL,
`olduren` varchar(255) NOT NULL,
`zaman` varchar(255) NOT NULL,
`yer` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;7. addslashes Fonksiyonu — fix.scp
fix.scp dosyasını açın, en üstüne şu fonksiyonu ekleyin — SQL'e tırnak ve özel karakter sorunu yaşamamak için:
[function addslashes]
local.str=<asc <args>>
local.string=s
for i 0 strlen(<local.str>)
local.check=<strarg <local.str>>
local.last=<local.check>
if <local.check>==00
return <strsub 1 <eval strlen(<local.string>)-2> <local.string>>
endif
if <local.check>=<asc \>
local.last=<asc \>
local.string <strsub 0 <eval strlen(<local.string>)-1> <local.string>>\\s
elif <local.check>=<asc '>
local.string <strsub 0 <eval strlen(<local.string>)-1> <local.string>>\'s
else
local.string <strsub 0 <eval strlen(<local.string>)-1> <local.string>><chr <local.check>>s
endif
local.str=<streat <local.str>>
endfor
return <strsub 1 <eval strlen(<local.string>)-2> <local.string>>8. on=@Death — Kayıt
fix.scp dosyasında on=@Death bölümünü bulun, altına ekleyin:
on=@Death
db.execute "insert into table_olumler VALUES (NULL, '<addslashes <name>>', '<addslashes <act.name>>', '<serv.rtime>', '<region.name>');"Bu adımdan sonra oyunda her ölüm veritabanına yazılır — hemen hemen bitti sayılır.
9. olumler.php — Web Sayfası
Yeni dosya oluşturun: olumler.php. İçine aşağıdaki kodu yapıştırın — en üstteki MySQL ayarlarını sphere.ini ile aynı yapın:
<?php error_reporting(0);
$mysql_adres = 'localhost';
$mysql_kullanici = 'rqweqwe';
$mysql_sifre = 'wqeqweweqwe';
$mysql_db = 'olumler';
header("Content-Type: text/html; charset=windows-1254");
$mysql_baglanti = mysql_connect($mysql_adres, $mysql_kullanici, $mysql_sifre);
if (!$mysql_baglanti){ echo "SQL Baglantisi saglanamadi, lutfen site yoneticisiyle iletisime gecin."; } else { mysql_select_db($mysql_db,$mysql_baglanti);} echo "
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\">
<head>
<title>Son 25 Olum</title>
<style type=\"text/css\">
<!--
.style10 {font-size: 18px; font-weight: bold; font-style: italic; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif;}
body {background-color: #333333;}
.style12 {font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: bold; font-size: 11px; color: #d8d8d8; }
-->
</style>
</head>
<body>
<center><strong class=\"style12\">Son 25 olum listelenir.</strong></center><br />
<table width=\"944\" height=\"219\" border=\"1\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" bordercolor=\"#000000\">
<tr>
<td width=\"1014\" align=\"left\" valign=\"top\" bgcolor=\"#666666\"><table width=\"102%\" height=\"56\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\">
<tr>
<td width=\"14%\" align=\"left\" ><span class=\"style10\">Olen:</span></td>
<td width=\"14%\" align=\"left\" class=\"style10\">Olduren:</td>
<td width=\"17%\" align=\"left\" class=\"style10\">Tarih:</td>
<td width=\"17%\" align=\"left\" class=\"style10\">Yer:</td>
</tr>
</table><hr />
",listele(),"
</td>
</tr>
</table>
</body>
</html>";
function listele() { $sorgu = mysql_query("SELECT * FROM table_olumler order by id desc limit 25");
while ($row = mysql_fetch_object($sorgu)) { $id = $row->id; $olen = $row->olen; $olduren = $row->olduren; $tarih = $row->zaman; $yer = $row->yer;
$returnveri .= "
<table width=\"100%\" border=\"0\" align=\"center\" cellpadding=\"5\" cellspacing=\"5\">
<tr>
<td width=\"14%\" class=\"style12\">$olen</td>
<td width=\"14%\" class=\"style12\">$olduren</td>
<td width=\"17%\" class=\"style12\">$tarih</td>
<td width=\"17%\" class=\"style12\">$yer</td>
</tr>
</table>";} return $returnveri; } ?>10. Test ve Yayın
- olumler.php üstündeki MySQL ayarlarını sphere.ini ile eşleştirin
- Dosyayı web host'unuza veya AppServ www klasörüne atın
- Oyunda birkaç kill testi yapın
- http://www.seninadresin.com/olumler.php adresini açın — son ölüm listeniz hazır
AppServ kullanıyorsanız dosya genelde C:\AppServ\www\ altına konur — yerel test: http://localhost/olumler.php
Kontrol Listesi
- AppServ / MySQL çalışıyor
- olumler veritabanı oluşturuldu
- sphere.ini — MYSQL=1, bilgiler doğru
- db.connected = 1
- f_onserver_start — db.connect
- table_olumler — 5 alan
- fix.scp — addslashes + on=@Death
- olumler.php yüklendi ve test edildi


nerde yazılmış? burdaki her harf bana aittir. bir siz mi yazabiliyorsunuz onları? ayrıca şurda anlattığım şey gayet basit birşey, sizde galiba sadece bunları yapabiliyorsunuz
asdsad, ASDASD tarafindan asdasd taraflarinda olduruldu. gibisinden ama artık ne öyle nede senin verdiğin kodlarla aktif edemiyorum
açıklamayı iyi okursan yaparsın.