Sistema de cuentas MYSQL/SQLITE
#1
Bueno no hay mucho que decir es un simple sistema de cuentas.



Necesitan activar el MODULO MySQL o SQLITE



Código:
Changelog:

    1.0.0:
        -Posteo del plugin.
        
    1.0.1:
        -Opitmizacion en el chequeo de una celda de un array.
        
    1.0.2:
        -Proteccion SQL Injection.
        
    1.0.3:
        -SQL_PrepareQuery --> SQL_ThreadQuery.
        -Optimizacion de tabla MYSQL/SQLITE.
        -Fix en la conexión SQLite.
        
    1.0.4:
        -Proteccion: No se permiten ingresar caracteres especiales.
        -Optimización: Se borraron los condicionales de chequeo de " " y TABLE.
          
    1.0.5
        -Bugfix: Con SQL_ThreadQuery no se usa SQL_Connect
    
    1.0.6
        -Varios fixes de errores generales.
        
    1.0.7
        -Revisado & fixeado por r0ma
        
    1.0.8
        -Fix bug que entran al juego sin loguearse arreglado
        
    1.0.9
        -Fix bug: Ham_Spawn deberia estar en post
        -Fix de variable no definida
        -Update ZP version
    
    1.1.0
        -Fix bug: Se bugean los menu despues de loguear.
        -Fix bug: La parte de md5 estaba mal echa.
        -Removido el Spawn ya no sirve.
        -Fix errores
    1.1.1
        -Removido contain_special_characters ( ahora encripta el user y la pw )
        -Modificaciones, fix
    1.1.2
        -Removido el hook de "menuselect"
        -Ahora usa menos querys
        -Modificada la variable "g_estado"
    
    Creditos:
        shinoda
        Kiske
        Javivi
        ILUSION
        fearAR
        rak
        Neeeeeeeeeel.-


Archivos adjuntos
.sma   Descargar AMXX / cuentas_mysql_sqlite_111.sma (Tamaño: 11.52 KB / Descargas: 1,361)
.sq3   cuentas.sq3 (Tamaño: 160 KB / Descargas: 1,467)
.sma   Descargar AMXX / cuentas_mysql_sqlite_112.sma (Tamaño: 10.42 KB / Descargas: 2,344)
Panda Nuestro
Sistema de Cuentas
Discord: fran_romaniello#7612
Responder
#2
una cosa, con el nuevo AMXModX también tarda el ThreadQuery o se arregló??



nunca lo probé, si alguien puede decirme
(17/04/2015, 03:36 PM)Neeeeeeeeeel.- escribió: No se va a volver a conectar a internet en toda su puta vida... nadie sube porno a mi foro y vive para contarlo.
Responder
#3
(09/10/2013, 06:21 AM)RauliTop escribió: una cosa, con el nuevo AMXModX también tarda el ThreadQuery o se arregló??



nunca lo probé, si alguien puede decirme



ThreadQuery es para usar cuando tenes una DB externa para evitar que se freeze el server
Hi Milashkasiya CrabCrab

Soy un #Panda.. Soy solo un tipo que parece #común pero soy todo lo contrario; alguien #atípico en esta sociedad actual

[Imagen: xl0jvd-5.png]
Link
Responder
#4
Te faltaría agregar la base de datos del sqlite.

Ni te molestes en enviarme un mensaje privado para pedirme ayuda porque NO lo voy a contestar.
Gracias por su atención.
Responder
#5
(09/10/2013, 06:53 AM)[R]ak escribió:
(09/10/2013, 06:21 AM)RauliTop escribió: una cosa, con el nuevo AMXModX también tarda el ThreadQuery o se arregló??



nunca lo probé, si alguien puede decirme



ThreadQuery es para usar cuando tenes una DB externa para evitar que se freeze el server

ya lo sé.



lo que estoy diciendo es si sigue tardando bastante entre consulta y consulta o si ya arreglaron eso.
(17/04/2015, 03:36 PM)Neeeeeeeeeel.- escribió: No se va a volver a conectar a internet en toda su puta vida... nadie sube porno a mi foro y vive para contarlo.
Responder
#6
(09/10/2013, 09:16 AM)RauliTop escribió:
(09/10/2013, 06:53 AM)[R]ak escribió:
(09/10/2013, 06:21 AM)RauliTop escribió: una cosa, con el nuevo AMXModX también tarda el ThreadQuery o se arregló??



