Foros del Web » Programando para Internet » PHP »

Formulario en PHP que se manda a un correo y tiene diferentes campos

Estas en el tema de Formulario en PHP que se manda a un correo y tiene diferentes campos en el foro de PHP en Foros del Web. Hola amigos y amigas de Forosdelweb, me han encomendado hacer una cosa de la cual no tengo ni idea(no le niego nunca la ayuda a ...
  #1 (permalink)  
Antiguo 17/04/2005, 14:31
Avatar de Laura25  
Fecha de Ingreso: abril-2005
Mensajes: 121
Antigüedad: 12 años, 8 meses
Puntos: 0
Pregunta Formulario en PHP que se manda a un correo y tiene diferentes campos

Hola amigos y amigas de Forosdelweb,
me han encomendado hacer una cosa de la cual no tengo ni idea(no le niego nunca la ayuda a un amigo) ,he mirado en diferentes paginas pero no avanzo.

Os explico:
necesito hacer una web,en la que haya un formulario con campos como nombre,DNI.... y que esos datos se manden al correo que yo quiera pero a traves de la web claro.
¿Como se hace esto?


Muchas gracias por la ayuda antes de que me la deis.Me corre un poco de prisa a ver si me conseguis ayudar.
  #2 (permalink)  
Antiguo 17/04/2005, 14:46
 
Fecha de Ingreso: abril-2005
Mensajes: 287
Antigüedad: 12 años, 8 meses
Puntos: 0
Hola Laura!!

Si no tienes ni idea va a ser un poco complicado ayudarte aunque lo que debes hacer es relativamente sencillo.

Te explico:

Primero tendrás que hacer el formulario para rellenar y luego enviarlo por correo.y tu diras,como.....se hace esto??

No se si sabes algo de HTML pero el formulario lo debes hacer en HTML.
Seria algo como esto:

<html>
<head>
<title>formulario.html</title>
</head>

<body>

<form action="direccion_de_correo" method="post">

Nombre:<input type="text" name="nombre"><br>
Apellidos:<input type="text" name="apellidos"><br>
Sexo:<input type="radio" name="sexo"><br>


</body>

</html>


Aqui te he puesto algunos tipos de campos,pero hay muchos de ellos.....pero como no se lo que quieres poner en el formulario pues.....
Ante cualquier duda no dudes en volver a preguntar

Adeu
  #3 (permalink)  
Antiguo 17/04/2005, 15:03
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 13 años, 11 meses
Puntos: 2
Supongo q si preguntas en un foro de PHP, debes de querer hacerlo en este lenguaje, debes usar la funcion mail().
Un ejemplo q debes de adaptar a tus necesidades:
Código PHP:
<?
$nombre 
$_POST['nombre'];
$apellido $_POST['apellido'];
$correo $_POST['correo'];
$para "[email protected]"
/* Para enviar correo HTML, puede definir la cabecera Content-type. */
$cabeceras "Date: ".date("l j F Y, G:i")."\r\n"
$cabeceras .= "MIME-Version: 1.0\r\n";
$cabeceras .= "Content-type: text/html; charset=iso-8859-1\r\n";
/* cabeceras adicionales */
$cabeceras .= "From: de Laura <[email protected]>\r\n";
$cabeceras .= "Reply-To: [email protected]\r\n"//si quieres mandarte una copia
$cabeceras .= "To: ".$nombre." ".$apellido." <".$correo.">\r\n";
$cabeceras .= "Cc: [email protected]\r\n";
$cabeceras .= "Bcc: [email protected]\r\n";
$cabeceras .= "Return-path: [email protected]\r\n";
/* y ahora, enviarlo */
mail($para$asunto$mensaje$cabeceras) or die(__LINE__);
?>
Con esto puedes crear un archivo q se llame, por ej.: envio.php, en el formulario debes ponerle action="envio.php" o puedes hacer un solo archivo con algunos if, hay muchas opciones, la $_POST es la encargada de recibir los datos del formulario. Si no sabes absolutamente NADA de PHP, desarrolla tu formulario tal cual lo quieres (solo el formulario por favor, sin <html><head><title>, etc.) y desde ahí partiremos.
Saludos cuidate
__________________
Dios dira que esto no es justo, pero lo sera...
  #4 (permalink)  
Antiguo 17/04/2005, 16:08
Avatar de Laura25  
Fecha de Ingreso: abril-2005
Mensajes: 121
Antigüedad: 12 años, 8 meses
Puntos: 0
En primer lugar me gustaria daros las gracias a los que me habeis respondido,muchas muchas muchas gracias porque estoy en un apuro en el que me he visto metida casi sin quererlo.

En segundo lugar,de html si que se algo,pero de PHP nada.
Lo que quiero hacer es una web con un formulario que tenga unos campos que rellenan y me los envian a mi mail.
Con el dreamweaver he visto que se puede hacer,pero se abre el outlook,lo que quiero es que se mande desde la web.

Se que tengo que tener un espacio web que soporte php,hasta ahí todo claro.
Después tendré que crear un archivo llamado por ejemplo formulario.php no?
y en formulario php poner algo parecido a lo que me propone setbev pero tal y como yo lo quiero,es decir,nombre,apellidos,correo electronico,dni,comentario....

El código que ha puesto setbev lo entiendo mas o menos,pero lo de action="envio.php" no se a que se refiere.

Segun creo debe ser algo muy facil,si hay ejemplos hechos y que yo pueda modificar seria genial.



Gracias de nuevo de antemano
  #5 (permalink)  
Antiguo 17/04/2005, 17:14
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 13 años, 11 meses
Puntos: 2
archivo registro.php
Código PHP:
<?php
foreach($_POST as $nombre_campo => $valor){$asignacion "\$".$nombre_campo."='".addslashes($valor)."';";
    eval(
$asignacion);}
?>
archivo formulario.php
Código PHP:
<?php
include("registro.php");
if(
$seccion == "ingresoformulario"){
    if(!
ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]{2,200}\.[a-zA-Z]{2,6}$"$correo)){
        
header("location: formulario.php?error=si"); //chequea q el email sea valido
}elseif(empty($nombre) && empty($apellido) && empty($direccion)){ //agrega todos los campos q deseas validar es decir q los usuarios si o si ingresen
    
header("location: formulario.php?error=si");
    }else{
        
$seccion "formularioaceptado";
    }
}
?>
<?
if($seccion == "formularioaceptado"){
$para  "[email protected]";
/* asunto */
$asunto "Formulario de tu web";
/* mensaje */
$mensaje '
<html>
<head>
<title>Tu formulario</title>
</head>
<body>
<table width="680">
<tr>
<td>'
.$comentario.'
</td></tr></table>
</body>
</html>
'
;
/* Para enviar correo HTML, puede definir la cabecera Content-type. */
$cabeceras "Date: ".date("l j F Y, G:i")."\r\n"
$cabeceras .= "MIME-Version: 1.0\r\n";
$cabeceras .= "Content-type: text/html; charset=iso-8859-1\r\n";
/* y ahora, enviarlo */
mail($para$asunto$mensaje$cabeceras) or die(__LINE__);
?>
<table width="540" border="0" cellpadding="2" cellspacing="0">
<tr class="chicanegra" valign="middle">
<td>Su formulario ha sido enviado con éxito
</td></tr></table>
<?
}else{
if(
$error != ""){
?>
<table width="540" border="0" cellpadding="2" cellspacing="0">
<tr>
<td>Los datos ingresados en el formulario no son correctos.</td></tr></table>
<?
}
?>
<form name="formulariodelaura" action="formulario.php?seccion=ingresoformulario" method="post">
Su nombre:&nbsp;<input type="text" name="nombre"><br>
Su apellido:&nbsp;<input type="text" name="apellido"><br>
Su e-mail:&nbsp;<input type="text" name="correo"><br>
Su apodo:&nbsp;<input type="text" name="apodo"><br>
Su dirección:&nbsp;<input type="text" name="direccion"><br>
Su localidad:&nbsp;<input type="text" name="localidad"><br>
Su provincia:&nbsp;<input type="text" name="provincia"><br>
Su país:&nbsp;<input type="text" name="pais"><br>
Su tel.:&nbsp;<input type="text" name="tel"><br>
Su fax:&nbsp;<input type="text" name="fax"><br>
Su fecha de nacimiento.:&nbsp;
<select name="dia"><option>01</option></select>/<select name="mes"><option>enero</option></select>/<select name="ano"><option>2005</option></select><br>
Sus estudios:&nbsp;<select name="estudios"><option>Universitarios</option></select><br>
Su trabajo:&nbsp;<select name="trabajo"><option>Ama de Casa</option></select><br>
Comentario:&nbsp;<textarea name="comentario" col=2 rows=3></textarea><br>
<input type="submit" value="enviar formulario">&nbsp;<input type="reset" value="borrar todo">
</form>
<?
}
?>
__________________
Dios dira que esto no es justo, pero lo sera...
  #6 (permalink)  
