Pregunta

He creado aplicaciones web antes que utilizan sesión phpBB y datos de usuario. El movimiento común es usar código como este:

define('IN_PHPBB', true);
//replace $phpbb_root_path with path to your forum
$phpbb_root_path = '../forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();

Sin embargo, al incluir common.php , traigo una carga de basura de otros métodos que se encuentran con otros métodos que tengo configurados.

En mi ejemplo, estoy ejecutando la aplicación usando CodeIgniter, que ya tiene una "redirección" método. Esta pregunta debería aplicarse a cualquier persona que tenga métodos preconstruidos que puedan encontrarse con los métodos phpBB.

Básicamente, todo lo que necesito hacer es:

  1. Asegúrese de que el usuario haya iniciado sesión $ user- > data [username] == Anónimo
  2. Utilice datos de '$ user- > data', como la ID del usuario, el nombre de usuario, etc.

¿Puedo tomar la matriz $ user- > data y guardarla de alguna manera en mi propia sesión? ¿Alguien tiene alguna idea sobre esto? Gracias de antemano!

¿Fue útil?

Solución

Te has encontrado con la razón principal por la que odio los trabajos de marcos. Nunca se sabe lo que se incluye. Especialmente cuando el código no está orientado a objetos. (mucho mejor si su función pertenece a objetos, en lugar de flotar libremente en un espacio global).

Suponiendo que su código ya tenga un controlador de sesión definido, no hay nada que le impida utilizar los comandos de sesión regulares.

por ejemplo: $ _SESSION ['user_data_array'] = $ user- > data;

luego usando los datos de la sesión

$ data = $ _SESSION ['user_data_array'];

Cuando se escribe un controlador de sesión, reemplaza el controlador de sesión actual. (Supongo que se ha hecho para que la sesión se almacene en la base de datos, en lugar de en el servidor).

Si no se ha reemplazado, aún puede usar PHP, el controlador de sesión predeterminado. Siempre tenga en cuenta que los detalles de la sesión se guardan en una carpeta en el servidor web actual. Por lo tanto, si su aplicación se ejecuta en varios servidores, los datos de la sesión no estarán disponibles si el usuario está siendo atendido por un servidor diferente en una visita posterior. (de ahí la necesidad de escribir controladores de sesión para preservar los datos de la sesión entre varios servidores).

Otros consejos

phpBB cambió el algoritmo para validar la contraseña almacenada en la base de datos de la versión 2.xa la 3.0. (Solía ??ser solo una función MD5.) Pero si puede encontrar su URL semi-SDK (no la tiene a la mano), hay publicaciones allí sobre cómo usar su verificación de usuario en un nivel de abstracción más alto de lo que describe .

Este es un caso en el que, si va a aprovechar su recurso, debe hacerlo a su manera (que en este caso es más explícito de lo que solía ser).

Estoy de acuerdo en que es una decisión arriesgada de cualquier manera; especialmente porque phpBB no tiene un registro particularmente admirable de calidad de diseño.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top