所以我的问题如下:
我有这个用于联系表单的php文件:
<?php
/* [VERIFY CAPTCHA FIRST] */
$secret = 'xxxxxxxxxxxxxxxxxxxxxxxxx';
$url = "https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=".$_POST['g-recaptcha-response'];
$verify = json_decode(file_get_contents($url));
/* [PROCESS YOUR FORM] */
if ($verify->success) {
$to = "xxxxxxxxxxxxxxxxx";
$subject = "Kontakt Website";
$message = "Name - " . $_POST['name'];
$message .= "\nEmail - " . $_POST['email'];
$message .= "\Message - " . $_POST['message'];
if (@mail($to, $subject, $message)) {
echo "Message sent!";
} else {
echo "Nachricht konnte nicht gesendet werden!";
}
} else {
header("Location: index.html#contactline");
echo "Invalid captcha";
exit;
}
?>
然后这是我的index.html里面的表单:
<section>
<form method="post" action="contact.php">
<div class="row gtr-50">
<div class="col-6 col-12-small">
<input type="text" name="name" id="contact-name" placeholder="Name" />
</div>
<div class="col-6 col-12-small">
<input type="text" name="email" id="contact-email" placeholder="E-Mail" />
</div>
<div class="col-12">
<textarea name="message" id="contact-message" placeholder="Nachricht" rows="4"></textarea>
</div>
<div class="g-recaptcha" data-sitekey="xxxxxxxxxxxx" data-theme="dark"></div>
<div class="col-12_Submit">
<ul class="actions">
<li><input type="submit" class="style1" value="Senden" /></li>
<li><input type="reset" class="style2" value="Zurücksetzen" /></li>
</ul>
</div>
<div class="status"></div>
</div>
</form>
</section>
所以我的问题是有可能获得php文件的回声,如“Message sent”或“Invalid Captcha”并在我的index.html上显示它,例如在我点击提交按钮后在<div class="status"></div>
中的联系表单下显示文本?
如果是的话 - 我怎么能这样做?
如果我的问题是正确的,为什么不把文件变成php文件而不是html文件,因为php文件可以输出html。所以你的index.html应该是index.php然后包含你的邮件的php脚本,也为脚本中的消息创建一个空变量,并在每个条件下给它一个值。但是不要回应它,回声应该在html页面上完成。
$msg="";
if(@mail($to, $subject, $message){
$msg=="message has been sent";
}
else{
$msg="not sent";
}
然后在您想要显示文本的html div中执行此操作
<?php
include "messages_script.php;
?>
<section>
<form method="post" action="contact.php">
<div class="row gtr-50">
<div class="col-6 col-12-small">
<input type="text" name="name" id="contact-name" placeholder="Name" />
</div>
<div class="col-6 col-12-small">
<input type="text" name="email" id="contact-email" placeholder="E-Mail" />
</div>
<div class="col-12">
<textarea name="message" id="contact-message" placeholder="Nachricht" rows="4"></textarea>
</div>
<div class="g-recaptcha" data-sitekey="xxxxxxxxxxxx" data-theme="dark"></div>
<div class="col-12_Submit">
<ul class="actions">
<li><input type="submit" class="style1" value="Senden" /></li>
<li><input type="reset" class="style2" value="Zurücksetzen" /></li>
</ul>
<?php echo $msg; ?>
</div>
<div class="status"></div>
</div>
</form>
</section>
是的,将消息设置为变量,例如$ message,然后通过渲染index.php检查简单的if条件
<div class="status"><? if(isset($message)) echo $message?></div>
如果你想使用标题和发送值,你可以在index.php中使用$ _GET []