pvp serverler,pvp server,pvp serverlar,private serverlar,private serverler,private server,metin2

Sizleri Neler Bekliyor ?
-Foruma Üye Olarak Yeni Arkadaşlıklar Edineceksiniz.
-İnternette Zaman Geçirecek Bir Alanınız Olucak Ve Eğleneceksiniz.
-PvP Server Tutkunuysanız Pvp Serverlerde Yenilikleri Takip Ediceksiniz.
-Yeni Açılan Serverleri Anında Bulacaksınız .
-Gmlik Adaylığı Koyacaksınız.Serverinizi Tanıtacaksınız.
-Pvp Serverler Hakkında Herşey Bu Forumda Olucak.
-ÜYE OLURSANIZ FORUMDAKİ REKLAMLAR GÖZÜKMEZ
Bunlardan Yararlanmak İçin Sizden Tek İsteyimiz Üye Olmanız Yada Giriş Yapmanız.


Türkçe ID ve Şifre Engelleme %100 (Kendi Veritabanımdan) 30us3s8
Lütfen Foruma FİREFOX İle Giriniz !



Join the forum, it's quick and easy

pvp serverler,pvp server,pvp serverlar,private serverlar,private serverler,private server,metin2

Sizleri Neler Bekliyor ?
-Foruma Üye Olarak Yeni Arkadaşlıklar Edineceksiniz.
-İnternette Zaman Geçirecek Bir Alanınız Olucak Ve Eğleneceksiniz.
-PvP Server Tutkunuysanız Pvp Serverlerde Yenilikleri Takip Ediceksiniz.
-Yeni Açılan Serverleri Anında Bulacaksınız .
-Gmlik Adaylığı Koyacaksınız.Serverinizi Tanıtacaksınız.
-Pvp Serverler Hakkında Herşey Bu Forumda Olucak.
-ÜYE OLURSANIZ FORUMDAKİ REKLAMLAR GÖZÜKMEZ
Bunlardan Yararlanmak İçin Sizden Tek İsteyimiz Üye Olmanız Yada Giriş Yapmanız.


Türkçe ID ve Şifre Engelleme %100 (Kendi Veritabanımdan) 30us3s8
Lütfen Foruma FİREFOX İle Giriniz !

pvp serverler,pvp server,pvp serverlar,private serverlar,private serverler,private server,metin2

Would you like to react to this message? Create an account in a few clicks or log in to continue.

pvp serverler,pvp server,pvp serverlar,private serverlar,private serverler,private server,metin pvp server