nunca lo probé, si alguien puede decirme



ThreadQuery es para usar cuando tenes una DB externa para evitar que se freeze el server

ya lo sé.



lo que estoy diciendo es si sigue tardando bastante entre consulta y consulta o si ya arreglaron eso.

No se traba, esa es la idea. "Thread", en español "hilo", es un subproceso... cuando vos por ejemplo hacés un loop infinito en el CS se freezea el server porque ese loop lo ejecuta el mismo proceso que corre las funciones del juego. Si vos ese loop lo ejecutaras desde un thread (subproceso) el juego no se vería afectado, claro que el AMXX no tiene soporte para threads, pero desde c++ el ThreadingQuery crea un subproceso para generar la consulta y luego envía la respuesta al handler... entonces no hay forma de que se cuelgue el juego.
Responder
#7
Bueno, le modifiqué el autor. De mi plugin original solo quedó la base así que en realidad lo hizo r0ma.



Después subí la db sqlite.
Responder
#8
Buenas, perdón por el otro post. Sinceramente había pensado postearlo acá primero.



Utilizo este sistema de cuentas, por sqlite. Lo que yo quiero hacer es poder crear varias tablas para poder guardar y cargar mas datos. Creo que mi problema esta en el case CARGAR_DATOS, lo demás (supongo) que lo puedo hacer.



Les agradecería si al menos me dicen los pasos para poder realizar esto, ya que no me gusta que me den el code hecho y veo que a muchos también no les gusta dar todo en mano.



Espero que se haya entendido, gracias.



Aclaro por las dudas. No tengo nada hecho con respecto a lo que pido, porque antes que confundirme quise sacarme la duda de como hacerlo.



Saludos.
Responder
#9
El sistema usa una constante global para guardar la tabla, primero que nada tendrías que eliminarla ya que no te sirve.



Segundo, cuántas tablas querés armar y que datos tendrá cada una?
Responder
#10
Emm, supongo que no mas de 5.



Mi idea es guardar los datos de las cuentas en la primera tabla(nombre, pj, password, etc), y en las demás guardar valores como los niveles o cosas así(todos esos datos son del mismo player).
Responder
#11
(16/10/2013, 09:36 PM)zErk escribió: Emm, supongo que no mas de 5.



Mi idea es guardar los datos de las cuentas en la primera tabla(nombre, pj, password, etc), y en las demás guardar valores como los niveles o cosas así(todos esos datos son del mismo player).

En ese caso deberías usar solo 2 tablas.



Una para usuario y password y otra para todos los datos de los jugadores.

En este sistema que solo admite un personaje por cuenta, realmente es al pedo tener dos tablas.



Ahora si vos querés agregarle soporte para mas de un personaje, ahí puede ser mejor tener 2 tablas.



La primera sería algo así:

cuentas:

* id: int auto_increment

* usuario: str

* password: str

* personajes: str



La segunda tabla debería ser:

personajes:

* id: int auto_increment

* nombre: str

* nivel: int

* [...]



Ahora, en la columna personajes de la tabla cuentas lo que tenés que hacer es un string que tenga los id de los personajes separados por espacios

Ejemplo: "4 5 6 7 1"

Entonces, cuando se loguea separás cada id y lo metés todo en un array, luego un loop y con el id que te da el loop hacés la consulta a cada personaje para obtener el nombre y mostrarlo en un menú. De esa forma podés crear un sistema con infinita cantidad de personajes por cuenta.
Responder
#12
Código PHP:
#include < amxmodx >
#include < sqlx >

#define PLUGIN "Sistema de cuentas MySQL/SQLite"
#define VERSION "1.1.1"
#define AUTHOR "r0ma"

