Neler yeni

Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

ZİRVE SNC - 1299 TÜRKÇE KARAKTER DUPE FİXLEME KODU

BameL

Arena Üyesi
Arena Üyesi
Katılım
27 Ara 2023
Mesajlar
40
Tepkime puanı
0
Puanları
0
SOACS_LOGIN VEYA LOGIN PROSEDURUNE AS YAZISINDAN SONRA BU KODU UYGULAYIN :
Kod:
-- ZirveSunucum || Türkçe Karakter ID kabul etme.
-- ZirveSunucum Information - Only English Character Start
IF dbo.IsValidCharacters(@AccountID) = 1
BEGIN
SET @nRet = 11 -- Please do not use s-g-c-i letters in your Account ID.
RETURN
END

IF dbo.IsValidCharacters(@Password) = 1
BEGIN
SET @nRet = 11 -- Please do not use s-g-c-i letters in your Account ID.
RETURN
END
-- ZirveSunucum Information - Only English Character End

CREATE_NEW_CHAR PROSEDURUNE AS YAZISINDAN SONRA BU KODU UYGULAYIN :

Kod:
-- ZirveSunucum Information - Only English Character
IF dbo.IsValidCharacters(@AccountID) = 1 or dbo.IsValidCharacters(@CharID) = 1
BEGIN
SET @nRet = 4 -- Please do not use s-g-c-i letters in your Account ID.
RETURN
END
-- ZirveSunucum Information - Only English Character End

YUKARIDAKİ İŞLEMLERDEN ÖNCE SQL SERVER GIRIP KN_ONLINE VERITABANI DOSYASINA BU KODU :

Kod:
-- ZirveSunucum Information | Security Insert
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[PROC_INSERT_CURRENTUSER]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[PROC_INSERT_CURRENTUSER]
GO

CREATE PROCEDURE [dbo].[PROC_INSERT_CURRENTUSER]
@AccountID     varchar(50),
@CharID         varchar(50),
@ServerNo     int,
@ServerIP       varchar(50),
@ClientIP       varchar(50),
@nret smallint output
AS

    BEGIN
           INSERT INTO CURRENTUSER (nServerNo, strServerIP,  strAccountID, strCharID, strClientIP )  Values  (@ServerNo, @ServerIP, @AccountID, @CharID, @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
        
    RETURN
END
GO


IF EXISTS (SELECT * FROM   sys.objects WHERE  object_id = OBJECT_ID(N'[dbo].[IsValidCharacters]') AND type IN ( N'FN', N'IF', N'TF', N'FS', N'FT' )) 
DROP FUNCTION [dbo].[IsValidCharacters]
GO

CREATE FUNCTION [dbo].[IsValidCharacters](@SData varchar(8000))
RETURNS INT
AS

BEGIN

    /*
        Author : AKUMA
        Edit : ZirveSunucum Information
    */

    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)
    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
GO
 

Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.