Foros del Web » Creando para Internet » Sistemas de gestión de contenidos »

Utilizar el sistema de registro y autentificación de phpbb para otras secciones web

Estas en el tema de Utilizar el sistema de registro y autentificación de phpbb para otras secciones web en el foro de Sistemas de gestión de contenidos en Foros del Web. el script que puse arriba es exactamente el que tengo puesto en el index de mi web. Antes estaba utilizando tu codigo y me dio ...

  #31 (permalink)  
Antiguo 04/02/2005, 15:56
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
el script que puse arriba es exactamente el que tengo puesto en el index de mi web.

Antes estaba utilizando tu codigo y me dio por cambiar algunas cosas para moldearlo mas a mi gusto y decidi quitar algunas opciones que tu pusiste, y la he fastidiado.

Bueno, lo que te decia que el script que puse antes es el que estoy utilizando tal cual.

Un saludo.
  #32 (permalink)  
Antiguo 04/02/2005, 17:03
 
Fecha de Ingreso: febrero-2005
Mensajes: 11
Antigüedad: 19 años, 3 meses
Puntos: 0
Simplemente felicitar a los k nos estan ayudando, a los k no sabemos tanto :P, por fin logre hacer lo k keria en mi web, integrar el phpbb a la web y a la vez hacer un mini panel de control dentro d mi web mostrando tu avatar claro, muchas gracias a Yoseman y Bezerik ;) creo k son los k mas estan aportando y a los dmas tb claro jejeje
  #33 (permalink)  
Antiguo 04/02/2005, 21:59
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 4 meses
Puntos: 5
Gracias shiryu, a ver si poco a poco entre todos vamos mejorando el script, con las dudas que surgen ya se me han ocurrido unas cuantas cosas para mejorarlo :) ... Y es que sólo probando se encuentran los pequeños errorcillos

Salu2 ;)
__________________
[+]
[+]
  #34 (permalink)  
Antiguo 05/02/2005, 06:03
 
Fecha de Ingreso: febrero-2005
Mensajes: 11
Antigüedad: 19 años, 3 meses
Puntos: 0
No si sera una mejora, pero digo yo se podra hacer un script de stats, es decir, hay X ususrios online, x registrados, x invitados, se podria escribir tb asi:
Usuarios: X
Invitados: X
Total: X
Ulitmo usuario registrado: XXXX
etc.
Estaria bien k eso tb se pudira ver en la web no?¿

Última edición por Shiryu_20; 05/02/2005 a las 06:07
  #35 (permalink)  
Antiguo 06/02/2005, 08:53
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona (spain)
Mensajes: 56
Antigüedad: 19 años, 3 meses
Puntos: 0
Hola haciendo referencia al mensaje de Yoseman Mensaje 29 de este mismo foro y post, voy a escribir mi contestación.

pero antes, voy hacer un pequeño resumen para aquellos usuarios que quieran seguir el caso y vayan un poco perdidos.
hare referencia al codigo original del foro como script-phpbb i el script ofrezido por yoseman como script-yoseman.

el script ORIGINAL funciona, (es un exito) a partir de aqui hemos desarollado cosas complementarias. pero hay una gran duda: si añadimos el script en secciones q no son el foro. FUNCIONA, si añadimos el script en la seccion del foro, no funciona! (nos muestra como no conectados, cuando en la misma pagina, el script-phpbb nos muestra como SI logueados)!!!!

en este caso, os comento la estructura:

Código:
#1r Script de Yoseman.
#Scriptdel propio foro phpbb.
#"nuestra" condicion de si conectado o no conectado (QUE NO FUNCIONA).
...etc.....
entonces llego a la conclusion, de que si ahora yoseman me platea una modificacion a su script.

Código:
#1r MODIFICADO (si existe tal funcion...no carges el script-yoseman).
#Scriptdel propio foro phpbb.
#"nuestra" condicion de si conectado o no conectado (QUE NO FUNCIONA).
...etc.....
entonces, 1R es correcto hacer esta comprobacion, (nos curamos en salud) por que aquellos q en su servidor tengan activado una opcion de "mostrar advertencia" cuando el script-phpbb machaque al script-yoseman la pagina mostrara errores, 2n pero no esta en el lugar indicado.

propongo crear la comprobacion de la existencia de esa funcion, pero con el script-phpbb o poner primero el script-phpbb y a continuación el script-yoseman.

dentro de unas horas os dire algo, voy a probarlo.

por cierto, para aquellos que quieran comrpobar lo que asi se expone, q añada el script-yoseman en la seccion del foro, y ya vera a mas a mas, lo que aqui se expone. que el numero de usuarios no registrados, es edcir, invitados, se duplica. ¿porque? ya sabeis porque......

se entiende¿?¿?

Xavi
__________________
http://www.bezerik.net
Atención:
- Antes de preguntar lee las FAQ , los Tutoriales, utiliza el Motor de Búsquedas o revisa en Google
- Plantea tus dudas correctamente para que lo demás puedan entenderte. ¿Como hacer preguntas inteligentes?
- Evita colocar títulos como "Ayudaaaa" "Urgenteeeee" porque degradan el motor de búsquedas y resultan desagradables.
  #36 (permalink)  
Antiguo 09/02/2005, 05:58
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona (spain)
Mensajes: 56
Antigüedad: 19 años, 3 meses
Puntos: 0
Hola!!!

al final lo conseguimos, para aquellos que les interese este asunto, anunciarles que hemos encontrado la solicion, hablo en plural, porque yoseman y yo contactamos via messenger y conseguimos solucionar el problema.

