Foros del Web » Programando para Internet » PHP »

error php warning...

Estas en el tema de error php warning... en el foro de PHP en Foros del Web. este es el error: Código: Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/loscargosenelpoder.com/httpdocs/enviar.php:9) in /var/www/vhosts/loscargosenelpoder.com/httpdocs/enviar.php on line 30 He ...
  #1 (permalink)  
Antiguo 24/09/2010, 03:58
Avatar de 00israel  
Fecha de Ingreso: enero-2002
Ubicación: madrid
Mensajes: 636
Antigüedad: 22 años, 2 meses
Puntos: 5
error php warning...

este es el error:

Código:
Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/loscargosenelpoder.com/httpdocs/enviar.php:9) in /var/www/vhosts/loscargosenelpoder.com/httpdocs/enviar.php on line 30
He estado leyendo por ahi. Y comentan algunas soluciones, pero mi caso es algo particular, porque la misma pagina php la coloco en el hospedaje de uno de mis sitios y va pero la pongo en otro hospedaje y nada. Los dos pertenecen a interdominios. Y los dos son linux oro sin limites con php

no lo entiendo. Este es el codigo:

Código:
<!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>
<?
$nombre = $_POST['nombre'];
$empresa = $_POST['empresa'];
$telefono = $_POST['telefono'];
$mail = $_POST['mail'];


$header = 'From: ' . $mail . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje = "Este mensaje fue enviado por " . $nombre . ", de la empresa " . $empresa . " \r\n\r\n";
$mensaje .= "Su e-mail es: " . $mail . ", y su telefono es " . $telefono . " \r\n\r\n";
$mensaje .= "Mensaje: " . $_POST['mensaje'] . " \r\n\r\n";
$mensaje .= "Enviado el " . date('d/m/Y', time());

$para = '[email protected]';
$asunto = 'Envio desde formulario de los cargos en el poder';

if (mail($para, $asunto, utf8_decode($mensaje), $header)) {
   header("Location: gracias.html");
} else {
  echo "Ha habido un error enviando el formulario, <a href=contacto.html'> volver atras.</a>";
}
?></body>
</html>
  #2 (permalink)  
Antiguo 24/09/2010, 04:03
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: error php warning...

<? no es correcto
<?php si es correcto

Así evitas algunos problemas...

Tu error es porque estas enviando un header despues de enviar contenido...
Osea, no puedes poner un header y que anterior a éste, haya código.

Cuando envias una cabecera header, no puedes a ver nada, ni siquiera un espacio.

Una manera sencilla pero no recomendable, es usar el caracter de supresión de errores (@)

ejemplo: @header("Location: gracias.html");

Saludos,
  #3 (permalink)  
Antiguo 24/09/2010, 04:20
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 2 meses
Puntos: 14
Respuesta: error php warning...

Sigue el consejo de Deffer...el de los php pero no te recomiendo la supresión errores.

En vez de header location puedes usar esto:

Código PHP:
Ver original
  1. echo "<script>parent.parent.location.href ='http://www.tuweb.com/gracias.html';</script>";

Usa las etiquetas PHP cuando postees en el foro porfavor.
  #4 (permalink)  
Antiguo 24/09/2010, 04:56
Avatar de 00israel  
Fecha de Ingreso: enero-2002
Ubicación: madrid
Mensajes: 636
Antigüedad: 22 años, 2 meses
Puntos: 5
Respuesta: error php warning...

gracias a los dos por vuestra ayuda. Voy a poneros entonces como tendria que ser a ver si lo pongo bien:

Segun me comenta Deffer con respecto a lo de <?php y lo qeu tu me dices Adrian seg (tendria que sustituir la linea de echo?):

Seria asi?:

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>
<?php
$nombre 
$_POST['nombre'];
$empresa $_POST['empresa'];
$telefono $_POST['telefono'];
$mail $_POST['mail'];


$header 'From: ' $mail " \r\n";
$header .= "X-Mailer: PHP/" phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje "Este mensaje fue enviado por " $nombre ", de la empresa " $empresa " \r\n\r\n";
$mensaje .= "Su e-mail es: " $mail ", y su telefono es " $telefono " \r\n\r\n";
$mensaje .= "Mensaje: " $_POST['mensaje'] . " \r\n\r\n";
$mensaje .= "Enviado el " date('d/m/Y'time());

$para '[email protected]';
$asunto 'Envio desde formulario de los cargos en el poder';

echo 
"<script>parent.parent.location.href='http://www.tuweb.com/gracias.html';</script>";
}
php?></body>
</html>
estaria correcto asi?
  #5 (permalink)  
