Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/12/2009, 01:08
mayver
 
Fecha de Ingreso: abril-2009
Mensajes: 5
Antigüedad: 15 años, 1 mes
Puntos: 0
Warning: session_start() [function.session-start]: Cannot send session cache limiter

Hola a todos :D

Después de leer infinidad de soluciones posibles y de intentar con cada una de las posibles soluciones y desafortunadamente no encontrar solución posible solicito su ayuda.

El problema es el siguiente:

Cuando inicio sesión en mi aplicación ya en el servidor 'verdadero' obtengo el siguiente error y después de éste el contenido de la página:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/elhadiya/public_html/Bookcase/aplicacion/home/index.php:1) in /home/elhadiya/public_html/Bookcase/seguridad.php on line 7

Les dejo mi código del archivo seguridad.php

Código PHP:
<?php
// Cambiamos la configuracion del php.ini respecto a propagacion de la sesion en cookies
ini_set("session.use_only_cookies","1");
ini_set("session.use_trans_sid","0");
// Iniciamos sesion.
session_name("sesionIniciada");
session_start();
// Cambiamos el parametro de duracion a la cookie de la sesion
session_set_cookie_params(0"/"$HTTP_SERVER_VARS["HTTP_HOST"], 0);
// Comprobamos que el usuario este autentificado.
if ($_SESSION["autentificado"] != "SI") {
    
// si no esta logueado lo envio a la pagina de acceso
    
header("Location: ../../index.php");
    exit();
} else {
    
// calculamos el tiempo transcurrido desde su ultimo acceso
    
$fechaGuardada $_SESSION["ultimoAcceso"];
    
$fechaActual date("Y-n-j H:i:s");
    
$tiempoTranscurrido = (strtotime($fechaActual) - strtotime($fechaGuardada));
    
// comparamos el tiempo transcurrido
    
if ($tiempoTranscurrido >= 300) {
        
// si pasaron 5 minutos o mas de inactividad
        // elimino todas las variables de sesion
        
session_unset();
        
session_destroy();
        
header("Location: ../../index.php");
    }else {
        
// actualizamos la fecha de la sesion
        
$_SESSION["ultimoAcceso"] = $fechaActual;
    }
}
?>
Y parte del código donde obtengo ese error (index.php):
Código HTML:
<?php include("../../seguridad.php"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
También les dejo el archivo donde hago la autentificación de los usuarios:
Código PHP:
<?php
include ("conexion.php");
if (isset(
$_POST['acceso'])) {
    
// Comprobacion del envio del nombre de usuario y password
    
$username $_POST['user'];
    
$password $_POST['password'];
            
    
// Buscamos al usuario en la BD para validar los datos.
    
$query "SELECT * FROM usuarios WHERE username = '".$username."' && password = '".$password."'";
            
    
$ejecucion_consulta mysql_query($query,$conexion) or die(mysql_error());
    
$usuarios_encontrados mysql_num_rows($ejecucion_consulta);
    
$rowsUsuarios mysql_fetch_array($ejecucion_consulta);    
    
    
// Cambiamos la configuración del php.ini respecto a propagación de la sesión en cookies
    
ini_set("session.use_only_cookies","1");
    
ini_set("session.use_trans_sid","0");
    
// Si el usuario y contraseña coinciden, debe regresar al menos un usuario.        
    
if ($usuarios_encontrados 0) {        
            
            
// Compruebo que tipo de usuario es y lo redirecciono
            
$tipo_usuario $rowsUsuarios['tipo'];
            if (
$tipo_usuario == 'administrador') {
                
// Asigno un nombre a la sesion para guardar diferentes datos
                
session_name("sesionIniciada");
                
session_start();
                
// Cambiamos el parámetro de duración a la cookie de la sesión
                
session_set_cookie_params(0"/"$HTTP_SERVER_VARS["HTTP_HOST"], 0);
                
$_SESSION["autentificado"]= "SI";
                
// Defino la fecha y hora de inicio de sesión en formato aaaa-mm-dd hh:mm:ss
                
$_SESSION["ultimoAcceso"]=date("Y-n-j H:i:s");
                
// Identifico el username del usuario
                
$_SESSION['nombre'] = $rowsUsuarios['nombre'];
                
// Redirecciono a la parte privada del sistema con todos los permisos.
                
header("Location: aplicacion/home/index.php");
            } else if (
$tipo_usuario == 'usuario') {
                
// Asigno un nombre a la sesion para guardar diferentes datos
                
session_name("sesionIniciada");
                
session_start();
                
$_SESSION["autentificado"]= "SI";
                
// Defino la fecha y hora de inicio de sesión en formato aaaa-mm-dd hh:mm:ss
                
$_SESSION["ultimoAcceso"]=date("Y-n-j H:i:s");
                
// Identifico el username del usuario
                
$_SESSION['nombre'] = $rowsUsuarios['nombre'];
                
// Redirecciono a la parte privada del sistema con permisos de lectura únicamente.
                
header("Location: consulta/home/index.php");
            }
    }else {
        
// Si no existe, le redirecciono a la página de inicio.
        
header("Location: index.php?datosinvalidos=si");
    }
    
mysql_close($conexion);
} else {
    
// Si no envio nada, le redirecciono a la página de inicio.
        
header("Location: index.php");
}
?>
Ojalá y me puedan orientar porque en mi servidor local no me muestra dicho error y lo más curioso es que uso el mismo archivo de seguridad para las demás páginas de la aplicación.

Ya he probado lo de espacios en blanco, codificación ANSII y nada.