agregar el sistema de validacion (usario si/no logueado) en la misma seccion del foro es posible.

a continuacion explico como conseguirlo de manera poco detallada, ya que asumo que la mayoria tenemos los minimos conocimientos en php para realizar las siguientes opreaciones::

1. debemos agregar en el archivo index.php el script-yoseman antes de que el archivo incluya el page_header. ( recomiendo crear un archivo PHP a parte), en donde se encuentre "nuestra estructura y estilo de la web" a mas a mas del script de yoseman. a continuacion os repito el script, para que lo tengais mas a mano.
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'];

llegados a este punto, debemos reflexionar sobre nuestra estructura,. (tipo portal)
si optamos por crear una columna a la derecha que contendra el MENU, en este caso es tal y como yo decidi hacerlo ,os quedara a la izquierda todo el CONTENIDO. como por ejemplo http://www.bezerik.net/foro , como todoss dominamos HTML, sabemos que la estructura bàsica de la tabla será:
Código HTML:
<table border="1">
<tr>
<td width="100%"> CONTENIDO </td><td width="200"> MENU </td>
</tr>
</table> 
en este supuesto caso, en index.php (archivo del foro phpbb), antes que se incluya el page_header.php (suguiero buscar por la palabra clave "page_header", ya que el archivo es largo). incluiremos nuestra estructura que si recordais esta en un archivo PHP a parte, por ejemplo llamado "cabeza.php"
Código PHP:
include ("cabeza.php")  // tened en cuentra donde se encuentra este archivo 
y cabeza.php contendria:
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'];
}
?>
<!-- inicio estructura web -->
<table border="1">
<tr>
<td width="100%">
<!-- empieza contenido -->
por ultimo, solo faltara añadir las condiciones: si esta logueado mostrar su avatar, su perfil, si tiene mensajes privados....., si NO esta logueado mostrar enlace de registrarse, de recordar contraseña..... (por ejemplo).

buscamos en el archivo index.php, la palabra clave "page_tail", se encuentra casi al final del archivo. aqui amigos lectores , se me presento un gran problema, si seguia con la misma idea general, nosotros incluiriamos otro archivo PHP a parte, despues del page_tail.php, por ejemplo llamado "pie.php" con la siguiente orden.
Código PHP:
include ("pie.php")  // tened en cuentra donde se encuentra este archivo 
y pie.php deberia contener el siguiente codigo:
Código PHP:
 </td>
<td width="200">
<!-- inicio menu -->
<?
if ($userdata['user_id']!=-1)
// usuario SI logeado
    
switch ($userdata['user_avatar_type'])
    {
    case 
$ruta_de_avatar '' ;break;
    case 
$ruta_de_avatar "<img src=\"" $phpbb_root_path .$board_config['avatar_path'] . '/' $userdata['user_avatar'] . "\">";break;
    case 
$ruta_de_avatar =  "<img src=\"" .$userdata['user_avatar'] . "\" >";break;
    case 
$ruta_de_avatar =  "<img src=\"" $phpbb_root_path.$board_config['avatar_gallery_path'] . '/' $userdata['user_avatar'] . "\" >";break;
    } 
// fin swicth del avatar
if ( $userdata['user_new_privmsg'] )
    { 
// SI hay mensajes privados
    
$l_message_new = ( $userdata['user_new_privmsg'] == ) ? $lang['New_pm'] : $lang['New_pms'];
    
$l_privmsgs_text sprintf($l_message_new$userdata['user_new_privmsg']);
    }
else
    { 
// NO hay mensajes privados
    
$l_privmsgs_text $lang['No_new_pm'];
    }  
//fin mensajes

    // pritamos los menus.....
    
echo "Bienvenido <b>" $userdata['username'] . "</b>.<br />";
    echo 
"<center>" $ruta_de_avatar ."<br />";
    echo 
'<a href="'.$phpbb_root_path.'login.'.$phpEx.'?logout=true&sid=' $userdata['session_id'].'&redirect='.$volver.'">Logout ['.$userdata['username'].']</a><br />';
    echo 
"<a href='" $phpbb_root_path "profile.php?mode=editprofile'>Perfil</a><br />";
    echo 
"<a href='" $phpbb_root_path "privmsg.php?folder=inbox'>" $l_privmsgs_text "</a><br /><br />";
    
