无法在提交时使用消息替换表单

时间:2015-08-25 00:10:01

标签: php html forms

我创建了一个HTML5表单,其中包含了reCAPTCHA,我还编写了一个PHP脚本,在提交表单时发送电子邮件。目前,脚本将用户重定向到错误或谢谢页面,但我正在尝试调整它以动态替换同一页面内的消息中的表单。

我尝试了以下脚本,但在任何用户交互之前,它会在页面加载后立即显示消息。

PHP / HTML:

<?php
if ($_POST) {

// Load reCAPTCHA library
include_once ("autoload.php");

$name = Trim(stripslashes($_POST['name']));
$email = Trim(stripslashes($_POST['email']));
$message = Trim(stripslashes($_POST['message']));
$emailFrom = $email;
$emailTo = "my@email.com";
$subject = "Contact Request";

// Prepare email body text
$body = "<strong>Name:</strong> $name <br /> <strong>Email:</strong> $email <br /> <strong>Message:</strong> $message";

$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From: $name <$emailFrom>" . "\r\n";

$secret = 'XXX';
$recaptcha = new \ReCaptcha\ReCaptcha($secret);
$resp = $recaptcha->verify($_POST['g-recaptcha-response'],$_SERVER['REMOTE_ADDR']);

echo 'Your message was submitted!';

} else {
?>
<div class="contact-form">
    <form role="form" method="post" action="index.php">
        <label for="name"><span>Name</span><input type="text" class="input-field" name="name" required data-errormessage-value-missing="Please enter your name." /></label>
        <label for="email"><span>Email</span><input type="email" class="input-field" name="email" required data-errormessage-value-missing="Please enter your email address." /></label>
        <label for="message"><span>Message</span><textarea name="message" class="textarea-field" required data-errormessage-value-missing="Please enter your message."></textarea></label>
        <label><span>&nbsp;</span><div id="recaptcha"><div class="g-recaptcha" data-sitekey="6LcBawsTAAAAAKBPfGs1jApXNRLvR2MIPng0Fxol"></div></div></label>
        <label><span>&nbsp;</span><input type="submit" value="" class="submit-button" /></label>                  
    </form>             
</div>
<?php 
}
?>

我是PHP的新手,所以我不确定它是否是语法或语义问题。任何帮助将不胜感激!

0 个答案:

没有答案