PHP - no funciona mi formulario de envio

   
Vista:

no funciona mi formulario de envio

Publicado por jhonatan (4 intervenciones) el 31/03/2016 01:34:11
hola que tal necesito ayuda con un formulario de envio, el problema aparecio cuando lo separe en 2 columnas ya que asi lo requeria, antes estaba en una sola columna y me funcionaba perfecto pero por alguna razon con 2 columnas no me funciona, ayudar porfa.

HTML

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<div class="col-md-3">
<form name="contactform" method="post" action="../php/cotizar.php" style="margin-top:20px;">
<label style="padding-top:15px;" for="first_name">Nombre</label> <input type="text" name="first_name">
<label style="padding-top:15px;" for="last_name">Apellido</label> <input type="text" name="last_name">
<label style="padding-top:15px;" for="email">Email</label> <input type="text" name="email" style="position:relative; left:10px;">
<label style="padding-top:15px;" for="telephone">Telefono</label> <input type="text" name="telephone">
<br />
</div>
</center>
<div class="col-md-6" style="margin-top:20px;">
<label style="padding-top:15px;" for="message">Mensaje</p><textarea name="message" rows="10" cols="60" style="width:100%;"></textarea><br />
<br />
<a href="../php/cotizar.php"><input type="button" value="Enviar" style="background-color:#006cb6; border-radius:5px;; border:none; width:200px; height:40px; color:#FFF; font-size:14px;"></a>
</form>
</div>
</div>
</section>




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
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
<?php
if(isset($_POST['email'])) {
 
    // Edita las dos líneas siguientes con tu dirección de correo y asunto personalizados
 
    $email_to = "
 micorreo@correo.com";
 
    $email_subject = "Tu Asunto de correo";
 
    function died($error) {
 
        // si hay algún error, el formulario puede desplegar su mensaje de aviso
 
        echo "Lo sentimos, hubo un error en sus datos y el formulario no puede ser enviado en este momento. ";
 
        echo "Detalle de los errores.<br /><br />";
 
        echo $error."<br /><br />";
 
        echo "Porfavor corrija estos errores e inténtelo de nuevo.<br /><br />";
        die();
    }
 
    // Se valida que los campos del formulairo estén llenos
 
    if(!isset($_POST['first_name']) ||
 
        !isset($_POST['last_name']) ||
 
        !isset($_POST['email']) ||
 
        !isset($_POST['telephone']) ||
 
        !isset($_POST['message'])) {
 
        died('Lo sentimos pero parece haber un problema con los datos enviados.');
 
    }
 //En esta parte el valor "name" nos sirve para crear las variables que recolectaran la información de cada campo
 
    $first_name = $_POST['first_name']; // requerido
 
    $last_name = $_POST['last_name']; // requerido
 
    $email_from = $_POST['email']; // requerido
 
    $telephone = $_POST['telephone']; // no requerido 
 
    $message = $_POST['message']; // requerido
 
    $error = "";
 
//En esta parte se verifica que la dirección de correo sea válida 
 
   $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
 
  if(!preg_match($email_exp,$email_from)) {
 
    $error_message .= 'La dirección de correo proporcionada no es válida.<br />';
 
  }
 
//En esta parte se validan las cadenas de texto
 
    $string_exp = "/^[A-Za-z .'-]+$/";
 
  if(!preg_match($string_exp,$first_name)) {
 
    $error_message .= 'El formato del nombre no es válido<br />';
 
  }
 
  if(!preg_match($string_exp,$last_name)) {
 
    $error_message .= 'el formato del apellido no es válido.<br />';
 
  }
 
  if(strlen($message) < 2) {
 
    $error_message .= 'El formato del texto no es válido.<br />';
 
  }
 
  if(strlen($error) > 0) {
 
    died($error_message);
 
  }
 
//A partir de aqui se contruye el cuerpo del mensaje tal y como llegará al correo
 
    $email_message = "Contenido del Mensaje.\n\n";
 
 
 
    function clean_string($string) {
 
      $bad = array("content-type","bcc:","to:","cc:","href");
 
      return str_replace($bad,"",$string);
 
    }
 
 
 
    $email_message .= "Nombre: ".clean_string($first_name)."\n";
 
    $email_message .= "Apellido: ".clean_string($last_name)."\n";
 
    $email_message .= "Email: ".clean_string($email_from)."\n";
 
    $email_message .= "Teléfono: ".clean_string($telephone)."\n";
 
    $email_message .= "Mensaje: ".clean_string($message)."\n";
 
 
//Se crean los encabezados del correo
 
$headers = 'From: '.$email_from."\r\n".
 
'Reply-To: '.$email_from."\r\n" .
 
'X-Mailer: PHP/' . phpversion();
 
@mail($email_to, $email_subject, $email_message, $headers);
 
?>
 
 
 
<!-- incluye aqui tu propio mensaje de Éxito-->
 
Gracias! Nos pondremos en contacto contigo a la brevedad
 
 
<?php
 
}
header ("location: ../index.html");
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

