在我的 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>
所以我的问题如下:
我有这个 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>