【问题标题】:Alert message on sending email not showing up发送电子邮件的警报消息未显示
【发布时间】:2021-04-06 19:44:36
【问题描述】:

在通过单击发送消息按钮发送电子邮件时,应显示一个警报框,但它没有出现,既不显示查询已成功发送,也不显示未发送电子邮件我不知道我要去哪里错误的。请帮我解决这个问题。 任何帮助都将是非常可观的。我附上我的contact.php 代码和mail.php 代码的一部分。 谢谢你

contact.php

<form id="contact-form" method="POST" action="mail.php">
                    <div class="row">
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>Name</label>
                                <input class="form-control" name="name" id="name" placeholder="" type="text" required>
                            </div>
                        </div>
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>Email</label>
                                <input class="form-control" name="email" id="email" placeholder="" type="email" required>
                            </div>
                        </div>
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>Subject</label>
                                <input class="form-control" name="subject" id="subject" placeholder="" required>
                            </div>
                        </div>
                    </div>
                    <div class="form-group">
                        <label>Message</label>
                        <textarea class="form-control" name="message" id="message" placeholder="" rows="10" required></textarea>
                    </div>
                    <div class="text-right"><br>
                    
                        <button class="btn btn-primary solid blank button"  id="btn" type="submit" value="submit" name="submit">Send Message</button>
                    
                    </div>
    
                </form>

邮件.php

<?php
if (isset($_POST['submit'])){

$to = "contact@imatrixautomation.com";
$name = $_POST['name'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$message .="\r\n from: $email";


if(mail ($to, $subject, $name,  $message)){
    echo "<script>alert('Enquiry sent successfully!');</script>";
   
}
    else
    {
    echo "<script>alert('Mail was not sent. Please try again later');</script>";
    }
}


header('Location: https://imatrixautomation.com/contact.php');
exit;

?>

【问题讨论】:

标签: php html email phpmailer


【解决方案1】:

替换

<button class="btn btn-primary solid blank button"  id="btn" type="submit" value="submit" name="submit">Send Message</button>

<input class="btn btn-primary solid blank button"  id="btn" type="submit" value="submit" name="submit">

【讨论】:

    【解决方案2】:

    你应该给你的按钮添加名字

    <button class="btn btn-primary solid blank button"  id="btn" name="submit" type="submit" value="submit">Send Message</button>
    

    同样,当您通过更改标题进行重定向时,它不会向您显示警报,因为警报在不同的页面上。

    试试这个代码

    <form id="contact-form" method="POST" action="">
    <div class="row">
        <div class="col-md-4">
            <div class="form-group">
                <label>Name</label>
                <input class="form-control" name="name" id="name" placeholder="" type="text" required>
            </div>
        </div>
        <div class="col-md-4">
            <div class="form-group">
                <label>Email</label>
                <input class="form-control" name="email" id="email" placeholder="" type="email" required>
            </div>
        </div>
        <div class="col-md-4">
            <div class="form-group">
                <label>Subject</label>
                <input class="form-control" name="subject" id="subject" placeholder="" required>
            </div>
        </div>
    </div>
    <div class="form-group">
        <label>Message</label>
        <textarea class="form-control" name="message" id="message" placeholder="" rows="10" required></textarea>
    </div>
    <div class="text-right"><br>
        
        <button class="btn btn-primary solid blank button"  id="btn" name="submit" type="submit" value="submit">Send Message</button>
    
    </div>
    </form>
    

    然后在下面写你的 php 代码在同一个文件中

    <?php
    if(isset($_POST['submit'])) {
    
    $to = "contact@imatrixautomation.com";
    $name = $_POST['name'];
    $email = $_POST['email'];
    $subject = $_POST['subject'];
    $message = $_POST['message'];
    $message .= "\r\n from: $email";
    
    
    if(mail($to, $subject, $name, $message)) {
        echo "<script>alert('Enquiry sent successfully!');</script>";
        
    }
    else {
        echo "<script>alert('Mail was not sent. Please try again later'); 
              </script>";
      }
    }
    ?>
    

    【讨论】:

    • 我添加了 name 属性但仍然无法正常工作
    • @Soumya 我已经更新了代码,请检查
    【解决方案3】:

    在contact.php文件中

    name="submit" 缺少提交按钮。

    这一行应该是:

    <button class="btn btn-primary solid blank button"  id="btn" type="submit" name="submit" value="submit">Send Message</button>
                    
    

    说明: 目前的

    if (isset($_POST['submit'])){   
    

    由于 POST['submit'] 为空,因此始终评估为 FALSE,因此它在 header() 处继续...

    ################

    试试这个代码作为 mail.php 并告诉我们会发生什么;-)

    <?php
    if (isset($_POST['submit'])){
        
        echo "submit is set to {$_POST['submit']} and now we send the email<br>";
    
    $to = "contact@imatrixautomation.com"; 
    $name = $_POST['name'];
    $email = $_POST['email'];
    $subject = $_POST['subject'];
    $message = $_POST['message'];
    $message .="\r\n from: $email";
    
    
    if(mail ($to, $subject, $name,  $message)){
        echo "Enquiry sent successfully!<br>";
       
    }
        else
        {
        echo "Mail was not sent. Please try again later<br>";
        }
    } else{
    
    echo"submit is not set<br>"; 
    }
    
    echo "after the if condition";
    
    
    exit;
    
    ?> 
    

    这里我有新的contact.php 文件 - 只需复制粘贴即可

    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Unbenanntes Dokument</title>
    </head>
    
    <body>
        
    <form id="contact-form" method="POST" action="mail.php">
                        <div class="row">
                            <div class="col-md-4">
                                <div class="form-group">
                                    <label>Name</label>
                                    <input class="form-control" name="name" id="name" placeholder="" type="text" required>
                                </div>
                            </div>
                            <div class="col-md-4">
                                <div class="form-group">
                                    <label>Email</label>
                                    <input class="form-control" name="email" id="email" placeholder="" type="email" required>
                                </div>
                            </div>
                            <div class="col-md-4">
                                <div class="form-group">
                                    <label>Subject</label>
                                    <input class="form-control" name="subject" id="subject" placeholder="" required>
                                </div>
                            </div>
                        </div>
                        <div class="form-group">
                            <label>Message</label>
                            <textarea class="form-control" name="message" id="message" placeholder="" rows="10" required></textarea>
                        </div>
                        <div class="text-right"><br>
                        
                            <button class="btn btn-primary solid blank button"  id="btn" type="submit" name ="submit" value="submit">Send Message</button>
                        
                        </div>
        
                    </form>    
        
    </body>
    </html>
    

    【讨论】:

    • 我添加了 name 属性但仍然无法正常工作
    • 奇怪..你能在评论中插入contact.php的代码或在上面更新吗?尝试使用标准回显“它起作用”而不是警报,以防万一您有弹出窗口阻止程序并在 if 条件的两个部分插入临时回显以查看采用哪个分支。
    • 我将您的代码准确地添加到 name 属性中,只更改了电子邮件地址并将其放在我的一台服务器上,它运行良好。我刚收到电子邮件;-) 可能是 mail.php 脚本有问题,因此中止并出现错误 500?什么都没有显示??
    • 我编辑了我的帖子以插入一些代码以减少可能出现的问题的数量。请试试这个。可能的问题:在客户端或服务器上不允许 Javascript 弹出窗口 - 弹出窗口阻止程序/AdBlocker - 不允许 JS - mail() 不起作用 - 如果可能,它会查看您的服务器日志以查看您是否有任何致命错误
    • 显示:- if 条件后未设置提交
    猜你喜欢
    • 2021-11-05
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多