Foros del Web » Programando para Internet » PHP »

Problema con sesiones muy diferente de lo normal

Estas en el tema de Problema con sesiones muy diferente de lo normal en el foro de PHP en Foros del Web. Hola colegas de foros del web tengo un problema con las sesiones. mi pagina consta asi login ->Index ->funcion 1 ->funcion 2 ->funcion 3 ->funcion ...
  #1 (permalink)  
Antiguo 10/07/2008, 11:31
 
Fecha de Ingreso: julio-2008
Ubicación: Ruiz - Nayarit - México
Mensajes: 18
Antigüedad: 15 años, 9 meses
Puntos: 0
Exclamación Problema con sesiones muy diferente de lo normal

Hola colegas de foros del web
tengo un problema con las sesiones.

mi pagina consta asi

login
->Index
->funcion 1
->funcion 2
->funcion 3
->funcion 4
->funcion 5

bueno, todas las páginas funcionan siempre y cuando se halla iniciado sesion desde el login si no no pueden entrar pero tengo problema en la funcion 2, 3 y 4, me manda un warning que dice asi:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\AppServ\www\lab\consulta_baja.php:1) in C:\AppServ\www\lab\bloqueseg.php on line 1

He revisado infinidad de foros y todos dicen que porque hay un espacio, porque hay una salida al browser antes del session_start(); y cosas así. he revisado mi documento una y otra vez pero no he encontrado nada y además quiero saber porque en index y funciones 1 y 5 no me manda ese warning. cabe mencionar que todos los hice de un solo documento y lo copie para que tuvbieran la misma estructura.

este es el código bloqueseg.php:
Código PHP:
<? session_start();
if(
$_SESSION['autenticado']!='si')
{
header('Location: login1.php');
exit();
}
?>
y este es el código inicial de las funciones 2, 3 y 4:
Código PHP:
<? include ("bloqueseg.php");?>
<HTML>
<body>...
necesito una respuesta por favor. Ojalá yalguno de ustedes lea mi petición y pueda ayudarme porque me estoy volviendo loco.
  #2 (permalink)  
Antiguo 10/07/2008, 11:53
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 16 años, 4 meses
Puntos: 14
Respuesta: Problema con sesiones muy diferente de lo normal

trata con include_once
__________________
My path is lit by my own fire, I only go where I desire
  #3 (permalink)  
Antiguo 10/07/2008, 11:54
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 7 meses
Puntos: 28
Respuesta: Problema con sesiones muy diferente de lo normal

o require_once
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #4 (permalink)  
Antiguo 10/07/2008, 11:56
 
Fecha de Ingreso: julio-2008
Ubicación: Ruiz - Nayarit - México
Mensajes: 18
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con sesiones muy diferente de lo normal

Nel colega
Ya lo he intentado tambien asi y no hace nada
es como si no hubiera hecho ningun cambio
Gracias por la pronta respuesta. ;)
  #5 (permalink)  
Antiguo 10/07/2008, 11:59
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 7 meses
Puntos: 28
Respuesta: Problema con sesiones muy diferente de lo normal

muestrame este codigo completo por favor...

<? include ("bloqueseg.php");?>
<HTML>
<body>...

... si tienes una salida HTML antes d alguna php suele pasar esto
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #6 (permalink)  
Antiguo 10/07/2008, 12:20
 
Fecha de Ingreso: julio-2008
Ubicación: Ruiz - Nayarit - México
Mensajes: 18
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con sesiones muy diferente de lo normal

No me deja meter todo porque son 11746 caracteres pero asi es como empuieza mi pagina. No tengo ningun session_start(); dentro del código ni nada anormal. Solo if, while, paginación, una cookie y demas estructuras que no me generan ningun error aparte. es un codigo mas o menos asi:

Código PHP:
<? include_once("bloqueseg.php");?> <--Principio de todo
<html>
<body>
<tags>
<?php
echo "<font face=verdana, size=2 color=#0066CC><i><b><br><br>";
echo 
"Bienvenido(a): ";
echo 
$_COOKIE['user'];
echo 
"<br><a href='salir.php'><font size=2 face='arial'>cerrar sesión</a>";
?>
<mas tags>...
<mas tags>...
<mas tags>...
<mas tags>...
<mas tags>...
<? codigo php
.....
...
?>
<mas tags>...
<mas tags>...
<mas tags>...
<? codigo php
.....
...
?>
</body>
</thml>
  #7 (permalink)  
