Foros del Web » Programando para Internet » PHP »

Warning: Cannot modify header information

Estas en el tema de Warning: Cannot modify header information en el foro de PHP en Foros del Web. hola que tal estaba leyendo un poco sobre la inyeccion por ahi ... y lei que probando este codigo : Código PHP: <?  if(!isset( $_GET ...
  #1 (permalink)  
Antiguo 04/11/2009, 15:29
Avatar de mauro770  
Fecha de Ingreso: mayo-2009
Mensajes: 109
Antigüedad: 15 años, 6 meses
Puntos: 1
Exclamación Warning: Cannot modify header information

hola que tal estaba leyendo un poco sobre la inyeccion por ahi ... y lei que probando este codigo :
Código PHP:
<? 
if(!isset($_GET["inyeccion"])){ 
 
header("location: ?inyeccion='"); 
} else { 
 echo 
'Tu servidor '
 if(
$_GET["inyeccion"] != "'")echo 'no '
 echo 
'tiene problemas de inyección'

?>
y dependiendo su mensaje es que estas o no estas seguro de la inyeccion por barra de navegacion.
y lo que a mi me salto fue esto :

Código HTML:
Warning: Cannot modify header information - headers already sent by (output started at /home/user/public_html/rere.php:9) in /home/user/public_html/rere.php on line 11
queria saber que significa esto ( creo que es mas q seguro que dice q estoy protejido pero por las dudas ... ) y queria saber hasta q punto es sierto esto ...
cuando uno comenta todos aprenden
muchas gracias desde ya.
  #2 (permalink)  
Antiguo 04/11/2009, 15:33
Avatar de _-ZeuS-_  
Fecha de Ingreso: junio-2007
Ubicación: Quito, Ecuador! ;)
Mensajes: 100
Antigüedad: 17 años, 5 meses
Puntos: 7
Respuesta: Warning: Cannot modify header information

es un problema cuando no puedes modificar la información del header de php sabes que para solucionarlo hice una función que hace esto:

Código PHP:
function page_forward($url){
    
header('Location: '.$url);
    exit;

y lo guardo en un archivo ke siempre anda por mi sistema o en su defecto hazlo kon javascript

echo "<script> window.location='pagina.php'</script>";
creo que es algo así
  #3 (permalink)  
Antiguo 04/11/2009, 15:36
 
Fecha de Ingreso: septiembre-2007
Mensajes: 59
Antigüedad: 17 años, 2 meses
Puntos: 3
Respuesta: Warning: Cannot modify header information

para que te de ese error tienes que tener algo mas en tu codigo, por si solo no debe darte problemas
__________________
Clasificados gratis
  #4 (permalink)  
Antiguo 04/11/2009, 15:46
Avatar de mauro770  
Fecha de Ingreso: mayo-2009
Mensajes: 109
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Warning: Cannot modify header information

curiosamente solo tengo esto en el archivo:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<p><?PHP
if(!isset($_GET["inyeccion"])){ 
 
header("location: ?inyeccion='"); 
} else { 
 echo 
'Tu servidor '
 if(
$_GET["inyeccion"] != "'")echo 'no '
 echo 
'tiene problemas de inyección'

?>


</body>
</html>
zeus voy a probar lo que me comentas.

slaudos
  #5 (permalink)  
Antiguo 04/11/2009, 15:53
 
Fecha de Ingreso: septiembre-2007
Mensajes: 59
Antigüedad: 17 años, 2 meses
Puntos: 3
Respuesta: Warning: Cannot modify header information

pues claro!

por eso te preguntaba, no podes imprimir nada antes de hacer un header location.

el header tiene que ejecutarse antes de que salga algo en pantalla
__________________
Clasificados gratis
  #6 (permalink)  
Antiguo 04/11/2009, 15:56
 
Fecha de Ingreso: septiembre-2007
Mensajes: 59
Antigüedad: 17 años, 2 meses
Puntos: 3
Respuesta: Warning: Cannot modify header information

fijate esto:

Cita:
<?PHP
if(!isset($_GET["inyeccion"])){
header("location: ?inyeccion='");
} else {
$texto= 'Tu servidor ';
if($_GET["inyeccion"] != "'") $texto.= 'no ';
$texto.= 'tiene problemas de inyección';
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<p>

<?
echo $texto;
?>
</body>
</html>
__________________
Clasificados gratis
  #7 (permalink)  
Antiguo 04/11/2009, 16:01
Avatar de mauro770  
Fecha de Ingreso: mayo-2009
Mensajes: 109
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Warning: Cannot modify header information

haaaaa .. poos tenias razon , ahora funciona , y me dice q no tengo problemas de inyeccion ... me podrias explicar un poco que es lo que hace esto ? me doy una idea , pero no entiendo mucho el tema de defenza de la inyeccion .
  #8 (permalink)  
Antiguo 04/11/2009, 16:02
 
Fecha de Ingreso: noviembre-2009
Ubicación: Peñaflor
Mensajes: 6
Antigüedad: 15 años
Puntos: 0
Respuesta: Warning: Cannot modify header information

Es un warning esto se debe a que alomejor no as definido
Código PHP:
 header("location:?inyeccion='"); 
es decir poner tu header asi
Código PHP:
header("location:turl?inyeccion='"); 
Pero como sabemos un warning no es un error y ahy servidores que los dejan pasaar
es lo unico que se me ocurre porque en mi local no me da error tu codigo ni de la forma que lo tienes tu ni de la forma que lo puse yo
  #9 (permalink)  
Antiguo 04/11/2009, 16:03
 
Fecha de Ingreso: septiembre-2007
Mensajes: 59
Antigüedad: 17 años, 2 meses
Puntos: 3
Respuesta: Warning: Cannot modify header information

en realidad nada :(

lo unico que hace es preguntar si el texto que le envias por GET tiene comillas simples. Lo cual "podria ser peligroso" pero te recomiendo busques mas info en google :)
__________________
Clasificados gratis
  #10 (permalink)  
Antiguo 04/11/2009, 16:08
 
Fecha de Ingreso: noviembre-2009
Ubicación: Peñaflor
Mensajes: 6
Antigüedad: 15 años
Puntos: 0
Respuesta: Warning: Cannot modify header information

yO Te recomiendo expreciones regulares para prevenir Inyecciones ejemplo
Código PHP:
 id=ereg_replace("[^A-Za-z0-9_]","",$id); 
eso te ahorrara muchos dolores de cabeza que hace? remplaza todo lo que no sea numero o letra por blanco Saludos
  #11 (permalink)  
Antiguo 04/11/2009, 16:20
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 22 años, 5 meses
Puntos: 35
Respuesta: Warning: Cannot modify header information

O mas sencillo, si el dato tiene que ser un valor entero, conviertelo a tal :)
Código php:
Ver original
  1. $id = (int) $_GET['id'];
  2. o
  3. $id = intval($_GET['id']);

En cuanto al código ese, me parece que lo que prueba es si está activado el magic_quotes del php.ini, de estarlo, una comilla simple te las convertiría a algo como \'
__________________
Sin Ideas
  #12 (permalink)  
Antiguo 04/11/2009, 16:22
 
Fecha de Ingreso: septiembre-2007
Mensajes: 59
Antigüedad: 17 años, 2 meses
Puntos: 3
Respuesta: Warning: Cannot modify header information

no entiendo por que tanta vuelta con ese script :(

lo unico que hace esta linea
if($_GET["inyeccion"] != "'")

es preguntar si el valor de $_GET["inyeccion"] es distinto a una comilla simple
__________________
Clasificados gratis
  #13 (permalink)  
Antiguo 04/11/2009, 16:28
Avatar de mauro770  
Fecha de Ingreso: mayo-2009
Mensajes: 109
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Warning: Cannot modify header information

ha ya me va quedando mas claro todo , gracias a todos , todas las recomendaciones las voy a adoptar y ahora entiendo el sentido del script ;) :D , igualmente quien sepa algo mas siempre es bienvenido :)
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 22:19.