0
recaptcha를 사용하는 기본 문의 양식이 있으며 다소 유용합니다. 필드 유효성 검사, captcha 유효성 검사가 있고 그것은 내 DB에 게시하지만 내 페이지가 INSERT 후에 새로 고칩니다. 여기 내 JS가있다 : 여기페이지를 새로 고침하지 않고 ajax를 사용하여 mysql 테이블에 데이터 삽입
function validateCaptcha()
{
challengeField = $("input#recaptcha_challenge_field").val();
responseField = $("input#recaptcha_response_field").val();
var html = $.ajax({
type: "POST",
url: "ajax.recaptcha.php",
data: "recaptcha_challenge_field=" + challengeField + "&recaptcha_response_field=" + responseField,
async: false
}).responseText;
if(html == "success") {
processForm();
} else {
$('#wrongCaptcha').fadeIn().delay('5000').fadeOut();
return false;
}
}
function processForm(){
var contactForm = $('#contactUsForm');
if (!$('#senderName').val() || !$('#senderEmail').val() || !$('#senderComments').val()) {
('#incompleteMessage').fadeIn().delay('5000').fadeOut();
} else {
var answer = $.ajax({
url: "processContact.php?ajax=true",
type: contactForm.attr('method'),
data: contactForm.serialize(),
async: false,
success: submitFinished
});
}
}
function submitFinished(response) {
response = $.trim(response);
if (response == "success") {
//$('#successMessage').fadeIn().delay('2000').fadeOut();
$('#senderName, #senderEmail, #senderComments').val("");
return false;
} else {
alert('errororoer');
//$('#failureMessage').fadeIn().delay('5000').fadeOut();
}
}
을 그리고 내 PHP의
define("RECIPIENT_NAME", "Chris Tate");
define("RECIPIENT_EMAIL", "[email protected]");
define("EMAIL_SUBJECT", "Visitor Message");
// Read the form values
$success = false;
$senderName = isset($_POST['senderName']) ? preg_replace("/[^\.\-\' a-zA-Z0-9]/", "", $_POST['senderName']) : "";
$senderEmail = isset($_POST['senderEmail']) ? preg_replace("/[^\.\-\_\@a-zA-Z0-9]/", "", $_POST['senderEmail']) : "";
$senderComments = isset($_POST['senderComments']) ? preg_replace("/(From:|To:|BCC:|CC:|Subject:|Content-Type:)/", "", $_POST['senderComments']) : "";
// If all values exist, send the email
if ($senderName && $senderEmail && $senderComments) {
$senderName = mysql_real_escape_string($senderName);
$senderEmail = mysql_real_escape_string($senderEmail);
$senderComments = mysql_real_escape_string($senderComments);
$con = mysql_connect('localhost', 'root', 'root');
if(!$con) { $success = "error"; }
mysql_select_db('mf_db', $con);
$sql="INSERT INTO emailData (senderName, senderEmail, senderComments) VALUES ('$senderName', '$senderEmail', '$senderComments')";
if(!mysql_query($sql,$con)) {
$success = "error";
} else {
$recipient = RECIPIENT_NAME . " <" . RECIPIENT_EMAIL . ">";
$headers = "From: " . $senderName . " <" . $senderEmail . ">";
$success = mail($recipient, EMAIL_SUBJECT, $senderComments, $headers);
}
mysql_close($con);
}
if (isset($_GET["ajax"])) {
echo $success ? "success" : "error";
} else { ... I cut the rest off b/c it's just some html.
둘 다 작동하지 않습니다. ( – Chris
나는 지치고, 정말로, 매우 지쳤습니다. 버튼 대신 제출을 사용했습니다 ... # sleepyProgramming Thanks – Chris