// fin usuario SI logeado 
}  else { 
   echo 
"<a href='" $phpbb_root_path "profile.php?mode=register'>Registro</a>";
//fin usario NO logueado
?>
<!-- fin menu -->
</td>
</tr>
</table>
pero al probar esto, me lleve una gran sorpresa, al ejecutarlo en el navegador, pude comprobar que no cargaba, no añadia el "pie.php".

Tras varias horas "rallandome por el asunto", descubri que al final del archivo page_tail.php que se encuentra en la carpeta include del foro phpbb, havia la orden exit();. http://es.php.net/manual/es/function.exit.php

si leeis ese enlace habreis visto la funcion de exit(). tras eliminar el exit() del page_tail, pude comrpobar que si añadia mi codigo. pero no matenia la session. (MUY RARO RARO RARO.........), pero Yoseman se percato que phpbb utiliza buffers y todo esa gran asunto que a mi me suena a xino, que a vosotros.

asi que, una de dos,
1 - añadais el pie.php directamente en index.php y funcionara!!!
2 - añadais la columna MENU a la izquierda, y a la derecha os queda el CONTENIDO, seguro que no os dara problemas, porque solo deberiais crear un archivo PHP a parte, que por ejemplo tendria la siguiente sintaxi:

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'];

?>
<!-- inico web -->
<table>
<tr>
<td width ="200">
<!-- inicio MENU -->
<?
if ($userdata['user_id']!=-1)
// usuario SI logeado
    
switch ($userdata['user_avatar_type'])
    {
    case 
$ruta_de_avatar '' ;break;
    case 
$ruta_de_avatar "<img src=\"" $phpbb_root_path .$board_config['avatar_path'] . '/' $userdata['user_avatar'] . "\">";break;
    case 
$ruta_de_avatar =  "<img src=\"" .$userdata['user_avatar'] . "\" >";break;
    case 
$ruta_de_avatar =  "<img src=\"" $phpbb_root_path.$board_config['avatar_gallery_path'] . '/' $userdata['user_avatar'] . "\" >";break;
    } 
// fin swicth del avatar
if ( $userdata['user_new_privmsg'] )
    { 
// SI hay mensajes privados
    
$l_message_new = ( $userdata['user_new_privmsg'] == ) ? $lang['New_pm'] : $lang['New_pms'];
    
$l_privmsgs_text sprintf($l_message_new$userdata['user_new_privmsg']);
    }
else
    { 
// NO hay mensajes privados
    
$l_privmsgs_text $lang['No_new_pm'];
    }  
//fin mensajes

    // pritamos los menus.....
    
echo "Bienvenido <b>" $userdata['username'] . "</b>.<br />";
    echo 
"<center>" $ruta_de_avatar ."<br />";
    echo 
'<a href="'.$phpbb_root_path.'login.'.$phpEx.'?logout=true&sid=' $userdata['session_id'].'&redirect='.$volver.'">Logout ['.$userdata['username'].']</a><br />';
    echo 
"<a href='" $phpbb_root_path "profile.php?mode=editprofile'>Perfil</a><br />";
    echo 
"<a href='" $phpbb_root_path "privmsg.php?folder=inbox'>" $l_privmsgs_text "</a><br /><br />";
    
// fin usuario SI logeado
}  else {
   echo 
"<a href='" $phpbb_root_path "profile.php?mode=register'>Registro</a>";
//fin usario NO logueado
?> 
<!-- fin MENU -->
</td><td width="100%">
<!-- inicio CONTENIDO -->
y en despues del page_tail os acordais de añadir el fin de la tabla
Código PHP:
echo "</td></tr></table>"
Quiero agradecer su gran Ayuda a Yoseman y sobretodo, deciros que lo unico que pretendo con este post es informar y ayudar a los demas usuarios a traves de mi experiencia.

espero que algun lector, se mucho mas experimentado que yo y encuentre alguna solución!!!

Xavi
__________________
http://www.bezerik.net
Atención:
- Antes de preguntar lee las FAQ , los Tutoriales, utiliza el Motor de Búsquedas o revisa en Google
- Plantea tus dudas correctamente para que lo demás puedan entenderte. ¿Como hacer preguntas inteligentes?
- Evita colocar títulos como "Ayudaaaa" "Urgenteeeee" porque degradan el motor de búsquedas y resultan desagradables.
  #37 (permalink)  
Antiguo 13/02/2005, 12:36
 
Fecha de Ingreso: febrero-2005
Mensajes: 1
Antigüedad: 19 años, 2 meses
Puntos: 0
Estoy intentando entrar en phpBB desde una página externa.

Inckuyo el siguiente código en mi página:

<?

define('IN_PHPBB', true);
$phpbb_root_path = '../';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//
//
// Start output of page
//

//include($phpbb_root_path . 'includes/page_header.'.$phpEx);


if(!$userdata['session_logged_in'])
{
echo 'Please Login:';

?>
<form name="form1" method="post" action="forum/login.php">
<p>User:<br><input name="username" type="text" id="username" size="12">
Password:<br><input name="password" type="password" id="password" size="12" maxlength="32"></p>
<p><input type="submit" name="Submit" value="Enviar"></p>
</form>
<?
}
else
{
echo 'Hello '.$userdata['username'];
}

//include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>
Lo que intento es que los usuarios del foro puedan logearse desde index.php, siendo la estructura:

Website/index.php
Website/forum

Gracias.
  #38 (permalink)  
Antiguo 15/02/2005, 05:17
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona (spain)
Mensajes: 56
Antigüedad: 19 años, 3 meses
Puntos: 0
hola!

por favor, presta mas atencion a los anterirores post de este topico,
esta explicado justo lo que necesitas
__________________
http://www.bezerik.net
Atención:
- Antes de preguntar lee las FAQ , los Tutoriales, utiliza el Motor de Búsquedas o revisa en Google
- Plantea tus dudas correctamente para que lo demás puedan entenderte. ¿Como hacer preguntas inteligentes?
- Evita colocar títulos como "Ayudaaaa" "Urgenteeeee" porque degradan el motor de búsquedas y resultan desagradables.
  #39 (permalink)  
Antiguo 28/02/2005, 15:59
Avatar de centinela77  
Fecha de Ingreso: diciembre-2004
Ubicación: León
Mensajes: 143
Antigüedad: 19 años, 4 meses
Puntos: 1
Enhorabuena a todos los que habeis hecho posible este post .... pero me ha surgido un pequeño problema al implementarlo en esta web WEB ...

he seguido todos los pasos que habeis indicado y deciros que funciona a la perfección salvo que me loguea al segundo intento y no al primero. LLevo 3 horas con ello y no doy con la solución, agradecería si a alguno de vosotros se os ocurre alguna idea o si ya os ha sucedido antes y sabeis el porqué del problema.

Gracias de antemano.
  #40 (permalink)  
Antiguo 28/02/2005, 17:39
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
ostia otro leonés friki jajajajaja, yo tambien soy de león centinela. por cierto me gusta mucho el diseño de tu web.

bueno y respecto al tema de lo que te ocurre con el sistema de login, a mi me ocurria lo mismo al principio y lo que he hecho ha sido quitar la parte del script referente a las cookies dejandolo asi:

Código PHP:
<? 
define
('IN_PHPBB'true); 
$phpbb_root_path 'foros/'//PATH DEL FORO RESPECTO DEL SCRIPT 
include($phpbb_root_path 

'extension.inc'); 
include(
$phpbb_root_path 'common.'.$phpEx); 
$userdata session_pagestart($user_ipPAGE_INDEX); 
init_userprefs($userdata); 
?>
asi me funciona sin ningún problema.

un saludo.

Última edición por MindPaniC; 28/02/2005 a las 18:50
  #41 (permalink)  
Antiguo 28/02/2005, 18:56
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
por cierto Centinela me gustaria que me explicases como es el script que utilizas en tu web para que si un usuario no esta registrado muestre el espacio para loguinearse (¿aun no eres un usuario registrado?) y luego al loginearse muestre lo de: bienvenido [usuario], y si tienes o no tienes mensajes nuevos.

Un saludo y gracias anticipadas.
  #42 (permalink)  
Antiguo 28/02/2005, 19:16
Avatar de centinela77  
Fecha de Ingreso: diciembre-2004
Ubicación: León
Mensajes: 143
Antigüedad: 19 años, 4 meses
Puntos: 1
este es el archivo que muestra el formulario de acceso y permite el login desde la pagina principal:

Código PHP:

<?

if ($userdata['user_id']!=-1) {

    echo 
"<div id=\"meo-login\">";

    if ( 
$userdata['user_new_privmsg'] ) {
       
$l_message_new = ( $userdata['user_new_privmsg'] == ) ? $lang['New_pm'] : $lang['New_pms'];
       
$l_privmsgs_text sprintf($l_message_new$userdata['user_new_privmsg']);
    } else {
       
$l_privmsgs_text $lang['No_new_pm'];
    }

    echo 
"Bienvenido <strong>" $userdata['username'] . "</strong>.<br /><br />";

    echo 
"<a href='" $phpbb_root_path "profile.php?mode=editprofile' class=\"enlace2\">Su perfil personal</a><br />";
    echo 
"<a href='" $phpbb_root_path "privmsg.php?folder=inbox'  class=\"enlace2\">" $l_privmsgs_text "</a><br />";
    echo 
"Kinships: <a href=\"index.php?accion=meoesp_kinships\" class=\"enlace2\">Gestionar</a> - ";
    echo 
"<a href=\"index.php?accion=meoesp_kinship_peticion\" class=\"enlace2\">Peticiónes</a><br />";
    echo 
'<a href='$phpbb_root_path.'login.'.$phpEx.'?logout=true&sid=' $userdata['session_id'].'&redirect='.$volver.' class=enlace2>Salir ['.$userdata['username'].']</a><br />';

    echo 
"</div>";

} else {
    
?>

      <div id="meo-login">

      <form name="form1" method="post" action="foro/login.php" style="display: inline">
      <br />
      Usuario: <input name="username" type="text" id="username" size="12"><br />
      Clave: <input name="password" type="password" id="password" size="12" maxlength="32"><br />
      <input type="submit" name="login" class="mainoption" value="Login" />
      <input type="hidden" name="redirect" value="../index.php" />
      <br /> <a href="http://www.midominio.com/foro/profile.php?mode=register" class="enlace2"> ¿ Aún no estás registrado ?</a>
      </form>

      </div>


<?
}
?>
y este es el otro archivo que ya se ha mencionado en los mensajes anteriores que se debe de llamar al comienzo del script.

Código PHP:

$volver 
"../index.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'];

gracias de antemano ..

Última edición por centinela77; 06/03/2005 a las 06:05
  #43 (permalink)  
Antiguo 08/03/2005, 04:34
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona (spain)
Mensajes: 56
Antigüedad: 19 años, 3 meses
Puntos: 0
eis!!!!

ya veo que has solucionado el problema centinela77

por cierto, muy majo el estilo de tu web!!!
__________________
http://www.bezerik.net
Atención:
- Antes de preguntar lee las FAQ , los Tutoriales, utiliza el Motor de Búsquedas o revisa en Google
- Plantea tus dudas correctamente para que lo demás puedan entenderte. ¿Como hacer preguntas inteligentes?
- Evita colocar títulos como "Ayudaaaa" "Urgenteeeee" porque degradan el motor de búsquedas y resultan desagradables.
  #44 (permalink)  
Antiguo 08/03/2005, 13:26
 
Fecha de Ingreso: febrero-2005
Mensajes: 11
Antigüedad: 19 años, 3 meses
Puntos: 0
yo m sigo preguntando como poner algo parecido al quien esta online del phpbb en el site, asi como el login y todo eso, los stats tb se podran no?
  #45 (permalink)  
Antiguo 19/03/2005, 22:12
 
Fecha de Ingreso: marzo-2005
Mensajes: 70
Antigüedad: 19 años, 1 mes
Puntos: 0
Hola

Muy bueno en realidad!! Felicitaciones y agradeciientos para quienes lo han hecho posible.

Jeje, bueno, yo tengo un problemita, espero que me puedan ayudar. =P

El logout, avatar, nick aparecen muy bien, pero en la parte superior me muestra este error:

Warning: Cannot modify header information - headers already sent by (output started at /home/~grav/public_html/Untitled-1.php:6) in /home/mr000035/public_html/Foro/includes/sessions.php on line 305

Warning: Cannot modify header information - headers already sent by (output started at /home/~grav/public_html/Untitled-1.php:6) in /home/mr000035/public_html/Foro/includes/sessions.php on line 306

Eso es lo que me muestra. Por que pasa esto? Como lo soluciono?

Gracias y saludos a todos.

Última edición por [DARK_RULO]; 19/03/2005 a las 22:35
  #46 (permalink)  
Antiguo 22/03/2005, 01:29
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 4 meses
Puntos: 5
Es un problema de cabeceras ya enviadas, una posible solución es encabezar el script que genera tu página con lo siguiente:

Código PHP:
<?
ob_start
();
?>
y poner al final del todo

Código PHP:
ob_end_flush(); 
Salu2 ;) (creo que debería de funcionar)
__________________
[+]
[+]
  #47 (permalink)  
Antiguo 23/03/2005, 18:21
 
Fecha de Ingreso: marzo-2005
Mensajes: 70
Antigüedad: 19 años, 1 mes
Puntos: 0
Problema resuelto!! Muchisimas gracias por la info yoseman!! =D

SALU-2.
  #48 (permalink)  
Antiguo 24/03/2005, 06:02
 
Fecha de Ingreso: marzo-2005
Mensajes: 65
Antigüedad: 19 años, 2 meses
Puntos: 0
hola a to2
me está siendo muy útil este script, lo que pasa es que no logro que me salga en la página. creo que lo he puesto bien, siguiendo vuestras indicaciones, porque no tengo ni idea de php ni ná. Si alguien pudiera poner el script completo, con todas las modificaiones que habéis comentado me sería de gran ayuda.

Aparte me sale un mensaje de error parecido al de DARK RULO, solo que no me sale nada del avatar ni nada, no me sale el script. Simplemete me sale ésto

Código:
Warning: Cannot modify header information - headers already sent by (output started at /data/members/free/tripod/es/e/n/o/enoyx/htdocs/index2.php:9) in /data/members/free/tripod/es/e/n/o/enoyx/htdocs/PHPbb/phpBB2/includes/sessions.php on line 188

Warning: Cannot modify header information - headers already sent by (output started at /data/members/free/tripod/es/e/n/o/enoyx/htdocs/index2.php:9) in /data/members/free/tripod/es/e/n/o/enoyx/htdocs/PHPbb/phpBB2/includes/sessions.php on line 189
He intentado poner la solución de yoseman, pero no la entiendo bien.

Gracias adelantadas
  #49 (permalink)  
Antiguo 24/03/2005, 17:07
 
Fecha de Ingreso: marzo-2005
Mensajes: 65
Antigüedad: 19 años, 2 meses
Puntos: 0
Hola de nuevo

He conseguido que me salga el formulario y que me "reconozca" pero no que me loguee. El avatar tampoco me sale cuando me "reconoce" y además me sale un error similar al de DARK RULO, el de las cabeceras, que mecioné en el anterior post.

Cuando no me reconoce, me pone el mensaje "Bienvenido Anónimo" y el formulario, que al rellenarlo y enviarlo, me envía hacia la página de error 404.

¿Qué pasa? ¿También tengo que cambiar las rutas de los avatars?

Acabo de descubrir que me loguea cunado le sale, unas veces a la 3ª, actualizando, etc...

Podéis comprobarlo en http://usuarios.lycos.es/enoyx/index2.php
Usuario: Invitado
Contraseña: Invitado

A ver si me lo podéis solucionar, muchíiiisimas gracias a todos los que estáis colaborando!!!
  #50 (permalink)  
Antiguo 24/03/2005, 17:25
 
Fecha de Ingreso: marzo-2005
Mensajes: 11
Antigüedad: 19 años, 2 meses
Puntos: 0
Perdona, un fallo!

Alguien podria decirme porque cuando pongo este codigo:
<?
$volver = "../comprovar.php";
define('IN_PHPBB', true);
$phpbb_root_path = 'phpBB2/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);

?>


Intento ir a alguna seccion y no me deja, me envia siempre a la sección por defecto, o errónea; Notícias.
A las secciónes se va...: home.php?sec=noticias
Asi con tadas las sec. Intenté canvia r la variable "sec" por otra, pensando que quizás se cruzaba con alguna del phpBB, pero no.
  #51 (permalink)  
Antiguo 24/03/2005, 20:38
 
Fecha de Ingreso: diciembre-2003
Mensajes: 237
Antigüedad: 20 años, 4 meses
Puntos: 4
eiS HOLA!!!
SI TENGO UN FORO Phpbb2 y kiero k los usuarios phplinks puedan utilizzar el mismo usuario y contraseña q podria haceR? sirve todo lo q han explicado anteriormente? q archivos tendria q modificar? mcuhas gracias. (Esk soy muy novatillo) ;)
  #52 (permalink)  
Antiguo 25/03/2005, 06:47
 
