PHP - Formulario de contacto

   
Vista:

Formulario de contacto

Publicado por Daniel (2 intervenciones) el 20/01/2015 18:24:16
Buenas tardes,

Tengo un pequeño problema con un formulario de contacto bastante simple, lo extraño es que cuando lo pruebo funciona durante 3-4 consultas y de repente deja de funcionar he revisado ya varias veces el codigo y no veo nada extraño, agradecería si alguien me podría echar un cable ya que soy muy novato en este tema.

El codigo del formulario de contacto es el siguiente:

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
<form role="form" id="contact-form" name="contact-form" method="post" action="send.php" class="contact-form">
    <div class="form-group col-md-6">
        <label class="sr-only" for="exampleInputEmail1">Your Name: *</label>
        <input required type="text" class="form-control" id="name" name="name" placeholder="Tu Nombre: *">
    </div>
    <div class="form-group col-md-6">
        <label class="sr-only" for="exampleInputEmail1">Email: *</label>
        <input required type="email" class="form-control" id="email" name="email" placeholder="Email: *">
    </div>
    <div class="clearfix"></div>
    <div class="form-group">
        <select required name="tipo" value="" id="tipo">
            <option value="Que me visite un comercial/asesor">Que me visite un comercial/asesor</option>
            <option selected="selected" value="Presupuesto p&aacute;gina web">Presupuesto página web</option>
            <option value="Presupuesto posicionamiento en buscadores">Presupuesto posicionamiento en buscadores</option>
            <option value="Presupuesto mantenimiento web">Presupuesto mantenimiento web</option>
            <option value="Presupuesto programación intranet">Presupuesto programación intranet</option>
            <option value="Dominio">Dominio</option>
            <option value="Hosting">Hosting</option>
            <option value="Consulta administrativa">Consulta administrativa</option>
            <option value="Otros">Otros</option>
        </select>
    </div>
    <div class="form-group">
        <textarea required class="form-control" id="message" name="message" rows="5" placeholder="Mensaje: *"></textarea>
    </div>
    <input id="submit-button" type="submit" class="btn btn-lg btn-info" value="Enviar">
</form>

al final del formulario tiene el script:
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
<script src="js/bootstrap.min.js"></script>
<script type="text/javascript">
            function send_special_order() {
                var data1 = $('#name').val();
                var data2 = $('#tipo').val();
                var data3 = $('#email').val();
                var data4 = $('#message').val();
        $.ajax({
			type: "POST",
			url: "send.php",
			dataType : "json",
			data: ( {"name" : data1, "tipo" : data2, "email" : data3,"message" : data4} ) ,
			   success: function() {
 
			   },
                           complete: function(){
                                $('#feedback').append('<p>Gracias por contactar con nosotros, nos pondremos en contacto con usted en la mayor brevedad.</p><p>Tus datos:</p>\n\
                                <ul>\n\
                                    <li>Name: <b>' + data1 + '</b></li>\n\
                                    <li>Email: <b>' + data3 + '</b></li>\n\
                                    <li>tipo: <b>' + data2 + '</b></li>\n\
                                    <li>Message: <b>' + data4 + '</b></li>\n\
                                </ul>\n\
                                <p>Si necesita cambiar su informacion, pulse el boton:\n\
                                <p><a href="#" id="send-more" class="btn btn-lg btn-info">editar informacion</a></p>');
                                $('#contact-form').slideUp();
                                $('#send-more').click(function(e){
                                    e.preventDefault()
                                    $('#contact-form').slideDown();
                                    $('#feedback').html('');
                                });
                           }
        });
}
            $('#contact-form').submit(function() {
                send_special_order();
                return false;
            });
        </script>

el send.php es el siguiente: (he quitado los datos por seguridad)

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
<? error_reporting(1);
 
$mail = "mi email";
 
if($_POST['message']) {
        $message = "<h2>Hola tienes un nuevo mensaje de ".$_SERVER['SERVER_NAME']."</h2><hr>
					<p><strong>Asunto:</strong> ".$_POST['tipo']."</p>
					<p><strong>Nombre:</strong> ".$_POST['name']."</p>
					<p><strong>Email:</strong> ".$_POST['email']."</p>
					<p><strong>Mensaje:</strong> ".$_POST['message']."</p>";
		$subject="Formulario de contacto, asunto: ".$_POST['tipo'];
		mail($mail, $subject, $message, "Content-type: text/html; charset=utf-8 \r\n");
		echo 'AAAAAAAAAAAAAAA';
}
?>
<?error_reporting( E_ALL & ~( E_NOTICE | E_STRICT | E_DEPRECATED ) ); //Aquí se genera un control de errores "NO BORRAR NI SUSTITUIR"
require_once "Mail.php"; //Aquí se llama a la función mail "NO BORRAR NI SUSTITUIR"
 
$to = ''; //Aquí definimos quien recibirá el formulario
$from = ''; //Aquí definimos que cuenta mandará el correo, generalmente perteneciente al mismo dominio
$host = ''; //Aquí definimos cual es el servidor de correo saliente desde el que se enviaran los correos
$username = ''; //Aqui se define el usuario de la cuenta de correo
$password = ''; //Aquí se define la contraseña de la cuenta de correo que enviará el mensaje
$subject = 'Prueba formulario php'; //Aquí se define el asunto del correo
$body = 'Esto es una prueba para ver si funciona'; //Aquí se define el cuerpo de correo
 
//A partir de aquí empleamos la función mail para enviar el formulario
 
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $username,
'password' => $password));
 
$mail = $smtp->send($to, $headers, $body);
 
//Una vez aquí habremos enviado el mensaje mediante el formulario
 
//El siguiente codigo muestra en pantalla un mensaje indicando que el mensaje ha sido enviado y a que cuenta ES OPCIONAL desde Acens lo incluimos para verificar que el formulario de prueba esta funcionando
 
if (PEAR::isError($mail)) {
echo("
" . $mail->getMessage() . "
");
} else {
echo "Mensaje enviado desde POA a ". $to ;
}
 
 
?>
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 de contacto

Publicado por xve (5519 intervenciones) el 20/01/2015 20:14:28
Hola Daniel ,cuando dices que deja de funcionar, exactamente a que te refieres? que es lo que no funciona el envío del 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

Formulario de contacto

Publicado por Daniel (2 intervenciones) el 21/01/2015 10:28:08
Hola Xve,

Gracias por intentar ayudarme, pues lo que deja de funcionar es el envio del correo, cuando subo los dos ficheros (contacto.html, send.php) al servidor y pruebo el formulario me envia los correos perfectamente, si lo vuelvo a intentar unas horas mas tarde deja de funcionar, es decir no me llegan los correos. Tambien he revisado que no entren en mi bandeja de spam.
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