Ver Mensaje Individual
  #29 (permalink)  
Antiguo 04/02/2005, 15:02
Avatar de yoseman
yoseman
 
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 4 meses
Puntos: 5
Cita:
Iniciado por Bezerik
Bueno, ya he editado mi anterior mensaje, y el codigo ya funciona, (probado), de esta manera yoseman, no mareamos tanto la gente copiando y pegando de aqui y de alli.

vale, mi siguiente duda es la siguiente:
el codigo presentado por Yoseman funciona! pero creo que yo he sido el unico que quiere añadir en la seccion del foro este codigo. y cual es el resultado? que no funciona como deberia.

para aquellos que anden perdidos, voy a intentar explicarme mejor, imaginaros el foro phpbb, y a la derecha una columna en el qual esta el codigo de yoseman. (dependiendo de las necesidades de cada uno) mostraria en esa columna, el avatar, un enlace al "editar perfil", un enlace "logout", los grupos a los quales pertenece.....

pero al parecer, (yo me imagino) que el codigo del foro phpbb debe machacar el del script, y por ello cuando hacemos login, (en otra seccion fuera que no sea el foro) todo funciona a la perfeccion (evidente).pero si nos dirigimos al foro, veremos que el propio menu del foro phpbb nos muestra como usuarios logueados, pero en la columna, donde se hallaba el script de yoseman, interpreta que no estamos logueados. y no deberia ser asi!!!!!!!!!

es por ello que hago un peticion, sobretodo a yoseman (que veo que controla bastante y ademas es moderador en tomatoma.ws) a ver si se puede realizar un segundo script complementario al 1r o no, que solucione este problema.

os dejo la direccion de mi web personal en donde estoy intentado solucionar este asunto. os he creado un usuario para que hagais login, y por vosotros mismo veais el error.

Url: http://www.bezerik.net
usuario: invitado
contraseña: invitado


espero que me podais ayudar. ya vereis que la web esta echa una mierda, no tiene ni 7 dias
Bueno cómo te decía lo que me desconcierta del asunto es que a tí no te de error de funciones redeclaradas al volver a iniciar sesión phpBB, que es lo que haces al incluir nuestro script en el index.php del foro, no sé por qué sucede esto, pero lo mismo responde a que tengas desactivadas algunas directivas del php.ini que definen si el script continuará con el código al encontrar el error y si mostrará los mensajes de error.

El caso es que eso es lo que parece...

De todas formas se podría probar una cosa. Se trataría de iniciar sesión phpBB sólo en el caso de que no haya sido iniciada previamente. Para ello podemos por ejemplo (para no marearnos mucho) evaluar si existe alguna de las funciones que se definen en el inicio de sesión phpBB, por ejemplo en éste caso usaremos init_userprefs.
Además de esto debemos de definir la variable que contiene la ruta relativa del foro en función de que se esté interpretando desde el foro o desde nuestro scripts. Esto es porque cuando incluimos un script, aunque esté en un directorio distinto del que lo llama, la ruta relativa seguirá siendo en el archivo incluido, la del que lo llama, comprendo que esto es algo lioso. Es decir si incluimos desde el index del foro nuestro script y asignamos "foro/" a $phpbb_root_path cuando creemos nuestros enlaces por ejemplo:
Código PHP:
<form action="<?=$phpbb_root_path?>login.php" method="post">
en realidad estaríamos llamando desde la ruta del foro a foro/login.php
Para eso usaremos una asignación a $phpbb_root_path que dependa de la ruta del script(que cómo hemos visto no es la del archivo incluido sino la del que lo llama)
Bueno entiendo que es un poco lioso, pero quedaría así:
Código PHP:
define('IN_PHPBB'true);
$phpbb_root_path = (dirname($_SERVER['PHP_SELF'])=="/foro") ? './' 'foro/'//PATH DEL FORO RESPECTO DEL SCRIPT
if (!function_exists("init_userprefs"))
{
include(
$phpbb_root_path 'extension.inc');
include(
$phpbb_root_path 'common.'.$phpEx);
$userdata session_pagestart($user_ipPAGE_INDEX);
init_userprefs($userdata);
global 
$db$board_config;
global 
$HTTP_COOKIE_VARS$HTTP_GET_VARS$SID;
$cookiename $board_config['cookie_name'];
$cookiepath $board_config['cookie_path'];
$cookiedomain $board_config['cookie_domain'];
$cookiesecure $board_config['cookie_secure'];

A ver si eso te sirve Bezerik, sino seguiremos probando...
__________________
[+]
[+]