Türkiye'nin en eski ve aktif online oyun platformu, Ultima Online, Counter-Strike ve diğer online oyunlar hakkında Türkçe haber, bilgi ve forum sunuyor. Türkiye'nin en eski ve aktif online oyun platformu, Ultima Online, Counter-Strike ve diğer online oyunlar hakkında Türkçe haber, bilgi ve forum sunuyor.
  • ANASAYFA
  • ULTIMA ONLINE
    • Ultima Online Oyuncu Rehberi

      Ultima Online Oyuncu Rehberi

      Oyunu hakkında tanıcı bilgiler ve ipuçları

    • Ultima Online Server List

      Ultima Online Server List

      Önemli özellikleri ve online oyuncu sayıları

    • Ultima Online Script

      Ultima Online Script

      Sphere, RunUO, Razor scriptleri

    • Ultima Online Forum

      Ultima Online Forum

      UO hakkında görüş alışverişi

  • FORUM
  • DOKÜMAN
  • İNDİR
  • DISCORD 25
   Üye ol    Giriş
189
  1. Doküman
  2. Ultima Online
  3. Sphere
  4. 56b Account Sistemi
afronola

56b Account Sistemi

  • afronola
  • Afronola
  • 2010-03-01 17:28
  • 5 Yorumlar
  • 7426 Görüntüleme
afro boyz saygıylan sunar :)

Merhaba arkadaşlar hep beraber bir hesap sistemi yapalım. Vereceğim kodlar basittir bunu unutmayın, geliştirilebilir ve sphereserverda geçmiştir.

Öncelikle veritabanıyla çalışacağımızdan dolayı sphere sürümümüzün 56b olması gerekiyor. 56b sürümünü nerden bulabiliriz? https://prerelease.sphere.torfo.org/ adresindeki işletim sisteminize göre olan versiyonu indirip oluşturabilirsiniz.

Local bilgisayara kuracağımızdan ve vereceğim kodların php olduğundan dolayı windows işletim sistemlerinde php çalışmamaktadır. Bu yüzden iss, easyphp, appserv gibi programları kullanarak belirlenecek klasörü linux gibi çalıştırabiliriz. Ben appserv' i tercih ettim ve anlatımı ona göre yapacağım o yüzden appserv' in linkini de burdan bulabilirsiniz. https://prdownloads.sourceforge.net/appserv/appserv-win32-2.5.10.exe?download

Programı kurarken
Server Name kısmına localhost
Administrator e-mail kısmına da e-mail adresinizi yazın.
Port adresi aynı kalsın

Phpmyadmin(veritabanı kontrol paneli diyebiliriz) bu paneli kullanabilmemiz için default kullanıcı adımız root' tur buna şifre gerekmektedir ikinci adımda şifre belirliyoruz. UTF-8 Unicode türkçe karakterleri de kapsadığı için bu kalsın ve programımız gerekli bilgileri aldıktan sonra kuruluyor.

Programı kurduktan sonra c:\appserv\www klasörümüz bizim bir nevi linux ve web alanımız oldu. Bu klasördeki phpmyadmin hariç diğer tüm dosyaları silip işlemlerimize başlayalım.

Web tarayıcımıza https://localhost/phpmyadmin yazarak veritabanı kontrol panelimize kullanıcı adımız(root) ve şifremizi (programı kurarken iki kere girdiğimiz şifre) yazarak girelim.

Yetkililerdeki parola kısmında evet seçeneği hariç diğer tüm yetkilileri iptal edelim ki veritabanlarımıza şifresiz erişemesinler.

Yeni veritabanı oluştur kısmına ben sphere yazdım siz ne yazarsanız yazın ve veritabanımızı oluşturalım. yandaki panelden veya sphere (0) yazan yerden veritabanına geçelim ve en üstteki menüden SQL butonuna tıklayarak SQL Sorgulamamızı başlatalım.

CREATE TABLE `accounts` (
  `id` int(11) NOT NULL auto_increment,
  `login` varchar(26) default NULL,
  `password` tinytext,
  `email` varchar(60) default NULL,
  `plevel` varchar(26) default 'player',
  `status` int(11) default '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
ile sorgulatmamızı GIT butonuna tıklayarak çalıştıralım.

Account diye veritabanı tablomuzu oluşturduk. Birazdan vereceğim account sistemi sitesinden girdikleri bilgiler accounts veritabanı tablosuna kaydedilecek ve biz bu bilgileri mysql bağlantısıyla sphereımıza çekicez.

Bu işlemi yapabilmemiz için 56b nin mysql özelliğini aktif etmemiz gerekiyor. Bunu da sphere.ini den alttaki gibi ayarlayabilirsiniz.

 MySql configuration.
MYSQL=1
MySqlHost=localhost
MySqlUser=root
MySqlPassword=şifre(kurulumda yazdığımız şifre)
MySqlDatabase=sphere(ilk başta oluşturduğumuz veritabanı adı)

Girilecek bilgileri veritabanına aktarıcak olan account web sitemize geldi. Bu basittir bir örnektir captcha ile geliştirilebilir emaili iki defa yazdırabilirsiniz, pin sisteminiz için geliştirebilirsiniz vs.

<html>
<head>
<title>Sphere Account Register</title>
<style>
body {
color: #003300;
font-family: Verdana, Arial, Serif;
font-size: 10pt;
}
input {
border: 1px solid #003300;
color: #003300;
background: #DDDDDD;
font-family: Verdana, Arial, Serif;
font-size: 10pt;
}
tr {
font-size: 10pt;
}
a:link {
text-decoration: none;
color: #003300;
}
a:visited {
text-decoration: none;
color: #003300;
}
a:active {
text-decoration: none;
color: #003300;
}
a:hover {
text-decoration: none;
color: #FF6600;
}
</style>
</head>
<body>
<div align="center">
<?php
$mysql_user = "oguzhankeskin";
$mysql_pass = "02648asdqwe";
$mysql_database = "sphere";
$mysql_host = "localhost";
?>
<FORM METHOD=POST ACTION="<?php echo $_SERVER['PHP_SELF']; ?>?act=register">
<table cellspacing=0 border=0>
<tr>
<td colspan=2 style="border: 1px solid #003300; background: #DDDDDD;"><CENTER><A HREF="index.php">Sphere Account Register</A></CENTER></td>
</tr>
<tr>
<td style="border-left: 1px solid #003300">&nbsp;User:</td>
<td style="border-right: 1px solid #003300"><INPUT TYPE="text" NAME="login"&nbsp;></td>
</tr>
<tr>
<td style="border-left: 1px solid #003300">&nbsp;Password:</td>
<td style="border-right: 1px solid #003300"><INPUT TYPE="password" NAME="senha1">&nbsp;</td>
</tr>
<tr>
<td style="border-left: 1px solid #003300">&nbsp;Retype Password:&nbsp;</td>
<td style="border-right: 1px solid #003300"><INPUT TYPE="password" NAME="senha2">&nbsp;</td>
</tr>
<tr>
<td style="border-left: 1px solid #003300">&nbsp;Email:</td>
<td style="border-right: 1px solid #003300"><INPUT TYPE="text" NAME="email">&nbsp;</td>
</tr>
<tr>
<td style="border: 1px solid #003300; border-top: 0px;" colspan=2><CENTER><INPUT NAME="Register" VALUE="Register" TYPE="submit"></CENTER></td>
</tr>
</table>
</FORM>
<?php

if ($_GET['act'] == 'register')
{
$conn = mysql_connect($mysql_host, $mysql_user, $mysql_pass);
mysql_select_db($mysql_database);
$user = anti_injection($_POST['login']);
$pass1 = anti_injection($_POST['senha1']);
$pass2 = anti_injection($_POST['senha2']);
$email = anti_injection($_POST['email']);
if (valida(Array($user,$pass1,$pass2,$email)) == true)
{
if ($pass1 == $pass2)
{
if (ereg("([0-9,a-z,A-Z])", $user))
{
if (ereg("^([0-9,a-z,A-Z]+)([.,_]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$", $email))
{
$query = mysql_query("SELECT * FROM accounts WHERE login='$user'");
$num_rows = mysql_num_rows($query);
if ($num_rows == 0)
{
$query = mysql_query("SELECT * FROM accounts WHERE email='$email'");
$num_rows = mysql_num_rows($query);
if ($num_rows == 0)
{
$query = mysql_query("INSERT INTO accounts (login, password, email, status) VALUES ('$user','$pass1','$email','0')");
if (!$query)
{
echo ":: Error on trying to register account ::";
}
else
{
echo ":: Account added with sucess ::";
}
}
else
{
echo ":: Email is already exist in database ::";
}
}
else
{
echo ":: User is already exist in database ::";
}
}
else
{
echo ":: Invalid email type ::";
}
}
else
{
echo ":: Use only numbers(0-9) and letters(a-z) ::";
}
}
else
{
echo ":: The password is not equal ::";
}
}
}

// Função Anti Injection

function anti_injection($sql)
{
$sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql);
$sql = trim($sql);
$sql = strip_tags($sql);
$sql = addslashes($sql);
return $sql;
}