pvpserverler.forumclan.com  Üye sayımız +105.000 / Aramıza Hoşgeldiniz !

    Türkçe ID ve Şifre Engelleme %100 (Kendi Veritabanımdan)

    DhadLu
    DhadLu
    Bronze Master
    Bronze Master


    <b>Mesaj Sayısı</b> Mesaj Sayısı : 462
    <b>Kayıt tarihi</b> Kayıt tarihi : 18/09/09
    Mage
    Eski Oyuncu
    BJK

    Türkçe ID ve Şifre Engelleme %100 (Kendi Veritabanımdan) Empty Türkçe ID ve Şifre Engelleme %100 (Kendi Veritabanımdan)

    Mesaj tarafından DhadLu Salı Kas. 16, 2010 9:22 pm

    Selamlar,

    Kendi Veritabanımda Kullandığım Regex(Regular Expression) Sizinle Paylaşayım Dedim, Baktım Bir Dünya Konu Var..

    2 Aşama Göreceksiniz fakat Sadece 1. Aşama da İşinizi Görür, 2. Aşama Sadece Ek Güvenlik Tercihe Bağlı...

    Gel Gelelim 1. Aşamayı Uygulayınca Ne Olacak ?

    Şöyle Diyeyim "a-Z / 0-9 / _" Karakterleri Sadece ID ve Şifrede Kullanabilir, Kesinlikle Hiç Bir ASCII Karakter ile Oyuna Giremez Tamamiyle %100'dür.

    Kullanılabilecek Küçük Harfler : abcdefghijklmnoprstuvyzxwq
    Kullanılabilecek Büyük Harfler : ABCDEFGHIJKLMNOPRSTUVYZXWQ
    Kullanılabilecek Sayılar : 0123456789
    Kullanılabilecek Karakterler : _ (Alttan Tire, Aşağıda İsterseniz Onuda Kaldırabilirsiniz)

    Kısacası Mevcutta Kullandığınız RULES v.s. ne Var ise Silin Gitsin, Son Nokta Konulmuştur

    1. AŞAMA (Türkçe Karakterin ve Tüm Karakterlerin Tarih Olması) ;

    Fonksiyonumuz ;

    Kod:


    CREATE FUNCTION [dbo].[IsValidCharacters](@SData varchar(8000))
    RETURNS INT
    AS
    /*
    Author : AKUMA
    Update : 16.10.2009 - 15:30
    */
    BEGIN

    DECLARE @SDataLen int
    DECLARE @Loop int
    DECLARE @Letter varchar(1)
    DECLARE @RXLetters varchar(8000)
    DECLARE @Match tinyint

    SET @RXLetters = 'qwertyuopasdfghjklizxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890_'
    SET @SDataLen = LEN(@SData)
    SET @Loop = 1
    SET @Match = 0

    WHILE @Loop < (@SDataLen + 1)
    BEGIN

    SET @Letter = RTRIM(LTRIM(SUBSTRING(@SData,@Loop,1)))

    IF CHARINDEX(@Letter,@RXLetters) = 0
    BEGIN
    SET @Match = 1
    BREAK
    END

    SET @Loop = @Loop + 1
    END

    RETURN @Match
    END


    Önemli Bilgiler ;
    Kod:



    -- Aşağıda '.....' Arasına Koyduğunuz Her Karakter Geçerli Karakter Sayılır Örneğin Æ yi Koyarsanız Geçerli Olur, Koymazsanız Geçersiz Olur.

    SET @RXLetters = 'qwertyuopasdfghjklizxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890_'


    Kodun Uygulanması ;
    ACCOUNT_LOGIN,ACCOUNT_LOGIS,MAIN_LOGIN veya MYST_LOGIN Ana Logininiz Hangisi ise...

    Kod:


    CREATE PROCEDURE [dbo].[ACCOUNT_LOGIN]
    @AccountID varchar(21),
    @Password varchar(13),
    @nRet smallint OUTPUT

    AS

    -- Tam Buraya


    AS'ın Hemen Altına Şunu Yazıyorsunuz... (Alttan Tire Kullanılabilir Hali.)

    Kod:


    IF dbo.IsValidCharacters(@AccountID) = 1
    BEGIN
    SET @nRet = 2 -- Hesap Bulunamadı.
    RETURN
    END

    IF dbo.IsValidCharacters(@Password) = 1
    BEGIN
    SET @nRet = 3 -- Şifreniz Hatalıdır.
    RETURN
    END


    2. AŞAMA (EK Güvenlik) : Aynı Anda İki Hesabın Oyuna Girmesine Engeller, Örneğin "aktas" Diye Bir Hesabım Var Benim Biride "aktaş" Açtı fakat Birşekilde Paketleri Editledi ve "aktas" Yapıp Karaktere Girmesini Engellemektedir.

    PROC_INSERT_CURRENTUSER'nüzü Açın ve SET @nRet = 1 Yazan Yerin Hemen Üstüne Dikkat Edin Üstüne Altına Değil Alttaki Kodu Yapıştırın ve Kaydedin Bu Kadar.

    Kod:


    DECLARE @RAccountID char(21)
    /*
    Author : AKUMA
    Update : 26.07.2009 - 22:45
    */
    SELECT @RAccountID = strAccountID FROM ACCOUNT_CHAR WHERE strCharID1 = @CharID and strCharID1 IS NOT NULL
    SELECT @RAccountID = strAccountID FROM ACCOUNT_CHAR WHERE strCharID2 = @CharID and strCharID2 IS NOT NULL
    SELECT @RAccountID = strAccountID FROM ACCOUNT_CHAR WHERE strCharID3 = @CharID and strCharID3 IS NOT NULL

    IF @RAccountID IS NULL
    BEGIN
    SET @nRet = 0
    RETURN
    END
    ELSE IF @RAccountID = ''
    BEGIN
    SET @nRet = 0
    RETURN
    END
    ELSE IF @RAccountID <> @AccountID
    BEGIN
    SET @nRet = 0
    RETURN
    END


    Yapamıyanlar İçin Komple PROC_INSERT_CURRENTUSER (Ekisini Silin Bunu Koyun Yerine - Query Any.)

    Procedürü Silemiyenler Bu Şekilde Silebilir.

    Kod:


    DELETE PROC PROC_INSERT_CURRENTUSER
    Kod:
    CREATE PROCEDURE PROC_INSERT_CURRENTUSER
    @AccountID char(21),
    @CharID char(21),
    @ServerNo int,
    @ServerIP char(15),
    @ClientIP char(15),
    @nRet smallint output
    AS
    /*
    Author : AKUMA
    Update : 26.07.2009 - 22:12
    */

    INSERT INTO CURRENTUSER (nServerNo, strAccountID, strCharID, strServerIP, strClientIP) VALUES (@ServerNo, @AccountID, @CharID,@ServerIP,@ClientIP)

    DECLARE @RAccountID char(21)

    SELECT @RAccountID = strAccountID FROM ACCOUNT_CHAR WHERE strCharID1 = @CharID and strCharID1 IS NOT NULL
    SELECT @RAccountID = strAccountID FROM ACCOUNT_CHAR WHERE strCharID2 = @CharID and strCharID2 IS NOT NULL
    SELECT @RAccountID = strAccountID FROM ACCOUNT_CHAR WHERE strCharID3 = @CharID and strCharID3 IS NOT NULL

    IF @RAccountID IS NULL
    BEGIN
    SET @nRet = 0
    RETURN
    END
    ELSE IF @RAccountID = ''
    BEGIN
    SET @nRet = 0
    RETURN
    END
    ELSE IF @RAccountID <> @AccountID
    BEGIN
    SET @nRet = 0
    RETURN
    END
    ELSE
    BEGIN
    SET @nRet = 1
    RETURN
    END


    Kolay Gelsin...!

      Forum Saati C.tesi Nis. 27, 2024 9:18 pm