Foros del Web » Programando para Internet » PHP »

Error con sesiones / variables globales

Estas en el tema de Error con sesiones / variables globales en el foro de PHP en Foros del Web. Hola amigos, les comento mi problema por si alguien me puede ayudar. El caso es que necesito utilizar una variable global (que esté siempre disponible ...
  #1 (permalink)  
Antiguo 20/08/2008, 05:55
 
Fecha de Ingreso: mayo-2008
Mensajes: 9
Antigüedad: 16 años
Puntos: 0
Error con sesiones / variables globales

Hola amigos, les comento mi problema por si alguien me puede ayudar.

El caso es que necesito utilizar una variable global (que esté siempre disponible pq tengo problemas de sincronizacion en acceso a la BD), el caso es que probé a utilizar una variable de sesion, pero da error:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\gim\alta_ejercicios_entr.php:2) in C:\xampp\htdocs\gim\alta_ejercicios_entr.php on line 24

Ya he leido en el foro que no puede haber ninguna etiqueta html, ni ningun echo.. así que no se me ocurre qué puede ser.

Les dejo el código aquí. Gracias de antemano

Código PHP:
<?php
        
require_once ('./ejercicio.php');
        require_once (
'./det_entrenamiento.php');
        include_once (
'./includes/visualizar.php');
        
//session_start();
        
$series $_GET['series'];
        
$descanso $_GET['descanso'];
        
$observ $_GET['observ'];
        
$id_ejer $_GET['id_ejer'];
        
$dia strtoupper($_GET['dia']);
        
$id_entr $_GET['id_entr'];
        
        
//echo "lleque";
        
