75 misafir, 0 üye aktif, toplam 75 kişi var.
 
 
75 misafir, 0 üye aktif, toplam 75 kişi var.
Yazan: SphereServer Gönderen: G-Defender Oylar: (2218) Yorumlar: (1) Tarih: 2015-02-24 03:22

SphereServer Üyelik Sistemi.

Merhabalar (Php+Mysql) Üyelik sistemini sphereserver.net'de görmüþtüm bir kaç açýðý bulunuyordu, bu açýklarý fixleyip burada sizlere paylaþýyorum sistemin kuruluþu çok basittir.

Kod :

CREATE TABLE `accounts` (
`id` int( 11 ) NOT NULL AUTO_INCREMENT ,
`login` varchar( 26 ) default NULL ,
`password` varchar( 50 ) default NULL ,
`email` varchar( 60 ) default NULL ,
`plevel` varchar( 26 ) default 'player',
`status` int( 11 ) default '0',
PRIMARY KEY ( `id` )
);


Pypmyadmin'den üstteki tabloyu oluþturun ondan sonra ;

Kod :

<html>
<head>
<title>titlenizi yaziniz!</title><body bgcolor="e5dcca">
<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 = "kullanici?";
$mysql_pass = "Þifreniz?";
$mysql_database = "database?";
$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">XxXx Ultima Online Shard</A></CENTER></td>
</tr>
<tr>
<td style="border-left: 1px solid #003300">&nbsp;Account Adi:</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;Acc Sifreniz:</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;Sifre Tekrar:&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 Adresi:</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="Kayit Ol" VALUE="Kayit Ol" TYPE="submit"></CENTER></td>
<tr>
<td style="border: 1px solid #003300; border-top: 0px;" colspan=2><CENTER>&nbsp;Düzenleyen ; Ultima-TR.COM</td></CENTER></td>
</tr>
<tr>
</table>
</FORM>
<?php

if ($_GET['act'] == 'register')
{
    $conn = mysql_connect($mysql_host, $mysql_user, $mysql_pass);
    mysql_select_db($mysql_database);
    $user = injection_koruma($_POST['login']);
    $pass1 = injection_koruma($_POST['senha1']);
    $pass2 = injection_koruma($_POST['senha2']);
    $email = injection_koruma($_POST['email']);
    if (araulan(Array($user,$pass1,$pass2,$email)) == true)
    {
        if ($pass1 == $pass2)
        {
            if (ereg("([1-9,a-z,A-Z])", $user))
            {
                if (ereg("^([1-9,a-z,A-Z]+)([.,_]([1-9,a-z,A-Z]+))*[@]([1-9,a-z,A-Z]+)([.,_,-]([1-9,a-z,A-Z]+))*[.]([1-9,a-z,A-Z]){2}([1-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 ":.: Sistemde Olusan Bir Ariza Nedeniyle Suanda Hesap Alimi Yapilamiyor :.:";
                            }
                            else
                            {
                                echo ":.: Accountunuz Basariyla Olusturuldu.Ilk Save'den Sonra Basariyla Giris Yapabilirsiniz :.:";
                            }
                        }
                        else
                        {
                            echo ":.: Bu Email Adresi Zaten Veritabaninda Kayitli :.:";
                        }
                    }
                    else
                    {
                        echo ":.: Bu Account Adresi Zaten Veritabaninda Kayitli :.:";
                    }
                }
                else
                {
                    echo ":.: Tanimlanamayan Mail Adresi :.:";
                }
            }
            else
            {
                echo ":.: Sadece Rakam (0-9) ve Harf Giriniz(a-z) :.:";
            }
        }
        else
        {
            echo ":.: Sifreniz Geçerli Degil :.:";
        }
    }
}

// Injection Harfleri Yasak
function injection_koruma($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;
}

// Her Tarafi Doldurmusmu

function araulan($campos){
  foreach($campos as $c){
      if(empty($c)){
        echo ":.: Tüm Bosluklari Doldurunuz :.:<br>";
        return false;
      }else{
        return true;
      }
  }
}
?>
</div>
</body>
</html>


bu kodlari masa üstünde index.php oluþturup not defteri içine kopyalayip + mysql,title bilgilerini yazin.

Kod :

[function f_acc_update]
db.connect
db.query "SELECT * FROM accounts WHERE status='0'"
if <db.connected>
while <db.row.<dlocal._while>.id>
            serv.account add <db.row.<dlocal._while>.login> <db.row.<dlocal._while>.password>
            db.execute "UPDATE accounts SET status='1' WHERE login='<db.row.<dlocal._while>.login>'"
            serv.log Account kayitlari : <db.row.<dlocal._while>.login> adli account oluþturuldu..
endwhile
endif

[function f_acc_updatee]
if ( <DB.connected> )
        end
    endif
endif


üst'te verdiðim scripti ise sphere/scripts klasörü içerisinde herhangi bir script'e ekleyip ondan sonra sphere_serv_triggers.scp açýp "f_onserver_save" fonksiyonunu þöyle deðiþtiriyoruz ;

Kod :

[FUNCTION f_onserver_save]      // savede devreye gir!
serv.f_acc_update


Not : Sistem sadece üye olmak içindir.



[Yorumlar]

1.   Gönderen G-Defender 2015-03-22 23:23
 

Pvp sunucularý için kullanýlabilir o yüzden paylaþtým birileri çýkýp demesin üye giriþi yok felan söylüyümde.

[Toplam 1 Yorum]

[Oylamalar]

Oylama :
Üyelerin oylama ortalaması (10 dışında) : Henüz Oylanmamış   
Oylar: 0
#benzer sayfalar
#yorumlar
#gönderen
#durum
Level Sistemi
0
G-Defender
3 yıl önce
Quest (Görev sistemi)
0
Uur
3 yıl önce
Housing Sistemi
0
G-Defender
3 yıl önce
SphereServer v.0.56c (Linux)
0
G-Defender
3 yıl önce
SphereServer v.0.56c (Windows)
0
G-Defender
3 yıl önce
Ultima Online, RunUO, ultima download, sphere scripting, role play, uo grafik, second age ultima, uo loop, macroman, pvp server, server kurulumu, sunucular, ghost mouse, inside uo, kingdom reborn, stygian abyss, uo nasıl oynanır, mondain's legacy, age of shadows, world build, grandmaster, anim edit, anim publish, hues mul, hosting vps, event dialog, account sistemi, skill gain, static yapımı, ultima online pvp, ultima online shard, ultima online indir, frp game, RunUO 1.0.0 , razor, uo rice, hue editör, skill tools, ultima online patch, axis, world build, verdata, verdata patcher, map editör, sphere, multool, ml mulls, 56b 55r 55i, htmlgumps, client 4x, client edit, sphere release, osi, rp server, gump editör, mul patcher

Sayfa açılma süresi 0.248 sn. / SQL toplam zamanı: 0.208 sn. - SQL sorgusu: 40 - Ortalama SQL zamanı: 0.00519 sn.
Bu site en iyi internet explorer 8 ile görüntülenir.
© Զ00Գ-Զ01Դ ~ www.ultima-tr.com ~ Seditio CMS