gpt4 book ai didi

javascript - HTML 5 模板中使用的 PHP 联系表单,但不发送电子邮件

转载 作者:行者123 更新时间:2023-11-30 11:04:20 25 4
gpt4 key购买 nike

我有一个 contact-form.php 和一个 index.html 文件,如下所示。但是当点击提交发送电子邮件时它重新加载页面并且没有任何反应,网站的主页再次刷新。我的问题在哪里?

我看到很多 SO 链接,但找不到问题所在。我在这里附上了代码。所有这两个文件都在 PHP 服务器上的同一个文件夹中。

<!-- CONTACT FORM -->
<div class="">
<form id="contact-form" action="contact-form.php" method="POST">

<div class="row">
<div class="col-md-12 mb-30">
<!-- <label>Your name *</label> -->
<input type="text" value="" data-msg-required="Please enter your name"
maxlength="100" class="controled" name="name" id="name"
placeholder="NAME" required>
</div>
</div>

<div class="row">
<div class="col-md-12 mb-30">
<!-- <label>Your email address *</label> -->
<input type="email" value=""
data-msg-required="Please enter your email address"
data-msg-email="Please enter a valid email address" maxlength="100"
class="controled" name="email" id="email" placeholder="EMAIL"
required>
</div>
</div>

<div class="row">
<div class="col-md-12 mb-40">
<!-- <label>Message *</label> -->
<textarea maxlength="5000" data-msg-required="Please enter your message"
rows="3" class="controled" name="message" id="message"
placeholder="MESSAGE" required></textarea>
</div>
</div>

<div class="row">
<div class="col-md-12 text-center-xxs">
<input type="submit" value="SEND MESSAGE" class="button medium gray"
data-loading-text="Loading...">
</div>
</div>

</form>
<div class="alert alert-success hidden animated fadeIn" id="contactSuccess">
<strong>Success!</strong> Your message has been sent to us.
</div>

<div class="alert alert-danger hidden animated shake" id="contactError">
<strong>Error!</strong> There was an error sending your message.
</div>
</div>
</div>
</div>

</div>

</div>

<?php 
if(isset($_POST['submit'])){
$to = "bbbbb@gmail.com";
$from = $_POST['email'];
$first_name = $_POST['name'];
$subject = "Form submission";
$message = $first_name . " " . " wrote the following:" . "\n\n" . $_POST['message'];


$headers = "From:" . $from;

$mail_status= mail($to,$subject,$message,$headers);


}

if ($mail_status) { ?>
<script language="javascript" type="text/javascript">
window.location.href = 'index.html#contactSuccess';
</script>
<?php
}
else { ?>
<script language="javascript" type="text/javascript">
window.location.href = 'index.html#contactSuccess';
</script>
<?php
}
?>

最佳答案

在您的 HTML 提交按钮上命名:

<input type="submit" name="submit" value="SEND MESSAGE" class="button medium gray"
data-loading-text="Loading...">

编辑:

  1. 首先,输入您的最终 if$_POST['submit']里面if .你只会在提交时这样做,并且$mail_status仅在其中设置:

  2. 使用 $_GET参数,而不是 # ...它们用于滚动到同名 anchor 。

  3. 将 index.html 转换为 index.php 这样您就可以控制 DIV 的内容使用 PHP 显示。

$result = $_GET['result']将包含带有 ?result= 的 URL 中 = 之后的任何内容

然后

if($result == 'success') { 
?> <!-- Show Success Div --> <?php
} else {
?><!-- Show error DIV --> <?php

这是您的 PHP,更改了要使用的重定向 URL $_GET参数和 index.html转换为 PHP:

<?php
if (isset($_POST['submit'])) {
$to = "bbbbb@gmail.com";
$from = $_POST['email'];
$first_name = $_POST['name'];
$subject = "Form submission";
$message = $first_name . " " . " wrote the following:" . "\n\n" . $_POST['message'];


$headers = "From:" . $from;

$mail_status = mail($to, $subject, $message, $headers);
if ($mail_status) {
?>
<script language="javascript" type="text/javascript">
window.location.href = 'index.php?result=success';
</script>
<?php
} else {
?>
<script language="javascript" type="text/javascript">
window.location.href = 'index.php?result=failed';
</script>
<?php
}

}
?>

关于javascript - HTML 5 模板中使用的 PHP 联系表单,但不发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56283902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com