Phpbb2

Experto,
Tengo un sitio web al que le he incluido un foro phpBB. Dentro de la página he linkeado a distintos temas dentro del foro. El problema es que si estoy registrado como usuario el link funciona perfectamente y me lleva al tema del foro pero si no estoy registrado me pide que me registre primero y luego me dice que el tema seleccionado no existe. ¿Por qué puede pasar esto? ¿Puedo solucionarlo?
Muchas gracias de antemano por tu ayuda
Adrián

1 Respuesta

Respuesta
1
Lo que comentas puede ser porque no hay una sesión que transmita el tema seleccionado.
La solución que tendrías que implementar sería crear la sesión desde la página de inicio, o en el mismo momento en que se seleccione un tema. Creas una variable de sesión que será la que almacene el tema seleccionado y la vas trasnsmitiendo por todas las páginas. Cuando detectas que el usuario no está registrado tienes que ir a la página de registro, pero ahí no tienes que crear otra sesión sino continuar con la misma, solo estableces las variables de sesión correspondientes cuando el usuario se registre adecuadamente.
Otra opción sería no crear la sesión, pero tienes que transmitir el tema seleccionado de una página a otra hasta que el usuario se haya registrado. Esto lo puedes hacer pasando algún parámetro en el url.
La idea es almacenar de alguna forma el tema seleccionado para que cuando llegues a la página de registro y te registres correctamente, no se pierda y sepas qué tema tienes que mostrar.
Pruébalo de cualquiera de esas formas que te he explicado. Supongo que sabes como crear las sesiones y las variables de sesión, pero para cualquier duda me consultas.
Experto,
Ante todo muchas gracias por tu respuesta. La verdad es que no sé como crear las sesiones y las variables de sesión que me dices. Si no es muy complicado te pido que me lo expliques (si es muy complicado no te hagas problema).
Muchas gracias
Adrián
Perdona por haber tardado tanto en responder.
Es muy fácil crear sesiones, el problema está en modificar el código de phpbb.
Todas las páginas que pertenezcan a la misma sesión tienen que comenzar por:
<?php
session_start()
Y si abres cualquier otra página que no empiece así, se cierra la sesión.
Para lo que tu propones, tendrías que crear la sesión en la página de inicio de la siguiente forma:
<?php
session_start();
$_SESSION['tema_seleccionado'] = "";
Esto indica que todavía no se ha seleccionado ningún tema.
Cuando pulsas sobre un determinado tema te diriges a una página en concreto. En esa página tienes que almacenar su nombre en la variable de sesión tema_seleccionado usando:
$_SESSION['tema_seleccionado'] = $_SERVER['PHP_SELF'];
Acuérdate que esa página también debe comenzar con session_start().
Esa página te redirigirá a la de registro porque todavía no estarás registrado. La página de registro también debe comenzar por session_start(). Y el resto de páginas que se vayan ejecutando también.
Por último, cuando te registras, vas a una página que te dice que el tema seleccionado no existe. La página que te lleva a ésta debes poner que te redirija a $_SESSION['tema_seleccionado'].
Como ves las sessiones son sencillas. Ahora el problema está en ir analizando el código phpbb para descubrir todas las páginas por las que pasas durante el proceso de registro, y para redirigir a la página adecuado una vez que te acabas de registrar. No tengo mucho tiempo para analizar yo ese código, por eso no te puedo decir qué modificaciones tendrías que hacer, pero si te encuentras con problemas me lo comentas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas