Foros del Web » Programando para Internet » PHP »

Error: session_start() [function.session-start]: Cannot send session cache limiter -

Estas en el tema de Error: session_start() [function.session-start]: Cannot send session cache limiter - en el foro de PHP en Foros del Web. Hola! Tengo un sitio con varias páginas y especificamente en dos de ellas me aparece el error Código: Warning: session_start() [function.session-start]: Cannot send session cache ...
  #1 (permalink)  
Antiguo 03/03/2017, 17:58
 
Fecha de Ingreso: enero-2015
Mensajes: 48
Antigüedad: 9 años, 3 meses
Puntos: 0
Error: session_start() [function.session-start]: Cannot send session cache limiter -

Hola!
Tengo un sitio con varias páginas y especificamente en dos de ellas me aparece el error
Código:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent
Ya he revisado otros temas donde dice que puede ser algún espacio entre <?PHP o ?> pero aún verificando no me funciona. Les dejo el código php de una de esas páginas. Todo lo tengo antes del head

Código PHP:
<?php require('../Connections/escuela.php');?>
<?php
//initialize the session
if (!isset($_SESSION)) {
    
session_start();
}
// ** Logout the current user. **
$logoutAction $_SERVER['PHP_SELF']."?doLogout=true";
if ((isset(
$_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){
  
$logoutAction .="&"htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset(
$_GET['doLogout'])) &&($_GET['doLogout']=="true")){
  
//to fully log out a visitor we need to clear the session varialbles
  
$_SESSION['MM_Username'] = NULL;
  
$_SESSION['MM_UserGroup'] = NULL;
  
$_SESSION['PrevUrl'] = NULL;
  unset(
$_SESSION['MM_Username']);
  unset(
$_SESSION['MM_UserGroup']);
  unset(
$_SESSION['PrevUrl']);
  
$logoutGoTo "../admin/login.php";
  if (
$logoutGoTo) {
    
header("Location: $logoutGoTo");
    exit;
  }
}
?>
<?php
if (!isset($_SESSION)) {
  
session_start();
}
$MM_authorizedUsers "";
$MM_donotCheckaccess "true";
// *** Restrict Access To Page: Grant or deny access to this page
function isAuthorized($strUsers$strGroups$UserName$UserGroup) { 
  
// For security, start by assuming the visitor is NOT authorized. 
  
$isValid False
  
// When a visitor has logged into this site, the Session variable MM_Username set equal to their username. 
  // Therefore, we know that a user is NOT logged in if that Session variable is blank. 
  
if (!empty($UserName)) { 
    
// Besides being logged in, you may restrict access to only certain users based on an ID established when they login. 
    // Parse the strings into arrays. 
    
$arrUsers Explode(","$strUsers); 
    
$arrGroups Explode(","$strGroups); 
    if (
in_array($UserName$arrUsers)) { 
      
$isValid true
    } 
    
// Or, you may restrict access to only certain users based on their username. 
    
if (in_array($UserGroup$arrGroups)) { 
      
$isValid true
    } 
    if ((
$strUsers == "") && true) { 
      
$isValid true
    } 
  } 
  return 
$isValid
}
$MM_restrictGoTo "../admin/error.php";
if (!((isset(
$_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers$_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {   
  
$MM_qsChar "?";
  
$MM_referrer $_SERVER['PHP_SELF'];
  if (
strpos($MM_restrictGoTo"?")) $MM_qsChar "&";
  if (isset(
$QUERY_STRING) && strlen($QUERY_STRING) > 0
  
$MM_referrer .= "?" $QUERY_STRING;
  
$MM_restrictGoTo $MM_restrictGoTo$MM_qsChar "accesscheck=" urlencode($MM_referrer);
  
header("Location: "$MM_restrictGoTo); 
  exit;
}
?>
Gracias de antemano
  #2 (permalink)  
Antiguo 04/03/2017, 04:02
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Error: session_start() [function.session-start]: Cannot send session cach

Seguro que estas imprimiendo algo antes de session_start()

Revisa que el archivo "../Connections/escuela.php" no imprima nada, ya que lo incluyes antes y ese puede ser el motivo, si ese archivo envía algún carácter o tiene un espacio te dará error igualmente.
__________________
Unset($vida['malRollo']);
  #3 (permalink)  
Antiguo 04/03/2017, 05:49
 
Fecha de Ingreso: enero-2015
Mensajes: 48
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Error: session_start() [function.session-start]: Cannot send session cach

Cita:
Iniciado por xerifandtomas Ver Mensaje
Seguro que estas imprimiendo algo antes de session_start()

Revisa que el archivo "../Connections/escuela.php" no imprima nada, ya que lo incluyes antes y ese puede ser el motivo, si ese archivo envía algún carácter o tiene un espacio te dará error igualmente.
Hola! este es el código de la conexiòn

Código PHP:
<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_escuela "localhost";
$database_escuela "escuela";
$username_escuela "root";
$password_escuela "";
$escuela mysql_pconnect($hostname_escuela$username_escuela$password_escuela) or trigger_error(mysql_error(),E_USER_ERROR); 
?>
Como mencioné el error me sale solo en 2 de las páginas del sitio en todas las demás todo va normal.
  #4 (permalink)  
Antiguo 04/03/2017, 08:06
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Error: session_start() [function.session-start]: Cannot send session cach

Elimina el ?> del final del archivo para que si hay algún espacio o salto de línea después no lo tenga en cuenta.

Simplemente deja el archivo sin la etiqueta de cierre ?>

Código PHP:
<?php 
# FileName="Connection_php_mysql.htm" 
# Type="MYSQL" 
# HTTP="true" 
$hostname_escuela "localhost"
$database_escuela "escuela"
$username_escuela "root"
$password_escuela ""
$escuela mysql_pconnect($hostname_escuela$username_escuela$password_escuela) or trigger_error(mysql_error(),E_USER_ERROR);
__________________
Unset($vida['malRollo']);
  #5 (permalink)  
Antiguo 04/03/2017, 08:32
 
Fecha de Ingreso: enero-2015
Mensajes: 48
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Error: session_start() [function.session-start]: Cannot send session cach

Ya lo hice y nada.
Aparte de los espacios habrá otra razón por lo que puede ocurrir el error?
  #6 (permalink)  
Antiguo 04/03/2017, 08:48
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Error: session_start() [function.session-start]: Cannot send session cach

Esta parte

Código PHP:
Ver original
  1. <?php require('../Connections/escuela.php');?>
  2. <?php
  3. //initialize the session
  4. if (!isset($_SESSION)) {
  5.     session_start();
  6. }

Pon la así
Código PHP:
Ver original
  1. <?php
  2. require('../Connections/escuela.php');
  3. //initialize the session
  4. if (!isset($_SESSION)) {
  5.     session_start();
  6. }
En algún lado hay algún carácter o algo que se está enviando. Un espacio en blanco un salto de linea o algo, no hay más.
__________________
Unset($vida['malRollo']);
  #7 (permalink)  
Antiguo 04/03/2017, 09:00
 
Fecha de Ingreso: enero-2015
Mensajes: 48
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Error: session_start() [function.session-start]: Cannot send session cach

uff aún nada. Tendría que revisar en la parte de HTML a ver si el problema está ahí?
  #8 (permalink)  
Antiguo 04/03/2017, 09:06
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Error: session_start() [function.session-start]: Cannot send session cach

Es que ese archivo es incluido en otro?
__________________
Unset($vida['malRollo']);
  #9 (permalink)  
Antiguo 04/03/2017, 09:26
 
Fecha de Ingreso: enero-2015
Mensajes: 48
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Error: session_start() [function.session-start]: Cannot send session cach

Cita:
Iniciado por xerifandtomas Ver Mensaje
Es que ese archivo es incluido en otro?
No sé si entiendo bien tu pregunta. Todas las páginas son php pero incluyen php y html.
La conexión si es un archivo único en php. El código completo es el que te mostré.
  #10 (permalink)  
Antiguo 04/03/2017, 10:38
Avatar de Turdo  
Fecha de Ingreso: julio-2005
Ubicación: .:Guadalajara:.
Mensajes: 398
Antigüedad: 18 años, 9 meses
Puntos: 23
Respuesta: Error: session_start() [function.session-start]: Cannot send session cach

Hola mordvinia

El erro radica en que la sesión ya se enviado y en tu código se ve que la inicias 2 veces, solo lo debe de hacer una vez:

Código PHP:
Ver original
  1. //initialize the session  
  2. if (!isset($_SESSION)) {
  3.     session_start(); //<----linea 5
  4. }
  5. ...
  6. ...
  7. <?php
  8. if (!isset($_SESSION)) {
  9.   session_start(); //<- linea 30 (creo)
  10. }

Y lo que no entiendo es por que abres 3 veces la etiqueta de php en un solo bloque de código. Me suena a copy-paste
__________________
Un buen programa depende de la imaginación.
  #11 (permalink)  
Antiguo 04/03/2017, 11:15
 
Fecha de Ingreso: enero-2015
Mensajes: 48
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Error: session_start() [function.session-start]: Cannot send session cach

Hola Turdo, gracias. Aún quitando la segunda vez que se inicia la sesión no resulta.
  #12 (permalink)  
Antiguo 04/03/2017, 22:21
Avatar de Turdo  
Fecha de Ingreso: julio-2005
Ubicación: .:Guadalajara:.
Mensajes: 398
Antigüedad: 18 años, 9 meses
Puntos: 23
Respuesta: Error: session_start() [function.session-start]: Cannot send session cach

Cita:
Iniciado por mordvinia Ver Mensaje
Hola Turdo, gracias. Aún quitando la segunda vez que se inicia la sesión no resulta.
Hola de nuevo. En la primera linea tienes un require solo asegúrate que en ese archivo no tenga session_start().

Por otro lado session_start() debe de ser la primera linea de tu archivo php.

Después de eso te sigue mandando el mismo error? Recuerda que session_start() debe de estar solo una vez en el archivo padre.

Saludos!
__________________
Un buen programa depende de la imaginación.

Última edición por Turdo; 04/03/2017 a las 22:29

Etiquetas: cache, html, send, session, variable
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:47.