Fecha de Ingreso: diciembre-2003
Mensajes: 237
Antigüedad: 20 años, 4 meses
Puntos: 4
:( :( :( :( :(
  #53 (permalink)  
Antiguo 25/03/2005, 07:14
 
Fecha de Ingreso: abril-2004
Mensajes: 49
Antigüedad: 20 años
Puntos: 1
bueno primero felicitaciones por llevar adelante estos scripts, son muy útiles y me van a servir más de lo que esperaba.
ahora, yo quisiera saber cuál podría ser el código para que apareza la lista de usuarios conectados, como en el index del foro. sé que es fácil porque sería un simple copiar y pegar del index, pero soy novato en editar phpbb y quisiera saber si me pueden ayudar en esto.
gracias, sigan así muchachos. :)
__________________
OS: Win 2k pc: duron 1800+ 384mb ram dimm
mother: pcchips.. creo
3d: geforce 4 fx5200 128mb
audio: philips seismic edge psc705
  #54 (permalink)  
Antiguo 25/03/2005, 09:36
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 4 meses
Puntos: 5
Bueno, quisiera aclarar que ése código de momento lo único que hace es loguear al usuario desde otra página que no sea el foro. Y he añadido lo de los usuarios online cogiéndolo del includes/page_header.php

O sea, quedaría algo como lo que veis aquí:

http://elotrositio.tuarrobanet.com/

Y no hay mucho que configurar simplemente la variable $phpbb_root_path y la variable $volver.

Respecto de la variable $phpbb_root_path, la definí evaluando el directorio dónde se ejecuta el script por cuestiones de portablidad, es decir, para que si alguién ponía el script en el directorio del foro funcionase tambien. Pero si lo vais a poner fuera del foro siempre, basta con poner:

$phpbb_root_path="directorio_de_mi_foro/"; <-si el foro está en un directorio
$phpbb_root_path="./"; <-si el foro está en el mismo directorio de la web

y en $volver hay que poner:

$volver="../index.php"; <- si el foro esta en un directorio por debajo de la web
$volver="./index.php"; <- si el foro está en el mismo directorio que la web
Teniedo en cuenta que no teneis porque volver al índice de la web, podeis volver a la dirección que querais.

Lo siento pero no puedo ayudaros ahora muchos más porque tengo, voy a poner mi código por si a alguién le sirve(lo pongo en un mensaje aparte que me da error de mensaje demasiado largo):



Os recomendaría por otra parte y con toda mi buena intención que cuando posteeis un problema, intenteis acompañarlo de vuestro script y sobre todo si no entendeis la definición de las variables $phpbb_root_path y $volver, pongais la estructura de directorios dónde está el foro y la web, para que se os pueda ayudar...

Salu2 ;) ( a ver si hay suerte )
__________________
[+]
[+]

Última edición por yoseman; 25/03/2005 a las 09:39
  #55 (permalink)  
Antiguo 25/03/2005, 09:39
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 4 meses
Puntos: 5
Código PHP:
<?
$volver
="../index.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'];
}
// determinamos si cookie activada sino propagamos sid por url
   
if ( !(isset($HTTP_COOKIE_VARS[$cookiename '_sid']) || isset($HTTP_COOKIE_VARS[$cookiename '_data'])) )
   {
   
output_add_rewrite_var('sid'$userdata['session_id']);
   }
 
//
// Generate logged in/logged out status
//
if ( $userdata['session_logged_in'] )
{
    
$u_login_logout 'login.'.$phpEx.'?logout=true&amp;sid=' $userdata['session_id'];
    
$l_login_logout $lang['Logout'] . ' [ ' $userdata['username'] . ' ]';
}
else
{
    
$u_login_logout 'login.'.$phpEx;
    
$l_login_logout $lang['Login'];
}

$s_last_visit = ( $userdata['session_logged_in'] ) ? create_date($board_config['default_dateformat'], $userdata['user_lastvisit'], $board_config['board_timezone']) : '';

//
// Get basic (usernames + totals) online
// situation
//
$logged_visible_online 0;
$logged_hidden_online 0;
$guests_online 0;
$online_userlist '';
$l_online_users '';

    
$user_forum_sql = ( !empty($forum_id) ) ? "AND s.session_page = " intval($forum_id) : '';
    
$sql "SELECT u.username, u.user_id, u.user_allow_viewonline, u.user_level, s.session_logged_in, s.session_ip
        FROM "
.USERS_TABLE." u, ".SESSIONS_TABLE." s
        WHERE u.user_id = s.session_user_id
            AND s.session_time >= "
.( time() - 300 ) . "
            $user_forum_sql
        ORDER BY u.username ASC, s.session_ip ASC"
;
    if( !(
$result $db->sql_query($sql)) )
    {
        
message_die(GENERAL_ERROR'Could not obtain user/online information'''__LINE____FILE__$sql);
    }

    
$userlist_ary = array();
    
$userlist_visible = array();

    
$prev_user_id 0;
    
$prev_user_ip $prev_session_ip '';

    while( 
$row $db->sql_fetchrow($result) )
    {
        
// User is logged in and therefor not a guest
        
if ( $row['session_logged_in'] )
        {
            
// Skip multiple sessions for one user
            
if ( $row['user_id'] != $prev_user_id )
            {
                
$style_color '';
                if ( 
$row['user_level'] == ADMIN )
                {
                    
$row['username'] = '<b>' $row['username'] . '</b>';
                    
$style_color 'style="color:#' $theme['fontcolor3'] . '"';
                }
                else if ( 
$row['user_level'] == MOD )
                {
                    
$row['username'] = '<b>' $row['username'] . '</b>';
                    
$style_color 'style="color:#' $theme['fontcolor2'] . '"';
                }

                if ( 
$row['user_allow_viewonline'] )
                {
                    
$user_online_link '<a href="' $phpbb_root_path.append_sid("profile.$phpEx?mode=viewprofile&amp;" POST_USERS_URL "=" $row['user_id']) . '"' $style_color .'>' $row['username'] . '</a>';
                    
$logged_visible_online++;
                }
                else
                {
                    
$user_online_link '<a href="' $phpbb_root_path.append_sid("profile.$phpEx?mode=viewprofile&amp;" POST_USERS_URL "=" $row['user_id']) . '"' $style_color .'><i>' $row['username'] . '</i></a>';
                    
$logged_hidden_online++;
                }

                if ( 
$row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN )
                {
                    
$online_userlist .= ( $online_userlist != '' ) ? (', ' ."<img src=\"./usuario1.gif\">" .$user_online_link) : ("<img src=\"./usuario1.gif\">" .$user_online_link);
                }
            }

            
$prev_user_id $row['user_id'];
        }
        else
        {
            
// Skip multiple sessions for one user
            
if ( $row['session_ip'] != $prev_session_ip )
            {
                
$guests_online++;
            }
        }

        
$prev_session_ip $row['session_ip'];
    }
    
$db->sql_freeresult($result);

    if ( empty(
$online_userlist) )
    {
        
$online_userlist $lang['None'];
    }
    
$online_userlist = ( ( isset($forum_id) ) ? $lang['Browsing_forum'] : $lang['Registered_users'] ) . ' ' $online_userlist;

    
$total_online_users $logged_visible_online $logged_hidden_online $guests_online;

    if ( 
$total_online_users $board_config['record_online_users'])
    {
        
$board_config['record_online_users'] = $total_online_users;
        
$board_config['record_online_date'] = time();

        
$sql "UPDATE " CONFIG_TABLE "
            SET config_value = '$total_online_users'
            WHERE config_name = 'record_online_users'"
;
        if ( !
$db->sql_query($sql) )
        {
            
message_die(GENERAL_ERROR'Could not update online user record (nr of users)'''__LINE____FILE__$sql);
        }

        
$sql "UPDATE " CONFIG_TABLE "
            SET config_value = '" 
$board_config['record_online_date'] . "'
            WHERE config_name = 'record_online_date'"
;
        if ( !
$db->sql_query($sql) )
        {
            
message_die(GENERAL_ERROR'Could not update online user record (date)'''__LINE____FILE__$sql);
        }
    }

    if ( 
$total_online_users == )
    {
        
$l_t_user_s $lang['Online_users_zero_total'];
    }
    else if ( 
$total_online_users == )
    {
        
$l_t_user_s $lang['Online_user_total'];
    }
    else
    {
        
$l_t_user_s $lang['Online_users_total'];
    }

    if ( 
$logged_visible_online == )
    {
        
$l_r_user_s $lang['Reg_users_zero_total'];
    }
    else if ( 
$logged_visible_online == )
    {
        
$l_r_user_s $lang['Reg_user_total'];
    }
    else
    {
        
$l_r_user_s $lang['Reg_users_total'];
    }

    if ( 
$logged_hidden_online == )
    {
        
$l_h_user_s $lang['Hidden_users_zero_total'];
    }
    else if ( 
$logged_hidden_online == )
    {
        
$l_h_user_s $lang['Hidden_user_total'];
    }
    else
    {
        
$l_h_user_s $lang['Hidden_users_total'];
    }

    if ( 
$guests_online == )
    {
        
$l_g_user_s $lang['Guest_users_zero_total'];
    }
    else if ( 
$guests_online == )
    {
        
$l_g_user_s $lang['Guest_user_total'];
    }
    else
    {
        
$l_g_user_s $lang['Guest_users_total'];
    }

    
$l_online_users sprintf($l_t_user_s$total_online_users);
    
$l_online_users .= sprintf($l_r_user_s$logged_visible_online);
    
$l_online_users .= sprintf($l_h_user_s$logged_hidden_online);
    
$l_online_users .= sprintf($l_g_user_s$guests_online);

   
//determinamos si usuario logueado para mostrar en link login o logout
$log_in_out=( $userdata['session_logged_in'] ) ? ('<a href="'.$phpbb_root_path.'login.'.$phpEx.'?logout=true&sid=' $userdata['session_id'].'&redirect='.$volver.'">LOGOUT  ['.$userdata['username'].']</a>') : ('LOGIN');
// si usuario logueado mostramos su avatar
if ($userdata['user_id']!=-1)
{
switch (
$userdata['user_avatar_type'])
{
case 
$ruta_de_avatar '' ;break;
case 
$ruta_de_avatar "<img src=\"" $phpbb_root_path .$board_config['avatar_path'] . '/' $userdata['user_avatar'] . "\">";break;
case 
$ruta_de_avatar =  "<img src=\"" .$userdata['user_avatar'] . "\" >";break;
case 
$ruta_de_avatar =  "<img src=\"" $phpbb_root_path.$board_config['avatar_gallery_path'] . '/' $userdata['user_avatar'] . "\" >";break;
}
$log_in_out .= "<div align=\"center\">" $ruta_de_avatar "<br /><b>" $userdata['username'] . "</b></div>";
}
else {
$log_in_out .="<div align=\"center\"><b>Usuario anónimo</b></div>";
}
?>
<div align="center">

<?
print $log_in_out."<br /><br /><br />";
if (!
$userdata['session_logged_in'])
{
?>
<form action="<?=$phpbb_root_path?>login.php" method="post">
<input type="hidden" name="redirect" value="<?=$volver?>?sid=<?=$userdata['session_id']?>">
Usuario:&nbsp;<input type="text" name="username" size="10" /><br>
Contrase&ntilde;a:&nbsp;<input type="password" name="password" size="10" maxlength="32" /><br />
&nbsp;&nbsp; &nbsp;&nbsp;Entrar automáticamente en cada visita
      <input class="text" type="checkbox" name="autologin" />

      &nbsp;&nbsp;&nbsp;
      <input type="submit" class="mainoption" name="login" value="Login" />
</form>
<a href="<?=$phpbb_root_path?>profile.php?mode=register">Registrarse</a>
</div>
<?}
else
{

        
$sql mysql_query("SELECT g.group_id, g.group_name, g.group_type, ug.user_pending
            FROM " 
GROUPS_TABLE " g, " USER_GROUP_TABLE " ug
            WHERE ug.user_id = " 
$userdata['user_id'] . "  
                AND ug.group_id = g.group_id
                AND g.group_single_user <> " 
TRUE "
            ORDER BY g.group_name, ug.user_id"
);
$cont=1;
while(
$row=mysql_fetch_array($sql))
$grupos.=" <b>".$row['group_name']."</b>,";
if (
mysql_num_rows($sql)>0) print "perteneces a los siguientes grupos: "$grupos;
if ( 
$userdata['user_new_privmsg'] )
    {
    
$l_message_new = ( $userdata['user_new_privmsg'] == ) ? $lang['New_pm'] : $lang['New_pms'];
    
$l_privmsgs_text sprintf($l_message_new$userdata['user_new_privmsg']);
    }
else 
    {
    
$l_privmsgs_text $lang['No_new_pm'];
    }
?>
<br>
<a href="<?php echo $phpbb_root_path ?>profile.php?mode=editprofile" >Perfil</a>

<a href="<?php echo $phpbb_root_path ?>privmsg.php?folder=inbox"><?php echo $l_privmsgs_text ?></a> <?
}
?>
<br>--------------------<br>
<br><a href="<?=$phpbb_root_path?>index2.php">foro</a><br>
<?
print $l_online_users."<br>".$online_userlist;?>
__________________
[+]
[+]
  #56 (permalink)  
Antiguo 25/03/2005, 09:46
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 4 meses
Puntos: 5
Respecto de los problemas de Headers already sents, se trata de un problema cómo dije de cabeceras ya enviadas, y se produce, porque NO SE TIENE QUE ENVIAR NINGUN CÓDIGO NI CARACTER NI NADA al navegador antes de este script.

Es por el uso de sesiones, cuando usamos sesiones(este caso) estamos obligando a que se envien unas cabeceras especiales con una serie de datos, pero el hecho de escribir algo antes de iniciar sesión implica que ya se envien esas cabeceras y por eso da error.

Pero hay una solución, y es precisamente la que proponía que lo que hace es crear una especie de buffer de todo lo que se manda al navegador, y se activa encabezando la página con:
Código PHP:
<?
ob_start
();
?>
Y terminando con
Código PHP:
ob_en_flush(); 
De esta forma nos aseguramos que php guarda en ése buffer hasta que vea la instrucción de vaciar el buffer todo el contenido y por eso aunque escribamos antes de iniciar sesión, tanto da, ya que en realidad php no lo manda al navegador.

No sé si me he explicado bien, pero es más o menos eso.

Salu2 ;)
__________________
[+]
[+]
  #57 (permalink)  
Antiguo 25/03/2005, 17:49
 
Fecha de Ingreso: marzo-2005
Mensajes: 11
Antigüedad: 19 años, 2 meses
Puntos: 0
Hola!
Supongo Yoseman que tambien lo dices en general :S.
Quizas puedas, o puedan, ayudarme. _:(

Cuando encabezo:
<?
$volver = "../comprovar.php";
define('IN_PHPBB', true);
$phpbb_root_path = 'phpBB2/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);

if ( !(isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) || isset($HTTP_COOKIE_VARS[$cookiename . '_data'])) )
{
output_add_rewrite_var('sid', $userdata['session_id']);
}
?>


No me va a ninguna sección, el codigo de las secciónes es este:
<?
if(!$sec){
include("sec/noticias/noticias.php");
}else{ if(file_exists("sec/$sec/$sec.php")) {
include "sec/$sec/$sec.php";
}else { include("sec/noticias/noticias.php");}

}
?>
I el link por ejemplo de una sec. es este <a href=?sec=videos>Videos</a>
Lo entiendeis, no?
Pues si quito el encabezado que he dixo me va a las secciones, pero cuando lo pongo no me va a ninguna, como ya dije, me va a la que hay por defecto o errónea; noticias. Aunque logearme si que logea bien, pero claro, no me va a ninguna secion.
Esta es la web: thaliaschannel.wwwpuntocom.com

Ya no se que mas deciros :S. Haber si podeis ayudarme pliss.

Última edición por Ark-^; 25/03/2005 a las 17:50
  #58 (permalink)  
Antiguo 26/03/2005, 18:13
 
Fecha de Ingreso: marzo-2005
Mensajes: 11
Antigüedad: 19 años, 2 meses
Puntos: 0
Ya esta solucionado!! Joer.. no le veia solucion V_V pero ya esta! :D
  #59 (permalink)  
Antiguo 27/03/2005, 08:00
 
Fecha de Ingreso: marzo-2005
Mensajes: 65
Antigüedad: 19 años, 2 meses
Puntos: 0
Bezerik, he visto en tu página que algunas secciones están restringidas si no te logeas;
¿qué script has usado? yo ya he puesto el script de logeo, sólo quiero tu modificación, si tú quieres claro

gracias
  #60 (permalink)  
Antiguo 27/03/2005, 15:19
 
Fecha de Ingreso: julio-2004
Ubicación: Barcelona
Mensajes: 118
Antigüedad: 19 años, 9 meses
Puntos: 0
Ya que estáis puestos podríais poner el script en un archivo para descargar.. XD

Sería más cómodo :P porqué está todo explicado bastante disperso
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado

SíEste tema le ha gustado a 7 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 12:11.