if (($dia=="TODOS") or $dia=="-SELECCIONE-"$dia=0;
        
$d_entrenamiento = new DetEntrenamiento();
        
//si j==0 es que estamos en la primera insercción, con lo cual se consulta a la BD el max orden de dicho dia
        
if ($_GET['j']==0){
            
//se obtiene el orden máximo ya insertado en la bd
            
session_start();
            
$_SESSION['ultimo_orden2'] = $d_entrenamiento->max_orden_ejercicio_entrenamiento($id_entr$dia);
            
//if($ultimo_orden==0) $ultimo_orden++;
        
}
        
//echo "ultimo orden sesion->".$_SESSION['ultimo_orden'];
        
session_start();
        
$ultimo_orden $_SESSION['ultimo_orden2'] + $_GET['j'];
        
//echo "ultimo orden ->".$ultimo_orden2;
        
$d_entrenamiento = new DetEntrenamiento($id_entr$id_ejer$series$descanso$observ$dia $ultimo_orden);
        
$d_entrenamiento->insertar_det_entrenamiento();
?>
  #2 (permalink)  
Antiguo 20/08/2008, 05:56
 
Fecha de Ingreso: junio-2005
Mensajes: 343
Antigüedad: 18 años, 10 meses
Puntos: 10
Respuesta: Error con sesiones / variables globales

No veo un session_start() en la página.

Lei hace tiempo que los session_start() si estan dentro de algun include muchas veces no funcionan como toca.

Saludos.
  #3 (permalink)  
Antiguo 20/08/2008, 06:00
 
Fecha de Ingreso: mayo-2008
Mensajes: 9
Antigüedad: 16 años
Puntos: 0
Respuesta: Error con sesiones / variables globales

Pues hay 2 session_start(); Y si están dentro de require_once() ???
  #4 (permalink)  
Antiguo 20/08/2008, 06:08
 
Fecha de Ingreso: junio-2005
Mensajes: 343
Antigüedad: 18 años, 10 meses
Puntos: 10
Respuesta: Error con sesiones / variables globales

prueba a sacarlos fuera.
  #5 (permalink)  
Antiguo 20/08/2008, 06:12
 
Fecha de Ingreso: mayo-2008
Mensajes: 9
Antigüedad: 16 años
Puntos: 0
Respuesta: Error con sesiones / variables globales

No, si los "session_start()" no están dentro de ningún include. son los que se ven ahí.
  #6 (permalink)  
Antiguo 20/08/2008, 06:15
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Error con sesiones / variables globales

pon session_start() lo primero de todo

Algo así recuerdo hacer yo º.º (no me preguntes el motivo)
  #7 (permalink)  
Antiguo 20/08/2008, 06:22
 
Fecha de Ingreso: mayo-2008
Mensajes: 9
Antigüedad: 16 años
Puntos: 0
Respuesta: Error con sesiones / variables globales

Eso no puede ser, pq sigue dando el mismisimo error. :(
  #8 (permalink)  
Antiguo 20/08/2008, 06:27
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Error con sesiones / variables globales

Ten cuidado con los espacios entonces >.<

Este código que has pegado, no estará dentro de algun include o algo?
  #9 (permalink)  
Antiguo 20/08/2008, 06:30
 
Fecha de Ingreso: mayo-2008
Mensajes: 9
Antigüedad: 16 años
Puntos: 0
Respuesta: Error con sesiones / variables globales

en : http://www.forosdelweb.com/f18/faqs-php-530600/

dice que hay que iniciar sesion cada vez que se lea y guarde en una variable de session, que es lo que yo hago.

No, utiliza Ajax . Otra página llama a esta que la ejecuta en otra capa distinta.
  #10 (permalink)  
Antiguo 20/08/2008, 06:35
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Error con sesiones / variables globales

Otra página llama a esta que la ejecuta en otra capa distinta.!

Vualá! los headers ya han sido enviados, vamos, que esa "otra página" es la que debe iniciar la sesion.

O eso creo, nunca junté sesiones y AJAX :)
  #11 (permalink)  
Antiguo 20/08/2008, 06:51
 
Fecha de Ingreso: mayo-2007
Ubicación: Argentina
Mensajes: 48
Antigüedad: 17 años
Puntos: 0
Respuesta: Error con sesiones / variables globales

Hola

ese error me ha sucedido muchas veces. Sucede cuando el session_star() no se encuentra en la primera línea de las página web.

No debe haber nada antes del sesion_start(), ni espacios, ni saltos de línea debes empezar cada script php de la siguiente forma

Código PHP:
<?php
session_start
()
 
include(...
require(...
 
contenido del scrip
los includes debes colocarlos despues prueba de esa forma y me cuentas

saludos

Última edición por Mauricio Panuncio; 21/08/2008 a las 17:00
  #12 (permalink)  
Antiguo 20/08/2008, 06:55
 
Fecha de Ingreso: junio-2005
Mensajes: 343
Antigüedad: 18 años, 10 meses
Puntos: 10
Respuesta: Error con sesiones / variables globales

Es cierto, el hecho de que se consulte por AJAX, solo hace que sea indispensable el session_start en la primera linia.

No se debe de inciar session en la página que llama a esta, salva que alli te haga falta. Si lo haces no le influirá en nada a esta.
  #13 (permalink)  
Antiguo 20/08/2008, 08:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Error con sesiones / variables globales

Hola Eduvi,

Revisa esta FAQ: http://www.forosdelweb.com/2037876-post179.html

Saludos.
  #14 (permalink)  
Antiguo 20/08/2008, 16:52
 
Fecha de Ingreso: mayo-2008
Mensajes: 9
Antigüedad: 16 años
Puntos: 0
Respuesta: Error con sesiones / variables globales

Gracias a todos.

Sí. Si pongo el session_start() como primera linea (inmediatamente despues de <?php ) deja de mostrarme errores. Pero realmente pierde funcionalidad tb, ya que la siguiente vez que entra el valor de $_SESSION es como si no lo hubiera guardado.
¿Es esto posible?
  #15 (permalink)  
Antiguo 21/08/2008, 03:16
 
Fecha de Ingreso: junio-2005
Mensajes: 343
Antigüedad: 18 años, 10 meses
Puntos: 10
Respuesta: Error con sesiones / variables globales

Yo creo que no es posible, igual es que hay alguna errata en el código.
  #16 (permalink)  
Antiguo 21/08/2008, 06:41
 
Fecha de Ingreso: agosto-2008
Mensajes: 4
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Error con sesiones / variables globales

Has comprobado si te falta algun session_start(); en alguna página intermedia??
Lo único que se me ocurre es que pierdas los datos de sesión por navegar a alguna otra página que no tenga el session_start
  #17 (permalink)  
Antiguo 21/08/2008, 14:22
 
Fecha de Ingreso: mayo-2007
Ubicación: Argentina
Mensajes: 48
Antigüedad: 17 años
Puntos: 0
Respuesta: Error con sesiones / variables globales

las variables de sesion no pierden su valor a menos que cierres el navegado (así pasa en IE7) no importa si pasas por paginas que no tienen session_start().

A veces pasa, que defines las variables en un script que luego llamas por medio de un include() y entonces en cada pagina que usas ese mismo include las variables se vuelven a definir, ten cuidado con eso.

Otra cosa puede ser que tegas un session_destroy(), por ahi, en algun lugar que no debería estar (tambien me ha pasado, jaja)
  #18 (permalink)  
Antiguo 21/08/2008, 16:23
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Error con sesiones / variables globales

Tengo curiosidad.
¿Trataste poner el session_start al principio de el primer require_once que haces?
Osea, en ejercicio.php, justo despues de las etiquetas <?php
¿Funcionaria?
  #19 (permalink)  
Antiguo 21/08/2008, 16:57
 
Fecha de Ingreso: mayo-2007
Ubicación: Argentina
Mensajes: 48
Antigüedad: 17 años
Puntos: 0
Respuesta: Error con sesiones / variables globales

Es cierto lo que dice Ronruby, prueba lo que ya te sugerimos si todavía no funciona postea los archivos que llamas con los includes y require

Código PHP:
require_once ('./ejercicio.php'); 
require_once (
'./det_entrenamiento.php'); 
include_once (
'./includes/visualizar.php'); 
esos archivos los cargas en todas las paginas de tu sitio? o son solo para esta? eso cambia mucho el punto de vita para saber como encarar el problema

saludos
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 13:10.