Php 从多步骤表单发送电子邮件提交

Php 从多步骤表单发送电子邮件提交,php,forms,email,submit,multi-step,Php,Forms,Email,Submit,Multi Step,我正在尝试创建一个多步骤表单,每次提交表单时都会向我发送一封电子邮件。该表单完全有效,但不会向我发送电子邮件。我使用的代码确实适用于我所做的另一个测试,其中表单不是多步骤表单 以下是我使用的代码: <form <?php error_reporting(E_ALL); if(isset($_POST['submit'])){ $name=$_POST['name'];

我正在尝试创建一个多步骤表单,每次提交表单时都会向我发送一封电子邮件。该表单完全有效,但不会向我发送电子邮件。我使用的代码确实适用于我所做的另一个测试,其中表单不是多步骤表单

以下是我使用的代码:

<form <?php
          error_reporting(E_ALL);
          if(isset($_POST['submit'])){
                        $name=$_POST['name'];
                        $email=$_POST['email'];
                        $phone=$_POST['phone'];
                        $message=$_POST['message'];

                        $to='email@email.com'; // Receiver Email ID, Replace with your email ID
                        $subject='Form Submission';
                        $message="Name :".$name."\n"."Email :".$email."\n"."Phone :".$phone."\n"."Wrote the following :"."\n\n".$message;
                        $headers="From: ".$email;

                        if(mail($to, $subject, $message, $headers)){
                            echo "<h1>Sent Successfully! Thank you"." ".$name.", We will contact you shortly!</h1>";
                        }
                        else{
                            echo "Something went wrong!";
                        }
                    }
                ?> method="post" name="form" class="form-box">

        <div class="step step-1 active">
            <div class="form-group">
                <label for="name">Name</label>
                <input type="text" id="name" name="name">
            </div><br>
            <button type="button" class="next-btn">Next</button>
        </div>

        <div class="step step-2">
            <div class="form-group">
                <label for="email">Email</label>
                <input type="email" id="email" name="email">
            </div><br>
            <div class="form-group">
                <label for="phone">Phone Number</label>
                <input type="number" id="phone" name="phone">
            </div>
            <button type="button" class="prev-btn">Previous</button>
            <button type="button" class="next-btn">Next</button>
        </div>

        <div class="step step-3">
            <div class="form-group">
                <label for="message">Message</label>
                <textarea name="message" class="message-box" placeholder="Enter Your Message Here..."></textarea>
                <!--                    <input type="text" id="message" name="message">-->
            </div>
            <button type="button" class="prev-btn">Previous</button>
            <button type="submit" name="submit" value="Send" class="submit-btn">Submit</button>
        </div>

    </form>
method=“post”name=“form”class=“form box”>
名称

下一个 电子邮件
电话号码 以前的 下一个 消息 以前的 提交

提前谢谢,我希望有人能帮我弄明白。

为什么你的PHP代码在
元素中?@brombier说了什么,你不应该在表单提交后而不是在发送到客户端之前发送电子邮件(在将响应发送到客户端/浏览器之前,PHP在服务器上执行)既然你似乎想从表单中发送数据?@brombier我被要求将所有内容都放在同一个文件中。我把它放在那里是因为如果不是这样的话,你可以把php文件的动作放在那里,这样的话,它可以在一个普通的页面上工作@MagnusEriksson您建议将代码放在哪里而不是
元素中?HTML(和CSS/JavaScript)是客户端,PHP是服务器端。当您在表单
action
中放置URL时,所做的只是告诉浏览器应该将数据发送到哪个URL(作为对服务器的新请求)。不能在HTML中的操作中使用内联PHP。如果必须将它们放在同一个文件中(奇怪的要求),那么在开始输出HTML之前放置PHP是很常见的。但是它应该在下一页,而不是当前页上(因为此时尚未提交表单,所以您的
$\u POST
-数组将不包含任何数据)。这是否回答了您的问题?