Antiguo 17/04/2005, 17:59
Avatar de Laura25  
Fecha de Ingreso: abril-2005
Mensajes: 121
Antigüedad: 12 años, 8 meses
Puntos: 0
Que bien,asi da gusto entrar en su sitio.
Estos dos archivos php tienen que estar en la misma carpeta verdad?
A ver si mañana puedo probarlo a ver que tal funciona.
Y te invito a una caña por la ayuda prestada!

Mañana me pongo a tope.

Creo que tambien tendre que poner la opcion de elegir entre varias opciones en un formulario,esto es posible?

Hasta mañana y muchas gracias de antemano.
  #7 (permalink)  
Antiguo 18/04/2005, 04:37
Avatar de Laura25  
Fecha de Ingreso: abril-2005
Mensajes: 121
Antigüedad: 12 años, 8 meses
Puntos: 0
Hola de nuevo amigos y amigas de forosdelweb,
he estado investigando y creo que es mas facil hacerlo en perl que en php que se usa mas para bases de datos(ayer apenas dormi investigando esto jijiji)

El formulario ya le tengo hecho en html,
voy a hacer unas pruebas con lo que me ha pasado sebtev(gracias!)
pero si no me sale probare otra cosa.
  #8 (permalink)  
Antiguo 18/04/2005, 05:23
Avatar de Laura25  
Fecha de Ingreso: abril-2005
Mensajes: 121
Antigüedad: 12 años, 8 meses
Puntos: 0
-->Ya estoy haciendo los primeros avances con este codigo.
Ahora lo que estoy haciendo es intentar que quede bonito,a ver si hago una tabla!jijijiji

