在我的 html 站点上显示 php 文件的输出(回显)

Show the output (echo) of a php file on my html site

所以我的问题如下:

我有这个 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> 中的文本形式的联系表格?

如果是 - 我该怎么做?

是的,将您的消息设置在一个变量中,例如 $message,然后通过呈现 index.php 检查一个简单的 if 条件

<div class="status"><? if(isset($message)) echo $message?></div>

如果您想使用 header 并发送值,您可以在 index.php

中使用 $_GET[]

如果我答对了,为什么不将文件设为 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>