Mensajes: 499
Temas: 55
Registro en: Nov 2013
Reputación:
10
Hola queria saber como se hace para que puedan cambiar de password a traves de una opcion al sistema de cuentas de r0ma. Lo de la opcion y todo eso es facil pero lo que quiero saber es como hacer para que se pueda cambiar la contraseña.
(08/10/2014, 10:50 PM)meTaLiCroSS escribió: Siento que en este foro viven en una competencia, en vez de preocuparse del contenido se preocupan de la gente, nisiquiera de eso, de sus actitudes por muy buenas o malas que sean, que clase de convivencia se puede llegar con aquello? Siempre la misma mierda en todos lados, progresen de una vez
**************************************************
Como hacer una Base de Datos para Sistema de Cuentas by r0ma
Mensajes: 2,176
Temas: 99
Registro en: Dec 2013
Reputación:
42
14/06/2014, 09:41 PM
(Última modificación: 14/06/2014, 09:41 PM por CSAxel.)
Tenes que crear un messagemode
Código PHP: register_clcmd("CAMBIAR_PASSWORD", "MM_Cambiar")
Ahora creamos la función:
Código PHP: public MM_Cambiar(id) { static iPass[32] read_args(iPass, charsmax(iPass)) remove_quotes(iPass) trim(iPass)
if (equal(g_password[id], iPass)) return; // Esto es cuando la contraseña es la misma que la nueva contraseña g_password[id] = iPass client_print(id, print_center, "Cambiaste tu contraseña correctamente") }
Por último, cuando queres usar este comando pones
Código PHP: client_cmd(id, "messagemode CAMBIAR_PASSWORD")
Con eso te tiene que funcionar
Suerte
Free agent - Vendo plugins, mods o apps del foro IPB (Invision community)
Contactarme vía Discord >>> AtselTV#8202
Mensajes: 2,459
Temas: 15
Registro en: Feb 2014
Reputación:
28
Axel lee bien
Cita:Lo de la opcion y todo eso es facil pero lo que quiero saber es como hacer para que se pueda cambiar la contraseña.
Esta pidiendo como debe ser la consulta para la db; simplemente fíjate como hace el guardar r0ma y guarda la nueva contraseña en la db
Enviado desde android
[TUT] Carnage
Fight
"El limite de los backdoors de gente q sabe programar como nostros lo impone nuestra maldad interior y creeme q soy muy malo en el interior"
Anónimo
Mensajes: 2,571
Temas: 40
Registro en: Feb 2014
Reputación:
72
Código PHP: formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET Password=^"%s^" WHERE Usuario=^"%s^"", szTable, szNewPassword, g_usuario[ id ]);
Mensajes: 2,176
Temas: 99
Registro en: Dec 2013
Reputación:
42
(14/06/2014, 10:08 PM)mongito100 escribió: Axel lee bien
Cita:Lo de la opcion y todo eso es facil pero lo que quiero saber es como hacer para que se pueda cambiar la contraseña.
Esta pidiendo como debe ser la consulta para la db; simplemente fíjate como hace el guardar r0ma y guarda la nueva contraseña en la db
Enviado desde android Ahh perdón.. Estoy re idiota últimamente :C
Aparte de lo que yo te mandé. Ahí es donde seteas la consulta, pero no hace falta también actualizar el Usuario, con la contraseña sola basta... Supongo
Free agent - Vendo plugins, mods o apps del foro IPB (Invision community)
Contactarme vía Discord >>> AtselTV#8202
Mensajes: 499
Temas: 55
Registro en: Nov 2013
Reputación:
10
Pero donde iria esto
Código PHP: formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET Password=^"%s^" WHERE Usuario=^"%s^"", szTable, szNewPassword, g_usuario[ id ]);
(08/10/2014, 10:50 PM)meTaLiCroSS escribió: Siento que en este foro viven en una competencia, en vez de preocuparse del contenido se preocupan de la gente, nisiquiera de eso, de sus actitudes por muy buenas o malas que sean, que clase de convivencia se puede llegar con aquello? Siempre la misma mierda en todos lados, progresen de una vez
**************************************************
Como hacer una Base de Datos para Sistema de Cuentas by r0ma
Mensajes: 642
Temas: 25
Registro en: Feb 2014
Reputación:
17
Código PHP: #include <amxmodx> #include <amxmisc> #include <sqlx>
#define QUERY_THREAD
public plugin_init() { register_plugin("ASD", "0.1", "Kane") register_clcmd("CAMBIAR_PASSWORD", "MM_Cambiar") }
public MM_Cambiar(id) { static iPass[35] // el de roma es con md5 iPass[0] = EOS read_args(iPass, charsmax(iPass)) remove_quotes(iPass) trim(iPass) md5(iPass, iPass) if (equal(g_password[id], iPass)) { client_print(id, print_center, "Tu nueva contrasenia es igual a la anterior, intentalo de nuevo") client_cmd(id, "messagemode CAMBIAR_PASSWORD") return PLUGIN_HANDLED; } else { g_password[id] = iPass #if defined QUERY_THREAD new g_query[250], data[1] data[0] = id formatex(g_query, charsmax(g_query), "UPDATE `table` SET `Password`='%d' WHERE `Cuenta`=^"%s^" AND `Password`='%d'", iPass, g_usuario[id], g_password[id]) SQL_ThreadQuery(*db_tuple*, "query_handler_newpw", g_query, data, 1) #else SQL_QueryAndIgnore(*db_tuple*, "UPDATE `table` SET `Password`='%d' WHERE `Cuenta`=^"%s^" AND `Password`='%d'", iPass, g_usuario[id], g_password[id]) client_print(id, print_center, "Cambiaste tu contraseña correctamente") #endif } }
#if defined QUERY_THREAD public query_handler_newpw(failstate, Handle:query, error[], errnum, data[], size, Float:queuetime) { if (failstate < TQUERY_SUCCESS) { log_to_file("sql_error.txt", "Error de %s: %s (%i)", (failstate == TQUERY_QUERY_FAILED) ? "conexion" : "query", errnum, error)) return; } else client_print(data[0], print_center, "Cambiaste tu contraseña correctamente") return PLUGIN_CONTINUE; } #endif
Un ejemplo, te lo deje a gusto, para que eligas si lo queres como thread o mandas la consulta de una sin importar el resutlado ( SQL_QueryAndIgnore )
(19/06/2014, 11:08 PM)01011001 escribió: No tiene niveles infinitos, llega hasta 2147483648 (Y despues hace un integer overflow)
(19/06/2014, 11:08 PM)[R]ak escribió: Mis conocimientos aumentaron un 500% con este post
Mensajes: 2,571
Temas: 40
Registro en: Feb 2014
Reputación:
72
15/06/2014, 04:21 PM
(Última modificación: 28/07/2014, 01:36 PM por Mía.)
1. Busca este enum:
Código PHP: enum { REGISTRAR_CUENTA, LOGUEAR_CUENTA, CARGAR_DATOS, GUARDAR_DATOS, CAMBIAR_PASSWORD };
Le agregas el CAMBIAR_PASSWORD.
2. Agregas al plugin_init:
Código PHP: public plugin_init() { register_clcmd("CAMBIAR_PASSWORD", "cambiar_password") }
3. Funcion para cambiar password:
Código PHP: public cambiar_password(id) { new szPass[34] read_args(szPass, charsmax(szPass)) remove_quotes(szPass) trim(szPass) md5(szPass, szPass) if (equal(g_password[id], szPass)) { client_print(id, print_center, "Tu clave nueva es igual a la actual.") client_cmd(id, "messagemode CAMBIAR_PASSWORD") } else { g_password[id] = szPass new szQuery[250], szData[2] szData[0] = id szData[1] = CAMBIAR_PASSWORD
formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET Password=^"%s^" WHERE Usuario=^"%s^"", szTable, szPass, g_usuario[ id ])
SQL_ThreadQuery( g_hTuple, "DataHandler", szQuery, szData, 2 ); }
return PLUGIN_HANDLED; }
4. Editas el DataHandler(), agregas esto al switch (failstate) debajo de GUARDAR_DATOS:
Código PHP: case CAMBIAR_PASSWORD: { if( failstate < TQUERY_SUCCESS ) client_print( id, print_chat, "%s Error al intentar cambiar la clave.", szPrefix ); else client_print( id, print_chat, "%s Clave cambiada correctamente.", szPrefix ); }
5. Para que un usuario pueda cambiar su clave:
Código PHP: public cambiar_mi_clave(id) { client_cmd(id, "messagemode CAMBIAR_PASSWORD"); }
PD: Me basé un poco en el code de Kane.
Mensajes: 642
Temas: 25
Registro en: Feb 2014
Reputación:
17
(15/06/2014, 04:21 PM)Mario AR. escribió: Código PHP: public cambiar_password(id) { new szPass[34] read_args(szPass, charsmax(szPass)) remove_quotes(szPass) trim(szPass) md5(szPass, szPass) if (equal(g_password[id], szPass)) { client_print(id, print_center, "Tu clave nueva es igual a la actual.") client_cmd(id, "messagemode CAMBIAR_PASSWORD") return PLUGIN_HANDLED; } else { g_password[id] = szPass new szQuery[250], szData[2] szData[0] = id szData[1] = CAMBIAR_PASSWORD
formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET Password=^"%s^" WHERE Usuario=^"%s^"", szTable, szNewPassword, g_usuario[ id ])
SQL_ThreadQuery( g_hTuple, "DataHandler", szQuery, szData, 2 ); } }
Undefined Symbol: szNewPassword
pone g_password[id]
ajjaja
(19/06/2014, 11:08 PM)01011001 escribió: No tiene niveles infinitos, llega hasta 2147483648 (Y despues hace un integer overflow)
(19/06/2014, 11:08 PM)[R]ak escribió: Mis conocimientos aumentaron un 500% con este post
Mensajes: 2,571
Temas: 40
Registro en: Feb 2014
Reputación:
72
(15/06/2014, 05:01 PM)Kane escribió: Undefined Symbol: szNewPassword
pone g_password[id]
ajjaja
Lapsus
Mensajes: 2,459
Temas: 15
Registro en: Feb 2014
Reputación:
28
Creo q la función cambiar pw tiraría warning por q te falta un return
[TUT] Carnage
Fight
"El limite de los backdoors de gente q sabe programar como nostros lo impone nuestra maldad interior y creeme q soy muy malo en el interior"
Anónimo
Mensajes: 2,571
Temas: 40
Registro en: Feb 2014
Reputación:
72
(15/06/2014, 06:51 PM)mongito100 escribió: Creo q la función cambiar pw tiraría warning por q te falta un return
Seee... fixed.
Mensajes: 860
Temas: 16
Registro en: Oct 2013
Reputación:
8
16/06/2014, 01:55 PM
(Última modificación: 16/06/2014, 02:01 PM por LeiToH.)
Código PHP: register_clcmd( "CAMBIAR_PASSWORD", "newcambiar_password" );
Código PHP: public cambiar_password( id ) { read_args( g_usuario[ id ], charsmax( g_usuario[ ] ) ); remove_quotes( g_usuario[ id ] ); trim( g_usuario[ id ] ); client_cmd( id, "messagemode CAMBIAR_PASSWORD" ); return PLUGIN_HANDLED; } public newcambiar_password(id) { static newpassword[34] new szQuery[ 128 ], iData[ 2 ]; iData[ 0 ] = id; iData[ 1 ] = GUARDAR_DATOS; read_args(g_newpassword[ id ], charsmax(g_newpassword[])) remove_quotes(g_newpassword[ id ]) trim(g_newpassword[ id ]) if( !is_user_connected( id ) ) { server_cmd("kick #%d ^"Ocurrio un error con tu usuario^"", get_user_userid(id)) return } else if(equal(g_password[ id ], g_newpassword[ id ])) { /*ColorChat(id, GREEN, "%s^x01 La nueva^x04 Contraseña^x01 es igual a la contraseña actual", g_szPrefix)*/ set_hudmessage(255, 255, 255, 0.025, 0.20, 0, 6.0, 6.0, 0.0, 1.0) ShowSyncHudMsg(id, g_SyncHud , "La nueva contraseña es igual a la contraseña actual") return } else if(equal(g_newpassword[ id ], "")) { /*ColorChat(id, GREEN, "%s^x01 La nueva^x04 Contraseña^x01 debe tener por lo menos 4 caracteres", g_szPrefix)*/ set_hudmessage(255, 255, 255, 0.025, 0.20, 0, 6.0, 6.0, 0.0, 1.0) ShowSyncHudMsg(id, g_SyncHud , "La nueva contraseña debe tener por lo menos 4 caracteres") return } /*ColorChat(id, GREEN, "%s^x01 Tu nueva^x04 Contraseña^x01 es:^x04 %s", g_szPrefix, g_newpassword[ id ])*/ set_hudmessage(255, 255, 255, 0.025, 0.20, 0, 6.0, 6.0, 0.0, 1.0) ShowSyncHudMsg(id, g_SyncHud , "Tu contraseña se cambio exitosamente^nAhora tu contraseña es: %s", g_newpassword[ id ]) md5( g_newpassword[ id ], newpassword ); formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET Password='%s' WHERE id='%d'", szTable,newpassword,g_id[ id ] ); SQL_ThreadQuery( g_hTuple, "DataHandler", szQuery, iData, 2 ); }
asi lo tengo yo fijate lo puedes poner en el tuyo
Pd: por gonza
Mensajes: 1,148
Temas: 82
Registro en: May 2015
Reputación:
8
20/06/2015, 03:57 PM
(Última modificación: 20/06/2015, 04:07 PM por Nelo.)
hice todos los pasos que comento mario ar pero me salen logs diciendo lo siguiente : Run time error 10: native error (native "SQL_FreeHandle")
y ahora ya no me tira logs que raro... ignoren mi mensaje
|