Antiguo 10/07/2008, 12:23
 
Fecha de Ingreso: julio-2008
Ubicación: Ruiz - Nayarit - México
Mensajes: 18
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con sesiones muy diferente de lo normal

No entiendo porque me sale el error solo en esas tres páginas y en las otras no...
  #8 (permalink)  
Antiguo 10/07/2008, 12:34
Avatar de alapaco  
Fecha de Ingreso: septiembre-2003
Ubicación: Caballito - Buenos Aires - Argentina - América del Sur - Planeta Tierra - Sistema Solar - Vía Láctea
Mensajes: 216
Antigüedad: 20 años, 7 meses
Puntos: 5
Respuesta: Problema con sesiones muy diferente de lo normal

Y la página consulta_baja.php se llama directamente o se incluye dentro de otra página ??
__________________
__________________
Álvaro Lapacó
  #9 (permalink)  
Antiguo 10/07/2008, 12:41
 
Fecha de Ingreso: julio-2008
Ubicación: Ruiz - Nayarit - México
Mensajes: 18
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con sesiones muy diferente de lo normal

El index tiene un menu que manda llamar a toda las páginas que especifique arriba. la funcion 2, 3 y 4 tienen error pero la 1 y la 5 no.

A la mejor este codigo la riega porque lo uso en esas tres. es de la paginación:

Código PHP:
<?php 

    mysql_connect
('localhost','root','admin') or die("no se puede conectar");

    
$criterio "";
    if (
$_GET["criterio"]!=""){
        
$txt_criterio $_GET["criterio"];
        
$criterio " where RFC like '%" $txt_criterio "%' or num_empleado like '%" $txt_criterio "%' or nombre like '%" $txt_criterio "%' or num_afiliacion like '%" $txt_criterio "%' or fecha_baja like '%" $txt_criterio "%'";
}
$sql="SELECT * FROM BDBAJAS.empleado".$criterio;
    
$res=mysql_query($sql);
    
$numeroRegistros=mysql_num_rows($res);
    if(
$numeroRegistros<=0)
    {
        echo 
"<div align='center'>";
        echo 
"<font face='verdana' size='-2'>No se encontraron resultados</font>";
        echo 
"</div>";
    }else{
        
//////////elementos para el orden
        
if(!isset($orden))
        {
            
$orden="RFC";
        }
        
//////////calculo de elementos necesarios para paginacion
        //tamaño de la pagina
        
$tamPag=60;

        
//pagina actual si no esta definida y limites
        
if(!isset($pagina))
        {
               
$pagina=1;
               
$inicio=1;
               
$final=$tamPag;
        }
        
//calculo del limite inferior
        
$limitInf=($pagina-1)*$tamPag;

        
//calculo del numero de paginas
        
$numPags=ceil($numeroRegistros/$tamPag);
        if(!isset(
$pagina))
        {
               
$pagina=1;
               
$inicio=1;
               
$final=$tamPag;
        }else{
            
$seccionActual=intval(($pagina-1)/$tamPag);
            
$inicio=($seccionActual*$tamPag)+1;

            if(
$pagina<$numPags)
            {
               
$final=$inicio+$tamPag-1;
            }else{
                
$final=$numPags;
            }
                
                if (
$final>$numPags){
                     
$final=$numPags;
            }
        }

        
//////////fin de dicho calculo

        //////////creacion de la consulta con limites
        
$sql="SELECT * FROM BDBAJAS.empleado".$criterio." ORDER BY ".$orden.",RFC ASC LIMIT ".$limitInf.",".$tamPag;
        
$res=mysql_query($sql);

                
//////////fin consulta con limites
        
echo "<div align='center'>";
        echo 
"<font face='verdana' size='-2'>Encontrados ".$numeroRegistros." resultados<br>";
        echo 
"ordenados por <b>".$orden."</b>";
                if(isset(
$txt_criterio)){
        echo 
"<br>Valor filtro: <b>".$txt_criterio."</b>";
                }
        echo 
"</font></div>";

        echo 
"<tr><td colspan='5'><hr></td></tr>";
        echo 
"<th bgcolor='#D9ECFF'><font face='Arial'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=RFC&criterio=".$txt_criterio."'>RFC</a></font></th>";
        echo 
"<th bgcolor='#D9ECFF'><font face='Arial'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=num_empleado&criterio=".$txt_criterio."'>Número de empleado</a></th>";
        echo 
"<th bgcolor='#D9ECFF'><font face='Arial'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=nombre&criterio=".$txt_criterio."'>Nombre</a></th>";
        echo 
"<th bgcolor='#D9ECFF'><font face='Arial'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=num_afiliacion&criterio=".$txt_criterio."'>Numero de afiliacion</a></th>";
        echo 
"<th bgcolor='#D9ECFF'><font face='Arial'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=fecha_baja&criterio=".$txt_criterio."'>fecha de baja</a></th>";
        while(
$registro=mysql_fetch_array($res))
        {
        echo 
"<tr bgcolor='#F5F5F5' onMouseOver=\"this.style.backgroundColor='#0066CC';this.style.cursor='hand';this.style.color='#ffffff'\" onMouseOut=\"this.style.backgroundColor='#F5F5F5';this.style.color='#000000'\"o\"];\">";
            echo 
"<td align='left'><font face=verdana size='1'>".$registro ["RFC"]."<input type='hidden' name='RFC' value=".$registro ["RFC"]."></td>";
            echo 
"<td align='center'><font face=verdana size='1'>".$registro ["num_empleado"]."</td>";
            echo 
"<td align='left'><font face=verdana size='1'>".$registro ["nombre"]."</td>";
            echo 
"<td align='left'><font face=verdana size='1'>".$registro ["num_afiliacion"]."</td>";
            echo 
"<td align='center'><font face=verdana size='1'>".$registro ["fecha_baja"]."</td>";
        echo 
"</tr>";
        echo 
"<tr><td colspan='5'></td></tr>";
        }
    }
