Merhaba arkadaşlar account sistemini öğrenmek kolaydır fakat kimse kimseye öğretmez:)
Bu Account Sistemini Az Buçuk Kurcaladım Kullanılır Hale Soktum

Bilenler Vardır ama ben hiçbişey bilmiyormuşsunuz gibi davranıcam k.bakmayınız
56b İçindir
ve Başlıyalım
Öncelikle Local'de Kurulumu Anlatıcam Host PC'nizdede Aynısını Yaparsınız
Local'de php mysql phpymadmin tarzı programların çalışması için bazı programlar yüklemeniz gerekmektedir.Ben size appserv 2.5.7'de anlatacağım
Buyrun Link :
Tıklayın
Kurulumda dikkat edilmesi gereken yer root password soracak ordaki şifreyi sallamayın sakın

işimize yarayacak
Şimdi programımız indi kuruldu tarayıcımıza
https://localhost yazıyoruz önümüze bi sayfa geliyor ve phpMyAdmin Database Manager Version 2.9.0.2 yazan linki tıklıyoruz
giriş yapıyoruz Sağ tarafta Language var isterseniz ordan değiştirebilirsiniz
sol tarafta create new database var oraya uoacc yazıyoruz ve create butonuna basıyoruz ve uoacc adlı database'imiz acılıyor
açıldıktan sonra sağ taraftaki mor arka planlı yerden uoacc(0) yazanı seçiyoruz
önümüze bi sayfa geliyor uoacc hakkında ordan yukarıda import var oraya geliyoruz ve aşağıda verdiğim sql dosyasını kaydettikten sonra ordan importlayacağız
CREATE TABLE `accounts` (
`id` int(11) NOT NULL auto_increment,
`login` varchar(26) default NULL,
`password` decimal(26,0) default NULL,
`email` varchar(60) default NULL,
`plevel` varchar(26) default 'player',
`status` int(11) default '0',
PRIMARY KEY (`id`)
);
Arkadaşlar yukarıdaki kodu kopyalayın bir metin belgesine yapıştırın sonra o metin belgesinin uzantısını .sql yapın uoacc.sql örneğin
yaptıktan sonra import sayfasına geri bakalım
orda Location of the text file gözat ( Browse ) diyoruz ve uoacc.sql dosyasını seçiyoruz.Veritabanı üzerindeki tablomuz oluştu
şimdi aşağıda verdiğim index.php üzerinde ayarlar yapmalıyızki çalışsın
<html>
<head>
<title>Sunucunuzun Adı</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 = "root";
$mysql_pass = "kurulumda girdiğniz şifre";
$mysql_database = "uoacc";
$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"> Account Adi</td>
<td style="border-right: 1px solid #003300"><INPUT TYPE="text" NAME="login" ></td>
</tr>
<tr>
<td style="border-left: 1px solid #003300"> Sifre:</td>
<td style="border-right: 1px solid #003300"><INPUT TYPE="password" NAME="senha1"> </td>
</tr>
<tr>
<td style="border-left: 1px solid #003300"> Sifre Tekrar: </td>
<td style="border-right: 1px solid #003300"><INPUT TYPE="password" NAME="senha2"> </td>
</tr>
<tr>
<td style="border-left: 1px solid #003300"> Email Adresi:</td>
<td style="border-right: 1px solid #003300"><INPUT TYPE="text" NAME="email"> </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>
</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("([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 ":: 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>
Verdiğim Kodu index.php şeklinde kaydediyoruz ve appserv'in klasorune Giriyoruz
C:/Appserv/www
bu klasor içinde kayit diye bi tane klasor acıyoruz ve kaydettiğimiz ve AYARLARI YAPTIĞIMIZ index.php adlı dosyayı kayit klasorunun içine yapıştırıyoruz
Test Etmek için
https://localhost/kayit
bunu tarayıcınıza yazıp kontrol edebilirsiniz
şimdi mysql ile çalıştığından biraz mysqllarıda kurcalamak lazım
sphere.ini'yi açıyoruz
ordaki mysql ayarlarını buluyoruz
// MySql configuration.
MYSQL=1
MySqlHost=Localhost
MySqlUser=root
MySqlPassword=kurulumda girdiğiniz şifre
MySqlDatabase=uoacc
orayı yukarıdaki gibi değiştiriyoruz
Sonra
sphere_serv_triggers.scp'yi açıyoruz
[FUNCTION f_onserver_start] // Server acildigi zaman devreye giren fonksiyon
DB.CONNECT
if (<DB.CONNECTED>)
serv.log MYSQL Baglantisi : Basarili
else
serv.log MYSQL Baglantisi : Basarisiz
endif
[FUNCTION f_onserver_save] // Save geldigi zaman devreye giren fonksiyon
serv.f_acc_update
Yukarıdaki Alanları Değiştiriyoruz
son olarak sunucumuza f_acc_update function'unu eklemek kaldı
[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 Account Kayitlari : <eval <LOCAL.R>> <DB.ROW.<eval <LOCAL.R>>.login> Adli Account Olusturuldu
end
endif
endif
Herkese İyi Çalışmalar