Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/04/2012, 12:19
freddie_alvarez
 
Fecha de Ingreso: diciembre-2011
Ubicación: Lima
Mensajes: 2
Antigüedad: 12 años, 4 meses
Puntos: 0
Pregunta error en "conexion.php" sistema de registro

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.