Antiguo 24/09/2010, 05:02
Avatar de 00israel  
Fecha de Ingreso: enero-2002
Ubicación: madrid
Mensajes: 636
Antigüedad: 22 años, 2 meses
Puntos: 5
Respuesta: error php warning...

algo estoy poniendo mal porque ahora me dice este error:

Código PHP:
Parse errorsyntax errorunexpected '}' in /var/www/vhosts/loscargosenelpoder.com/httpdocs/enviar.php on line 30 
  #6 (permalink)  
Antiguo 24/09/2010, 05:03
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 2 meses
Puntos: 14
Respuesta: error php warning...

Te sobra el cierre ultimo.Borralo no sirve de nada. }

y el final del php es ?> en vez de php?>
  #7 (permalink)  
Antiguo 24/09/2010, 05:07
Avatar de 00israel  
Fecha de Ingreso: enero-2002
Ubicación: madrid
Mensajes: 636
Antigüedad: 22 años, 2 meses
Puntos: 5
Respuesta: error php warning...

ahora, ahora, ahora si si si.

He suprimido la llave esa que habia suelta por ahi ({) y ahora me ha funcionado.

pero el formulario lo mande bien o mal siempre va a irse a la pagina de "gracias.html"

la verdad no me importa mucho porque es un formulario con una informacion muy sencilla pero si quisiera que se mandara correctamente habria una condicional para por si detecta algun error?
  #8 (permalink)  
Antiguo 24/09/2010, 05:09
Avatar de 00israel  
Fecha de Ingreso: enero-2002
Ubicación: madrid
Mensajes: 636
Antigüedad: 22 años, 2 meses
Puntos: 5
Respuesta: error php warning...

gracias adrianseg
  #9 (permalink)  
Antiguo 24/09/2010, 05:13
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 2 meses
Puntos: 14
Respuesta: error php warning...

Código PHP:
Ver original
  1. if (mail($para, $asunto, utf8_decode($mensaje), $header)) {
  2. echo "<script>parent.parent.location.href='http://www.tuweb.com/gracias.html';</script>";
  3. } else {
  4.   echo "Ha habido un error enviando el formulario, <a href=contacto.html'> volver atras.</a>";
  5. }
  #10 (permalink)  
Antiguo 24/09/2010, 05:16
Avatar de 00israel  
Fecha de Ingreso: enero-2002
Ubicación: madrid
Mensajes: 636
Antigüedad: 22 años, 2 meses
Puntos: 5
Respuesta: error php warning...

gracias otra vez adrianseg. Por cierto ahora no me llega la informacion al correo. porque puede ser?
  #11 (permalink)  
Antiguo 24/09/2010, 05:20
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 2 meses
Puntos: 14
Respuesta: error php warning...

De dónde viene esto?

$nombre = $_POST['nombre'];
$empresa = $_POST['empresa'];
$telefono = $_POST['telefono'];
$mail = $_POST['mail'];

¿?¿?

Antes si enviaba?
  #12 (permalink)  
Antiguo 24/09/2010, 05:24
Avatar de 00israel  
Fecha de Ingreso: enero-2002
Ubicación: madrid
Mensajes: 636
Antigüedad: 22 años, 2 meses
Puntos: 5
Respuesta: error php warning...

si, si enviaba.

Es de un formulario que tengo en otra pagina

tiene que ver por haber eliminado algun header?
  #13 (permalink)  
Antiguo 24/09/2010, 05:34
Avatar de 00israel  
Fecha de Ingreso: enero-2002
Ubicación: madrid
Mensajes: 636
Antigüedad: 22 años, 2 meses
Puntos: 5
Respuesta: error php warning...

le he puesto la condicional que me has enviado y ahora si me llega. ¿era por lo del header?
  #14 (permalink)  
Antiguo 24/09/2010, 05:34
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 2 meses
Puntos: 14
Respuesta: error php warning...

Yo veo el codigo correcto puede ser que en este nuevo server no tengas la funcion mail activada? ya que la redireccion no interfiere en este caso almenos no veo nada mal.

Puede ser, no se como funciona muy bien lo del header no se si mata la ejecucion activa o la deja seguir.

Si te sirvio +Karma
  #15 (permalink)  
Antiguo 24/09/2010, 05:36
Avatar de 00israel  
Fecha de Ingreso: enero-2002
Ubicación: madrid
Mensajes: 636
Antigüedad: 22 años, 2 meses
Puntos: 5
Respuesta: error php warning...

muchas gracias adrianseg. Ahora ya con lo ultimo que me enviaste, lo de la condicional, va perfecto. Muchas gracias por todo de verdad.

hasta otra

Etiquetas: warning
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 12:46.