Foros del Web » Programando para Internet » PHP »

ob_start(); y diferentes dudas

Estas en el tema de ob_start(); y diferentes dudas en el foro de PHP en Foros del Web. Hola chicos, tengo una dudilla. he creado una session, y he hecho un if, para registrar una sesion (es de un login). Código PHP: if (!isset( ...
  #1 (permalink)  
Antiguo 16/12/2006, 07:41
 
Fecha de Ingreso: junio-2002
Mensajes: 321
Antigüedad: 21 años, 10 meses
Puntos: 3
ob_start(); y diferentes dudas

Hola chicos, tengo una dudilla.

he creado una session, y he hecho un if, para registrar una sesion (es de un login).

Código PHP:
if (!isset($_SESSION)) {
    
session_start();
    
ob_start();

y mi duda esta, que hace tiempo me resolvieron esta duda, ya que al no añadir el OB_START(); salia siempre el siguiente fallo.

Código PHP:
WarningCannot modify header information headers already sent by (output started at index.php:8in index.php on line 33 
Bien, el caso que nose, si he de cerrar el ob_start();

¿que me recomiendan?

un saludo y gracias!
  #2 (permalink)  
Antiguo 16/12/2006, 08:42
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: ob_start(); y diferentes dudas

Hola,

La idea es que si usaste ob_start();, al final de tu codigo coloques

Código PHP:
<?
ob_end_flush
();
?>
De todas formas ese error que te aparece, se solucionaria si no mandaras ninguna salida de datos antes del session_start, poniendo esa condicion al comienzo de tu pagina.


Código PHP:
<?php
if (!isset($_SESSION)) {
    
session_start();
}
?>
<html>
<head>
...
</html>
Saludos.
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #3 (permalink)  
Antiguo 16/12/2006, 19:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Re: ob_start(); y diferentes dudas

Yo no usaría las funciones de control del buffer, siendo que "ordenando" un poco tu código no originarás nunca ese problema de "cabeceras enviadas".

El uso de las funciones del control del buffer consumen un extra de recursos del servidor (he de ahí que se puede mejorar este tema simplemente como expongo).

El mensaje de error te dice exactamente donde estás originando el "problema":

output started at index.php:8

Ahí te dice que en esa línea tienes un espacio, salto de línea, algo de HTML .. un echo "algo" .. o salida en general originada. A veces uno usa código que se llama bajo un "include()" y es en ese script donde tal vez al final o principio del mismo (mejor dicho entre <? y ?> definiciones de apertura/cerrar código PHP) ahí es donde está ese "espacio" o salto de línea.

En resumen se trata de ordenar tu código para colocar el inico de uso de sesiones: session_start() antes de esas "salidas" o HTML o lo que uses antes.

Si tienes dudas al respecto, deberías colocar el código completo que usas textual (no omitas nada) .. y así te podremos asesorar sobre como "ordenarlo" si es que tienes alguno de los problemas planteados.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 03:02.