Código de PHP - Formulario de contacto con adjuntos

Imágen de perfil

Formulario de contacto con adjuntosgráfica de visualizaciones


PHP

Publicado el 3 de Febrero del 2015 por Argimiro
79.496 visualizaciones desde el 3 de Febrero del 2015
Formulario de contacto con validación, desarrollado en HTML5, PHP y CSS. Permite cargar archivo adjunto y ser enviado a email.

formulario-contacto

Requerimientos

php 5

1.0
estrellaestrellaestrellaestrellaestrella(77)

Publicado el 3 de Febrero del 2015gráfica de visualizaciones de la versión: 1.0
79.497 visualizaciones desde el 3 de Febrero del 2015
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

HMTL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
    <head xmlns="http://www.w3.org/1999/xhtml">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Rellene el formulario</title>
        <link rel="stylesheet" href="assets/estilo.css" type="text/css">
    </head>
    <body>
        <form name='formulario' class="contact_form" id='formulario' method='post' action='assets/enviar_email.php' enctype="multipart/form-data">
            <div>
                <ul>
                <li>
                    <h2>Contácto</h2>
                    <span class="required_notification">* Datos requeridos</span>
                </li>
 
 
            <li>
                <label for="name">Nombre:</label>
                <input type='text' name='Nombre' id='Nombre' placeholder="Nombre" required>
                <span class="form_hint">Formato correcto: "Nombre (s)"</span>
            </li>
            <li>
                <label for="apellidos">Apellidos:</label>
                <input type='text' name='Apellidos' id='Apellidos' placeholder="Apellidos" required>
                <span class="form_hint">Formato correcto: "Apellidos"</span>
            </li>
            <li>
            <label for="telefono">Teléfono:</label>
            <input type='text' name='Telefono' id='Telefono' placeholder="Teléfono">
            <span class="form_hint">Formato correcto: "55-5555-5555 (10 digitos)"</span>
            </li>
            <li>
                <label for="email">E-mail:</label>
                <input type='text' name='E-mail' id='E-mail' placeholder="tu@correo.com" required>
                <span class="form_hint">Formato correcto: "ejemplo@hotmail.com"</span>
            </li>
            <li>
                    <label for="message">Mensaje:</label>
                    <textarea name="mensaje" cols="40" rows="6" placeholder="Ingresa un mensaje (opcional)"></textarea>
                    <span class="form_hint">Ingresar información adicional</span>
 
                </li>
            <li>
                <label for="adjuntar archivo">Adjuntar archivo:</label>
                <input type='file' name='archivo1' id='archivo1' placeholder="carga tu boucher" required>
            </li>
            <li align='center'>
                <button class="submit" type='submit' value='Enviar formulario'>Enviar Mensaje</button>
                <button class="submit" type='reset' value='Reiniiar formulario'>Borrar Datos</button>
 
            </li>
            </ul>
        </form>
    </body>
</html>

PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?php
 
 
    function form_mail($sPara, $sAsunto, $sTexto, $sDe)
    {
 
        $bHayFicheros = 0;
        $sCabeceraTexto = "";
        $sAdjuntos = "";
        $sCuerpo = $sTexto;
        $sSeparador = uniqid("_Separador-de-datos_");
 
        $sCabeceras = "MIME-version: 1.0\n";
 
        // Recogemos los campos del formulario 
        foreach ($_POST as $sNombre => $sValor)
            $sCuerpo = $sCuerpo."\n".$sNombre." = ".$sValor;
 
        // Recorremos los Ficheros 
        foreach ($_FILES as $vAdjunto)
        {
 
            if ($bHayFicheros == 0)
            {
 
                // Hay ficheros 
 
                $bHayFicheros = 1;
 
                // Cabeceras generales del mail 
                $sCabeceras .= "Content-type: multipart/mixed;";
                $sCabeceras .= "boundary=\"".$sSeparador."\"\n";
 
                // Cabeceras del texto 
                $sCabeceraTexto = "--".$sSeparador."\n";
                $sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n";
                $sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n\n";
 
                $sCuerpo = $sCabeceraTexto.$sCuerpo;
 
            }
 
            // Se añade el fichero 
            if ($vAdjunto["size"] > 0)
            {
                $sAdjuntos .= "\n\n--".$sSeparador."\n";
                $sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";
                $sAdjuntos .= "Content-Transfer-Encoding: BASE64\n";
                $sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n";
 
                $oFichero = fopen($vAdjunto["tmp_name"], 'rb');
                $sContenido = fread($oFichero, filesize($vAdjunto["tmp_name"]));
                $sAdjuntos .= chunk_split(base64_encode($sContenido));
                fclose($oFichero);
            }
 
        }
 
        // Si hay ficheros se añaden al cuerpo 
        if ($bHayFicheros)
            $sCuerpo .= $sAdjuntos."\n\n--".$sSeparador."--\n";
 
        // Se añade la cabecera de destinatario 
        if ($sDe)$sCabeceras .= "From:".$sDe."\n";
 
        // Por último se envia el mail 
        return(mail($sPara, $sAsunto, $sCuerpo, $sCabeceras));
    }
 
        //Ejemplo de como usar: 
        if (form_mail("mailrecipiente@tudominio.com",
                                    "El nombre del remitente",
                                    "Los datos introducidos en el formulario son:\n",
                                    "tumail@tudominio.com"))
        echo "Su formulario ha sido enviado con exito";
 
        // Ejemplo de como usar, poniendo como remitente el campo pasado de E-mail 
        /* 
        if (form_mail("usuario_destino@dominio.com", 
                                    "Activación de formulario", 
                                    "Los datos introducidos en el formulario son:\n", 
                                    $_POST["E-mail"])) 
        echo "Su formulario ha sido enviado con exito"; 
        */
 
        //Argimiro Cruz.*/
 
 