/* 

Changelog:

    1.0.0: 
        -Posteo del plugin.
        
    1.0.1: 
        -Opitmizacion en el chequeo de una celda de un array.
        
    1.0.2: 
        -Proteccion SQL Injection.
        
    1.0.3:
        -SQL_PrepareQuery --> SQL_ThreadQuery.
        -Optimizacion de tabla MYSQL/SQLITE.
        -Fix en la conexión SQLite.
        
    1.0.4:
        -Proteccion: No se permiten ingresar caracteres especiales.
        -Optimización: Se borraron los condicionales de chequeo de " " y TABLE.
          
    1.0.5
        -Bugfix: Con SQL_ThreadQuery no se usa SQL_Connect
    
    1.0.6
        -Varios fixes de errores generales.
        
    1.0.7
        -Revisado & fixeado por r0ma
        
    1.0.8
        -Fix bug que entran al juego sin loguearse arreglado
        
    1.0.9
        -Fix bug: Ham_Spawn deberia estar en post
        -Fix de variable no definida
        -Update ZP version
    
    
    Creditos:
        shinoda
        Kiske
        Javivi
        ILUSION
        fearAR
        rak
        Neeeeeeeeeel.-
*/

#define MYSQL

#if defined MYSQL

#define MYSQL_HOST "127.0.0.1"
#define MYSQL_USER "root"
#define MYSQL_PASS ""
#define MYSQL_DATEBASE "cuentas"

#else

#define SQLITE_DATEBASE "cuentas"

#endif

new const szTables[ ][ 12 ] = { "cuentas""datos" };
new const 
szPrefix[ ] = "[Cuentas]";

new 
Handle:g_hTuple;
new 
g_maxplayers;

new 
g_id33 ];
new 
g_estado33 ];
new 
g_usuario33 ][ 34 ];
new 
g_password33 ][ 34 ];
new 
g_playername33 ][ 33 ];

new 
g_experiencia33 ];

enum {
    
OFFLINE,
    
LOGUEADO
};

enum
{
    
REGISTRAR_USUARIO,
    
REGISTRAR_PASSWORD,
    
LOGUEAR_USUARIO,
    
LOGUEAR_PASSWORD,
    
CARGAR_DATOS,
    
GUARDAR_DATOS
};

enum {
    
TABLA_CUENTAS,
    
TABLA_DATOS
};

/* consulta MYSQL:
CREATE TABLE cuentas 
(
    id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    Usuario varchar(34) NOT NULL UNIQUE KEY, 
    Password varchar(34) NOT NULL, 
    Pj varchar(32) NOT NULL UNIQUE KEY,
)
*/

/* consulta SQLite:
CREATE TABLE "cuentas" 
(
    "id" INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL, 
    "Usuario" VARCHAR NOT NULL  UNIQUE, 
    "Password" VARCHAR NOT NULL, 
    "Pj" VARCHAR NOT NULL  UNIQUE
)
*/


public plugin_init( )  {
    
register_pluginPLUGINVERSIONAUTHOR );

    
register_clcmd"CREAR_USUARIO""reg_usuario" );
    
register_clcmd"CREAR_PASSWORD""reg_password" );
    
register_clcmd"LOGUEAR_USUARIO""log_usuario" );
    
register_clcmd"LOGUEAR_PASSWORD""log_password" );
    
    
register_clcmd"chooseteam""clcmd_changeteam" );
    
register_clcmd"jointeam""clcmd_changeteam" );
    
register_clcmd"menuselect""menu_select" );
    
    
register_messageget_user_msgid"ShowMenu" ), "message_ShowMenu" );
    
register_messageget_user_msgid"VGUIMenu" ), "message_VGUIMenu" );
    
    
register_event"HLTV""event_round_start""a""1=0""2=0" );
    
    
g_maxplayers get_maxplayers( );
    
    
MySQLx_Init( );
}

public 
message_VGUIMenuiMsgidiDestid ) {
    if( 
g_estadoid ] == LOGUEADO ||  get_msg_arg_int) != 
        return 
PLUGIN_CONTINUE;
    
    
show_login_menuid );
    return 
PLUGIN_HANDLED;
}

public 
message_ShowMenuiMsgidiDestid ) {
    if( 
g_estadoid ] == LOGUEADO )
        return 
PLUGIN_CONTINUE;
    
    static 
sMenuCode33 ];
    
get_msg_arg_string4sMenuCodecharsmaxsMenuCode ) );
    
    if( 
containisMenuCode"Team_Select" ) != -) {
        
show_login_menuid );
        return 
PLUGIN_HANDLED;
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
clcmd_changeteamid ) {
    if( 
g_estadoid ] != LOGUEADO ) {
        
show_login_menuid );
        
        return 
PLUGIN_HANDLED;
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
show_login_menuid ) {
    new 
menu menu_create"Menu de cuentas""login_menu" );
    
    
menu_additemmenu"Crear cuenta""1" );
    
menu_additemmenu"Ingresar""2" );
    
    
menu_setpropmenuMPROP_EXITMEXIT_NEVER );
    
    
menu_displayidmenu );
    
menu_destroymenu );
}

public 
login_menuidmenuitem ) {
}

public 
menu_selectid ) {
    if( 
g_estadoid ] == OFFLINE ) {
        new 
args];
        
        
read_argsargscharsmaxargs ) );
        
        if( 
str_to_numargs ) == )
            
client_cmdid"messagemode CREAR_USUARIO" );
        else
            
client_cmdid"messagemode LOGUEAR_USUARIO" );
        
        return 
PLUGIN_HANDLED;
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
reg_usuarioid ) {
    
read_argsg_usuarioid ], charsmaxg_usuario[ ] ) );
    
remove_quotesg_usuarioid ] );
    
trimg_usuarioid ] );
    
    
md5g_usuarioid ], g_usuarioid ] );
    
    new 
szQuery128 ], iData];
    
    
iData] = id;
    
iData] = REGISTRAR_USUARIO;
    
    
formatexszQuerycharsmaxszQuery ), "SELECT * FROM %s WHERE Usuario=^"%s^""szTablesTABLA_CUENTAS ], g_usuarioid ] );
    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);
    
    return 
PLUGIN_HANDLED;
}

public 
reg_passwordid ) {
    
read_argsg_passwordid ], charsmaxg_password[ ] ) );
    
remove_quotesg_passwordid ] );
    
trimg_passwordid ] );
    
md5g_passwordid ], g_passwordid ] );
    
    new 
szQuery256 ], iData];
    
    
iData] = id;
    
iData] = REGISTRAR_PASSWORD;
    
    
get_user_nameidg_playernameid ], charsmaxg_playername[ ] ) );
    
    
#if defined MYSQL
    
formatexszQuerycharsmaxszQuery ), "INSERT INTO %s (Usuario, Password, Pj) VALUES (^"%s^", ^"%s^", ^"%s^"); INSERT INTO %s ( id ) VALUES ( LAST_INSERT_ID( ) )"szTablesTABLA_CUENTAS ], g_usuarioid ], g_passwordid ], g_playernameid ], szTablesTABLA_DATOS ] );
    
#else
    
formatexszQuerycharsmaxszQuery ), "INSERT INTO %s (Usuario, Password, Pj) VALUES (^"%s^", ^"%s^", ^"%s^"); INSERT INTO %s ( id ) VALUES ( last_insert_rowid( ) )"szTablesTABLA_CUENTAS ], g_usuarioid ], g_passwordid ], g_playernameid ], szTablesTABLA_DATOS ] );
    
#endif
    
SQL_ThreadQuery(g_hTuple"DataHandler"szQueryiData2);
    
    return 
PLUGIN_HANDLED;
}

public 
log_usuarioid ) {
    
read_argsg_usuarioid ], charsmaxg_usuario[ ] ) );
    
remove_quotesg_usuarioid ] );
    
trimg_usuarioid ] );
    
md5g_usuarioid ], g_usuarioid ] );
    
    new 
szQuery128 ], iData];
    
    
iData] = id;
    
iData] = LOGUEAR_USUARIO;
    
    
formatexszQuerycharsmaxszQuery ), "SELECT * FROM %s WHERE Usuario=^"%s^""szTablesTABLA_CUENTAS ], g_usuarioid ] );
    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);
    
    return 
PLUGIN_HANDLED;
}

public 
log_passwordid ) {
    
read_argsg_passwordid ], charsmaxg_password[ ] ) );
    
remove_quotesg_passwordid ] );
    
trimg_passwordid ] );
    
md5g_passwordid ], g_passwordid ] );
    
    
    new 
szQuery128 ], iData];
    
    
iData] = id;
    
iData] = LOGUEAR_PASSWORD;
    
    
formatexszQuerycharsmaxszQuery ), "SELECT * FROM %s WHERE Usuario=^"%s^" AND Password=^"%s^""szTablesTABLA_CUENTAS ], g_usuarioid ], g_passwordid ] );
    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);
    
    return 
PLUGIN_HANDLED;
}

public 
cargar_datosid ) {
    new 
szQuery256 ], iData];
    
    
iData] = id;
    
iData] = CARGAR_DATOS;
    
    
formatexszQuerycharsmaxszQuery ), "SELECT %s.id, %s.Pj, %s.Experiencia FROM %s LEFT JOIN %s ON %s.id = %s.id WHERE %s.Usuario = ^"%s^""
    
szTablesTABLA_CUENTAS ], szTablesTABLA_CUENTAS ], szTablesTABLA_DATOS ], szTablesTABLA_CUENTAS ], szTablesTABLA_DATOS ], szTablesTABLA_CUENTAS ], szTablesTABLA_DATOS ], szTablesTABLA_CUENTAS ], g_usuarioid ] );
    
    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);
    
    
/* Query:
        SELECT * FROM cuentas.id, cuentas.PJ, datos.Experiencia FROM cuentas LEFT JOIN datos ON cuentas.id = datos.id WHERE cuentas.Usuario = "user"
    */
}

public 
guardar_datosid ) {
    new 
szQuery128 ], iData];
    
iData] = id;
    
iData] = GUARDAR_DATOS;
    
    
formatexszQuerycharsmaxszQuery ), "UPDATE %s SET Experiencia='%d' WHERE id='%d'"szTablesTABLA_DATOS ], g_experienciaid ], g_idid ] );
    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);
}

public 
DataHandlerfailstateHandle:Queryerror[ ], error2data[ ], datasizeFloat:time ) {
    static 
id;
    
id data];
    
    if( !
is_user_connectedid ) )
        return;

    switch( 
failstate ) {
        case 
TQUERY_CONNECT_FAILED: {
            
log_to_file"SQL_LOG_TQ.txt""Error en la conexion al MySQL [%i]: %s"error2error );
            return;
        }
        case 
TQUERY_QUERY_FAILED:
            
log_to_file"SQL_LOG_TQ.txt""Error en la consulta al MySQL [%i]: %s"error2error );
    }
    
    switch( 
data] ) {
        case 
REGISTRAR_USUARIO: {
            if( !
SQL_NumResultsQuery ) )
                
client_cmdid"messagemode CREAR_PASSWORD" );
            else {
                
client_printidprint_chat"%s El usuario ya existe."szPrefix );
                
client_cmdid"spk buttons/button10.wav" );
                
                
show_login_menuid );
            }
        }
        
        case 
REGISTRAR_PASSWORD: {
            if( 
failstate TQUERY_SUCCESS ) {
                if( 
containierror"Usuario" ) != -)
                    
client_printidprint_chat"%s El usuario ya existe."szPrefix );

                else if( 
containierror"Pj" ) != -)
                    
client_printidprint_chat"%s El nombre de personaje esta en uso."szPrefix );
                else
                    
client_printidprint_chat"%s Error al crear la cuenta. Intente nuevamente."szPrefix );
                
                
client_cmdid"spk buttons/button10.wav" );
                
                
show_login_menuid );
            }
            else {
                
client_printidprint_chat"%s Tu cuenta ha sido creada correctamente."szPrefix );
                
cargar_datosid );
            }
            
        }
        case 
LOGUEAR_USUARIO: {
            if( 
SQL_NumResultsQuery ) )
                
client_cmdid"messagemode LOGUEAR_PASSWORD" );
            else {
                
client_printidprint_chat"%s El usuario no existe."szPrefix );
                