?>
  #10 (permalink)  
Antiguo 10/07/2008, 12:44
Avatar de alapaco  
Fecha de Ingreso: septiembre-2003
Ubicación: Caballito - Buenos Aires - Argentina - América del Sur - Planeta Tierra - Sistema Solar - Vía Láctea
Mensajes: 216
Antigüedad: 20 años, 7 meses
Puntos: 5
Respuesta: Problema con sesiones muy diferente de lo normal

Entonces está función (session_start();) deberías ponerla al principio del index.
__________________
__________________
Álvaro Lapacó
  #11 (permalink)  
Antiguo 10/07/2008, 12:49
 
Fecha de Ingreso: julio-2008
Ubicación: Ruiz - Nayarit - México
Mensajes: 18
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con sesiones muy diferente de lo normal

la primera linea del index es:
Código PHP:
<? include_once("bloqueseg.php");?>
<html>
<body>
...
y el bloqueseg
Código PHP:
<? session_start();
if(
$_SESSION['autenticado']!='si')
{
header('Location: login1.php');
exit();
}
?>
Al fin de cuentas es lo mismo. La página index manda llamar el bloque y lo primero que haces es iniciar sesion. No será que como ya inicié sesion en una página no debo iniciar en otra?
  #12 (permalink)  
Antiguo 10/07/2008, 12:56
Avatar de alapaco  
Fecha de Ingreso: septiembre-2003
Ubicación: Caballito - Buenos Aires - Argentina - América del Sur - Planeta Tierra - Sistema Solar - Vía Láctea
Mensajes: 216
Antigüedad: 20 años, 7 meses
Puntos: 5
Respuesta: Problema con sesiones muy diferente de lo normal

Y las funciones 1 y 5 no tienen esa llamada ??
Código PHP:
<? include ("bloqueseg.php");?>
__________________
__________________
Álvaro Lapacó
  #13 (permalink)  
Antiguo 10/07/2008, 13:06
 
Fecha de Ingreso: julio-2008
Ubicación: Ruiz - Nayarit - México
Mensajes: 18
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con sesiones muy diferente de lo normal

Claro que la tienen, todas son iguales al inicio pero esas 2 no cuentan con muestra de resultados por paginación. Por eso me imagino que el error puede situarse ahi en la paginación. pero no lo encuentro...
  #14 (permalink)  
Antiguo 10/07/2008, 13:49
Avatar de alapaco  
Fecha de Ingreso: septiembre-2003
Ubicación: Caballito - Buenos Aires - Argentina - América del Sur - Planeta Tierra - Sistema Solar - Vía Láctea
Mensajes: 216
Antigüedad: 20 años, 7 meses
Puntos: 5
Respuesta: Problema con sesiones muy diferente de lo normal

La verdad que yo no noto nada raro, no tengo idea que puede ser..
__________________
__________________
Álvaro Lapacó
  #15 (permalink)  
Antiguo 10/07/2008, 14:23
 
Fecha de Ingreso: julio-2008
Ubicación: Ruiz - Nayarit - México
Mensajes: 18
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con sesiones muy diferente de lo normal

ups! Bueno. Ojala y alguien me pueda ayudar.
Gracias de todos modos colega. Estamos en contacto...
  #16 (permalink)  
Antiguo 10/07/2008, 16:32
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Problema con sesiones muy diferente de lo normal

ancortez:
Prueba poniendolo asi:
<? session_start();
if($_SESSION['autenticado']!='si')
{
header('Location: login1.php');
} else {
exit();
}
?>
Saludos
Franco
  #17 (permalink)  
Antiguo 10/07/2008, 16:44
 
Fecha de Ingreso: julio-2008
Ubicación: Ruiz - Nayarit - México
Mensajes: 18
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con sesiones muy diferente de lo normal

Ps gracias por la ayuda pero tampoco me funciona
y si te fijas bien la logica dice:

si la variable de sesion tiene como valor algo diferente de 'si' te vas a login1.php
de lo contrario te sales.

Suena un poco redundante no te parece.
Eso hace que no pueda entrar a ninguna de mis páginas, ni siquiera a las que estaban sanas o sin problemas.
Gracias de todos modos.
Sigo buscando...
  #18 (permalink)  
Antiguo 10/07/2008, 16:53
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Problema con sesiones muy diferente de lo normal

ancortz:
Y si envez de exit();
haces que retorne algun valor?
Saludos
Franco
P.S. Buscando un poco mas me encontre con esto ->
Esto te lo copio del manual de php:
session_cache_limiter('nocache');
El limitador de caché controla las cabeceras HTTP de control del caché enviadas al cliente. Estas cabeceras determinan las reglas por las que el contenido de la página puede ser guardado en el caché local del cliente. Cambiando el limitador de caché a nocache, por ejemplo, impedirá cualquier tipo de almacenamiento en el caché por parte del cliente. Un valor de public, en cambio, permitiría el almacenamiento en el caché. Tambié se puede cambiar a private, que es un poco más restrictivo que el public. --->
Esta en el manual y pareciera que la solucion esta en el cache.
El Warning de tu script dice :
"Cannot send session cache limiter - headers already sent "
Si forzas a un 'nocache' entonces el problema debera desaparecer, pero No se exactamente que pasara con las otras funciones. O si en todas las funciones debes hacer un session_start();
Tendrias que probar!!!.

Última edición por franco190453; 10/07/2008 a las 17:04
  #19 (permalink)  
Antiguo 10/07/2008, 17:04
 
Fecha de Ingreso: julio-2008
Ubicación: Ruiz - Nayarit - México
Mensajes: 18
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con sesiones muy diferente de lo normal

Pues sigue igual
ya se lo quite, le puse que devuelva un valor, le agregue ob_start();, session_name
y nada
siempre me dice que el error está en el session_statr(); y si lo quito la página se pone en blanco y ya ninguna quiere entrar.
He pasado el dia buscando en foros y nada.
Algunos decian que era la computadora pero no poruqe la he checado en 3 y me pasa los mismo.
tambien me decian que moviera valores del php.ini pero tampoco funcionó.
La verdad ya no se ni que es.
si no jala lo voy a dejar así
gracias colega
sigo buscando...
  #20 (permalink)  
Antiguo 17/07/2008, 17:27
 
Fecha de Ingreso: julio-2008
Ubicación: Ruiz - Nayarit - México
Mensajes: 18
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con sesiones muy diferente de lo normal

SOLUCIONADO!!!

Ya encontre la solución a mi problema

para todas aquellas personas que les halla pasado el mismo problema que a mi ay les va la solución:

1.- Si tienen un codigo que mandan llamar por medio de include o require mejor incluyanlo dentro de la página

2.- despues ya que esté todo el código completo cierren el programa con el que estén editando el código.

3.- Después vayan al archivo, le dan clic derecho y le dicen abrir con block de notas.

4.- cuando lo abran denle guardar como... y en las tipo se leccionan la opción todos los archivos, en codificación le ponen ANSI y ya el nombre pues como se llame su archivo pero si no quieren tener problemas con remplazarlo y todo eso pues ponganle otro nombre con la extensión PHP.

Y eso es todo, después corren el archivo y el error desaparecerá como por atre de magia.

Gracias a todos los que se ofrecieron a ayudarme

ATTE: José Angel Cortez Moreno
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 08:20.