PHP - formulario contacto

   
Vista:
Imágen de perfil de fran

formulario contacto

Publicado por fran (7 intervenciones) el 15/01/2014 19:03:49
Buenas tardes; me podeis decir, si no es mucha molestia, si veis algo anomalo en este código ya que no consigo que me funcione el formulario de contacto? ( yo no consigo encontrar el problema) Muchisimas gracias...

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
<?php
/*
* Contact Form Class
*/
 
 
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');
 
$admin_email = 'info@entre-bastidores.net'; // Your Email
$message_min_length = 5; // Min Message Length
 
 
class Contact_Form{
	function __construct($details, $email_admin, $message_min_length){
 
		$this->name = stripslashes($details['nombre']);
		$this->email = trim($details['email']);
		$this->subject = 'Contacto desde mi Website'; // Subject 
		$this->message = stripslashes($details['mensaje']);
 
		$this->email_admin = $email_admin;
		$this->message_min_length = $message_min_length;
 
		$this->response_status = 1;
		$this->response_html = '';
	}
 
 
	private function validateEmail(){
		$regex = '/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i';
 
		if($this->email == '') {
			return false;
		} else {
			$string = preg_replace($regex, '', $this->email);
		}
 
		return empty($string) ? true : false;
	}
 
 
	private function validateFields(){
		// Check name
		if(!$this->name)
		{
			$this->response_html .= '<p>Por favor, introduce tu nombre</p>';
			$this->response_status = 0;
		}
 
		// Check email
		if(!$this->email)
		{
			$this->response_html .= '<p>Por favor, introduce una dirección de Email</p>';
			$this->response_status = 0;
		}
 
		// Check valid email
		if($this->email && !$this->validateEmail())
		{
			$this->response_html .= '<p>Por favor, introduce una dirección de Email válida</p>';
			$this->response_status = 0;
		}
 
		// Check message length
		if(!$this->message || strlen($this->message) < $this->message_min_length)
		{
			$this->response_html .= '<p>Por favor, introduzca su mensaje '.$this->message_min_length.' characters</p>';
			$this->response_status = 0;
		}
	}
 
 
	private function sendEmail(){
		$mail = mail($this->email_admin, $this->subject, $this->message,
			 "From: ".$this->name." <".$this->email.">\r\n"
			."Reply-To: ".$this->email."\r\n"
		."X-Mailer: PHP/" . phpversion());
 
		if($mail)
		{
			$this->response_status = 1;
			$this->response_html = '<p>Gracias!</p>';
		}
	}
 
 
	function sendRequest(){
		$this->validateFields();
		if($this->response_status)
		{
			$this->sendEmail();
		}
 
		$response = array();
		$response['status'] = $this->response_status;
		$response['html'] = $this->response_html;
 
		echo json_encode($response);
	}
}
 
 
$contact_form = new Contact_Form($_POST, $admin_email, $message_min_length);
$contact_form->sendRequest();
 
?>
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
Imágen de perfil de xve

formulario contacto

Publicado por xve (5519 intervenciones) el 15/01/2014 20:23:41
Hola Fran pero te da algún error? o que es lo que debería de hacer y no hace?
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 fran

formulario contacto

Publicado por fran (7 intervenciones) el 15/01/2014 20:48:57
al rellenar los datos y pulsar en enviar, me salen los mensajes de advertencia como los que puse en el codigo y no me deja enviar. ( rellenando bien los campos , claro )
me salen estos mensajes:

Por favor, introduce tu nombre
Por favor, introduzca su mensaje 5 characters

Saludos.
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

formulario contacto

Publicado por xve (5519 intervenciones) el 15/01/2014 21:58:51
Hola Fran, en el código que nos muestras, parece que esta bien... nos puedes mostrar el formulario, y como llamas a esta clase para obtener los valores por $_POST?
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 fran

formulario contacto

Publicado por fran (7 intervenciones) el 16/01/2014 09:42:46
Si claro, es este:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<form id="contact-form" class="contact-form" action="_include/php/contact.php" method="post" enctype="multipart/form-data">
            	<p class="contact-name">
            		<input id="contact_name" type="text" placeholder="Nombre Completo" value="" name="name" />
                </p>
                <p class="contact-email">
                	<input id="contact_email" type="text" placeholder="Dirección Email" value="" name="email" />
                </p>
                <p class="fichero_adjunto">
                    <input id="contact_email" type="file" placeholder="archivo" value="" name="adjunto" />
                </p>
                <p class="contact-message">
                	<textarea id="contact_message" placeholder="Su Mensaje" name="message" rows="15" cols="40"></textarea>
                </p>
                <p class="contact-submit">
                	<a id="contact-submit" class="submit" href="#">Enviar Su Email</a> &nbsp  &nbsp
 
                <!--<p class="restablecer">-->
                    <input class="submit" type="reset" value="Restablecer &rarr;" />
                </p>
 
                <div id="response">
 
                </div>
            </form>
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

formulario contacto

Publicado por xve (5519 intervenciones) el 16/01/2014 13:52:30
Hola Fran, viendo el formulario, veo que no te coinciden los valores... en el formulario tienes puesto name y lka clase espera nombre... igual te pasa con el mensaje...

Revisa los nombres de las variables.
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 fran

formulario contacto

Publicado por fran (7 intervenciones) el 16/01/2014 21:32:10
Tenias razon, muchas gracias...
Una ultima cosa si fuera posible, y es que en el mismo formuario puse para poder enviar documentos adjuntos, pero no consigo que se envien. A ver si me pueden indicar como actuar par apoder hacerlo bien. Saludos...
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