client_cmdid"spk buttons/button10.wav" );
                
                
show_login_menuid );
            }
        }
        case 
LOGUEAR_PASSWORD: {
            if( 
SQL_NumResultsQuery ) ) {
                
cargar_datosid );
            }
            else {
                
client_printidprint_chat"%s Contrasenia incorrecta."szPrefix );
                
client_cmdid"spk buttons/button10.wav" );
                
                
show_login_menuid );
            }
        }
        case 
CARGAR_DATOS: {
            if( 
SQL_NumResultsQuery ) ) {
                
g_idid ] = SQL_ReadResultQuery);
                
SQL_ReadResultQuery1g_playernameid ], charsmaxg_playername[ ] ) );
                
                
g_experienciaid ] = SQL_ReadResultQuery);
                
func_login_successid );
            }
            else {
                
client_printidprint_chat"%s Error al cargar los datos, intente nuevamente."szPrefix );
                
show_login_menuid );
            }
        }
        case 
GUARDAR_DATOS: {
            if( 
failstate TQUERY_SUCCESS )
                
console_printid"%s Error en el guardado de datos."szPrefix );
            
            else
                
console_printid"%s Datos guardados."szPrefix );
        }
    }
}

public 
func_login_successid ) {
    
/*new msg_block = get_msg_block( id );
    
    set_msg_block( id, BLOCK_SET );
    */
    
engclient_cmdid"jointeam""5" );
    
engclient_cmdid"joinclass""5" );
    
    
//set_msg_block( id, msg_block );
    
    
g_estadoid ] = LOGUEADO;
    
    
set_user_infoid"name"g_playernameid ] );
}

public 
event_round_start( ) {
    for( new 
1<= g_maxplayersi++ ) {
        if( 
g_estado] == LOGUEADO && is_user_connected) )
            
guardar_datos);
    }
}        

public 
client_infochangedid ) {
    if( 
g_estadoid ] == OFFLINE )
        return 
PLUGIN_CONTINUE;
    
    static 
name33 ];
    
get_user_infoid"name"namecharsmaxname ) );
    
    if( !
equalg_playernameid ], name ) ) {
        
set_user_infoid"name"g_playernameid ] );
        
        return 
PLUGIN_HANDLED;
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
client_putinserverid ) {
    
show_login_menuid );
}

public 
client_disconnect(  id ) {
    
    if( 
g_estadoid ] == LOGUEADO ) {
        
guardar_datosid );
        
        
g_estadoid ] = OFFLINE;
    }
}

#if defined MYSQL
public MySQLx_Init( )
{
    
g_hTuple SQL_MakeDbTupleMYSQL_HOSTMYSQL_USERMYSQL_PASSMYSQL_DATEBASE );
    
    if( !
g_hTuple 
    {
        
log_to_file"SQL_ERROR.txt""No se pudo conectar con la base de datos." );
        return 
pause"a" );
    }
    
    return 
PLUGIN_CONTINUE;
}
#else

// Gracias ILUSION por fixear la conexión
public MySQLx_Init( )
{
    new 
get_type12 ];
    
    
SQL_SetAffinity"sqlite" );
    
    
SQL_GetAffinityget_typesizeof get_type );

    if( !
equaliget_type"sqlite" ) )
    {
        
log_to_file"SQLITE_ERROR.txt""Error de conexion" );
        return 
pause"a" );
    }
    
    
g_hTuple SQL_MakeDbTuple""""""SQLITE_DATEBASE );
    
    return 
PLUGIN_CONTINUE
}
#endif

public plugin_end( )
    
SQL_FreeHandleg_hTuple ); 

Asi podria ser para obtener datos de 2 tablas si necesitas mas tablas creo que tendrias que hacer varias consultas.
Panda Nuestro
Sistema de Cuentas
Discord: fran_romaniello#7612
Responder
#13
Gracias.



Con respecto a las tablas, me confundí y no entendí lo de %s.id y todo eso. Sería mucho pedirte al menos un dato de la tabla 'cuentas' para orientarme un poquito? Porque intente crear la tabla como lo indica la consulta entre /* - */ y no podía entrar.



