Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Diseño web | Promoción web | Ganar dinero
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo
FAQ: Headers already sent error

estoy aqui mal Se muestran 5 comentarios sin revisar

leonardo sanchez  08/9/06 
Precisamente cuando comenzaba en php utilizaba la funcion header para redireccionar mis paginas pero note que es mas practico utilizar un comando javascript.

El codigo que utilizo es el siguiente...

<script LANGUAGE="JavaScript">
var pagina="url de la pagina"
function redireccionar()
{
location.href=pagina
}
setTimeout ("redireccionar()", 1000); // este es un tiempo para redireccionar.
</script>

Jorge Molina  24/9/06 
Debo manifestar que no estoy de acuerdo en que sea mejor con javascript porque:

1.- Dependemos de que este en el pc y funcione bien.
2.- Que no este deshabilitado.
3.- Consumimos recursos de la maquina innecesariamente (Al procesar el javascript
).
4.- En PHP el proceso es más transparente (No hay que esperar casi nada en comparación de havascript, el usuario no puede ver el codigo que lo hace, no puede detenerse el proceso, etc)

Moisés Gómez Díaz  25/2/07 
Para poder enviar un header despues de haber enviado ya una cabecera puedes modificar tu archivo php.ini a la opcion output_buffering = 4096

Con eso se soluciona tu problema aunque lo que estás haciendo es incorrecto: validar a traves de otro archivo PHP

te recomiendo que hagas lo siguiente

suponiendo que tu modulo se llama alta.php y contiene el siguiente codigo
<form id="form1" name="form1" method="post" action="">
<label>campo_obligatorio
<input name="nombre" type="text" id="nombre" />
</label>
<input type="submit" name="Submit" value="Enviar" />
</form>


Puedes añadir antes del form algo asi:
<?php
if(empty($_POST['Submit'])) {
//aqui valido que $_POST['nombre'] exista con un if, hay muchas maneras de validar, por pereza hago ahorita
if(empty($_POST['nombre'])) print "ERROR FALTAN DATOS";
else {
//aqui hago mi insert, $myconeccion->query("INSERT INTO bla!");
//y lo redirecciono a un lugar donde solamente le diga que se inserto correctamente o a donde yo quiera
header("Location:index.php?msg=correcto")
}
}
?>

Nota que el action lo dejo como "", asi toma por default el mismo nombre del script para procesar la forma.
y que redirecciono si y solo si, el insert se hizo correctamente, sino solo sigue desplegando la misma forma.

sebastian sanchez  07/3/07 
Buen punto aquel de que no debe haber nada antes !

Have a nice day

Seba

Ricardo Niño  29/5/07 
Es raro y no se decir porque pero un script que me funciona en un servidor windows no me marca ese error de los headers, y uno con linux ubuntu al intentar correr el mismo script me marcaba el error de los headers. Buscando por aqui y por alla, casualmente me encontre con esta linea de codigo y todo funciono correctamente.

@ob_start("ob_gzhandler");

Hay que ponerla inmediatamente despues de abrir tu primera etiqueta <?php, es decir es la primera instruccion a realizar.

Espero les ayude

Ver el articulo / faq completo Ver la FAQ y todos sus comentarios
Añadir un comentario al artículo Añadir un comentario del artículo
  Ir arriba

Comentarios no revisados de:

+ Headers already sent error


DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia