[SQLite] No comprueba la existencia de la cuenta
#1

Buenas, estoy estaba retomando un antiguo proyecto y le estuve solucionando mucho bugs, pero el del registro (que podrнa ser el mбs fбcil de solucionar) me ha estancado, quisiera recurrir a ustedes en busca de ayuda, se agradece de antemano.
PHP код:
forward MostrarLogin(playerid); public MostrarLogin(playerid){
    if(
NameInBlackList(playerid))
    {
        
SendClientMessage(playerid,-1,"Tu nombre se encuentra en la lista negra!");
        
Kick(playerid);
    }
    if(
AccountBanned(playerid))
    {
        
SendClientMessage(playeridCOLOR_ROJO"Tu cuenta se encuentrб baneada en el servidor.");
        
SendClientMessage(playeridCOLOR_ROJO"Si crees que es un error, saca una foto de este mensaje y publicala en nuestro grupo de ********.");
    }
    if(
CheckAccountExist(playerid)) {
        
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"Cuenta registrada""Introduce tu clave para ingresar a jugar""Conectar""Salir");
    }
    else {
        
ShowPlayerDialog(playeridDIALOG_REGISTERDIALOG_STYLE_INPUT"Cuenta disponible""Introduce una clave para registrar una nueva cuenta""Registrar""Salir");
    }
    return 
1;

PHP код:
stock CheckAccountExist(playerid)
{
    static 
query[60], DBResult:db_result;
    
format(querysizeof query"SELECT * FROM `jugadores` WHERE `nombre` = '%q'",NombreJugador(playerid));
    
db_result db_query(servidor,query);
    if(
db_num_rows(db_result) >= 1)
    {
        
db_free_result(db_result);
        return 
true;
    }
    return 
false;

Reply
#2

Eh no deberнa ser WHERE nombre = '%e'", ? o eso es otra herramienta de registro?

Perdуn el sueсo, no vi que es sqlite disculpa pensй que era mysql
Reply
#3

PHP код:
stock CheckAccountExist(playerid

    new 
query[90], DBResult:db_result
    
    
format(querysizeof query"SELECT * FROM `jugadores` WHERE `nombre` = '%q' LIMIT 1"NombreJugador(playerid)); 
    
db_result db_query(servidor,query); 

    
db_free_result(db_result); 
    return 
db_num_rows(db_result); 

Reply
#4

Quote:
Originally Posted by wharlos
Посмотреть сообщение
Eh no deberнa ser WHERE nombre = '%e'", ? o eso es otra herramienta de registro?

Perdуn el sueсo, no vi que es sqlite disculpa pensй que era mysql
Eso se usa en el plugin, para evitar inyecciones MySQL mediante cadenas.

Quote:
Originally Posted by PT
Посмотреть сообщение
PHP код:
stock CheckAccountExist(playerid

    new 
query[90], DBResult:db_result
    
    
format(querysizeof query"SELECT * FROM `jugadores` WHERE `nombre` = '%q' LIMIT 1"NombreJugador(playerid)); 
    
db_result db_query(servidor,query); 
    
db_free_result(db_result); 
    return 
db_num_rows(db_result); 


їA ti te fascina comentar por comentar, no?

Tienes multiples problemas uno de ellos es que ese especificador no existe en SQLite, por lo menos nunca lo e usado.

pawn Код:
stock CheckAccountExist(playerid)
{
    new query[90], DBResult:db_result, filas;
   
    format(query, sizeof query, "SELECT * FROM `jugadores` WHERE `nombre` = '%s' LIMIT 1", NombreJugador(playerid));
   
    db_result = db_query(servidor, query);
   
    filas = db_num_rows(db_result);
   
    db_free_result(db_result);
    return filas;
}
Reply
#5

Quote:
Originally Posted by Parka
Посмотреть сообщение
Eso se usa en el plugin, para evitar inyecciones MySQL mediante cadenas.



їA ti te fascina comentar por comentar, no?

Tienes multiples problemas uno de ellos es que ese especificador no existe en SQLite, por lo menos nunca lo e usado.

pawn Код:
stock CheckAccountExist(playerid)
{
    new query[90], DBResult:db_result, filas;
   
    format(query, sizeof query, "SELECT * FROM `jugadores` WHERE `nombre` = '%s' LIMIT 1", NombreJugador(playerid));
   
    db_result = db_query(servidor, query);
   
    filas = db_num_rows(db_result);
   
    db_free_result(db_result);
    return filas;
}
Espectacular. Ya quedу, muchнsimas gracias!
Reply
#6

Quote:
Originally Posted by Parka
Посмотреть сообщение
Eso se usa en el plugin, para evitar inyecciones MySQL mediante cadenas.



їA ti te fascina comentar por comentar, no?

Tienes multiples problemas uno de ellos es que ese especificador no existe en SQLite, por lo menos nunca lo e usado.

pawn Код:
stock CheckAccountExist(playerid)
{
    new query[90], DBResult:db_result, filas;
   
    format(query, sizeof query, "SELECT * FROM `jugadores` WHERE `nombre` = '%s' LIMIT 1", NombreJugador(playerid));
   
    db_result = db_query(servidor, query);
   
    filas = db_num_rows(db_result);
   
    db_free_result(db_result);
    return filas;
}
%q йs usado en SQLite si...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)