// Verificar Campos Vazios

function valida($campos){
foreach($campos as $c){
if(empty($c)){
echo ":: Write all fields ::<br>";
return false;
}else{
return true;
}
}
}
?>
</div>
</body>
</html>

Yukarıda spoiler için verdiğim kodun alttaki kısmını kendi bilgilerinize göre değiştirmelisiniz ki mysql'a bağlanabilelim.

$mysql_user = "root";
$mysql_pass = "şifre";
$mysql_database = "sphere";
$mysql_host = "localhost";

Veritabanı tablomuz, mysql konfigrasyon ve web sitemiz hazır.

Peki bu bilgileri nasıl sphere a nasıl aktarıcaz? Hatırlarsanız mysql konfigrasyonumuzu sphere.iniden ayarlamıştık işte bunu kullanarak gerekli bilgileri çekebileceğiz.

Genelde script klasörünün içinde bulunan sphere_serv_triggers.scp adlı scriptin içinde f_onserver_start fonksiyonu bulunmaktadır. Bu sunucu açıldığında komutunu tetikler ve biz bu fonksiyonun altında veritabanına bağlanıcaz.

[function f_onserver_start]
DB.CONNECT
if (<DB.CONNECTED>)
serv.log Bilgi: Mysql bağlantısı başarılı.
else
serv.log  Bilgi: Mysql bağlantısı başarısız
endif

Yukarıdaki kod ile sphere ile veritabanı arasındaki bağı kurduk. Sıra account sistemindeki kodlamaya geldi. Yine aynı scriptinize aşağıdaki kodu ekleyebilirsiniz.

