Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/05/2018, 00:25
Avatar de manticore2
manticore2
 
Fecha de Ingreso: junio-2012
Mensajes: 8
Antigüedad: 11 años, 10 meses
Puntos: 0
Pregunta Adaptar formulario web con checkbox aceptacion de privacidad

Hola a todos, con la entrada de la nueva normativa GDPR estoy buscando la manera de adaptar nuestro formulario web con un checkbox donde se acepten la condiciones de uso y privacidad antes de enviar el correo.

Este es mi codigo actual:

Código HTML:
<form id="contact">
        	<br style="clear:both">
    				<div class="form-group">
						<input type="text" class="form-control" id="name" name="name" placeholder="Nombre *"/>
                    <div class="help-block with-errors"></div>
					</div>
					<div class="form-group">
						<input type="email" class="form-control" id="email" name="email" placeholder="Email *"/>
                    <div class="help-block with-errors"></div>
					</div>
					<div class="form-group">
						<input type="text" class="form-control" id="phone" name="phone" placeholder="Teléfono *"/>
                    <div class="help-block with-errors"></div>
					</div>
					<div class="form-group">
						<input type="text" class="form-control" id="asunto" name="subject" placeholder="Asunto"/>
					</div>
                    <div class="form-group">
                    	<textarea class="form-control" type="textarea" id="message"  name="message" placeholder="Mensaje" rows="7"></textarea>            
                    </div>
                    <div class="form-group">
                    	<div id="msg"></div>
                    </div>
                    <div class="pull-left">* Estos campos son obligatorios.</div>
        				<button id="submit-btn" class="btn btn-primary pull-right">Enviar Formulario</button>
        	</form> 
Código:
/* global $ */
    $(document).ready(function(){
      $('#submit-btn').click(function(event){
        event.preventDefault();
         $.ajax({
            dataType: 'JSON',
            url: 'sendmail.php',
            type: 'POST',
            data: $('#contact').serialize(),
            beforeSend: function(xhr){
              $('#submit-btn').html('ENVIANDO...');
            },
            success: function(response){
              if(response){
                console.log(response);
                if(response['signal'] == 'ok'){
                 $('#msg').html('<div class="alert alert-success">'+ response['msg']  +'</div>');
                  $('input, textarea').val(function() {
                     return this.defaultValue;
                  });
                }
                else{
                  $('#msg').html('<div class="alert alert-danger">'+ response['msg'] +'</div>');
                }
              }
            },
            error: function(){
              $('#msg').html('<div class="alert alert-danger">Ha ocurrido un error. Inténtelo más tarde.</div>');
            },
            complete: function(){
              $('#submit-btn').html('Enviar Formulario');
            }
          });
      });
    });// JavaScript Document
Código PHP:

<?php 
    
require('phpmailer/PHPMailerAutoload.php');
    
$name trim($_POST['name']);
    
$email trim($_POST['email']);
    
$phone trim($_POST['phone']);
    
$subject trim($_POST['subject']);
    
$message trim($_POST['message']);
    if(
$name != null && $email != null && $phone != null && $message != null){
        if(!
filter_var($emailFILTER_VALIDATE_EMAIL)) 
        {
            
$signal 'bad';
            
$msg 'Error. E-mail inválido, por favor compruébelo.';
        }
        else{
            
$mail = new PHPMailer;
            
            
$mail->CharSet 'UTF-8';
                        
            
$mail->From $email;
            
$mail->FromName $name;
            
            
$mail->addAddress('[email protected]');     // Add a recipient
            
$mail->addReplyTo($email$name);
  
            
$mail->isHTML(true);                                  // Set email format to HTML
            
            
$mail->Subject 'Solicitud de información - Nautica Marbella (ES)';
            
$mail->Body    'Nombre: '.$name.' <br />Teléfono: '.$phone.' <br />Asunto: '.$subject.' <br /><br />Mensaje: '.$message;
            
            if(!
$mail->send()) {
                echo 
'Error. El mensaje no pudo ser enviado.';
                echo 
'Mailer Error: ' $mail->ErrorInfo;
            } else {
                
$signal 'ok';
                
$msg '¡Mensaje enviado! Pronto nos pondremos en contacto con usted.';
            }
        }
    }
    else{
        
$signal 'bad';
        
$msg 'Error. Por favor rellene todos los campos.';
    }
    
$data = array(
        
'signal' => $signal,
        
'msg' => $msg
    
);
    echo 
json_encode($data);
?>
Mi idea es poner donde dice *Estos campos son obligatorios el checkbox con un "He leído y acepto la política de privacidad."

Decir que este codigo lo encontre en Internet y lo hice funcionar con dificultad, mi conocimiento en la materia es bastante limitado :) pero funcionamente perfectamente.

¿Alguien sería tan amable de indicarme que codigo introducir para hacer una comprobacion antes de enviar el correo de que la casilla esté marcada? Podria ser por ejemplo despues del if donde comprueba el email.

Gracias!

Última edición por manticore2; 27/05/2018 a las 00:37 Razón: error en PHP