Página 1 de 1

Probema con web y phpbb en session.php

Publicado: 05 Ene 2013, 14:38
por Hekaly
URL: http://www.infojuegos.org/foro/
Versión phpBB: 3.0.11
MODs Instalados: kiss_portal_engine_1_0_17
Plantilla(s) usada(s): olympus_2
Servidor: de pago, 1and1, hosting
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No

Buenas a todos.

Llevo dos dias dando palos de ciego con un problema en el archivo /include/session.php.

Empiezo desde cero.

Tengo una web de informativa de videojuegos en el que cada juego es una ficha. Entre que queria meter usuarios en la web y no quiero que me comenten en cada ficha aparte de otras cosas pense poner un foro en este caso phpbb 3.0.11 Es (descargado de aqui).

Una vez puesto el foro he instalado el mod "kiss_portal_engine_1_0_17" que aun tengo que configurar.
Me he puesto a intentar usar los usuarios que estan registrado del foro para poderlos registrar en mi web asi evitaria programar una sesion de usuarios e integraria web y foro.

El formulario de login lo tengo en el sidebar_derecha.php y esta es la parte que tengo para conectarme al foro.

Código: Seleccionar todo

<?php 
define('IN_PHPBB', true);
define('ROOT_PATH', "./foro");
$forumurl = 'http://infojuegos.org/foro/';
$newurl = 'http://infojuegos.org/bienvenido';
 
if (!defined('IN_PHPBB') || !defined('ROOT_PATH')) {
    exit();
}
$phpEx = substr(strrchr(__FILE__, '.'), 1);
//$phpEx = "php";

$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : ROOT_PATH . '/';
include($phpbb_root_path . 'common.php');
 
$user->session_begin();
$auth->acl($user->data);
 
$nombre_usuario=$user->data['username'];
?>
<?php if ($user->data['user_id'] == ANONYMOUS) {?>
<p>Nop registrado</p>
<?php } else { echo $nombre_usuario; }?>
Cuando actualiza la web me sale este error.

Código: Seleccionar todo

[phpBB Debug] PHP Warning: in file [ROOT]/includes/session.php on line 1041: Cannot modify header information - headers already sent by (output started at /homepages/27/d320419660/htdocs/infojuegos/index.php:11)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/session.php on line 1041: Cannot modify header information - headers already sent by (output started at /homepages/27/d320419660/htdocs/infojuegos/index.php:11)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/session.php on line 1041: Cannot modify header information - headers already sent by (output started at /homepages/27/d320419660/htdocs/infojuegos/index.php:11)
He estado investigando el archivo session.php y la linea que da error es la siguiente.

Código: Seleccionar todo

header('Set-Cookie: ' . $name_data . (($cookietime) ? '; expires=' . $expire : '') . '; path=' . $config['cookie_path'] . $domain . ((!$config['cookie_secure']) ? '' : '; secure') . '; HttpOnly', true);
Que segun he estado probando es la que te crea la cookie y mantiene la sesion (creo).
Para evitar ese error ma ha dado por cambiar el true por false o directamente comentarla, cosa que ya si me funciona el formulario, solo que al registrarme y mandarme a la web en el foro pierdo la sesion cosa que es normal y aparte si lo comento me da un errror en las lineas 4009 a 4012 creo de function.php

He estado mirando en google y he leido que puede ser por el tema del idioma, por un mod, la codificacion ponerla a UTF 8, entre otras cosas pero no me funciona nada, solo comentar esa linea cosa que luego no me guarda la sesion.

Como podría solucionar esto??? espero que me puedan ayudar, muchas gracias.

Un saludo.

P.D: Si nesesitais que ponga el codigo de algun archivo o tabla lo pongo o subi directamente el fichero.

Re: Probema con web y phpbb en session.php

Publicado: 06 Ene 2013, 18:25
por Alorse

Muevo el tema al foro oportuno

El error también suele salir cuando se tienen espacios o lineas en blanco antes del primer <?php, prueba mirando si es eso.

Re: Probema con web y phpbb en session.php

Publicado: 06 Ene 2013, 18:48
por towen
Creo que debe ser por el echo que usas y el html junto al php, ya que si se envía algún texto antes que las cabeceras da ese error.

Re: Probema con web y phpbb en session.php

Publicado: 07 Ene 2013, 14:42
por Hekaly
Buenas.

Gracias por responder.

He estado mirando si hay espacios despues y antes de <?php ?> y no hay ninguno, he mirado tambien el archivo session.php pero esta correcto.

En cuanto al echo he probado a quitarlo y dejarlo de esta manera.

Código: Seleccionar todo

<?php 
define('IN_PHPBB', true);
define('ROOT_PATH', "./foro");
$forumurl = 'http://infojuegos.org/foro/';
$newurl = 'http://infojuegos.org/bienvenido';
 
if (!defined('IN_PHPBB') || !defined('ROOT_PATH')) {
    exit();
}
$phpEx = substr(strrchr(__FILE__, '.'), 1);
//$phpEx = "php";

$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : ROOT_PATH . '/';
//include_once($phpbb_root_path . 'common.php');
include($phpbb_root_path . 'common.php');
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
 
$user->session_begin();
$auth->acl($user->data);
 
$nombre_usuario=$user->data['username'];?>
<?php if ($user->data['user_id'] == ANONYMOUS) {}?>
De esta manera tanto este registrado o no, no mostrara nada, pero sigue dandome el mismo error.

Yo creo que el problema deberia esta en el session.php. Podria ser que tanga alguna tabla de bbdd mal o la codificacion de la misma?? o el problema tenga que ser por el mod del portal?.

O tendria que probar a reinstalar phpbb de cero por si acaso?, aunque sospecho que me daria el mismo error.

Aun asi si quereis ver el codigo completo aqui os dejo mi sidebar_derecha.

Código: Seleccionar todo

<?php 
define('IN_PHPBB', true);
define('ROOT_PATH', "./foro");
$forumurl = 'http://infojuegos.org/foro/';
$newurl = 'http://infojuegos.org/bienvenido';
 
if (!defined('IN_PHPBB') || !defined('ROOT_PATH')) {
    exit();
}
$phpEx = substr(strrchr(__FILE__, '.'), 1);
//$phpEx = "php";

$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : ROOT_PATH . '/';
//include_once($phpbb_root_path . 'common.php');
include($phpbb_root_path . 'common.php');
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
 
$user->session_begin();
$auth->acl($user->data);
 
$nombre_usuario=$user->data['username'];?>


<style type="text/css">
form {
	margin: 5px auto;
}

