pragone.com
desarrollo, comunidad y monetización
agrégalo a del.icio.us

¿Cómo integrar phpBB3 con tu sitio?

Este artículo es parte de un conjunto de artículos/tutoriales sobre cómo integrar phpBB3 con otro sistema.
Puedes ir al artículo principal sobre cómo integrar phpBB3 con tu sitio para ver las distintas formas de integración

phpBB3 es un excelente paquete de foros gratuito y escrito en PHP+MySQL.

Particularmente phpBB3 promete muchas mejoras interesantes sobre la versión anterior, por lo que he decidido utilizarlo para el foro del nuevo proyecto en el que estoy trabajando (jugar-fútbol.com).

Sin embargo, ya me había currado un proceso de registro y prefería evitar que un usuario registrado tuviera que registrarse nuevamente para poder acceder a los foros… y por otro lado, la experiencia me ha dicho que permitir la publicación sin registro en un foro es invitar al desastre y a la llegada de Spambots.

Así que me puse a investigar y una de las cosas interesantes del phpBB3 es que tiene módulos de identificación. El phpBB viene de base con 3: DB (el módulo por defecto en el que verifica la información de los usuarios en su propia BD), Apache (con htaccess y cosas por el estilo) y LDAP (contra un directorio LDAP).

Basándome en el de LDAP pude construir de forma muy rápida un proceso que te permitiera identificarte en el foro. Esto es lo que hay que hacer:

En la carpeta phpbb/includes/auth/ creas un nuevo archivo llamado auth_<algo>.php donde ese <algo> será el nombre de tu módulo. En mi caso fue auth_jugar.php.

En ese archivo debes implementar una funcion llamada: login_<algo> que recibe como parámetros el username y el password indicados en el formulario de identificación de un usuario.

PHPBB espera como respuesta de esta función un arreglo asociativo con tres elementos: ’status’, ‘error_msg’ y ‘user_row’.

Los posibled valores para status (que yo haya utilizado) son:

  • LOGIN_ERROR_PASSWORD: Error en el password (por ejemplo, el password ha venido vacío)
  • LOGIN_ERROR_USERNAME: Indica que el login o la combinación login/clave son inválidos
  • LOGIN_ERROR_ACTIVE: El usuario no se encuentra activo
  • LOGIN_SUCCESS: Todo bien… debemos dejar entrar al usuario
  • LOGIN_SUCCESS_CREATE_PROFILE: Este es muy interesante… Indica que los datos son correctos y que debemos crear al usuario en PHPBB y permitirle el acceso.

Es este último status el que es más útil para la integración, pues la primera vez que un usuario ya registrado en mi sistema de registro vaya al foro, creará su usuario del foro de forma transparente.

Los valores de error_msg y user_row dependen del status de respuesta y me parece que lo más fácil será colocar el código que he utilizado. Siéntanse libres de hacer Copy&Paste y ajustar a sus necesidades.

Ya para terminar recomendaría que impidieran que estos usuarios puedan modificar su información de email y clave y que lo deban hacer desde tu sistema actual de registro.

Espero sea de utilidad.

<?php
/**
*
* Jugar auth plug-in for phpBB3
*
* Authentication plug-ins is largely down to Sergey Kanareykin, our thanks to him.
*
* @package login
*
*/
 
/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
	exit;
}
 
// Aquí cargo cosas que necesito para verificar los datos del usuario
require_once '/forum_env.php';
 
