Foros del Web » Programando para Internet » PHP »

Formulario Enviado A Correo

Estas en el tema de Formulario Enviado A Correo en el foro de PHP en Foros del Web. Hola, necesito poner en una de mis páginas un formulario. Yo manejo el Dreamweaver en lo relativo al HTML, pero no sé usar el PHP ...
  #1 (permalink)  
Antiguo 05/02/2005, 02:00
 
Fecha de Ingreso: abril-2004
Mensajes: 35
Antigüedad: 20 años
Puntos: 0
Formulario Enviado A Correo

Hola, necesito poner en una de mis páginas un formulario. Yo manejo el Dreamweaver en lo relativo al HTML, pero no sé usar el PHP (y sé que para que un formulario me envíe la info a mi mail es imprescindible usar este último lenguaje).
Por otro lado, los formularios ya hechos tienen publicidades y no puedo poner eso en mi página. ¿Podrán orientarme para que pueda hacer algo sencillo?
Saludos a todos.
Martín.
  #2 (permalink)  
Antiguo 05/02/2005, 03:19
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 20 años, 11 meses
Puntos: 2
.. perdon, pero no es impresindible usar PHP para enviar la info a tu email, hay otras formas.

Igualmente, creo que la mejor siempre es usar PHP (tu hosting tiene soporte php?).

Tienes que crear al formulario y en el action enviarlo por POST a, por ejemplo, up_consulta.php

En up_consulta.php tienes que poner el codigo de esta forma (si lo haces con dreamweaver sin soporte php, anda a la vista html y borra todo el html, aunque te recomiendo hacerlo desde notepad o similar).
Código PHP:
<?
$asunto 
$_POST['asunto'];
$mensaje '
<html>
<head>
 <title>EL TITULO QUE QUIERAS</title>
</head>
<body>
<p><font size="2" face="Verdana">'
.$_POST['texto'].'</font></p>
</body>
</html>
'
;
$email="[email protected]";
$cabeceras  "MIME-Version: 1.0\r\n";
$cabeceras .= "Content-type: text/html; charset=iso-8859-1\r\n";
$cabeceras .= "From: ".$_POST['nombre']." <".$_$POST['mail'].">\r\n";
mail($email$asunto$mensaje$cabeceras);
?>
Bueno, éxplico un poco.

Las variables que envias desde el formulario en este caso serían:
$_POST['asunto']
$_POST['texto']
$_$POST['mail']
$_$POST['nombre']

Es decir, en el formulario tenes un text llamado asunto, un textarea llamado texto y otros dos text llamados mail y nombre.

La variable $email la tenes que llenar con TU direccion de email. La variable $cabeceras es la que se ocupa de decirle a la funcion mail() que el mail se enviará como HTML y no como texto plano... La variable $mensaje es la que creamos nosotros para meter todo el contenido del email dentro de las etiquetas html correspondientes...

Así como ponemos la variable $_POST['texto'] podes poner cuantas variables se te antoje, siempre dentro del codigo html y siempre tiene que ir, antes de la variable, un '. y despues de la variable un .'

Espero darte una idea...
__________________
I Love Programming...

Última edición por FuLaNo_; 05/02/2005 a las 03:21
  #3 (permalink)  
Antiguo 05/02/2005, 08:04
 
Fecha de Ingreso: abril-2004
Mensajes: 35
Antigüedad: 20 años
Puntos: 0
Cita:
Iniciado por FuLaNo_
.. perdon, pero no es impresindible usar PHP para enviar la info a tu email, hay otras formas.

Igualmente, creo que la mejor siempre es usar PHP (tu hosting tiene soporte php?).
Gracias por contestarme. Yo creo que sí tiene hosting php y creo que la prueba está en que tengo el foro phpbb2 (¿Es esto una prueba de que soporta php o estoy diciendo una burrada?)

Cita:
Tienes que crear al formulario y en el action enviarlo por POST a, por ejemplo, up_consulta.php

