Page 1 of 1

SQL ir simboliai

Posted: 2013 Feb 22 21:06
by xedga

Code: Select all

    replace_all( g_szName[ id ], charsmax( g_szName[ ] ), "'", "*" )    replace_all( g_szName[ id ], charsmax( g_szName[ ] ), "^"", "*" )    replace_all( g_szName[ id ], charsmax( g_szName[ ] ), "`", "*" )    replace_all( g_szName[ id ], charsmax( g_szName[ ] ), "´", "*" ) 
Čia turbūt lengviausias būdas išvengti bugu saugant žaidėjų nickus mysql.
Ar yra būdas saugoti žaidėjų nick nekeičiant simbolių? Ir ar tai labai sudėtinga padaryti?

Re: SQL ir simboliai

Posted: 2013 Feb 22 21:18
by aaarnas
' => \'
\ => \\
ir t.t.

Yra šiaip funkcija SQL_QuoteString, bet man ji nepatinka, nes jungiasi prie duombazės, kad apdoroti string. Papildomi resursai ir reikia Sql_connect tada naudoti.

Re: SQL ir simboliai

Posted: 2013 Feb 22 21:29
by hleV

Code: Select all

GetSecureName(const name[]){    new secureName[64];    copy(secureName, charsmax(secureName), name);        replace_all(secureName, charsmax(secureName), "\", "\\");    replace_all(secureName, charsmax(secureName), "'", "\'");    replace_all(secureName, charsmax(secureName), "`", "\`");        return secureName;}
Svarbu pirma escape'int "\". Jei ne vardą escape'ini, tai dar reiktų dvigubų kabučių ("^"" → "\^"").

Re: SQL ir simboliai

Posted: 2013 Feb 22 22:29
by Tetusis
pagal mane ir
^" ^"
uztenka?

Re: SQL ir simboliai

Posted: 2013 Feb 22 23:49
by hleV
Nu tai taip. Aš pavaizdavau kaip kode tai atrodytų (string).

Re: SQL ir simboliai

Posted: 2013 Feb 23 00:36
by Tetusis
hleV wrote:Nu tai taip. Aš pavaizdavau kaip kode tai atrodytų (string).
if you say so, bus istestuota ateityje (:

Re: SQL ir simboliai

Posted: 2013 Feb 23 22:43
by xedga
Ačiū už pagalba, atrodo ok viskas ;)