Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..

Gracias.

La Administración de phpBB España.

Problema con miembro mas recienteTema Solucionado

Foros donde podréis dejar vuestras dudas sobre phpBB 3.0.x
Cerrado
50l3r
Invitado

Problema con miembro mas reciente  Tema Solucionado

#1

Mensaje por 50l3r »

Saludos

Verán, poseo un phpbb3 basado en prosilver. Y externamente a el he creado un registro de usuarios en el cual crea un usuario inactivo. El script es este:
SPOILER_SHOW

Código: Seleccionar todo

<?php
    /*
     * Script para registrar usuarios en phpBB3 desde una página externa.
     * Implementado por Alorse para phpBB-es.COM
     */
    define('IN_PHPBB', true);
    $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : 'foro/'; // Cambiar ./foro por la ruta de tu foro
    $phpEx = substr(strrchr(__FILE__, '.'), 1);
    include($phpbb_root_path . 'common.' . $phpEx);
    require($phpbb_root_path . 'includes/functions_user.' . $phpEx); // Archivo necesario para el registro
    // Start session management
    $user->session_begin();
    $auth->acl($user->data);
    $user->setup();

    // Si el usuario ya se encuentra registrado e idenficado le mustra un aviso en vez del formulario de registro
    if ($user->data['is_registered'] || isset($_REQUEST['not_agreed'])) {
        echo '#usreger';
    }


        //Buscamos cual es el grupo por defecto
        $coppa = (isset($_REQUEST['coppa'])) ? ((!empty($_REQUEST['coppa'])) ? 1 : 0) : false;
        $group_name = ($coppa) ? 'REGISTERED_COPPA' : 'REGISTERED';
        $sql = 'SELECT group_id
            FROM ' . GROUPS_TABLE . "
            WHERE group_name = '" . $db->sql_escape($group_name) . "'
                AND group_type = " . GROUP_SPECIAL;
        $result = $db->sql_query($sql);
        $row = $db->sql_fetchrow($result);
        $group_id = $row['group_id'];

        // Tomamos los valores del formulario.
        $username = request_var('username', '');
        $email = request_var('email', '');
        $password = phpbb_hash(request_var('password', '', true));

        // Pasamos todos lo datos de registro a un vector.
        $user_row = array(
            'username' => $username,
            'user_email' => $email,
            'user_password' => $password,
            'group_id' => $group_id,
            'user_type' => '1',
            'user_new' => 1, // Entrara al grupo de nuevos usuarios registrados.
        );

        $query = 'SELECT username, user_email
            FROM ' . USERS_TABLE . '
            WHERE username = "' . $username . '"
                OR user_email = "' . $email . '"';
        $res = $db->sql_query($query);

        // Verificamos que el usuario no exista y que las contraseñas sean iguales.
        if ($db->sql_fetchrow($res)) {
            echo '#usreger';
        } else {
            // La funcion user_add() del /includes/functions_user.php se encarga del resto.
            user_add($user_row);
            echo '#usrgreat';
        }

    ?>
El usuario me lo registra bien, pero no me sale en miembros mas recientes. Creia que seria porque no estaba activado el usuario, pero, manualmente lo activo tocando en base de datos:

Código: Seleccionar todo

mysql_query("UPDATE foro.phpbb_users set user_type='0' WHERE username = '".$com['UsuarioNombre']."' and user_email='".$com ['UsuarioCorreo']."'");
Quisiera saber el orgien del "miembro mas reciente", es decir, donde se realiza la funcion, o si vosotros supieseis que es lo que ocurre me lo dijeseis.

Muchisimas gracias :P

Avatar de Usuario
Alorse
Ex Staff
Mensajes: 5144
Registrado: 22 Mar 2008, 02:14
Género:
Edad: 37

Re: Problema con miembro mas reciente

#2

Mensaje por Alorse »

Lo que pasa es que no lo puedes activar manualmente, supongo que eso pasa porque no tienes activada la opción de registros en el foro y obviamente por más que queden registrados en la base de datos no se van a activar, hay 2 maneras de solucionarlo, la primera y más obvia es que habilites los registros en el foro.
La segunda es que debajo de la función add_user() agregues la función user_active_flip('activate', $user_id);, pero la variable $user_id debes obtenerla de la base de datos, es el último ID que hay en la USERS_TABLE.

Espero te halla sido de ayuda la información.

Cerrado

Volver a “Foros de Soporte 3.0.x”