En up_consulta.php tienes que poner el codigo de esta forma (si lo haces con dreamweaver sin soporte php, anda a la vista html y borra todo el html, aunque te recomiendo hacerlo desde notepad o similar).
Código PHP:
<?
$asunto 
$_POST['asunto'];
$mensaje '
<html>
<head>
 <title>EL TITULO QUE QUIERAS</title>
</head>
<body>
<p><font size="2" face="Verdana">'
.$_POST['texto'].'</font></p>
</body>
</html>
'
;
$email="[email protected]";
$cabeceras  "MIME-Version: 1.0\r\n";
$cabeceras .= "Content-type: text/html; charset=iso-8859-1\r\n";
$cabeceras .= "From: ".$_POST['nombre']." <".$_$POST['mail'].">\r\n";
mail($email$asunto$mensaje$cabeceras);
?>
Bueno, éxplico un poco.

Las variables que envias desde el formulario en este caso serían:
$_POST['asunto']
$_POST['texto']
$_$POST['mail']
$_$POST['nombre']

Es decir, en el formulario tenes un text llamado asunto, un textarea llamado texto y otros dos text llamados mail y nombre.

La variable $email la tenes que llenar con TU direccion de email. La variable $cabeceras es la que se ocupa de decirle a la funcion mail() que el mail se enviará como HTML y no como texto plano... La variable $mensaje es la que creamos nosotros para meter todo el contenido del email dentro de las etiquetas html correspondientes...

Así como ponemos la variable $_POST['texto'] podes poner cuantas variables se te antoje, siempre dentro del codigo html y siempre tiene que ir, antes de la variable, un '. y despues de la variable un .'

Espero darte una idea...
Disculpá que te pregunte tantas cosas, pero tengo mucha necesidad de poder armar esto y mis conocimientos son más que limitados. Entonces, la idea es hacer un archivo PHP, llamado up_consulta.php y otro en html que envíe la información a up_consulta.php o estoy diciendo otra burrada?

Es decir, yo armo el formulario con el dreamweaver y en action le pongo que lo envíe a up_consulta.php? (si pudieras transcribirme las instrucciones para armar también el html sería fantástico)

Bueno, gracias por la infinita paciencia.
Martín.
  #4 (permalink)  
Antiguo 05/02/2005, 10:56
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 20 años, 11 meses
Puntos: 2
No no, estas diciendo lo correcto.

EL formulario lo metes en html (lo haces con dreamweaver como dices, o a "mano, como mas te guste), aunque puedes ponerle extencion php si quieres, esto, en el formulario, no cambia nada.

Si quieres, podes subir todas las variables que vas a usar (es decir, los nombres de los textos, checks, radios, etc, que uses) así te armo el archivo con todas las variables y te vas a ir dando cuenta...

PD: si, si tenes un phpbb tu hosting soporta php ;)
__________________
I Love Programming...
  #5 (permalink)  
Antiguo 05/02/2005, 11:17
 
Fecha de Ingreso: abril-2004
Mensajes: 35
Antigüedad: 20 años
Puntos: 0
Mil gracias Fulano por las molestias que te tomás en contestarme.
No quiero abusar, pero en realidad, son dos formularios que quiero poner. Yo te doy las variables de ambos, pero con poner sólo algunas seguramente voy a entender cómo hacer las demas, así que tal vez no sea necesario que subas el código de TODO esto (principalmente porque sos tan servicial por prestar tu ayuda que no quiero aburrirte ni desalentarte).

1) Curso; Nombre y Apellido; E-mail; DNI; Lugar de Nacimiento; Fecha de Nacimiento; Teléfono; Domicilio; Localidad; País; Consulta, sugerencia o comentario; ¿Cómo se enteró del curso?

2) Nombre y Apellido; Currículum; (acá viene algo jorobado, me parece) Archivo adjunto.

Bueno, mil gracias nuevamente. Te mando un saludo.
Martín.
  #6 (permalink)  
Antiguo 05/02/2005, 11:23
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 20 años, 11 meses
Puntos: 2
basta de elogios que me agrando y no saludo mas! ;)