/**
* Login function
*/
function login_jugar(&$username, &$password)
{
	global $db, $config, $user;
 
	// do not allow empty password
	if (!$password)
	{
		return array(
			'status'	=> LOGIN_ERROR_PASSWORD,
			'error_msg'	=> 'NO_PASSWORD_SUPPLIED',
			'user_row'	=> array('user_id' => ANONYMOUS),
		);
	}
 
	if (!$username)
	{
		return array(
			'status'	=> LOGIN_ERROR_USERNAME,
			'error_msg'	=> 'LOGIN_ERROR_USERNAME',
			'user_row'	=> array('user_id' => ANONYMOUS),
		);
	}
 
	// Aquí es donde verifico los datos en mi registro existente
	$jugar_user = ForumUser::validateCredentials($username, $password);
 
	if ($jugar_user instanceOf ForumUser) {
		$sql ='SELECT user_id, username, user_password, user_passchg, user_email, user_type
			FROM ' . USERS_TABLE . "
			WHERE username_clean = '" . $db->sql_escape(utf8_clean_string($username)) . "'";
		$result = $db->sql_query($sql);
		$row = $db->sql_fetchrow($result);
		$db->sql_freeresult($result);
 
		if ($row) {
			// User inactive...
			if ($row['user_type'] == USER_INACTIVE || $row['user_type'] == USER_IGNORE)
			{
				return array(
					'status'		=> LOGIN_ERROR_ACTIVE,
					'error_msg'		=> 'ACTIVE_ERROR',
					'user_row'		=> $row,
				);
			}
 
			// Successful login... set user_login_attempts to zero...
			return array(
				'status'		=> LOGIN_SUCCESS,
				'error_msg'		=> false,
				'user_row'		=> $row,
			);
		}
		else
		{
			// retrieve default group id
			$sql = 'SELECT group_id
				FROM ' . GROUPS_TABLE . "
				WHERE group_name = '" . $db->sql_escape('REGISTERED') . "'
					AND group_type = " . GROUP_SPECIAL;
			$result = $db->sql_query($sql);
			$row = $db->sql_fetchrow($result);
			$db->sql_freeresult($result);
 
			if (!$row)
			{
				trigger_error('NO_GROUP');
			}
 
			// generate user account data
			$user_row = array(
				'username'		=> $username,
				'user_password'	=> phpbb_hash($password),
				'user_email'	=> $jugar_user->email,
				'group_id'		=> (int) $row['group_id'],
				'user_type'		=> USER_NORMAL,
				'user_ip'		=> $user->ip,
			);
 
			// this is the user's first login so create an empty profile
			return array(
				'status'		=> LOGIN_SUCCESS_CREATE_PROFILE,
				'error_msg'		=> false,
				'user_row'		=> $user_row,
			);
		}
	}
 
	return array(
		'status'	=> LOGIN_ERROR_USERNAME,
		'error_msg'	=> 'LOGIN_ERROR_USERNAME',
		'user_row'	=> array('user_id' => ANONYMOUS),
	);
}
 
 
?>

