Foros del Web » Programando para Internet » PHP »

Como cambiar el remitente de un formulario

Estas en el tema de Como cambiar el remitente de un formulario en el foro de PHP en Foros del Web. Hola, tengo el siguiente script para recivir opiniones desde mi página web: Página contacto.php Código PHP: <?  if (! $HTTP_POST_VARS ){  ?> <p class="Estilo13"> Completa los datos que a continuaci&oacute;n se piden, as&iacute; nos pondremos en contacto contigo. </p>   <table width="448" border="0" align="center">     <tr>       <td width="300"><p class="Estilo13">&nbsp;</p> ...
  #1 (permalink)  
Antiguo 21/11/2005, 12:05
Avatar de DoKyE  
Fecha de Ingreso: junio-2005
Mensajes: 144
Antigüedad: 12 años, 5 meses
Puntos: 0
Como cambiar el remitente de un formulario

Hola, tengo el siguiente script para recivir opiniones desde mi página web:

Página contacto.php
Código PHP:
<? 
if (!$HTTP_POST_VARS){ 
?>

<p class="Estilo13"> Completa los datos que a continuaci&oacute;n se piden, as&iacute; nos pondremos en contacto contigo. </p>
  <table width="448" border="0" align="center">
    <tr>
      <td width="300"><p class="Estilo13">&nbsp;</p>
        <form action="contacto.php" method=post>
          <p><span class="items-main">Nombre *</span><br>
              <input name="nombre" type=text size=30>
              <br>
              <span class="items-main">Email *</span><br>
              <input name="email" type=text class="listas2" value="[email protected]" size=30>
              <br>
              <span class="items-main">Tel&eacute;fono *</span><br>
              <input name="fono" type=text size=25>
              <br>
              <span class="items-main">Comentarios *</span><br>
              <textarea name="comentarios" cols=44 rows=6 class="Estilo20" id="comentarios"></textarea>
              <br>
              <input type=submit class="items-main" value="Enviar">
          </p>
        </form>
        </td>
      <td width="138"><div align="left">
        <p><img src="img/correo1.jpg" alt="e-mail Centro Tur&iacute;stico Lago Natri - Chilo&eacute;" width="120" height="89"></p>
        <p>&nbsp;</p>
        <p>&nbsp;</p>
        <p>&nbsp;</p>
        <p>&nbsp;</p>
      </div></td>
    </tr>
  </table>  
  <p class="Estilo13"><span class="Estilo10">             <? 
}else{ 
    
//Estoy recibiendo el formulario, compongo el cuerpo 
    
$cuerpo "Consulta desde P&aacute;gina Web\n";
    
$cuerpo .= "Nombre: " $HTTP_POST_VARS["nombre"] . "\n"
    
$cuerpo .= "Email: " $HTTP_POST_VARS["email"] . "\n"
    
$cuerpo .= "Fono: " $HTTP_POST_VARS["fono"] . "\n"
    
$cuerpo .= "Comentarios: " $HTTP_POST_VARS["comentarios"] . "\n"

    
//mando el correo... 
    
mail("[email protected]","Consulta desde sitio web",$cuerpo); 

    
//doy las gracias por el env&iacute;o 
    
echo"<br>";
    echo
"<br>";
    echo
"<br>";
    echo
"<br>";
    echo
"<div align=\"center\"><span class=\"items-main\"> Gracias por contactarnos, pronto nos comunicaremos con usted.</span><br></div>"
    echo
"<br>";
    echo
"<div align=\"center\"><img src=\"img/correo.gif\"></div>";
    echo
"<br>";

?>
funciona bien, el problema es el siguiente:
en mi servidor tengo configurada la cuenta de correo [email protected] para que ejecute respuestas automaticas al momento que llega un correo, pero el script de contacto hece que el servidor envie el correo osea el remitente queda de la siguiente forma:

Remitente: Apache <[email protected]>
Destinatario: [email protected]
Asunto: Consulta desde sitio web

por lo que las respuestas automaticas se las envia al servidor, osea se pierden, como puedo hacer para que el remitente sea el correo del visitante que se pide en el formulario, para que las respuestas automaticas se las envie al que realmente visitó la web?
__________________
Chiloé
  #2 (permalink)  
Antiguo 21/11/2005, 12:41
Avatar de oskarL  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 499
Antigüedad: 12 años, 7 meses
Puntos: 2
Normal...

Claro que te los envia a esa cuenta, mas que nada porque se lo estas diciendo!

La funcion mail es asi:
Código PHP:
mail($destinatario,$asunto,$cuerpo[,$cabeceras]) 
Por lo tanto el primer parámetro es la direccion de correo de destino
__________________
Solo hay 10 clases de personas, las que saben binario y las que no.
  #3 (permalink)  
Antiguo 21/11/2005, 13:04
Avatar de deskman  
Fecha de Ingreso: noviembre-2005
Ubicación: Chorrillos Lima - Peru
Mensajes: 28
Antigüedad: 12 años
Puntos: 1
Cita:
Iniciado por DoKyE
Remitente: Apache <[email protected]>
Destinatario: [email protected]
Asunto: Consulta desde sitio web

por lo que las respuestas automaticas se las envia al servidor, osea se pierden, como puedo hacer para que el remitente sea el correo del visitante que se pide en el formulario, para que las respuestas automaticas se las envie al que realmente visitó la web?
Para cambiar el remitente en el correo que se envia tu cuenta configurada con el autorrespondedor debes usar el cuarto parametro de la funcion mail: las cabeceras adicionales, podrias hacerlo asi:

Código PHP:
$add_header "From: Usuario <".$_POST[email].">\r\n";
mail("[email protected]""Consulta desde sitio web"$cuerpo$add_header); 
Con esto, enviamos una cabecera adicional que justamante viene a ser el remitente que queremos que aparezca, en nuestro caso, el valor en el campo email del formulario.

PD.: No te recomiendo usar $_HTTP_POST_VARS, en vez de estas puedes usar $_POST.
Suerte
__________________
"El conocimiento que no se comparte no es conocimiento"
  #4 (permalink)  
Antiguo 21/11/2005, 13:49
Avatar de DoKyE  
Fecha de Ingreso: junio-2005
Mensajes: 144
Antigüedad: 12 años, 5 meses
Puntos: 0
Gracias deskman
lo ise como me dijiste y "eureca"

PORQUE ME RECOMIENDAS USAR $_POST EN VES DE $_HTTP_POST_VARS?
__________________
Chiloé
  #5 (permalink)  
Antiguo 21/11/2005, 14:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por DoKyE
Gracias deskman
lo ise como me dijiste y "eureca"

PORQUE ME RECOMIENDAS USAR $_POST EN VES DE $_HTTP_POST_VARS?
Por ....

http://www.forosdelweb.com/showthrea...989#post238989

Un saludo,
  #6 (permalink)  
Antiguo 21/11/2005, 14:28
Avatar de DoKyE  
Fecha de Ingreso: junio-2005
Mensajes: 144
Antigüedad: 12 años, 5 meses
Puntos: 0
oka gracias ::
__________________
Chiloé
  #7 (permalink)  
Antiguo 21/11/2005, 14:36
Avatar de deskman  
Fecha de Ingreso: noviembre-2005
Ubicación: Chorrillos Lima - Peru
Mensajes: 28
Antigüedad: 12 años
Puntos: 1
Bueno, $_HTTP_POST_VARS es una matriz global que almacena los valores de todos los campos enviados desde un formulario con el metodo POST, el array superglobal $_POST es identico, pero mientras $_HTTP_POST_VARS pueden ser desactivadas mediante el valor register_long_arrays, las variables superglobales se definen automaticamente en ambito global, todo esto es a partir de PHP 4.1.0

http://www.desarrolloweb.com/articul....php?manual=12

Todo esto tiene que ver con el ambito de variables, suerte
__________________
"El conocimiento que no se comparte no es conocimiento"
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:18.