Me estas pasando los campos o las variables de los mismos?, yo lo que necesito que me pases es esto:
En el html del formulario veras los campos de esta forma:
<input type="text" size="20" name="nombre">

Yo necesito el contenido del NAME, que, para que no haya problemas, debe ser todo en minuscula y sin espacios en blanco, si quieres ponerle "fecha de nacimiento" ponle mejor "fecha_de_nacimiento".

Pasame esos valores, o algunos para que ves como tendrías que ubicarlos en el codigo php.

PD: el de archivo adjunto te lo debo, a no ser que subamos el archivo al servidor y te ponga la url, pero nunca utilice adjuntar archivos, por lo que no lo se usar =/
__________________
I Love Programming...
  #7 (permalink)  
Antiguo 05/02/2005, 11:49
 
Fecha de Ingreso: abril-2004
Mensajes: 35
Antigüedad: 20 años
Puntos: 0
Cita:
Iniciado por FuLaNo_
basta de elogios que me agrando y no saludo mas! ;)

Me estas pasando los campos o las variables de los mismos?, yo lo que necesito que me pases es esto:
En el html del formulario veras los campos de esta forma:
<input type="text" size="20" name="nombre">

Yo necesito el contenido del NAME, que, para que no haya problemas, debe ser todo en minuscula y sin espacios en blanco, si quieres ponerle "fecha de nacimiento" ponle mejor "fecha_de_nacimiento".

Pasame esos valores, o algunos para que ves como tendrías que ubicarlos en el codigo php.

PD: el de archivo adjunto te lo debo, a no ser que subamos el archivo al servidor y te ponga la url, pero nunca utilice adjuntar archivos, por lo que no lo se usar =/
Ok (soy difícil como alumno, lo sé). Entonces, te doy los tres primeros y después me arreglo con los demás (va a ser una multiplicación de lo mismo).
"curso" "nombre" y "mail".
Espero haber hecho todo bien ahora.
Saludos y gracias nuevamente (si te agrandás no importa: te lo merecés).
Martín
  #8 (permalink)  
Antiguo 05/02/2005, 13:37
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 20 años, 11 meses
Puntos: 2
Bueno, seria algo asi

Código PHP:
<? 
$asunto 
"Aca pone el ASunto del email"
$mensaje 
<html> 
<head> 
<title>EL TITULO QUE QUIERAS</title> 
</head> 
<body> 
<p><font size="2" face="Verdana">Nombre: <b>'
.$_POST['nombre'].'</b></font></p>
<p><font size="2" face="Verdana">eMail: <b>'
.$_POST['mail'].'</b></font></p> 
<p><font size="2" face="Verdana">Curso: <b>'
.$_POST['curso'].'</b></font></p> 
</body> 
</html> 
'

$email="[email protected]"
$cabeceras  "MIME-Version: 1.0\r\n"
$cabeceras .= "Content-type: text/html; charset=iso-8859-1\r\n"
$cabeceras .= "From: ".$_POST['nombre']." <".$_$POST['mail'].">\r\n"
mail($email$asunto$mensaje$cabeceras); 
?>
Como ves, solo tienes que agregar este tipo de lineas:
<p><font size="2" face="Verdana">texto: <b>'.$_POST['var'].'</b></font></p>

En donde "texto" identificara el campo en el email y el $_POST['var'] seria la variable para ese campo, ejemplo:
division: '.$_POST['division'] .'
Materia: '.$_POST['materia'] .'

etc... en este caso se usan los '..' para "concatenar" (encadenar) las variables a la variable principal, que sería $mensaje...

Espero haberte ayudado algo.
__________________
I Love Programming...
  #9 (permalink)  
Antiguo 05/02/2005, 16:45
 
Fecha de Ingreso: abril-2004
Mensajes: 35
Antigüedad: 20 años
Puntos: 0
Cita:
Iniciado por FuLaNo_
Bueno, seria algo asi