-->Una cosa,has puesto ahi algo de chicanegra
Código:
table width="540" border="0" cellpadding="2" cellspacing="0">
<tr class="chicanegra" valign="middle">
<td>Su formulario ha sido enviado con éxito
</td></tr></table>


-->Lo que necesito es que no me salga descuadrada,si no que me salga bien ordenadito,por donde lo tengo que coger?
Es decir,que salga presentable,porque en estos momentos sale "feo"


-->Otra cosa,me he bajado el editor php DzSoft PHP Editor 3.1.2
y tambien el php de php.net
Le doy a enviar formulario para ver como funciona,y me da error en la funcion mail,no se si he hecho algo mal o cuando lo suba a una web con php esto lo podre hacer o que.

-->Tambien hay una opcion para mandar correo HTML y yo no quiero que me manden nada en codigo,solo las opciones que yo les de a elegir.

Gracias por vuestra ayuda de antemano,me dijeron que en forosdelweb me ayudarian y asi esta siendo.

Última edición por Laura25; 18/04/2005 a las 05:49
  #9 (permalink)  
Antiguo 18/04/2005, 09:32
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 14 años, 1 mes
Puntos: 1
tu error en la función mail se debe a que no tienes instalado algún servidor smtp (para correo)...... explicarte la instalación creo que queda fuera de los objetivos de este tema, pero cuando lo subas a un servidor web debe funcionar correctamente.