?>

CSS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
/* === Remove input autofocus webkit === */
*:focus {
    outline: none;
}
 
/* === Form Typography === */
body {
    font: 13px/21px "Lucida Sans", "Lucida Grande", "Lucida Sans Unicode", sans-serif;
}
 
.contact_form h2, .contact_form label {
    font-family: Georgia, Times, "Times New Roman", serif;
}
 
.form_hint, .required_notification {
    font-size: 11px;
}
 
/* === List Styles === */
.contact_form ul {
    width: 750px;
    list-style-type: none;
    list-style-position: outside;
    margin: 0px;
    padding: 0px;
}
 
.contact_form li {
    padding: 12px;
    border-bottom: 1px solid #eee;
    position: relative;
}
 
    .contact_form li:first-child, .contact_form li:last-child {
        border-bottom: 1px solid #777;
    }
 
/* === Form Header === */
.contact_form h2 {
    margin: 0;
    display: inline;
}
 
.required_notification {
    color: #d45252;
    margin: 5px 0 0 0;
    display: inline;
    float: right;
}
 
/* === Form Elements === */
.contact_form label {
    width: 150px;
    margin-top: 3px;
    display: inline-block;
    float: left;
    padding: 3px;
}
 
.contact_form input {
    height: 20px;
    width: 220px;
    padding: 5px 8px;
}
 
.contact_form textarea {
    padding: 8px;
    width: 300px;
}
 
.contact_form button {
    margin-left: 156px;
}
 
/* form element visual styles */
.contact_form input, .contact_form textarea {
    border: 1px solid #aaa;
    box-shadow: 0px 0px 3px #ccc, 0 10px 15px #eee inset;
    border-radius: 2px;
    padding-right: 30px;
    -moz-transition: padding .25s;
    -webkit-transition: padding .25s;
    -o-transition: padding .25s;
    transition: padding .25s;
}
 
    .contact_form input:focus, .contact_form textarea:focus {
        background: #fff;
        border: 1px solid #555;
        box-shadow: 0 0 3px #aaa;
        padding-right: 70px;
    }
 
    /* === HTML5 validation styles === */
    .contact_form input:required, .contact_form textarea:required {
        background: #fff url(images/red_asterisk.png) no-repeat 98% center;
    }
 
        .contact_form input:required:valid, .contact_form textarea:required:valid {
            background: #fff url(images/valid.png) no-repeat 98% center;
            box-shadow: 0 0 5px #5cd053;
            border-color: #28921f;
        }
 
    .contact_form input:focus:invalid, .contact_form textarea:focus:invalid {
        background: #fff url(images/invalid.png) no-repeat 98% center;
        box-shadow: 0 0 5px #d45252;
        border-color: #b03535;
    }
 
/* === Form hints === */
.form_hint {
    background: #d45252;
    border-radius: 3px 3px 3px 3px;
    color: white;
    margin-left: 8px;
    padding: 1px 6px;
    z-index: 999; /* hints stay above all other elements */
    position: absolute; /* allows proper formatting if hint is two lines */
    display: none;
}
 
    .form_hint::before {
        content: "\25C0";
        color: #d45252;
        position: absolute;
        top: 1px;
        left: -6px;
    }
 
.contact_form input:focus + .form_hint {
    display: inline;
}
 
.contact_form input:required:valid + .form_hint {
    background: #28921f;
}
 
    .contact_form input:required:valid + .form_hint::before {
        color: #28921f;
    }
 
