Vincular cuentas en IPB
#1
Hola Buenas quería saber como podría vincular una cuenta de un sistema de cuentas en el cs a una cuenta de un foro. que en el sistema de cuenta del cs te pida una email y que verifique si hay algún usuario registrado con el mismo email y si es asi que al poner el email en el sistema de cuentas del cs, le mande una alerta en el foro para vincularlo. y asi poder mostrar x datos.

si me pueden ayudar con esto se los agradecería un montón desde ya muchas gracias.
Responder
#2
Y es medio "complicado" por así decirlo, mirá.
Vía MySQL tenes que conectarte a la base de datos donde en IPBoard tengas las cuentas guardadas, buscas la tabla que creo que es "members_core" o algo así.
Entonces vas al plugin y haces.
"SELECT email FROM members_core WHERE email=pepe@hotmail.com".
El resultado de ese SELECT lo guardas en una variable tipo string de amxx y luego haces un SELECT a la base de datos de tu sist. de cuentas, ejemplo:
"SELECT email FROM cuentas WHERE email=pepe@hotmail.com"
Después comparas haciendo un if con equal.
Código PHP:
enum EMAIL_CUENTASEMAIL_FOROEMAIL_DATA };

new 
g_emails[EMAIL_DATA]; //Los SELECT lo guardas dentro de una variable como esta y la separas así.

if(equal(g_emails[EMAIL_CUENTAS], g_emails[EMAIL_FORO])) //Sucess son compatibles 
Responder
#3
Digamos que sería algo como esto, creo que sería algo así jajaja, hace mucho no hago nada de mysql y eso Triste

Código PHP:
public plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
MySQL_DataBaseIPB(Conexion"SELECT * FROM core_members");
    
}

public 
logeado_en_la_cuenta(id
    
MySQL_DataBaseACC(Conexion"SELECT * FROM tabla_acc WHERE password=^"menganito^"");    

stock MySQL_DataBaseIPB(Handle:ConexionQuery[])
    
mysql_query(Conexion"DataHanlerIPB"Query);
stock MySQL_DataBaseACC(Handle:ConexionQuery[])
    
mysql_query(Conexion"DataHandlerACC"Query);
    
    
public 
DataHandlerIPB(TodasLasCosas)
{
    if(
mysql_num_results()) {
        while(
mysql_more_results()) {
            new 
email mysql_fieldnametonum("email_ipb");
            
mysql_read_result(emailg_email_ipboard63);
        }
    }
}
public 
DataHandlerACC(TodasLasCosas)
{
    if(
mysql_num_results()) {
        static 
idid data[0];
        
        new 
myEmail[64];
        new 
email mysql_fieldnametonum("email_acc");
        
mysql_read_result(emailmyEmail63);
        
        if(
equal(myEmailg_email_ipboard)) 
            
server_print("Misma cuenta");
        else    
server_print("Nada que ver");
        
    }

Responder
#4
(07/03/2020, 01:56 PM)Niper.-. escribió: Digamos que sería algo como esto, creo que sería algo así jajaja, hace mucho no hago nada de mysql y eso Triste

Código PHP:
public plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
MySQL_DataBaseIPB(Conexion"SELECT * FROM core_members");
    
}

public 
logeado_en_la_cuenta(id
    
MySQL_DataBaseACC(Conexion"SELECT * FROM tabla_acc WHERE password=^"menganito^"");    

stock MySQL_DataBaseIPB(Handle:ConexionQuery[])
    
mysql_query(Conexion"DataHanlerIPB"Query);
stock MySQL_DataBaseACC(Handle:ConexionQuery[])
    
mysql_query(Conexion"DataHandlerACC"Query);
    
    
public 
DataHandlerIPB(TodasLasCosas)
{
    if(
mysql_num_results()) {
        while(
mysql_more_results()) {
            new 
email mysql_fieldnametonum("email_ipb");
            
mysql_read_result(emailg_email_ipboard63);
        }
    }
}
public 
DataHandlerACC(TodasLasCosas)
{
    if(
mysql_num_results()) {
        static 
idid data[0];
        
        new 
myEmail[64];
        new 
email mysql_fieldnametonum("email_acc");
        
mysql_read_result(emailmyEmail63);
        
        if(
equal(myEmailg_email_ipboard)) 
            
server_print("Misma cuenta");
        else    
server_print("Nada que ver");
        
    }


No creas que IPB maneja sus contraseñas de esa forma tan deprimente, deben tenerlas con hashes, desconozco cual, habría que ver el source code de cómo guardan las contraseñas. Despues de ese paso, habría que replicar el hash en el server (si es que es posible, si no, habría que crear un módulo en C++ que haga la tarea) y con la contraseña escrita, comparar en la base de datos e ir con el proceso de auth pero en el servidor hlds
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)