Comunidad de diseño web y desarrollo en internet online

Problema con header al agregar un include

Citar            
MensajeEscrito el 20 Jul 2010 11:35 pm
me pone este error:
Warning: Cannot modify header information - headers already sent by (output started at /Applications/XAMPP/xamppfiles/htdocs/blog/inyeccion.php:4) in /Applications/XAMPP/xamppfiles/htdocs/blog/blog.php on line 61
me pasa cuando envio un comentario que escribi en la pagina, y despues la actualiza:

Código PHP :

header("Location:blog.php?".$url."#comentarios");

antes del header no puse ningun echo ni print, ni nada de eso, solo manipulo un par de variables. Aparte eso no puede ser porque el problema es cuando agrego el include ('inyeccion.php');
este es mi codigo:

Código PHP :

<? session_start();include ("inyeccion.php");require_once ("conexion.php");
//..mas codigo..?>


el archivo que incluyo tiene este codigo:

Código PHP :

<?
// Evitamos la inyeccion SQL 
// Modificamos las variables pasadas por URL 
foreach( $_GET as $variable => $valor ){ 
$_GET [ $variable ] = str_replace ( "'" , "'" , $_GET [ $variable ]); 
} 
// Modificamos las variables de formularios 
foreach( $_POST as $variable => $valor ){ 
$_POST [ $variable ] = str_replace ( "'" , "'" , $_POST [ $variable ]); 
} 
?> 


me estoy matando con esto y no me doy cuenta que puede ser, espero que alguien me sepa decir, graciasss :)

Por luco

Claber

110 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 21 Jul 2010 05:22 am
antes de header no debe haber ninguna salida de bufer (lo que vemos por pantalla) por eso es que se recomienda:

  • los archivos php deben estar en una hoja tipo UNIX jamas utf-8
  • no debe haber ningun espacio ni cualquier otro caracter antes de <?php
  • no es recomendable finalizar los archivos php cuando solo exista codigo ejemplo

    Código PHP :

    <?php
    class miClase{
    public function __construct(){echo 'hola mundo';}
    }
    }
    // fin de miClase
    // controllers/miclase.php
    

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 21 Jul 2010 09:26 pm
todavia no pude encontrar el error, hasta intente poniendo en el inyected.php:

Código PHP :

<? $hola; ?>

pero da el mismo error.
y en donde lo incluyo no hay nada antes del <?php asi que no se que puede ser. Lo unico que nose a que te referis con lo de UNIX, donde me fijo eso?. (lo estoy probando localmente)

Por luco

Claber

110 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 21 Jul 2010 09:32 pm

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 21 Jul 2010 11:06 pm
pero.. tiene algo que ver eso con lo del header??, por lo que tengo entendido sirve para los acentos y caracteres especiales, tovia no tengo idea como solucionarlo. :(

Por luco

Claber

110 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 22 Jul 2010 01:30 am
hombre de poca fe XD


en los comentarios se explica con bastante profundidad de que se trata la codificación de un documento y para que tenemos que usar unix ;)

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 22 Jul 2010 06:53 am
Warning: Cannot modify header information - headers already sent by (output started at /Applications/XAMPP/xamppfiles/htdocs/blog/inyeccion.php:4) in /Applications/XAMPP/xamppfiles/htdocs/blog/blog.php on line 61

Alli dice que la salida se produjo antes de la linea 4 del archivo inyeccion.php, eso quiero decir que antes de ejecutarse esa linea libero el buffer, porque sobrepaso el limite de bytes para el buffer asignado en el php.ini lo normal es 4096.

Así que, te toca revisar que se ejecuta antes de esa linea de ese archivo y ver que está escribiendo. (Esto incluye variables de session y/o cookies)

*Hay una forma de poner el buffer ilimitado y no dará el error pero no lo diré por el bien de los códigos portables U_U

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 23 Jul 2010 12:23 am
Solucionado!. El error estaba en unos espacios de mas que habia despues del ?>
y la linea que me marcaba error era la 14 (antes habia puesto 4 nose porque) porque habia un renglon de mas. :roll:
muchas graciass!

Por luco

Claber

110 de clabLevel



Genero:Masculino  

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.