26 comentarios »

    1. Enrique

      Se me hace interesante el tema pero no entiendo como aplicarlo.
      Puedo integarlo en un documento fuera de la carpeta donde instale el foro?
      Eso he estado buscando y me he encontrado con tal hermetismo por parte de quienes lo han logrado que se me hace imposible hacerlo funcionar debido a mi poco conocimiento en php.

      He tratado de seguir tu tutorial pero no doy.

      Serias tan amable de ayudarme a adaptarlo en mi web?

      Gracias.

    2. Hola Enrique,

      A ver, te explico. El archivo PHP que crees para el nuevo módulo de autenticación debe de estar en la carpeta que indico arriba, porque es ahí donde el phpBB3 espera que esté.
      phpBB3 usa una convención de nombres para poder encontrarlo. En el caso del ejemplo el módulo se llama “jugar”. Por esto, el archivo se debe llamar auth_jugar.php y debe tener una función que se llame: login_jugar. Si lo llamaras “enrique”, el archivo debería ser auth_enrique.php y la función login_enrique.

      Ahora bien, desde este archivo puedes incluir cualquier otro PHP que necesites para verificar la info del usuario, que es lo que yo hago en la línea de:
      require_once ‘/forum_env.php’;

      Luego de cambiar esto a lo que sea apropiado para tí (si así lo necesitas… si no necesitas incluir nada, simplemente bórralo). Debes colocar donde tengo la línea:
      $jugar_user = ForumUser::validateCredentials($username, $password);
      el código que necesites para verificar el si el usuario y la clave son correctas, y finalmente, el if en el que yo hago:
      if ($jugar_user instanceOf ForumUser) {
      básicamente indica si las credenciales son válidas…
      Es decir estas dos líneas las podrías cambiar por algo como:

      $conn = mysql_connect(….);
      mysql_select_db(’mi_db’, $conn);
      $sql = ‘SELECT * FROM mi_tabla_de_usuario WHERE nombre=”‘ . mysql_real_escape_string($username, $conn) . ‘” AND clave=”‘ . mysql_real_escape_string($password, $conn) . ‘”‘;
      $result = mysql_query($sql, $conn);
      $valido = mysql_num_rows($result) > 0;
      mysql_free_result($result);
      mysql_close($conn);

      if ($valido) {

      y listo ;)

      Espero te sirva

    3. Enrique

      Hola amigo,

      Primeramente, muchas gracias por tu tiempo y tu amable respuesta.

      Estoy trabajando en la integracion, espero pueda lograrlo.
      Ya te contare que tal me fue.

      Muchos exitos (y)

    4. Alejandro

      Estoy tratando de integrar phpBB3 con rayzz, que es una especie de CRM para videos.
      Cuando vi este post no lo podia creer… Una solución exacta para lo que buscaba, y en español.

      Bueno, el tema es que no funcionó. Hice lo que tu dices, y cuando intento loguearme en el phpBB me dice “You have specified an incorrect username. Please check your username and try again. If you continue to have problems please contact the Board Administrator.”
      Y la idea es que si el usuario no lo conoce, lo cree. La validación en rayzz hago que siempre sea true.

      Por lo que he visto, ni siquiera se ejecuta la operacion login_rayzz de mi módulo auth_rayzz.php

      Alguna idea de que puede estar pasando??

      Desde ya muchas gracias por tu tiempo y por compartir el conocimiento !!

      Alejandro G.

    5. Hola Alejandro.

      Si me dices que no se está ni siquiera invocando el método login_rayzz de tu módulo auth_rayzz.php, lo único que se me ocurre es que te haya faltado el paso de indicarle a phpBB3 que utilice tu módulo en vez del módulo por defecto (que ahora que lo reviso no lo puse en las instrucciones en ningún sitio… perdón).

      Entra en el Panel de Administración (ACP) y dale a la opción que encontrarás a la izquierda que se llama: Client Communication -> Authentication
      Ahí se te cargará una página en la que te da la opción de “Select an authentication method”. Ahí debería aparecer tu módulo (Rayzz) como una opción.

      Otras cosa, asegúrate de que tu usuario administrador del foro sea también un usuario registrado en tu sistema actual (mismo login y password)… sino tendrás que hacer lo que he tenido que hacer yo… hackear el módulo de autorización para poder loguearme como administrador :D

      Espero esto resuelva el problema. Saludos ;)

    6. Me encanta el aporte que as exo amigo pero tengo unos problemas :( , he hecho lo que dices, en el metodo de autentificacion e puesto mi modulo, pero me sale el siguiente error al loguearme :

      Fatal error: Class ‘ForumUser’ not found in /home/joj4uqo7/public_html/foro/includes/auth/auth_integrar.php on line 49

      Me ayudas? :( Y muchisimas gracias por tu aporte amigoo

    7. Hola Lundra,

      El problema es que ForumUser es una clase propia de la integración con mi sitio (No es una clase de phpBB3 sino mia). Por lo que debes cambiarlo a lo que sea necesario para integrarlo con el sistema que desees.

      Fíjate en el segundo comentario (más arriba).

      Espero eso te sirva ;)

    8. gracias por contestarme pragone pero lo e intenado, pero no se exactamente que debo cambiar soy un poco burrete con el php, te agradeceria millones si me dijeras que debo hacer, ya intente intregarar wordpress con wp-united y cuando vi tu post sem e abrieron los ojos, que deberia hacer? sustituir esto :

      $jugar_user = ForumUser::validateCredentials($username, $password);

      if ($jugar_user instanceOf ForumUser) {

      POR ESTO:

      $conn = mysql_connect(….);
      mysql_select_db(’mi_db’, $conn);
      $sql = ‘SELECT * FROM mi_tabla_de_usuario WHERE nombre=”‘ . mysql_real_escape_string($username, $conn) . ‘” AND clave=”‘ . mysql_real_escape_string($password, $conn) . ‘”‘;
      $result = mysql_query($sql, $conn);
      $valido = mysql_num_rows($result) > 0;
      mysql_free_result($result);
      mysql_close($conn);

      if ($valido) {

      Si es asi lo he hecho y me dda un error unexpetced :(

    9. por favor echame una mano no paro de probar cosas con el codigo y todo me da error, asi que he decidido dejarlo como estaba a la espera de que me digas algo acerca de ese error que te he comentado

    10. Lundra,

      Primero que nada, una cosa para tener clara, wp-united (por lo que acabo de leer) es para integrar Wordpress a phpBB pero en el sentido contrario a la integración que yo explico aquí.

      Es decir, la integración que yo describo es para que phpBB3 use el proceso de autenticación de otro sistema. El plugin del que hablas es al revés, otro sistema usando el sistema de autenticación de phpBB3.

      Ok. Dejando eso claro, entonces, lo único que me queda es recomendarte que experimentes un poco más con php. Los problemas de sintaxis se salen de lo que trata este post. Te recomiendo que te unas a forosdelweb (http://www.forosdelweb.com/) ahí hay foros destinados a aprender PHP y podrás encontrar mucha gente (yo soy un esporádico del foro) que te ayude con lo básico de hacer una verificación de usuario y clave con acceso a base de datos.

      Saludos y suerte
      Paolo

    11. gracias pragone, me a kedado bastante claro jeje, pero ahora, para volver al metdodo de autentificacion por db que hago? :S por que no puedo loguearme me da el error que ya e mencionado :( como puedo cambiarlo?
      Gracias de nuevo

    12. newbie

      hola se agradece la buena disposicion pero no entendi (casi)nada.

      apelando a tus conocimientos y generosidad, podrias explicar con peras y manzanas, como integrar un existente phpbb3 (upgradeado de un phpbb2 sin problemas), funcionando todo ok, sin mods, como hacer para agregar un moodle a ese dominio y evitar tener que tener un doble registro?

      es decir anular la inscripcion en moodle dejando la inscripcion “oficial” via phpbb.

      he buscado mucho en los foros de moodle y phpbb y nada.

      gracias de antemano!

    13. Hola Lundra,

      Pues estuve buscando un poco… y creo que debería bastar cambiar en la base de datos del phpBB en la tabla phpbb_config un registro que tiene config_name=auth_method, el valor de config_value por db.

      Algo como:
      UPDATE phpbb_config SET config_value=”db” WHERE config_name=”auth_method”.

      Espero eso te sirva ;)

    14. Hola Newbie,

      Pues fíjate… lamento indicarte que la integración de la que hablo aquí es justo en el sentido contrario. Es decir, con este método, quedaría sólo el proceso de registro de (en tu caso) moodle y desaparecería el de phpbb3.

      He hecho una búsqueda rápida y esto es lo que he encontrado:
      http://blog.tuwebdecursos.es/2008/05/18/desarrollo-integrar-moodle-con-phpbb3/

      Creo que ahí lo explican con peras y manzanas ;)

      Espero te sirva.

    15. Pragone mil gracias por todo lo que me has ayudado y por este pedazo de aporte, quisiera pedirte ayuda por que ya estoy desesperado, he pedido ayuda en muchos foros y nadie me ha ayudado. ya no se que hacer tal a sido mi desesperacion que optado por borrar mi foro completamente y limpiar las tablas del foro en la bd, por favor podrias ayudarme a que phpbb3 use los mismos usuarios que wordpress? te lo pido por favor estoy ya desesperado, aunq sea solo con una guia, aunq sea no se lo que tu veas. Solo quiero que cuando se registren en mi blog se registren tambien en el foro automaticamente, pero esq no se que hacer, gracias de antemano y losiento de nuevo por tanto quebraderos de cabeza

    16. por favor ayudame estoy deseperado enserio

    17. Te pongo el archivo registration.php de wordpress haber si tu eres capaz de decirme donde e de pone un codigo para que inserte el nuevo usuario en la tabla de usuarios de phpbb por q yo no se…, aclaro que tengo el wordpress y el phpbb en la misma base de datos.

      ID;
      } else {
      return null;
      }
      }

      /**
      * email_exists() - Checks whether the given email exists.
      *
      * @since 2.1.0
      * @uses $wpdb
      *
      * @param string $email Email.
      * @return bool|int The user’s ID on success, and false on failure.
      */
      function email_exists( $email ) {
      if ( $user = get_user_by_email($email) )
      return $user->ID;

      return false;
      }

      /**
      * validate_username() - Checks whether an username is valid.
      *
      * @since 2.0.1
      * @uses apply_filters() Calls ‘validate_username’ hook on $valid check and $username as parameters
      *
      * @param string $username Username.
      * @return bool Whether username given is valid
      */
      function validate_username( $username ) {
      $sanitized = sanitize_user( $username, true );
      $valid = ( $sanitized == $username );
      return apply_filters( ‘validate_username’, $valid, $username );
      }

      /**
      * wp_insert_user() - Insert an user into the database.
      *
      * Can update a current user or insert a new user based on whether
      * the user’s ID is present.
      *
      * Can be used to update the user’s info (see below), set the user’s
      * role, and set the user’s preference on whether they want the rich
      * editor on.
      *
      * Most of the $userdata array fields have filters associated with
      * the values. The exceptions are ‘rich_editing’, ‘role’, ‘jabber’,
      * ‘aim’, ‘yim’, ‘user_registered’, and ‘ID’. The filters have the
      * prefix ‘pre_user_’ followed by the field name. An example using
      * ‘description’ would have the filter called, ‘pre_user_description’
      * that can be hooked into.
      *
      * The $userdata array can contain the following fields:
      * ‘ID’ - An integer that will be used for updating an existing user.
      * ‘user_pass’ - A string that contains the plain text password for the user.
      * ‘user_login’ - A string that contains the user’s username for logging in.
      * ‘user_nicename’ - A string that contains a nicer looking name for the user.
      * The default is the user’s username.
      * ‘user_url’ - A string containing the user’s URL for the user’s web site.
      * ‘user_email’ - A string containing the user’s email address.
      * ‘display_name’ - A string that will be shown on the site. Defaults to user’s username.
      * It is likely that you will want to change this, for both appearance and security
      * through obscurity (that is if you don’t use and delete the default ‘admin’ user).
      * ‘nickname’ - The user’s nickname, defaults to the user’s username.
      * ‘first_name’ - The user’s first name.
      * ‘last_name’ - The user’s last name.
      * ‘description’ - A string containing content about the user.
      * ‘rich_editing’ - A string for whether to enable the rich editor or not. False if not
      * empty.
      * ‘user_registered’ - The date the user registered. Format is ‘Y-m-d H:i:s’.
      * ‘role’ - A string used to set the user’s role.
      * ‘jabber’ - User’s Jabber account.
      * ‘aim’ - User’s AOL IM account.
      * ‘yim’ - User’s Yahoo IM account.
      *
      * @since 2.0.0
      * @uses $wpdb WordPress database layer.
      * @uses apply_filters() Calls filters for most of the $userdata fields with the prefix ‘pre_user’. See note above.
      * @uses do_action() Calls ‘profile_update’ hook when updating giving the user’s ID
      * @uses do_action() Calls ‘user_register’ hook when creating a new user giving the user’s ID
      *
      * @param array $userdata An array of user data.
      * @return int The newly created user’s ID.
      */
      function wp_insert_user($userdata) {
      global $wpdb;

      extract($userdata, EXTR_SKIP);

      // Are we updating or creating?
      if ( !empty($ID) ) {
      $ID = (int) $ID;
      $update = true;
      } else {
      $update = false;
      // Hash the password
      $user_pass = wp_hash_password($user_pass);
      }

      $user_login = sanitize_user($user_login, true);
      $user_login = apply_filters(’pre_user_login’, $user_login);

      if ( empty($user_nicename) )
      $user_nicename = sanitize_title( $user_login );
      $user_nicename = apply_filters(’pre_user_nicename’, $user_nicename);

      if ( empty($user_url) )
      $user_url = ”;
      $user_url = apply_filters(’pre_user_url’, $user_url);

      if ( empty($user_email) )
      $user_email = ”;
      $user_email = apply_filters(’pre_user_email’, $user_email);

      if ( empty($display_name) )
      $display_name = $user_login;
      $display_name = apply_filters(’pre_user_display_name’, $display_name);

      if ( empty($nickname) )
      $nickname = $user_login;
      $nickname = apply_filters(’pre_user_nickname’, $nickname);

      if ( empty($first_name) )
      $first_name = ”;
      $first_name = apply_filters(’pre_user_first_name’, $first_name);

      if ( empty($last_name) )
      $last_name = ”;
      $last_name = apply_filters(’pre_user_last_name’, $last_name);

      if ( empty($description) )
      $description = ”;
      $description = apply_filters(’pre_user_description’, $description);

      if ( empty($rich_editing) )
      $rich_editing = ‘true’;

      if ( empty($admin_color) )
      $admin_color = ‘fresh’;
      $admin_color = preg_replace(’|[^a-z0-9 _.\-@]|i’, ”, $admin_color);

      if ( empty($user_registered) )
      $user_registered = gmdate(’Y-m-d H:i:s’);

      $data = compact( ‘user_pass’, ‘user_email’, ‘user_url’, ‘user_nicename’, ‘display_name’, ‘user_registered’ );
      $data = stripslashes_deep( $data );

      if ( $update ) {
      $wpdb->update( $wpdb->users, $data, compact( ‘ID’ ) );
      $user_id = (int) $ID;
      } else {
      $wpdb->insert( $wpdb->users, $data + compact( ‘user_login’ ) );
      $user_id = (int) $wpdb->insert_id;
      }

      update_usermeta( $user_id, ‘first_name’, $first_name);
      update_usermeta( $user_id, ‘last_name’, $last_name);
      update_usermeta( $user_id, ‘nickname’, $nickname );
      update_usermeta( $user_id, ‘description’, $description );
      update_usermeta( $user_id, ‘jabber’, $jabber );
      update_usermeta( $user_id, ‘aim’, $aim );
      update_usermeta( $user_id, ‘yim’, $yim );
      update_usermeta( $user_id, ‘rich_editing’, $rich_editing);
      update_usermeta( $user_id, ‘admin_color’, $admin_color);

      if ( $update && isset($role) ) {
      $user = new WP_User($user_id);
      $user->set_role($role);
      }

      if ( !$update ) {
      $user = new WP_User($user_id);
      $user->set_role(get_option(’default_role’));
      }

      wp_cache_delete($user_id, ‘users’);
      wp_cache_delete($user_login, ‘userlogins’);

      if ( $update )
      do_action(’profile_update’, $user_id);
      else
      do_action(’user_register’, $user_id);

      return $user_id;
      }

      /**
      * wp_update_user() - Update an user in the database
      *
      * It is possible to update a user’s password by specifying the
      * ‘user_pass’ value in the $userdata parameter array.
      *
      * If $userdata does not contain an ‘ID’ key, then a new user
      * will be created and the new user’s ID will be returned.
      *
      * If current user’s password is being updated, then the cookies
      * will be cleared.
      *
      * @since 2.0.0
      * @see wp_insert_user() For what fields can be set in $userdata
      * @uses wp_insert_user() Used to update existing user or add new one if user doesn’t exist already
      *
      * @param array $userdata An array of user data.
      * @return int The updated user’s ID.
      */
      function wp_update_user($userdata) {
      $ID = (int) $userdata['ID'];

      // First, get all of the original fields
      $user = get_userdata($ID);

      // Escape data pulled from DB.
      $user = add_magic_quotes(get_object_vars($user));

      // If password is changing, hash it now.
      if ( ! empty($userdata['user_pass']) ) {
      $plaintext_pass = $userdata['user_pass'];
      $userdata['user_pass'] = wp_hash_password($userdata['user_pass']);
      }

      // Merge old and new fields with new fields overwriting old ones.
      $userdata = array_merge($user, $userdata);
      $user_id = wp_insert_user($userdata);

      // Update the cookies if the password changed.
      $current_user = wp_get_current_user();
      if ( $current_user->id == $ID ) {
      if ( isset($plaintext_pass) ) {
      wp_clear_auth_cookie();
      wp_set_auth_cookie($ID);
      }
      }

      return $user_id;
      }

      /**
      * wp_create_user() - A simpler way of inserting an user into the database.
      *
      * Creates a new user with just the username, password, and email. For a more
      * detail creation of a user, use wp_insert_user() to specify more infomation.
      *
      * @since 2.0.0
      * @see wp_insert_user() More complete way to create a new user
      * @uses $wpdb Escapes $username and $email parameters
      *
      * @param string $username The user’s username.
      * @param string $password The user’s password.
      * @param string $email The user’s email (optional).
      * @return int The new user’s ID.
      */
      function wp_create_user($username, $password, $email = ”) {
      global $wpdb;

      $user_login = $wpdb->escape($username);
      $user_email = $wpdb->escape($email);
      $user_pass = $password;

      $userdata = compact(’user_login’, ‘user_email’, ‘user_pass’);
      return wp_insert_user($userdata);
      }

      ?>

    18. Hola Lundra,

      Disculpa la tardanza… es que en el curro he estado un poco con mil cosas. Trataré de verlo hoy

    19. urover

      Hola Pragone, verás mi duda es la siguiente: tengo un sitio donde el usuario ha de logearse para entrar, y una vez dentro quiero que pueda usar el phpBB3, PERO sin tener que volver a loguearse en el phpBB, ¿qué método de autenticación debo usar para conseguir para eso? No estoy seguro si es LDAP o Apache, estoy desesperado la verdad! Muchas gracias y has hecho una gran aportación!

    20. No pasa nada pragone :D, gracias por mirarlo ;D esperare ansioso tu respuesta jeje

    21. Urover,

      Verás, para eso realmente lo que necesitas no es un método de autenticación particular.

      Los métodos de autenticación lo que te ofrecen son formas de verificar la información de Username y Password que un usuario coloca cuando se está identificando en el phpBB3. Si no quieres que se tenga que volver a loguear, entonces lo que necesitas es algo que setee las cookies de sesión para el phpBB3.

      Voy a escribir algo al respecto en un post siguiente.

    22. Lundra,

      Ahora apenas es que tengo un tiempo para verlo. Entre hoy y mañana estaré escribiendo un nuevo post con distintas formas de integración. Lo que tu buscas es diferente de la integración que yo pongo en este post…. básicamente porque crear un módulo de autenticación es una forma “pasiva” de integración (es decir requiere un primer login en el phpBB3 para que el usuario se copie). Lo que tu quieres es una integración más “activa”, es decir que cuando se cree el usuario en WordPress, automáticamente ya se cree el usuario en phpBB3.

      Es diferente y requiere su estudio. Voy a escribir al respecto en otro post.

    23. pragone mil gracias por tu contestacion tomate el tiempo que quieras, en internet faltan mas personas como tu, gracias enserio esperare esas formas :) jeje

    24. Hola,
      Ya he creado un nuevo post desde el que enlazaré a las distintas formas de integración de phpBB3 con un sitio.

      Visita: http://pragone.com/proyectos/integracion-de-phpbb3-con-tu-sitio/47

    25. Dani

      Al crear ese módulo lo que se está haciendo es ingresar a los foros (desde el formulario de login de los foros) y comprobar si el usuario que ha ingresado está registrado en el otro sitio. Si está registrado y son correctos los datos accede a los foros. Y si ese usuario no está registrado en los foros se agregan sus datos a la base de datos de los foros ¿algo así no?.

      pero y como se hace para que el usuario ingrese desde el login de la web y después si entra en los foros ya se encuentre identificado sin tener que ingresar sus datos otra vez?

RSS feed de los comentarios. TrackBack URL

deja un comentario

Del.icio.us

enlaces de interés