Código PHP:
<? 
$asunto 
"Aca pone el ASunto del email"
$mensaje 
<html> 
<head> 
<title>EL TITULO QUE QUIERAS</title> 
</head> 
<body> 
<p><font size="2" face="Verdana">Nombre: <b>'
.$_POST['nombre'].'</b></font></p>
<p><font size="2" face="Verdana">eMail: <b>'
.$_POST['mail'].'</b></font></p> 
<p><font size="2" face="Verdana">Curso: <b>'
.$_POST['curso'].'</b></font></p> 
</body> 
</html> 
'

$email="[email protected]"
$cabeceras  "MIME-Version: 1.0\r\n"
$cabeceras .= "Content-type: text/html; charset=iso-8859-1\r\n"
$cabeceras .= "From: ".$_POST['nombre']." <".$_$POST['mail'].">\r\n"
mail($email$asunto$mensaje$cabeceras); 
?>
Como ves, solo tienes que agregar este tipo de lineas:
<p><font size="2" face="Verdana">texto: <b>'.$_POST['var'].'</b></font></p>

En donde "texto" identificara el campo en el email y el $_POST['var'] seria la variable para ese campo, ejemplo:
division: '.$_POST['division'] .'
Materia: '.$_POST['materia'] .'

etc... en este caso se usan los '..' para "concatenar" (encadenar) las variables a la variable principal, que sería $mensaje...

Espero haberte ayudado algo.
Gracias. Funcionó perfecto. Bah, en realidad me marcó un error en la línea 18 (Parse error: parse error, unexpected T_VARIABLE in /www/docs/elestilistaonline.com.ar/public_html/PHP/email2.php on line 18
)
. Le saqué la línea 18 y funcionó bárbaro.

Por las dudas, la línea 18 es ésta: $cabeceras .= "From: ".$_POST['nombre']." <".$_$POST['mail'].">\r\n";

Lo único que me quedaría por preguntarte es esto: cuando envía la información, la página se me pone en blanco (se borra el formulario y no queda nada en pantalla). Cómo hago para que quede el formulario en pantalla o, al menos, cómo puedo redireccionarlo hacia otro lugar en donde le agradezca haber enviado el mail y haya la posibilidad de clickear un link y volver a la página?
Aún sin esta respuesta que te solicito ahora, ya me tenés como un ferviente agradecido.
Martín.
  #10 (permalink)  
Antiguo 05/02/2005, 18:29
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 20 años, 11 meses
Puntos: 2
Has algo así

Código PHP:
<? 
$asunto 
"Aca pone el ASunto del email"
$mensaje 
<html> 
<head> 
<title>EL TITULO QUE QUIERAS</title> 
</head> 
<body> 
<p><font size="2" face="Verdana">Nombre: <b>'
.$_POST['nombre'].'</b></font></p> 
<p><font size="2" face="Verdana">eMail: <b>'
.$_POST['mail'].'</b></font></p> 
<p><font size="2" face="Verdana">Curso: <b>'
.$_POST['curso'].'</b></font></p> 
</body> 
</html> 
'

$email="[email protected]"
$cabeceras  "MIME-Version: 1.0\r\n"
$cabeceras .= "Content-type: text/html; charset=iso-8859-1\r\n"
$cabeceras .= "From: ".$_POST['nombre']." <".$_POST['mail'].">\r\n"
mail($email$asunto$mensaje$cabeceras);
echo 
'
<center> Gracias por tu consulta </center>
<META HTTP-EQUIV="Refresh" content = "3; URL=tupagina.html">
'
;

?>
cambia el tupagina.html por la pagina a la que quieras que se redireccione (en teoria, el home del sitio). Eso hace que salga un "gracias por tu consulta" y se redireccione automaticamente a los 3 segundos...

PD: copia el codigo tal cual lo puse, ahi corregui el error de la linea 18 que te mandaba, habia puesto dos $$ ;P.
__________________
I Love Programming...
  #11 (permalink)  
Antiguo 06/02/2005, 09:08
 
Fecha de Ingreso: abril-2004
Mensajes: 35
Antigüedad: 20 años
Puntos: 0
Funcionó perfecto, mil gracias (nuevamente).
Saludos.
Martín.
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 07:02.