un saludo
  #10 (permalink)  
Antiguo 18/04/2005, 09:42
Avatar de Laura25  
Fecha de Ingreso: abril-2005
Mensajes: 121
Antigüedad: 12 años, 8 meses
Puntos: 0
ok,gracias.
Ahora falta resolver las otras dudas!
  #11 (permalink)  
Antiguo 18/04/2005, 10:15
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 13 años, 11 meses
Puntos: 2
Cita:
Iniciado por Laura25
-->Ya estoy haciendo los primeros avances con este codigo.
Ahora lo que estoy haciendo es intentar que quede bonito,a ver si hago una tabla!jijijiji

-->Una cosa,has puesto ahi algo de chicanegra
Código:
table width="540" border="0" cellpadding="2" cellspacing="0">
<tr class="chicanegra" valign="middle">
<td>Su formulario ha sido enviado con éxito
</td></tr></table>


-->Lo que necesito es que no me salga descuadrada,si no que me salga bien ordenadito,por donde lo tengo que coger?
Es decir,que salga presentable,porque en estos momentos sale "feo"


-->Otra cosa,me he bajado el editor php DzSoft PHP Editor 3.1.2
y tambien el php de php.net
Le doy a enviar formulario para ver como funciona,y me da error en la funcion mail,no se si he hecho algo mal o cuando lo suba a una web con php esto lo podre hacer o que.

-->Tambien hay una opcion para mandar correo HTML y yo no quiero que me manden nada en codigo,solo las opciones que yo les de a elegir.

Gracias por vuestra ayuda de antemano,me dijeron que en forosdelweb me ayudarian y asi esta siendo.
class="chicanegra" es un estilo CSS para darle formato al texto o a las tablas, en realidad no lo debería haber puesto, pero se me pasó.
Para q te salga todo ordenadito y prolijo, deberías ver algo de HTML y CSS. Yo solo te pase PHP funcionando, no la estética, solo código. Vos sos la q deberás darle el estilo de tu sitio.
La "opción mandar correo HTML", solo indica la forma de envío del mail, puede ser texto plano o HTML. No verás el código q "te manden" pero si verás el correo q te envíen de una forma más clara y legible. Como si fuera una página web. No te preocupes y déjalo así.
Saludos cuidate
PD.: Ahi un foro de html, pregunta ahí las dudas q tengas para hacer "bonito" al formulario.
Espero un trago de caña por lo menos mujer...
__________________
Dios dira que esto no es justo, pero lo sera...
  #12 (permalink)  
Antiguo 19/04/2005, 03:15
Avatar de Laura25  
Fecha de Ingreso: abril-2005
Mensajes: 121
Antigüedad: 12 años, 8 meses
Puntos: 0
De acuerdo!
Todavía sigo trabajandolo.
  #13 (permalink)  
Antiguo 22/04/2005, 18:09
 
Fecha de Ingreso: abril-2005
Ubicación: Cádiz
Mensajes: 4
Antigüedad: 12 años, 7 meses
Puntos: 0
mmmmmm...

Puedes probar, para editar todo tipo de lenguajes un programita que mucho de ustedes conocerán... Yo particularmente uso PrimalScript, me va muy bien tíos, más que nada para hojas de estilo, pero ya os digo, sirve para muchos lenguajes :) muy sencillo.
  #14 (permalink)  
Antiguo 11/05/2005, 04:13
Avatar de Seerkan  
Fecha de Ingreso: febrero-2001
Mensajes: 61
Antigüedad: 16 años, 10 meses
Puntos: 0
¿Para que sirve "or die(__LINE__);"?

Código PHP:
mail($para$asunto$mensaje$cabeceras) or die(__LINE__); 
gracias.
__________________
***** ale, un pis y a la cama ****** ;-)
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 11:54.