no funciona mi formulario de envio

Publicado por DAVID (129 intervenciones) el 31/03/2016 09:46:31
Hola buenas,
¿pero que error te da?

Un saludo,
David
soluciones web
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

no funciona mi formulario de envio

Publicado por jhonatan (4 intervenciones) el 31/03/2016 18:24:58
no me envia ningun correo, lleno los datos pero no llega ningun correo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

no funciona mi formulario de envio

Publicado por xve (5515 intervenciones) el 31/03/2016 10:13:40
Hola Jonathan, prueba a poner el <form ...> y el </form> fuera de los <div>... es decir, que los <div> que utilizas para las dos columnas estén fuera de los <div>...</div>

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

no funciona mi formulario de envio

Publicado por DAVID (129 intervenciones) el 01/04/2016 09:30:48
Hola,
Para probar cual puede ser el error, comenta la linea donde mandas el mail, y pon un echo del $email_message, $headers y así ves si es problema de alguna comilla o algo parecido.

Un saludo,
David
estudio de diseño grafico
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Felix

no funciona mi formulario de envio

Publicado por Felix (17 intervenciones) el 02/04/2016 19:07:47
Saludos!

A ver, en principio veo varios errores en el código html donde tienes el formulario. Tratare de decirte cuales comentado el código.

HTML

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<div class="col-md-3">
<form name="contactform" method="post" action="../php/cotizar.php" style="margin-top:20px;">
<label style="padding-top:15px;" for="first_name">Nombre</label> <input type="text" name="first_name">
//no estas cerrando las etiquetas input.
<label style="padding-top:15px;" for="last_name">Apellido</label> <input type="text" name="last_name">
<label style="padding-top:15px;" for="email">Email</label> <input type="text" name="email" style="position:relative; left:10px;">
//este input deberia ser de tipo "mail".
<label style="padding-top:15px;" for="telephone">Telefono</label> <input type="text" name="telephone">
<br />
 
</div> // sin duda alguna esa separación de "div's" esta afectando el correcto funcionamiento del formulario.
</center>
<div class="col-md-6" style="margin-top:20px;">
 
<label style="padding-top:15px;" for="message">Mensaje</p><textarea name="message" rows="10" cols="60" style="width:100%;"></textarea><br />
// Aquí luego de la palabra "Mensaje" existe un "</p> que no tiene sentido alguno.
<br />
<a href="../php/cotizar.php"><input type="button" value="Enviar" style="background-color:#006cb6; border-radius:5px;; border:none; width:200px; height:40px; color:#FFF; font-size:14px;"></a>
// Aquí estas usando un enlace para ir a la pagina del codigo php y no un boton de tipo "submit" que es lo que te garantiza el envio de los datos del formulario.
</form>
</div>
</div>
</section>

En todo caso lo recomendable es que los estilos los separes en un archivo .css para de esta manera tu código este mejor organizado y sea más legible.

A continuación tu código un poco mejorado con las sugerencia que te hice.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<div class="col-md-3">
<form name="contactform" method="post" action="../php/cotizar.php" style="margin-top:20px;">
<label style="padding-top:15px;" for="first_name">Nombre</label> <input type="text" name="first_name" />
<label style="padding-top:15px;" for="last_name">Apellido</label> <input type="text" name="last_name" />
<label style="padding-top:15px;" for="email">Email</label> <input type="mail" name="email" style="position:relative; left:10px;" />
<label style="padding-top:15px;" for="telephone">Telefono</label> <input type="text" name="telephone" />
<br>
<br/>
<label style="padding-top:15px;" for="message">Mensaje<textarea name="message" rows="10" cols="60" style="width:100%;"></textarea>
<br/>
<br/>
<input type="submit" value="Enviar" style="background-color:#006cb6; border-radius:5px;; border:none; width:200px; height:40px; color:#FFF; font-size:14px;" />
</form>
</div>

Prueba y comenta como te fue.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

no funciona mi formulario de envio

Publicado por jhonatan (4 intervenciones) el 04/04/2016 16:52:41
muchas gracias aprecio tu ayuda me sirvió mucho y esta funcionando excelente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar