Created
August 14, 2014 19:44
-
-
Save gabrysiak/4b12d2cee1ccb3d0ce64 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// PHP | |
// Email Submit | |
if ( isset($_POST['email']) && isset($_POST['name']) && isset($_POST['text']) && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) ) { | |
// detect & prevent header injections | |
$test = "/(content-type|bcc:|cc:|to:)/i"; | |
foreach ( $_POST as $key => $val ) { | |
if ( preg_match( $test, $val ) ) { | |
exit; | |
} | |
} | |
// send email | |
// replace YC email account with client account for production: [email protected] | |
mail( "[email protected]", "Biagio Contact Form: ".$_POST['name'], $_POST['text'], "From:" . $_POST['email'] ); | |
} | |
// JQUERY | |
// Contact Form | |
$("#contact_form").submit(function(e){ | |
e.preventDefault(); | |
var | |
name = $("input[name=name]").val(), | |
email = $("input[name=email]").val(), | |
text = $("textarea").val(), | |
dataString = $(this).serialize(); | |
if (isValidEmail(email) && (name.length > 0) && (text.length > 0) ){ | |
$.ajax({ | |
type: "POST", | |
url: "inc/contact.php", | |
data: dataString, | |
success: function(){ | |
console.log(dataString); | |
$('#contact_form').hide('slow'); | |
$('.success').fadeIn(1000); | |
} | |
}); | |
} else{ | |
$("input, textarea").each(function() { | |
var element = $(this); | |
element.removeClass('error'); | |
if (element.val().length < 1) { | |
element.addClass('error'); | |
} | |
}); | |
if(!isValidEmail(email)) { | |
$("input[name=email]").addClass('error'); | |
} | |
} | |
return false; | |
}); | |
function isValidEmail(emailAddress) { | |
var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i); | |
return pattern.test(emailAddress); | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment