Foros del Web » Programando para Internet » PHP »

insertar una dirección en un correo por formulario

Estas en el tema de insertar una dirección en un correo por formulario en el foro de PHP en Foros del Web. Muy buenas tengo un problema como puedo pasar la dirección de una pagina atreves de un formulario, me explico tengo un formulario para recomendar a ...
  #1 (permalink)  
Antiguo 20/07/2011, 05:26
 
Fecha de Ingreso: abril-2011
Ubicación: barcelona
Mensajes: 127
Antigüedad: 13 años
Puntos: 2
insertar una dirección en un correo por formulario

Muy buenas
tengo un problema como puedo pasar la dirección de una pagina atreves de un formulario, me explico tengo un formulario para recomendar a un amigo esa web pero necesito que esa dirección se envié por correo a la persona que queramos y salga la dirección de la pagina el enlace vaya .
yo tengo este código que envía una serie de datos nombre y un mensaje hasta aquí bien os pongo el código.

este es el formulario que se abre desde una pagina en una ventana nueva para rellenar y ser enviado.( yo quiero enviar el enlace de esa pagina que abre el formulario).

Código PHP:
<form id="contacto" name="contacto" method="post" action="envioamigo.php">
      <
table width="310" border="0">
        <
tr>
          <
td width="155">Tu nombre</td>
          <
td width="161"><input name="minombre" type="text" id="minombre" /></td>
        </
tr>
        <
tr>
          <
td>Nombre de tu amigo</td>
          <
td><input name="nombre" type="text" id="nombre" /></td>
        </
tr>
        <
tr>
          <
td>Su email</td>
          <
td><input name="mail" type="text" id="mail" /></td>
        </
tr>
        <
tr>
          <
td colspan="2">Quieres decirle algo a tu amigo</td>
        </
tr>
        <
tr>
          <
td colspan="2"><textarea name="comentario" cols="35" rows="5" id="comentario"></textarea></td>
        </
tr>
        <
tr>
          <
td colspan="2" align="center"><input name="Enviar" type="submit" value="enviar" />
          </
td>
        </
tr>
      </
table>   
</
form
aquí el código php para enviar el mensaje en una pagina diferente llamada envióamigo.php

Código PHP:
<?php
$minombre
$_POST['minombre'];
$nombre $_POST['nombre'];
$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 " $minombre ", de http://www.xanina.com/tienda.php" ." \r\n";
$mensaje .= "Tu amigo dice: " $_POST['comentario'] . " \r\n";
$mensaje .= "Enviado el " date('d/m/Y'time());


//$para = '[email protected]';
$asunto 'Te recomiendo que mires esta web';

mail($mail$asuntoutf8_decode($mensaje), $header);

echo 
'Tu amigo recibio el e-mail';

?>
bueno eso es todo quizás a alguien le sirva lo escrito, gracias de antemano.
  #2 (permalink)  
Antiguo 20/07/2011, 05:48
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: insertar una dirección en un correo por formulario

Una buena opción es añadir un input hidden en el formulario como sigue:
<input type="hidden" name="url" value="<?php echo $PHP_SELF; ?>"/>

Con la variable $PHP_SELF obtienes la dirección URL en la que te encuentras y la envías con los datos del POST del formulario. Luego la rescatas y la utilizas como quieras.

Espero te sirva, un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #3 (permalink)  
Antiguo 20/07/2011, 12:11
 
Fecha de Ingreso: abril-2011
Ubicación: barcelona
Mensajes: 127
Antigüedad: 13 años
Puntos: 2
Respuesta: insertar una dirección en un correo por formulario

no me funciona no se exactamente donde ponerlo alguna pista porfa
  #4 (permalink)  
Antiguo 21/07/2011, 03:32
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: insertar una dirección en un correo por formulario

Lo puedes poner la siguiente línea:
<input type="hidden" name="url" value="<?php echo $_SERVER['PHP_SELF']; ?>"/>
en cualquier lado entre el <form> y el </form>, luego en el php que recibe el formulario añades en la primera línea:
$url= $_POST['url'];

Y en $url deberías tener la dirección web completa de la página en la que está el formulario.

Si tienes problemas, avisa y lo miramos mejor, pero creo que con esto ya debería irte.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?

Última edición por vgonga1986; 21/07/2011 a las 05:03
  #5 (permalink)  
Antiguo 21/07/2011, 05:07
 
Fecha de Ingreso: abril-2011
Ubicación: barcelona
Mensajes: 127
Antigüedad: 13 años
Puntos: 2
Respuesta: insertar una dirección en un correo por formulario

no se no me sale la url en el mail

