Anasayfa
UO Sunucular
Forumlar
Profilim
UO-Developer.COM

Sphere MySQL — Sitede Ölüm İstatistiği

UO-Developer.com — AppServ, table_olumler, addslashes ve olumler.php

Sitede ö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.connect

10 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 1

Sunucuyu kapatıp açın — artık her açılışta veritabanına otomatik bağlanır.


6. Tablo Oluşturma — table_olumler

Tekrar phpMyAdminolumler 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

UO-Dev SPONSOR

Paylaş

XFacebook

Faydalı mı?

Bu içerik size yardımcı oldu mu?

UO-Dev SPONSOR

Glory 12-07-2010 02:03
Çok yararlı bir anlatım teşekkürler rexos.
Sincerly 12-07-2010 04:56
Zamanında ben ve ismail arkadaşımın land-gamers'ta yazmış oldugu kodlar' şimdi başkaları tarafından anlatıyor kurulumu
Override 12-07-2010 18:49
teşekkürler
Rexos 13-07-2010 19:16
" Zamanında ben ve ismail arkadaşımın land-gamers'ta yazmış oldugu kodlar' şimdi başkaları tarafından anlatıyor kurulumu "

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
Xearth 14-07-2010 16:23
güzel paylaşım başarılar.
Sincerly 20-07-2010 01:31
sen rahat ol rahat.
Afronola 21-07-2010 15:09
iyi şimdi çamur attın izi kalacak mı sanıyon kamil
Menaros 12-08-2010 04:15
Yazdınız Madem Anlatımını Yapaydınızya Zamanında =) Adam Sızın Yapmadınızı Yapmıs Yararlı Bılgı Icın Tesekkurler
prettycolddeath 19-12-2010 22:20
oto refresh var mı?
stylez 07-01-2011 16:44
Hocam olumler.php yi nere atıyoruz? appserv e mi?
draw19 12-07-2012 23:50
la ne güzel ilk başta çalıştırdım fakat birdaha çalışmadı başka ayarlar yapmak istedim mesela örnek vermek gerekirse.

asdsad, ASDASD tarafindan asdasd taraflarinda olduruldu. gibisinden ama artık ne öyle nede senin verdiğin kodlarla aktif edemiyorum
G-Defender 13-07-2012 15:03
@draw19
açıklamayı iyi okursan yaparsın.
MirroR 21-07-2012 06:44
Bunu acemi birisinin yapamaması çok normal !
Systemroot 21-07-2012 13:14
Boş yazıları hiç sevmiyorum gerçekten.
sylex_sweat 22-01-2013 11:54
bende ekstra bölümü yok ve auto_increment'ı secicegim yer yok .s ben yorum olarak yazdım onu. yardmcı olabilrmsnz ?

Üyelerin oylama ortalaması (10 dışında) :

7.20

Oylar: 10 den itibaren 11-07-2010 21:39

Paylaş

XFacebook

Faydalı mı?

Bu içerik size yardımcı oldu mu?