Hola, soy nuevo en este foro.
Un amigo me ayudo a crear un sistema de registro, cuando lo probé en el host, me sale este error (en el archivo "error_log"):
PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at /home/prueba/public_html/noticias.php:6) in /home/prueba/public_html/conexion.php on line 8
Lo que sucede en la web es que cuando inicio sesion y entro a otro enlace de la misma web, automaticamente se cierra mi cesion y tengo que volver a conectarme.
Este es el archivo conexion.php (line 8 es donde está el "session_start();")
<?php
$nombre_server[1] = 'localhost';
$nombre_user[2] = 'prueba';
$password[3] = 'XXXXX';
$nombre_db[4] = 'XXXXX';
$conectar = @mysql_connect($nombre_server[1],$nombre_user[2],$password[3]) or exit('Datos de conexion incorrectos.');
mysql_select_db($nombre_db[4]) or exit('No existe la base de datos.');
session_start();
/*Función que se encarga de eliminar codigo malicioso de las variables.*/
function limpiar($var)
{
$var = trim($var);
$var = htmlspecialchars($var);
$var = str_replace(chr(160),'',$var);
return $var;
}
/*Función que se encarga de validar el email de registro para que sea correcto.*/
function validar_email($email){
$mail_correcto = 0;
//compruebo unas cosas primeras
if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@"))
{
if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," ")))
{//miro si tiene caracter .
if (substr_count($email,".")>= 1)
{//obtengo la terminacion del dominio
$term_dom = substr(strrchr ($email, '.'),1);
//compruebo que la terminaci?n del dominio sea correcta
if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) )
{//compruebo que lo de antes del dominio sea correcto
$antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);
$caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
if ($caracter_ult != "@" && $caracter_ult != ".")
{
$mail_correcto = 1;
}
}
}
}
}
if ($mail_correcto)
return 1;
else
return 0;
}
/*Funcion que se encarga de validar si el usuario esta registrado en el sistema*/
function user_login()
{
if(!$_SESSION['id'])
{
exit ("Solo usuarios registrados, <a href='javascript:history.back(-1)'>Volver</a><br />");
}
}
?>
Por favor, quisiera que me ayuden con este pequeño problema.