esto es como lo puse:
formulario
Código PHP:
Ver original
  1. <form id="contacto" name="contacto" method="post" action="envioamigo.php">
  2.       <table width="310" border="0">
  3.         <tr>
  4.             <td><input type="hidden" name="url" value="<?php echo $PHP_SELF; ?>"/></td>
  5.           <td width="155">Tu nombre</td>
  6.           <td width="161"><input name="minombre" type="text" id="minombre" /></td>
  7.         </tr>
  8.         <tr>
  9.           <td>Nombre de tu amigo</td>
  10.           <td><input name="nombre" type="text" id="nombre" /></td>
  11.         </tr>
  12.         <tr>
  13.           <td>Su email</td>
  14.           <td><input name="mail" type="text" id="mail" /></td>
  15.         </tr>
  16.         <tr>
  17.           <td colspan="2">Quieres decirle algo a tu amigo</td>
  18.         </tr>
  19.         <tr>
  20.           <td colspan="2"><textarea name="comentario" cols="35" rows="5" id="comentario"></textarea></td>
  21.         </tr>
  22.         <tr>
  23.           <td colspan="2" align="center"><input name="Enviar" type="submit" value="enviar" />
  24.        
  25.           <a href="#" onclick="cierra()">cerrar ventana </a>
  26.           </td>
  27.         </tr>
  28.       </table>  
  29. </form>

pagina php envioamigo.php:
Código PHP:
Ver original
  1. <?php
  2. $minombre= $_POST['minombre'];
  3. $nombre = $_POST['nombre'];
  4. $mail = $_POST['mail'];
  5. $url= $_POST['url'];
  6.  
  7.  
  8. $header = 'From: ' . $mail . " \r\n";
  9. $header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
  10. $header .= "Mime-Version: 1.0 \r\n";
  11. $header .= "Content-Type: text/plain";
  12.  
  13.  
  14. $mensaje = "Este mensaje fue enviado por " . $minombre . ", de http://www.xanina.com/tienda.php" ." \r\n";
  15. $mensaje .= "visita" . $url . " \r\n";
  16. $mensaje .= "Tu amigo dice: " . $_POST['comentario'] . " \r\n";
  17. $mensaje .= "Enviado el " . date('d/m/Y', time());
  18.  
  19.  
  20. $asunto = 'Te recomiendo que mires esta web';
  21.  
  22. mail($mail, $asunto, utf8_decode($mensaje), $header);
  23.  
  24. echo 'Tu amigo recibio el e-mail';
  25.  
  26. ?>

vgonga gracias de todas formas seguiré privando
  #6 (permalink)  
Antiguo 21/07/2011, 05:09
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: insertar una dirección en un correo por formulario

Te lo puse mal en el primer post, lo siento:
<input type="hidden" name="url" value="<?php echo $_SERVER['PHP_SELF']; ?>"/>

De todas formas, para mirar lo que te pone, pon type="text" primero, así verás el valor y una vez que veas que es lo que quieres que sea, vuelve a ponerle el type="hidden" para ocultarlo.

Un saludo, espero que ya con esto si te funcione y siento el despiste de antes.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #7 (permalink)  
Antiguo 21/07/2011, 05:40
 
Fecha de Ingreso: abril-2011
Ubicación: barcelona
Mensajes: 127
Antigüedad: 13 años
Puntos: 2
Respuesta: insertar una dirección en un correo por formulario

ok perfecto vgonga ahora funciona solo que me pasa la dirección del formulario necesito la de la pagina anterior al formulario que es la que interesa probare pesarle al formulario esa dirección haber gracias por lo menos veo luz al final del túnel jejeje
  #8 (permalink)  
Antiguo 21/07/2011, 06:34
 
Fecha de Ingreso: abril-2011
Ubicación: barcelona
Mensajes: 127
Antigüedad: 13 años
Puntos: 2
Respuesta: insertar una dirección en un correo por formulario

perfecto vgonga ya esta solucionado muchas gracias he cambiado el $_SERVER['PHP_SELF'] por $_SERVER['HTTP_REFERER'] y ahora si geniallll seguimos jeje
  #9 (permalink)  
Antiguo 21/07/2011, 06:42
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: insertar una dirección en un correo por formulario

Eso te va a funcionar, pero no es recomendable utilizar HTTP_REFERER, por dos motivos:
1. En ciertas ocasiones, se puede modificar el valor a través del navegador.
2. Si la dirección es insertada manualmente desde el navegador, este valor va a ser vacío, hay que seguir un link para que se rellene.

La forma de solucionarlo, si quieres mayor seguridad, es por sesiones, de forma que en la página o páginas donde vas a enviar al formulario inicialices sesion (session_start()) y guardes un campo con la url ($_SESSION['url'] = $_SERVER['PHP_SELF']). En la página del formulario tendrás que iniciar la sesión también y en el campo hidden, extraer el valor con:
<input type="hidden" name="url" value="<?php echo $_SESSION['url']; ?>"/>

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?

Etiquetas: correo, formulario
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 08:05.