/* search form 
-------------------------------------- */
.searchform {
	display: inline-block;
	zoom: 1; /* ie7 hack for display:inline-block */
	*display: inline;
	border: solid 1px #d2d2d2;
	padding: 3px 5px;
	
	-webkit-border-radius: 2em;
	-moz-border-radius: 2em;
	border-radius: 2em;

	-webkit-box-shadow: 0 1px 0px rgba(0,0,0,.1);
	-moz-box-shadow: 0 1px 0px rgba(0,0,0,.1);
	box-shadow: 0 1px 0px rgba(0,0,0,.1);

	background: #f1f1f1;
	background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#ededed));
	background: -moz-linear-gradient(top,  #fff,  #ededed);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#ededed'); /* ie7 */
	-ms-filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#ededed'); /* ie8 */
}
.searchform input {
	font: normal 12px/100% Arial, Helvetica, sans-serif;
}
.searchform .searchfield {
	background: #fff;
	padding: 6px 6px 6px 8px;
	width: 130px;
	border: solid 1px #bcbbbb;
	outline: none;

	-webkit-border-radius: 2em;
	-moz-border-radius: 2em;
	border-radius: 2em;

	-moz-box-shadow: inset 0 1px 2px rgba(0,0,0,.2);
	-webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.2);
	box-shadow: inset 0 1px 2px rgba(0,0,0,.2);
}
.searchform .searchbutton {
	color: #fff;
	border: solid 1px #494949;
	font-size: 11px;
	height: 27px;
	width: 27px;
	text-shadow: 0 1px 1px rgba(0,0,0,.6);

	-webkit-border-radius: 2em;
	-moz-border-radius: 2em;
	border-radius: 2em;

	background: #5f5f5f;
	background: -webkit-gradient(linear, left top, left bottom, from(#9e9e9e), to(#454545));
	background: -moz-linear-gradient(top,  #9e9e9e,  #454545);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#9e9e9e', endColorstr='#454545'); /* ie7 */
	-ms-filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#9e9e9e', endColorstr='#454545'); /* ie8 */
}
</style>


<div class="box left-menu" style="width:190px;">
<span class="box-header" style="width:190px;"><h3 style="text-align:center;margin:0;padding:0;">S&iacute;guenos</h3></span>
<table width="100" cellspacing="2px" cellpadding="1px">
 <tr>
  <td><a href="http://www.facebook.com/infojuegos.org" target="_blank"><img src="http://infojuegos.org/imagenes/iconos/facebook.png" width="50px" height="50px" alt="Facebook" /></a></td>
  <td><a href="https://twitter.com/Infojuegos2" target="_blank"><img src="http://infojuegos.org/imagenes/iconos/twitter.png" width="50px" height="50px" alt="Twitter" /></a></td>
  <td><a href="http://www.youtube.com/user/GuiasInfojuegos" target="_blank"><img src="http://infojuegos.org/imagenes/iconos/youtube.png" width="50px" height="50px" alt="Youtube" /></a></td>
 </tr>
</table>
</div>


<div class="box left-menu" style="width:190px;">
<span class="box-header" style="width:190px;"><h3 style="text-align:center;margin:0;padding:0;">Acceso</h3></span>
	<form action="<?php echo $forumurl; ?>ucp.php?mode=login" method="post">
		<input type="text" name="username" value="Usuario..." /><br />
		<input type="password" name="password" value="" /><br />
		<input type="checkbox" name="autologin" value="1" /> Recordar<br />
		<input type="hidden" name="redirect" value="<?php echo $newurl; ?>" />
		<input type="submit" name="login" value="Login" />
	</form>
		</br>
		<a href="<?php echo $forumurl; ?>ucp.php?mode=logout&sid=<?php echo $user->data['session_id']; ?>&redirect=<?php echo $newurl; ?>">Salir</a>
</div>


<div class="box left-menu" style="width:190px;">
<span class="box-header" style="width:190px;"><h3 style="text-align:center;margin:0;padding:0;">Buscador</h3></span>
	<form class="searchform" method='post' action='busqueda' name='formulario' enctype="multipart/form-data">
		<input class="searchfield" name="busqueda" type="text" value="Buscar juego..." onfocus="if (this.value == 'Buscar juego...') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Buscar juego...';}" />
		<input class="searchbutton" type="submit" value="Ir" />
	</form>
	<p><a style="margin-left:5px;font-size:12px;" href="http://infojuegos.org/busqueda"><b>Ir a opciones Avanzadas</b></a></p>
</div>

<div class="box left-menu" style="width:190px;">
<span class="box-header" style="width:190px;"><h3 style="text-align:center;margin:0;padding:0;">&Uacute;ltimas Noticias</h3></span>
		<p><a style="margin-left:5px;font-size:12px;" href="http://tinyurl.com/cd5uygg">1 Plantilla Trofeos PS3...</a></p>
		<p><a style="margin-left:5px;font-size:12px;" href="http://infojuegos.org/noticia/4/Primeras%20tres%20fichas%20de%20la%20Wii%20U">2 Primeras fichas de Wii U...</a></p>
		<p><a style="margin-left:5px;font-size:12px;" href="http://infojuegos.org/noticia/3/En%20posesi%C3%B3n%20de%20la%20Wii%20U%20y%20trofeos%20de%20PS3">3 En posesi&oacute;n de la Wii U...</a></p>
		<p><a style="margin-left:5px;font-size:12px;" href="http://infojuegos.org/noticia/2/Avances%20en%20Infojuegos%20y%20primeros%20juegos%20puestos">4 Avances en Info...</a></p>
		<p><a style="margin-left:5px;font-size:12px;" href="http://infojuegos.org/noticia/1/Comienza%20una%20nueva%20aventura">5 Comienza una nueva...</a></p>
</div>


<div class="box left-menu" style="width:190px;">
<span class="box-header" style="width:190px;"><h3 style="text-align:center;margin:0;padding:0;">Banner</h3></span>
<p style="padding:10px;"><img src="http://infojuegos.org/imagenes/banners/banner1.gif" style="max-width:150px;margin-left:10px;"/></p>
</div>
		  
		 

Re: Probema con web y phpbb en session.php

Publicado: 07 Ene 2013, 16:09
por invi
¿Tienes la cookie segura habilitada en el sitio?
Y otra cosa más, prueba poner unas lineas antes y después del error que menciona o cuelganos el archivo aqui a ver que se le puede echar un vistazo al session.php

Re: Probema con web y phpbb en session.php

Publicado: 07 Ene 2013, 17:08
por Alorse
No creo que sea el session.php, si así fuera todo el foro daría el error que se menciona, ya que dicho archivo se llama en todo lado, creo lo mismo que Kazekage, pueden ser los echo que aún quedan.
Creo que lo mejor seria que separaras todo el php y el html, si algo fíjate en la guía de Crear página personalizada

Re: Probema con web y phpbb en session.php

Publicado: 07 Ene 2013, 18:10
por Hekaly
session.txt
Archivo Session con extension txt
(79.62 KiB) Descargado 124 veces
Aquí dejo el archivo session.php tal y como lo tengo ahora.

Voy a probar el manual que dice Alorse.

Ah una cosita.

Antes de probar a poner el codigo en sidebar_derecha, hice una prueba muy simple ayudandome de un manual, quedando esto: http://infojuegos.org/usuario. pone mal aquellos usuarios que no estan registrados y una vez logueado pone bien

Y para tomar las reedirecciones a la web modifique (todo esta en dicho manual) dos lineas del archivo ucp.php. (que basicamente lo que hice fue comentar la original y abajo poner la corrección)

El manual lo saque dehttp://zenverse.net/session-integration ... ubdomains/ los cambios son a partir de "Redirect after login and logout".

Tambien os dejo el codigo completo que tengo en el formulario de prueba.

Código: Seleccionar todo

<?php
 
define('IN_PHPBB', true);
define('ROOT_PATH', "./foro");
$forumurl = 'http://infojuegos.org/foro/';
$newurl = 'http://infojuegos.org/usuario';
 
if (!defined('IN_PHPBB') || !defined('ROOT_PATH')) {
    exit();
}
 
$phpEx = "php";
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : ROOT_PATH . '/';
include($phpbb_root_path . 'common.' . $phpEx);
 
$user->session_begin();
$auth->acl($user->data);
 
?>
<?php if ($user->data['user_id'] == ANONYMOUS) { ?>
<p>Mal</p>
<?php } else { ?>
<p>Bien</p>
<?php } ?>
<form action="<?php echo $forumurl; ?>ucp.php?mode=login" method="post">
<input type="text" name="username" value="" /><br />
<input type="password" name="password" value="" /><br />
<input type="checkbox" name="autologin" value="1" /> Remember Me<br />
<input type="hidden" name="redirect" value="<?php echo $newurl; ?>" />
<input type="submit" name="login" value="Login" /> </form>
Not a member? <a href="<?php echo $forumurl; ?>ucp.php?mode=register">Register now</a>!
</br>
<a href="<?php echo $forumurl; ?>ucp.php?mode=logout&sid=<?php echo $user->data['session_id']; ?>&redirect=<?php echo $newurl; ?>">Log Out</a>
Asi tal cual me fuciona, aun con el espacio del <?php al inicio, sola da un error al redireccionar pero es por un fallo mio, aun asi el login va perfecto.

* No se si el cambio de ucp puede ser el problema que tengo en sidebar_derecha

Re: Probema con web y phpbb en session.php

Publicado: 07 Ene 2013, 18:29
por Hekaly
Un fallo mio.

He vuelto a mirar el codigo de session.php y si habia un espacio al final antes del cierre ?>

Al actualizar la web me siguen saliendo los errores pero tambiéen el formulario, dejo una captura.

Imagen

Lo curioso es que cuando me logueo al volver los errores desaparecen. Y si me salgo y actualizo la web. Los errores no me aparecen, al menos en mi Firefox, ie10 y opera.

Viendo eso y que la linea de error de session es con setcookie, que puede ser??, tendria que tener previamente en mi web algo que elimine todas las cookies de mi web o algo parecido??

Un saludo.