| Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS | ||||
| 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 la FAQ y todos sus comentarios | |
| Añadir un comentario del artículo |
|
Comentarios no revisados de: |