[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 Bilgi: #<eval <LOCAL.R>> Account <DB.ROW.<eval <LOCAL.R>>.login> yaratıldı.
        end
    endif
endif

f_acc_update bizim accountları spherea aktarmamıza yaramaktadır ve ne kadar zaman da bir aktarmamıza yarayacak olan fonksiyondur.

Mesela her savede bir diyorsanız
[function f_onserver_save]
serv.f_acc_update
Yapmalısınız.

Mesela 30 dakikada bir diyorsanız
[function f_onserver_timer]
serv.f_acc_update
Yapmalısınız.

Aslında mysql ile sphere bağlantısı basittir. Birkaç döküman okuduktan sonra her türlü istatistiki bilgileri, verileri aktarabilirsiniz.

Değerlendirmeler

0 (0)

0 Kullanıcı

Üye Ol veya Giriş Yap

Bu içeriğe yorum atmak istiyorsanız hemen üye olun veya giriş yapın.

Discord ile Bağlan
Twitch ile Bağlan
Steam ile Bağlan
Google ile Bağlan
Yorumlar (5)
Xearth
Xearth 2011-01-06 18:50

hayır arkadaşlar bu sistemin sorunsuzunu paylaştım ben bu sıstem bozuk sorunsuzu için bana pm atabilirsiniz..

slifer Avatar
slifer 2010-07-10 17:21

varchar yap bide oyle dene

Furky!
Furky! 2010-06-12 00:48

şifreyi 0 olarak gösteriyor sorun ne olabilir?

OyunSistem Avatar
OyunSistem 2010-05-01 07:27

Paylaşım çok iyi olmuş eline sağlık.

Override
Override 2010-03-15 18:04

Teşekkürler.

Sadece kayıtlı kullanıcılar yeni yorum yapabilir.


Ultima-Strike Discord
Benzer Sayfalar
  • Rexos Account Sistemi

    2011-01-31 12:23

  • Sorter Account Sistemi v1.4

    2011-07-23 21:46

  • Smyrna Web Account Sistemi [ASP]

    2005-11-18 23:31

  • Perl Account sistemi

    2004-06-21 22:18

  • RunUO Phpbb Account & Şifreleme Sistemi

    2008-07-17 03:06



  • Son Forumlar
  • Sayfalar
  • Nefrelius
    Alcor UO Reborn

    Sunucular 3 gün önce

  • System_Error
    Client Patlaması

    Ultima Online 5 gün önce

  • georgm15
    CS2 turnuvaları tartışmalı başladı.

    Counter-Strike 2 1 hafta önce

  • georgm15
    Counter-Strike 1.6 İndir - Tek Link Hızlı-

    Counter-Strike 1 hafta önce

  • Robellious
    Üyeliği 15 yıl ve üzerinde olanlar.

    Ultima Online 1 hafta önce

  • Cihangir algın
    Razor Kullanımı

    RunUo Scripting 3 hafta önce

  • Lucretius
    Rampage Pvp

    Sunucular 3 hafta önce

  • Lucretius
    Nephilim Pvp

    Sunucular 3 hafta önce

  • redi4817
    NightUO

    Sunucular 3 hafta önce

  • Cengiz MERDİT
    Sphere 56T Nightly Sürümü

    Ultima Online 1 ay önce

  • aygun
    Esgaroth UO

    Sunucular 1 ay önce

  • deonist
    Alysa Pvp ( Aktif ! )

    Sunucular 1 ay önce

  • mthN
    Nebula Uo gerçekleri

    Ultima Online 2 ay önce

  • buffa
    Kullanılması Gereken Rate Ayarları

    Counter-Strike 2 ay önce

  • Lucretius
    Aktif Satılık Server !

    Sunucular 2 ay önce

  • Skill seçimlerinizi planlamak artık çok daha kolay

    Ultima Online Karakter Yapılandırma Aracı Bölümü Açıldı!

    2024-10-31 22:47

  • Ultima Online topluluğu, ClassicUO'nun sadece web client olarak kullanılabileceğinin açıklanmasının ardından tepkili.

    Resmi UO, Oyuncuları İkiye Böldü: Web Client Yeterli mi?

    2024-10-14 17:45

  • Ultima Online, ClassicUO ile resmi işbirliği yapıyor! Performans iyileştirmeleri, geniş oyun penceresi ve daha fazlası geliyor.

    Ultima Online, ClassicUO ile Resmi İşbirliğine Gidiyor

    2024-09-26 14:21

  • Centred#

    2024-07-08 22:50

  • CentrED+ 7.9

    2024-07-08 22:34

  • Distance(uzaklık) Sorgusu Hakkında

    2024-06-19 22:05

  • UoFiddler

    2024-06-01 02:19

  • UoFiddler ile Map Kopyalama

    2024-05-31 21:17

Menü
  • ANASAYFA
  • FORUM
  • DOKÜMAN
  • İNDİR
  • İLETİŞİM
  • Bağlantılar
  • CS 1.6 indir
  • CS 1.6 Türkçe
  • CS 1.6 Bot
  • CS 1.6 CFG
  • CS 1.6 Rate Ayarları
  • UO Server
  • Ghost Mouse indir
  • FPS Nedir?
  • Ultima Online PVP Server
  • Makroman
  • UO Karakter Yapılandırma
    © 2004 - 2025 Ultima-Strike. Her hakkı saklıdır.