Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Pregunta sobre headers y sesiones.

Estas en el tema de Pregunta sobre headers y sesiones. en el foro de Frameworks JS en Foros del Web. Buenas tengo una pagina la cual lleva sesiones la cual estan declaradas antes de que empieze el contenido HTML, todo bien hasta que se me ...
  #1 (permalink)  
Antiguo 27/10/2009, 22:26
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 10 meses
Puntos: 4
Pregunta sobre headers y sesiones.

Buenas tengo una pagina la cual lleva sesiones la cual estan declaradas antes de que empieze el contenido HTML, todo bien hasta que se me ocurrio agregar un codigo AJAX que envia tambien un header y en esa linea marca el error:

Warning: Cannot modify header information - headers already sent by (output started at /Applications/xampp/xamppfiles/htdocs/SGCT/com_contabilidad/vista/menu_consulta_cuenta_contable/funciones/ajax_actualizar_datos.php:1) in /Applications/xampp/xamppfiles/htdocs/SGCT/com_contabilidad/vista/menu_consulta_cuenta_contable/funciones/consulta_actualizar_datos.php on line 14

CODIGO: consulta_actualizar_datos.php
Código:
<?php
$var=$_POST["var"];

$conexion=mysql_connect("localhost", "root", "");
mysql_select_db("SGCT", $conexion);

$resultado=mysql_query("SELECT * FROM CUENTA WHERE ID_CODIGO_CUENTA='$var'");
$registro=mysql_fetch_row($resultado);

$xml="<?xml version='1.0' encoding='UTF8'?>";
$xml.="<datos>";
$xml.="<desc><![CDATA[$registro[1]]]></desc>";
$xml.="</datos>";
header("Content-type: text/xml"); 
echo $xml; 
?>
Probe distintas maneras ya sea usandolo antes de la sesion o despues pero el error persiste, sera que no se puede hacer lo que quiero?

Acepto sugerencias, gracias.

PD: No hay espacios antes de que empieze la etiqueta <?php
__________________
Ingeniero (E) en Computación e Informática
The last man alone with god.

Última edición por Highlander; 28/10/2009 a las 09:53
  #2 (permalink)  
Antiguo 27/10/2009, 22:59
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Pregunta sobre headers y sesiones.

pues debes decidir... no puedes enviar headers a diestra-y-siniestra!!!

solo debes enviar lo que es justo y necesario, si es Ajax, solo eso... si es HTML/XML pues no mas...

NOTA que el error nos indica dos scripts, y tu cual has colocado?? ¿puedes colocar el otro donde llamas al segundo??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 28/10/2009, 01:13
 
Fecha de Ingreso: enero-2009
Mensajes: 213
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Pregunta sobre headers y sesiones.

Hola, yo tuve el mismo problema que tu con los header. Si quieres que no te de ese error y que tu codigo corra bien, pon esto al principio de cada pagina donde te de el problema:
Código:
<?php
ob_start();
?>
y esto al final de cada pagina
Código:
<?php
ob_end_flush();
?>
Cuando digo al principio quiero decir antes que nada. Al final después de la etiqueta </html>

Saludos
  #4 (permalink)  
Antiguo 28/10/2009, 09:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Pregunta sobre headers y sesiones.

Cita:
Iniciado por makh16 Ver Mensaje
[...] Si quieres que no te de ese error y que tu codigo corra bien [...]
un "hack" no es decir que tu código corra bien...

imagina que ocurre un error dentro del buffer ¿como nos damos cuenta??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 28/10/2009, 09:31
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 10 meses
Puntos: 4
Respuesta: Pregunta sobre headers y sesiones.

Ok ire por partes, aqui esta el otro codigo paketrueke:

CODIGO: ajax_actualizar_datos.php

Código:
<script language="javascript" type="text/javascript">
function nuevoAjax()
{ 
    var xmlhttp=false; 
    try 
    { 
        xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); 
    }
    catch(e)
    { 
        try
        { 
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
        } 
        catch(E) { xmlhttp=false; }
    }
    if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp=new XMLHttpRequest(); } 

    return xmlhttp; 
}
function traerDatos()
{
    var cod=document.getElementById("CODIGO_CUENTA").value;
    var campo1=document.getElementById("DESCRIPCION_CUENTA");
    
        
    var ajax=nuevoAjax();
    ajax.open("POST", "com_contabilidad/vista/menu_consulta_cuenta_contable/funciones/consulta_actualizar_datos.php", true);
    ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    ajax.send("var="+cod);
            
    ajax.onreadystatechange=function()
    {
        if (ajax.readyState==4)
        {
            var respuesta=ajax.responseXML;// Rescata el contenido del archivo XML retornado del servidor:
            campo1.value=respuesta.getElementsByTagName("desc")[0].childNodes[0].data;
            
        }
    }
}
</script>
Makh16 si eso me serviria de parche por ahora porque el codigo se esta ejecutando y funciona la parte ajax ademas de la sesion pero me interesa una solución correcta, aun no me queda claro este tema de headers.

Se supone que antes de cualquier HTML estoy enviando la sesion lo cual es un header entonces como lo hago para mantenter en todo momento la sesion pero ademas enviar un XML con la respuesta del ajax?
__________________
Ingeniero (E) en Computación e Informática
The last man alone with god.

Última edición por Highlander; 28/10/2009 a las 09:53
  #6 (permalink)  
Antiguo 28/10/2009, 09:41
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Pregunta sobre headers y sesiones.

haber si entendí:

el segundo código que hace el llamado Ajax, manda a llamar al primero... que devuelve el XML, cierto??

y el script que te da error es el del XML... ok?


bueno, según mi interpretación del código... es el XML el que te da el error, ¿ese es el código completo que utilizas??

aunque lo que me suena raro es, como te diste cuenta del error si se hace mediante Ajax y no es visible??


lo raro, es que el error nos dice que todo comienza en ajax_actualizar_datos.php en la linea 1

¿los dos códigos están separados uno del otro?? ¿los has colocado completos??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 28/10/2009, 09:46
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
Tema movido desde PHP a AJAX
  #8 (permalink)  
Antiguo 28/10/2009, 09:51
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 10 meses
Puntos: 4
Respuesta: Pregunta sobre headers y sesiones.

Hola, el primer codigo que publique es el CONSULTA_ACTUALIZAR_DATOS y el segundo es AJAX_ACTUALIZAR_DATOS.

Entonces el ajax_actualizar_datos llama al consulta_actualizar_datos (para consultar la bd)

Los dos codigo son archivos php separados y los puse completos, los cuales estan en un include del archivo php principal, el error es el warning que puse arriba pero a pesar de eso el codigo esta operativo y entregando los resultados correctos.

Si tal como dices tu el error sale en la linea 1 de ajax_actualizar_datos como si en ese hubiese un espacio en blanco antes del codigo.

PD: Edite los mensajes anteriores para agregar los nombres de los codigos.
__________________
Ingeniero (E) en Computación e Informática
The last man alone with god.
  #9 (permalink)  
Antiguo 28/10/2009, 10:16
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 10 meses
Puntos: 4
Respuesta: Pregunta sobre headers y sesiones.

OK lo arregle era un error tonto como siempre....

Tenias razon paketrueke sobre el archivo que tenia el error.

El include estaba ejecutando siempre el codigo de consulta_actualizar_datos.php (enviando el header a cada rato), al eliminarlo del include funciono a la perfeccion debido a que ya estaba siendo invocado desde el archivo ajax_actualizar_datos.php.

Gracias por su tiempo de todas maneras.
__________________
Ingeniero (E) en Computación e Informática
The last man alone with god.
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 14:48.