/* === Button Style === */
button.submit {
    background-color: #68b12f;
    background: -webkit-gradient(linear, left top, left bottom, from(#68b12f), to(#50911e));
    background: -webkit-linear-gradient(top, #68b12f, #50911e);
    background: -moz-linear-gradient(top, #68b12f, #50911e);
    background: -ms-linear-gradient(top, #68b12f, #50911e);
    background: -o-linear-gradient(top, #68b12f, #50911e);
    background: linear-gradient(top, #68b12f, #50911e);
    border: 1px solid #509111;
    border-bottom: 1px solid #5b992b;
    border-radius: 3px;
    -webkit-border-radius: 3px;
    -moz-border-radius: 3px;
    -ms-border-radius: 3px;
    -o-border-radius: 3px;
    box-shadow: inset 0 1px 0 0 #9fd574;
    -webkit-box-shadow: 0 1px 0 0 #9fd574 inset;
    -moz-box-shadow: 0 1px 0 0 #9fd574 inset;
    -ms-box-shadow: 0 1px 0 0 #9fd574 inset;
    -o-box-shadow: 0 1px 0 0 #9fd574 inset;
    color: white;
    font-weight: bold;
    padding: 6px 20px;
    text-align: center;
    text-shadow: 0 -1px 0 #396715;
}
 
    button.submit:hover {
        opacity: .85;
        cursor: pointer;
    }
 
    button.submit:active {
        border: 1px solid #20911e;
        box-shadow: 0 0 10px 5px #356b0b inset;
        -webkit-box-shadow: 0 0 10px 5px #356b0b inset;
        -moz-box-shadow: 0 0 10px 5px #356b0b inset;
        -ms-box-shadow: 0 0 10px 5px #356b0b inset;
        -o-box-shadow: 0 0 10px 5px #356b0b inset;
    }

Si alguno de los archivos de descarga no funciona, comentanos aquí el error.




Comentarios sobre la versión: 1.0 (77)

daniel
13 de Febrero del 2015
estrellaestrellaestrellaestrellaestrella
Que tal amigo buenas noches en verdad es un aporte muy bueno e interezante, en mi caso soy nuevo en desarrollo web por lo que mi pregunta es, si podrias explicar como hacer uso de este formulario, gracias en vdd
Responder
13 de Febrero del 2015
estrellaestrellaestrellaestrellaestrella
Hola amigo, gracias por compartir sus conocimientos, está excelente su codigo. Tengo dos consultas, como haria para que no fuera obligatorio enviar archivos adjuntos, y tambien una vez enviado el formulario que lo redirecciones a la misma página de contactos.

Muchas gracias.
Responder
Imágen de perfil
14 de Febrero del 2015
estrellaestrellaestrellaestrellaestrella
Buen día amigo, agradezco tu comentario, para no hacer forzado el envió de adjuntos, en la linea:

<input type='file' name='archivo1' id='archivo1' placeholder="carga tu boucher" required>


solo debes quitar el atributo required.

Saludos
Responder
Luis
14 de Enero del 2016
estrellaestrellaestrellaestrellaestrella
He implementado el aporte a un proyecto que estoy realizando pero, no me envía el archivo adjunto al email. no he cambiado nada del código excepto los datos de mi email.Espero tu respuesta y ayuda.

Gracias!
Responder
juan
17 de Febrero del 2015
estrellaestrellaestrellaestrellaestrella
Disculpa en el codigo php en que linea debo poner el correo al que se enviara el formulario?
Responder
Imágen de perfil
17 de Febrero del 2015
estrellaestrellaestrellaestrellaestrella
Al final del php tienes dos opciones, la segunda viene comentada para que no funcione, de acuerdo a lo que desees puedes usar cualquiera de esas dos opciones, en la primera ya asignas un correo de destino y otro de salida fijo, en el segundo toma el recurso del formulario y es con el que se enmascara. Saludos
Responder
felipe
15 de Octubre del 2016
estrellaestrellaestrellaestrellaestrella
Primero que nada gracias por el formulario.
Como agregar mas secciones de envio de archivos? es decir en ves de 1 por ejemplo 5 fotos
y si es posible programar el envio a dos emails??
Gracias
Responder
Lotus
21 de Febrero del 2017
estrellaestrellaestrellaestrellaestrella
Línea 71, si no estoy mal:

if (form_mail("[email protected]",
Responder
Imágen de perfil
20 de Febrero del 2015
estrellaestrellaestrellaestrellaestrella
Gracia amigo está perfecto tu formulario felicidades, excelente aporte, podrìas decirme como agregarle una imagen de fondo para hacerlo mas atractivo?.

Saludos.
Responder
soto
26 de Febrero del 2015
estrellaestrellaestrellaestrellaestrella
amigo para volver al html use el header('location: http://.....) en la lindea despues del echo""" , pero no me retorna , porque ?
Responder
Imágen de perfil
18 de Marzo del 2015
estrellaestrellaestrellaestrellaestrella
Hola sabes que esta genial tu aporte pero te queria pedir una ayuda, sabes que estoy tratando de crear un programa y esto es un item de eso, si no te molesta puedo ocuparlo, si es asi me podrias ayudar con el tema como hago que cuando se llene me llegue al correo porfa, es que estoy iniciando en esto, tengo nociones basicas, espero puedas ayudarme y gracias
Responder
mary
24 de Abril del 2015
estrellaestrellaestrellaestrellaestrella
muy interesante código soy nueva en esto; pero mi pregunta donde esta llamando las variables que están en el archivo html dentro el archivo .php gracias
Responder
willy chen
13 de Mayo del 2015
estrellaestrellaestrellaestrellaestrella
hola amigo muy buena tu creatividad y aporte, sabes tome todo lo que dices pero he puesto 3 veces mi correo en lo ultimo del php... y dice formulario se ha enviado con exito, pero nunca me llega nada al correo.. de verdad te agradezco si me ayudas por favor
Responder
willy chen
13 de Mayo del 2015
estrellaestrellaestrellaestrellaestrella
si me lo puedes hacer personalizado tal cual como lo tienes.. con mi correo [email protected] y enviarmelo alli.

se le sabria agradecer.

Dios te Bendiga
Responder
willy chen
13 de Mayo del 2015
estrellaestrellaestrellaestrellaestrella
hermano tambien me sale esto:
cuando cambio el correo aunque sigue sin llegar a mi correo la informacion


function form_mail($sPara, $sAsunto, $sTexto, $sDe)
{
Responder
Edgar Ricardo
9 de Mayo del 2017
estrellaestrellaestrellaestrellaestrella
Lo lograste?, me puedes ayudar?
Responder
Andres
14 de Mayo del 2015
estrellaestrellaestrellaestrellaestrella
Gracias brother!, excelente codigo, funciona de maravilla!
Responder
Andres Orduz
15 de Mayo del 2015
estrellaestrellaestrellaestrellaestrella
Willy chen tienes que declarar las variables que llegan del formulario.

Ejemplo:
$sPara = $_POST['email'];
$sAsunto = $_POST['asunto'];
$sTexto = $_POST['sTexto'];
$sDe = $_POST['quienenvia'];

function form_mail($sPara, $sAsunto, $sTexto, $sDe)
{//aqui va lo que quieras hacer de mas!
mail($sPara, $sAsunto, $sCuerpo, $sCabeceras); }
Responder
maria
17 de Julio del 2015
estrellaestrellaestrellaestrellaestrella
copie el codigo llega al correo pero asi llega
nombre = sgf
profesion = hfdgh
celular = fghf
email = dfgh
adjunto = PLANILLA.pdf
subir =


no adjunta archivo solo coloca el nombre
Responder
Luis
20 de Julio del 2015
estrellaestrellaestrellaestrellaestrella
Buena publicación me gustaria que realices un formulario del mismo tipo solo que agregando restricciones de texto, asi como: la edad, fecha de nacimiento, cantidad de archivos que puede enviar un usuario y eso, gracias.
Responder
Juan Garcia
9 de Agosto del 2015
estrellaestrellaestrellaestrellaestrella
Hola muchas gracias funciona de maravilla y lo he personalizado con fechas de nacimiento en el boostrap necesitaba la carga de archivos esta muy bueno
Gracias
Responder
9 de Septiembre del 2015
estrellaestrellaestrellaestrellaestrella
Hola, Amigo me gustaría que me ayudaras sacándome de un gran apuro,
Mira yo quiero cambiarle la variable de
<input type='file' name='archivo1' id='archivo1' placeholder="carga tu boucher" required>

Me gustaria que sea asi:
<input type='file' name='archivo1[]' id='archivo1[]' placeholder="carga tu boucher" required>

Poniéndole al ID y Name "[]"
porque lo estoy haciendo combinado que guarde en DB Y Correo pero el DB ya lo tengo con ese input emtc no me envia el archivo adjunto.
De antemano muchas gracias de verdad me sacarías de un gran apuro.
Responder
Rakel
25 de Noviembre del 2015
estrellaestrellaestrellaestrellaestrella
Excelente el código y claramente explicado. Pero me da un fallo a la hora de subir archivos, sólo me deja subir archivos .jpg

Necesito que se puedan subir archivos de Word. Puede ayudarme, Argimiro?

Muchísimas gracias.
Responder
david
3 de Mayo del 2018
estrellaestrellaestrellaestrellaestrella
a mi tampoco me deja enviar archivos .doc de word
Responder
Gervasio
10 de Septiembre del 2019
estrellaestrellaestrellaestrellaestrella
Hola, y supiste como hacer para enviar .doc? me ayudas
Responder
DARZ
14 de Enero del 2016
estrellaestrellaestrellaestrellaestrella
Si quisiera poner otro archivo adjunto, como lo hago... Muchas Gracias
Responder
Ali
30 de Marzo del 2016
estrellaestrellaestrellaestrellaestrella
¿Donde es que va el correo a donde llega el formulario?
Responder
Andrés Eduardo García Márquez
14 de Mayo del 2016
estrellaestrellaestrellaestrellaestrella
ya descubri el punto que falta al código gracias por todo [email protected]
Responder
Imágen de perfil
12 de Febrero del 2018
estrellaestrellaestrellaestrellaestrella
Hola.. Podrias compartir tu allazgos, por fabor..
Responder
alejandro
24 de Mayo del 2016
estrellaestrellaestrellaestrellaestrella
He copiado el código tal cual y me llegan al correo todos los campos que deseo, menos el archivo adjunto.

¿Pueden decir por qué no recibo los archivos adjuntos?

Un saludo, gracias.
Responder
9 de Junio del 2016
estrellaestrellaestrellaestrellaestrella
Gracias, lo he probado y todo funciona muy bien, lo unico es que si cambio "[email protected]" por mi direccion email real, ya no recibo nada, si dejo "[email protected]" funciona correctamente.

Otra cosa, como puedo cambiar para que no aparezca la informacion de telefono 55-55555 etc,
Responder
Everardo
30 de Junio del 2016
estrellaestrellaestrellaestrellaestrella
al realizar la carga al servidor u mandar el correo sale el error Not Found [CFN #0005]

alguien que me pueda apoyar
Responder
Laura
23 de Septiembre del 2016
estrellaestrellaestrellaestrellaestrella
Hola Everardo , de casualidad supiste por que te sale este error... yo no tengo este codigo pero yo hice un formulario y en el hosting donde esta hospedado mi cliente le sale ese error, y yo tengo un hosting diferente y no tengo ese problema.
Responder
Pedro
14 de Julio del 2016
estrellaestrellaestrellaestrellaestrella
El código me ha ido genial, lo he ampliado con otros campos y funciona a la mil maravillas.
Lo que me ocurre es que, aún estando los campos en "required", si no rellenas nada en ese campo se envía igualmente. Todo lo demás me ha funcionado perfecto.
Muchas gracias
Responder
Diego
10 de Mayo del 2017
estrellaestrellaestrellaestrellaestrella
Loco, cómo vas? Podrías ayudarme con una cosa? Es que no sé cómo añadir más campos al formulario para subir archivos en el php. El html y el css ya lo tengo. ah y cómo hago para subir otros archivos?

Mil gracias!

Saludo

Diego
Responder
David Gonzalez
19 de Julio del 2016
estrellaestrellaestrellaestrellaestrella
Todo funciona correctamente, el problema que me ocurre es que al abrir el correo el archivo adjunto no se puede visualizar (en el caso de imagenes) y los pdf no se abren, dice que es un archivo corrupto, muchas gracias.
Responder
lisbesbeth
25 de Julio del 2016
estrellaestrellaestrellaestrellaestrella
funciona, pero mi pregunta solo envia a un correo :

//Ejemplo de como usar:
if (form_mail("[email protected]",
"El nombre del remitente",
"Los datos introducidos en el formulario son:\n",
"[email protected]"))
echo "Su formulario ha sido enviado con exito";

si quiero enviar a diferentes correos como hago sin estar cambiando el dodigo que te muestro adelante
Responder
ssd
2 de Agosto del 2016
estrellaestrellaestrellaestrellaestrella
No ha dejado ningún comentario
Responder
LUIS
1 de Septiembre del 2016
estrellaestrellaestrellaestrellaestrella
Hola , me gustaría saber como puedo agregar dos ficheros , que dos archivos se manden , gracias por tu ayuda , saludos
Responder
daniel
14 de Septiembre del 2016
estrellaestrellaestrellaestrellaestrella
buenas amigo. excelente aporte. me gustaria que el formulario le llegara a 3 destinatarios y poder enviar mas archivos adjuntos. desde ya gracias
Responder
Dagon
16 de Septiembre del 2016
estrellaestrellaestrellaestrellaestrella
Hola estimados amigos, todo esta muy bien pero me gustaria colocar un formulario igual a este en blogger, alguien podria ayudarme, muchas gracias.
Responder
Imágen de perfil
7 de Diciembre del 2016
estrellaestrellaestrellaestrellaestrella
Hola, me salen unos bullets al lado de cada campo, como los puedo eliminar.

Gracias increíble aporte!
Responder
sil
10 de Diciembre del 2016
estrellaestrellaestrellaestrellaestrella
Hola. Me preguntaba cómo se coloca el correo al que quieres que se envíen los datos en el html. ¡Gracias!
Responder
manuel castro
30 de Diciembre del 2016
estrellaestrellaestrellaestrellaestrella
muy buen aporte recien lo logre realizar lo intente varias veces. mi error era subir todos los arcchivos a lamisca carpeta del servidor.. y debi haber creado la carpeta assets y alli subir el archivo .php y el css y en la carpeta inicial el index.html y claro cambiar los correos dode dice quq los cambie osea en ell php
Responder
manuel castro
31 de Diciembre del 2016
estrellaestrellaestrellaestrellaestrella
muy buen aporte recien lo logre realizar lo intente varias veces. mi error era subir todos los arcchivos a lamisca carpeta del servidor.. y debi haber creado la carpeta assets y alli subir el archivo .php y el css y en la carpeta inicial el index.html y claro cambiar los correos dode dice quq los cambie osea en ell php
Responder
Jonnatan
9 de Enero del 2017
estrellaestrellaestrellaestrellaestrella
Excelente aporte lo eh probado y me funciona súper bien pero me gustaría cambiar el asunto por un cuadro del formulario es decir nombre en el asunto y que no salga nada de correo solo el nombre de quién relleno elmfomulario me podrías ayudar con eso
Responder
Kevin
17 de Enero del 2017
estrellaestrellaestrellaestrellaestrella
Excelente. Una consulta, como podria adjuntar y enviar más de un archivo?.

Gracias ;)
Responder
Robert
27 de Febrero del 2017
estrellaestrellaestrellaestrellaestrella
Excelente tu formulario pero una consulta cuando yo envia como puedo hacer para que retorne a la misma web de antemano gracias.
Responder
Antonio
4 de Marzo del 2017
estrellaestrellaestrellaestrellaestrella
Hola amigo, excelente tu formulario y lo implemente en página web con varias modificaciones.
Me gustaría poder escoger y ordenar los campos que me va enviar desde el PHP ( y que me tome todos los campos y en el orden del formulario que si entiendo bien es lo expuesto en:
// Recogemos los campos del formulario
foreach ($_POST as $sNombre => $sValor)
$sCuerpo = $sCuerpo."\n".$sNombre." = ".$sValor;)

y además, poder enviar el adjunto a un segundo correo.

Te agradezco la colaboración, saludos
Responder
Miguel Corona
26 de Marzo del 2017
estrellaestrellaestrellaestrellaestrella
Hola, he revisado tu formulario y me ha gustado tengo una pagina web hecha en frontpage y lo quiero incluir pero no se como ya que se me distorsiona los campos, te agradecería si me puedes ayudar en este aspecto y si tengo tu autorización para incluirlo en mi pagina.
cordiales saludos.........
Responder
Yube
10 de Abril del 2017
estrellaestrellaestrellaestrellaestrella
Excelente!!! Muchas Gracias... exactamente lo que buscaba...
Responder
Mar
26 de Abril del 2017
estrellaestrellaestrellaestrellaestrella
Excelente el aporte. Me funciona de maravilla, pero me gustaría que en los correos que recibo apareciera la cuenta de correo de la persona que me envía el formulario en Asunto el nombre de la misma y no se cómo hacerlo.

Muchas gracias
Responder
david
4 de Mayo del 2017
estrellaestrellaestrellaestrellaestrella
hola. excelente aportacion. un 10. es posible cambiar el color de la letra de nombre, email, etc...y ponerla en blanco? tengo un fondo oscuro y no se ve muy bien pero no consigo hacerlo. Gracias
Responder
valentina
18 de Mayo del 2017
estrellaestrellaestrellaestrellaestrella
Excelente muchas gracias

solo tengo una pregunta extra ya que me funcionó excelente

Quiero poder dirigir el php de entrega a dos correos nosé como ?

//Ejemplo de como usar:
if (form_mail("[email protected]",
"El nombre del remitente",
"Los datos introducidos en el formulario son:\n",
"[email protected]"))
echo "Su formulario ha sido enviado con exito";

// Ejemplo de como usar, poniendo como remitente el campo pasado de E-mail
/*
if (form_mail("[email protected]",
"Activación de formulario",
"Los datos introducidos en el formulario son:\n",
$_POST["E-mail"]))
echo "Su formulario ha sido enviado con exito";
*/

//Argimiro Cruz.*/


muchas gracias
Responder
juamor
7 de Junio del 2017
estrellaestrellaestrellaestrellaestrella
Magnifico aporte, pero al enviar los datos, no me pone correctos los caracteres especiales, como por ejemplo, las eñes y os acentos. Alguna solución?
Gracias
Responder
Imágen de perfil
28 de Junio del 2017
estrellaestrellaestrellaestrellaestrella
Hola! Ante todo felicitaciones por el aporte, realmente muy bueno, tan solo tendría una pregunta para realizarte.
Mi intencion es que cuando finalice el envio del formulario, a través de enviar_mail.php, me redireccione a otra pagina dentro de mi web y no lo puedo hacer, podrías ayudarme con eso? saludos!
Responder
6 de Julio del 2017
estrellaestrellaestrellaestrellaestrella
Gracias por su voluntad de compartir y ayudar argimiro, me sirvio mucho tu codigo y estoy en proceso de adaptarlo a necesidades particulares, ya que veo algunos preguntando quiero aportar a unas lineas, las cuales deben pegar reemplazando la linea 75 del .php (borren la linea 75 y peguen) espero les sirva.
Nota: Mi gente el codigo esta muy bueno, el caso es que tienen un formulario totalmente funcional y el asunto es de adaptarlo a necesidades particulares las cuales le corresponden a cada uno.

{ ?>
<script language="javascript" type="text/javascript">
alert('Gracias por su mensaje. Estaremos respondiendo su mensaje en el menor tiempo posible.');
window.location = 'paginahaciadondedeseasredirecconar.html';
</script>
<?php
}
else { ?>
<script language="javascript" type="text/javascript">
alert('El mensaje no se envío, por favor intente nuevamente o envie un mensaje a [email protected]');
window.location = 'paginadelformulario.html';
</script>
<?php
}
Responder
harvey
23 de Febrero del 2018
estrellaestrellaestrellaestrellaestrella
Oye amigo, se que fué hace rato que posteaste esto, pero necesito un favor, tu aporte fué de lo máximo,gracias, sin embargo recibo el correo pero no viene con el adjunto, qué puede suceder?
Responder
Jean
7 de Julio del 2017
estrellaestrellaestrellaestrellaestrella
y si quiero limitar que solo suban archivos pdf y .doc con x cantidad de peso? y opciones multiupload?
Responder
Joaco
6 de Octubre del 2017
estrellaestrellaestrellaestrellaestrella
Hola, una pregunta, Por que cuando le doy enviar, me abre el código PHP?
Responder
Eric
12 de Enero del 2018
estrellaestrellaestrellaestrellaestrella
Oye amigo una pregunta por que me llega la informacion a la bandeja de correo no deseado, como puedo cambiar eso?
Alguien seria tan amable de decirme gracias!
Responder
Pedro
11 de Abril del 2018
estrellaestrellaestrellaestrellaestrella
Muchas gracias por el aporte, va genial el formulario.

Pero tengo un problema con los archivos adjunto. Sólo me deja adjuntar un total de aproximadamente 7,4Mb y desde el servicio de Hosting me dicen que el limite de envío de mail de este tipo es de 10 Mb.

Supongo que se tendrá que modificar alguna cosa aquí, pero no se exactamente que seria.

// Se añade el fichero
if ($vAdjunto["size"] > 0)

He probado con esto, para tener un limite de envío de 25 Mb, pero tampoco funciona.
if ($vAdjunto["size"] > 0 && $vAdjunto["size"] < 26214400 )
Responder
webmaster de argentina
29 de Junio del 2018
estrellaestrellaestrellaestrellaestrella
Excelente aporte, me fue muy útil para un proyecto web que se requeria adjuntos en el formulario web. Muchas Gracias !
Responder
Leonardo
2 de Julio del 2018
estrellaestrellaestrellaestrellaestrella
Espero pueda ayudarme: El formulario está excelente! y funciona OK! pero tengo sucece que, cuando completo el Email del Formulario, si no pongo un correo que funcione dentro de MI SERVIDOR el correo no llega y segundo al responder.... me responde a mi mismo... Alguién puede ayudarme? Muchas Grcias
Responder
wilber sanchez
22 de Agosto del 2018
estrellaestrellaestrellaestrellaestrella
Hola que tal, muy buen aporte amigo, me sirvio mucho para una seccion que tenia que hacer en una pagina web. Como complemento, pondria que para que este código sirva es necesario tenerlo en un hosting, o en un servidor local con una aplicacion SMTP para poder recibir los correos. Buen aporte, Saludos.
Responder
luis
21 de Enero del 2019
estrellaestrellaestrellaestrellaestrella
hola muy buen aporte, pero al momento de enviar me dice lo siguiente:
Warning: mail(): Failed to connect to mailserver at "smtp.gmail.com" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() que debo hacer? lei que en el php.ini de xampp hay que cambiar esos datos pero intente con otro mailserver y otro puerto y no se envia
Responder
josefa
21 de Enero del 2019
estrellaestrellaestrellaestrellaestrella
tengo algunos problemas con mi ficha. en algunos celulares sale error de formato que no se pueden adjuntar las fotos. sabes cual podria ser el problema este es el codigo que estoy usando para adjuntar las fotos en el formulario : <h4>ADJUNTAR FOTOGRAFÍAS</h4>
<p>Rostro<br /> [file* rostro limit:50000000 filetypes:jpg|png] </p>
<p>Figura Completa<br /> [file* figuracompleta limit:50000000 filetypes:jpg|png] </P>
<p>[submit "ENVIAR FICHA"]</p>
Responder
Michael
5 de Abril del 2019
estrellaestrellaestrellaestrellaestrella
Buenas tardes, los archivos a mi servidor funciona normal pero cuando doy clic en enviar mensaje no llega nada a mi correo y ya hice la configuración del correo de destino. Espero su pronta respuesta. Gracias
Responder
Michael
5 de Abril del 2019
estrellaestrellaestrellaestrellaestrella
Es el mismo código con correo cambiado:

<?php


function form_mail($sPara, $sAsunto, $sTexto, $sDe)
{

$bHayFicheros = 0;
$sCabeceraTexto = "";
$sAdjuntos = "";
$sCuerpo = $sTexto;
$sSeparador = uniqid("_Separador-de-datos_");

$sCabeceras = "MIME-version: 1.0\n";

// Recogemos los campos del formulario
foreach ($_POST as $sNombre => $sValor)
$sCuerpo = $sCuerpo."\n".$sNombre." = ".$sValor;

// Recorremos los Ficheros
foreach ($_FILES as $vAdjunto)
{

if ($bHayFicheros == 0)
{

// Hay ficheros

$bHayFicheros = 1;

// Cabeceras generales del mail
$sCabeceras .= "Content-type: multipart/mixed;";
$sCabeceras .= "boundary=\"".$sSeparador."\"\n";

// Cabeceras del texto
$sCabeceraTexto = "--".$sSeparador."\n";
$sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n";
$sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n\n";

$sCuerpo = $sCabeceraTexto.$sCuerpo;

}

// Se añade el fichero
if ($vAdjunto["size"] > 0)
{
$sAdjuntos .= "\n\n--".$sSeparador."\n";
$sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";
$sAdjuntos .= "Content-Transfer-Encoding: BASE64\n";
$sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n";

$oFichero = fopen($vAdjunto["tmp_name"], 'rb');
$sContenido = fread($oFichero, filesize($vAdjunto["tmp_name"]));
$sAdjuntos .= chunk_split(base64_encode($sContenido));
fclose($oFichero);
}

}

// Si hay ficheros se añaden al cuerpo
if ($bHayFicheros)
$sCuerpo .= $sAdjuntos."\n\n--".$sSeparador."--\n";

// Se añade la cabecera de destinatario
if ($sDe)$sCabeceras .= "From:".$sDe."\n";

// Por último se envia el mail
return(mail($sPara, $sAsunto, $sCuerpo, $sCabeceras));
}

//Ejemplo de como usar:
if (form_mail("[email protected]",
"El nombre del remitente",
"Los datos introducidos en el formulario son:\n",
"[email protected]"))
echo "Su formulario ha sido enviado con exito";

// Ejemplo de como usar, poniendo como remitente el campo pasado de E-mail
/*
if (form_mail("[email protected]",
"Activación de formulario",
"Los datos introducidos en el formulario son:\n",
$_POST["E-mail"]))
echo "Su formulario ha sido enviado con exito";
*/

//Argimiro Cruz.*/


?>
Responder
Michael Aizprua
17 de Mayo del 2019
estrellaestrellaestrellaestrellaestrella
Que tal amigo, mira a mi me funciona perfecto el codigo, pero me di cuenta que solo a hotmail no llegan los correos, funciona con correos de cpanel, zoho mail, gmail, yahoo mail, pero a hotmail no llega, no se si sea algo en la configuracion del servidor, revisa eso con tu proveedor, o en tal caso con hotmail, realmente no sabria decirte ya que no encuentro aun el porque no llega solo a hotmail
Responder
Michael
17 de Mayo del 2019
estrellaestrellaestrellaestrellaestrella
Hola amigo, tu codigo me sirvio de maravillas, pero como le implemente mi propio estilo y diseño, al implementarle esto, el input para adjuntar el archivo, tambien cambió, permitiendome poder adjuntar multiples archivos, pero al enviar solo me adjunta 1 de los multiples archivos, me podrias ayudar en que parte del codigo configuro esto para que si me envie varios adjuntos y no solo uno? gracias de antemano, para que veas como me quedó te dejo un link donde estoy haciendo esta prueba, por cierto lo configure para que el correo se envie al mismo destinatario asi que lo puedes revisar por tu cuenta www.polimedios.com/testform
Responder
Gervasio
10 de Septiembre del 2019
estrellaestrellaestrellaestrellaestrella
Hola, como se tiene q hacer para que permita adjuntar archivos .doc
gracias
Responder
Andy
13 de Noviembre del 2019
estrellaestrellaestrellaestrellaestrella
Mil gracias amigo!
Responder
SAM
23 de Abril del 2020
estrellaestrellaestrellaestrellaestrella
Como quito el foreach ($_POST as $sNombre => $sValor)
$sCuerpo = $sCuerpo."\n".$sNombre." = ".$sValor;
y poner los campos por separado,
Responder
23 de Noviembre del 2020
estrellaestrellaestrellaestrellaestrella
hola amigo una consulta como puedo agregale un conjuto multiples osea quiero envia 10 fotos o mas ??
Responder
Corina
11 de Diciembre del 2020
estrellaestrellaestrellaestrellaestrella
Hola, gracias por subir el formulario.
Una pregunta si quiero que el mensaje final de respuesta cuando lo envias aparezca en la misma pantalla como hago? Gracias.
Responder
CARLOS
24 de Enero del 2021
estrellaestrellaestrellaestrellaestrella
Muchas Gracias por tu aporte Argomiro!!
de parte de Carlos Castillo de Puebla, Mexico.
Responder

Comentar la versión: 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s3029