Saludos.
Responder
#14
%s es para obtener un string en este caso obtiene el nombre de la tabla
Responder
#15
La tabla cuentas le borre la columna experiencia y la nueva tabla "datos" es una simple tabla

Código PHP:
/* consulta MYSQL:
CREATE TABLE datos
(
    id INT(10) UNSIGNED NOT NULL UNIQUE KEY,
    Experiencia INT(10) NOT NULL DEFAULT '0'
)
*/

/* consulta SQLite:
CREATE TABLE "datos" 
(
    "id" INTEGER UNIQUE NOT NULL, 
    "Experiencia" INTEGER NOT NULL DEFAULT '0'
)
*/ 

Guiate de eso...
Panda Nuestro
Sistema de Cuentas
Discord: fran_romaniello#7612
Responder
#16
Última cosa que pregunto.



Al registrarme, lo hace perfectamente(se guardan los datos en 'cuentas')pero no me manda a ningun team, sino que manda el print:



[Cuentas] Error al crear la cuenta. Intente nuevamente



Seguido de eso, intento logear y lo hace perfectamente(aclaro por si alguien después llega a usar el code que hasta un poquito mas arriba).



Hay cosas que no se realmente que hacen, como por ejemplo 'LAST_INSERT_ID'. No me guarda la exp de la tabla 'datos', y en el log dice esto:



Error en la consulta al MySQL [1]: no such function: LAST_INSERT_ID



Saludos.



PD: Como aclare mas arriba, es lo ultimo que pregunto. Si se puede aclarar el problema, mejor. De lo contrario no hay problema, intento solucionarlo yo(aunque ya lo intente y no pude).
Responder
#17
Hay modifique el plugin probalo.
Panda Nuestro
Sistema de Cuentas
Discord: fran_romaniello#7612
Responder
#18
he tenido un problema a ver si me podeis ayudar, he creado un user sin problema, todo correcto pero al cambiar de equipo con el consiguiente kill el servidor me a cambiado de nombre a "0" y ahora cada vez q uso esa cuenta y me logueo me cambia el nick a "0", es la primera cuenta que he creado he vuelto a crear mas y he echo lo mismo y no pasa, la verdad es que es curioso.

Bueno he borrado la bd la he vuelto a crear con el primer personaje creado he vuelto a hacer lo mismo y ahora es mas curioso todavia al salir y al volver y loguearme me pone otra vez el "0" xD



Por cierto como prodria hacer para que en la bd la columna usuario se viera con el nombre de registro no con un numero?
Responder
#19
Estas usando el plugin del post o el que usa 2 tablas ?

Modificaste algo del plugin ?
Panda Nuestro
Sistema de Cuentas
Discord: fran_romaniello#7612
Responder
#20
utilizo el plugin del primer post lo unico que he echo a sido



Código PHP:
//#define SQLITE_DATEBASE "cuentas" 





Y lo de ver el nombre del id en la coluimna en vez de numeros?
Responder
#21
(22/10/2013, 10:52 AM)misk0s escribió: utilizo el plugin del primer post lo unico que he echo a sido



Código PHP:
//#define SQLITE_DATEBASE "cuentas" 





Y lo de ver el nombre del id en la coluimna en vez de numeros?

Si comentaste eso y estás usando el sistema en modo sqlite no te va a funcionar.
Responder
#22
utilizo mysql x eso comente ese define
Responder
#23
(22/10/2013, 11:20 AM)misk0s escribió: utilizo mysql x eso comente ese define



En la base de datos queda bien guardado el nombre?
Responder
#24
no les asigna un numero, todos los valores de la bd los guarda como numeros, la id es un cero usuario un 7 y el password otro cero. en otra cuenta la id tb es cero asi como el usuario en cambio el password es 149, no se es raro la bd tube que crearla con sus respectivas columnas igual es que hice algo mal pero en el log que crea el plugin no aparece nada extraño.[/php]
Responder
#25
Entra a la base de datos por phpmyadmin, entra a la tabla de cuentas, apertá en la pestaña que dice "estructura" y pasame una foto de pantalla.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)