php 表单不发送提交数据。但是仍然发送电子邮件和处理表格

Posted

技术标签:

【中文标题】php 表单不发送提交数据。但是仍然发送电子邮件和处理表格【英文标题】:php form not sending submission data. sending email and processing form still however 【发布时间】:2014-12-17 06:35:44 【问题描述】:

我的网站上有两个表格。一个工作正常,另一个使用 email_from: 等发送电子邮件,但不捕获任何表单数据。

想知道它可能是什么。如果这有助于调试,我也可以发布与它一起工作的 html 表单。非常新手和使用堆栈溢出/其他站点的构建形式。

咖啡
                    <div class="form-group">
                        <label class="col-sm-3 control-label">Quantity</label>
                        <div class="col-sm-4">
                          <input type="text" name="quantity" class="form-control" placeholder="Quantity : " required>
                        </div>
                    </div>

                    <div class="form-group">
                        <label class="col-sm-3 control-label">Name</label>
                        <div class="col-sm-6">
                          <input type="text" name="name" class="form-control" placeholder="Name : " required>
                        </div>
                    </div>

                    <div class="form-group">
                        <label class="col-sm-3 control-label">Email address</label>
                        <div class="col-sm-6">
                          <input type="email" name="email" class="form-control" placeholder="Email address : " required>
                        </div>
                    </div>

                    <div class="form-group">
                        <label class="col-sm-3 control-label">Shipping Address</label>
                        <div class="col-sm-6">
                          <textarea class="form-control" name="shipping_address" rows="8" placeholder="Shipping Address : " required></textarea>
                        </div>
                    </div>

                    <div class="form-group">
                        <label class="col-sm-3 control-label">Payment Method</label>
                        <div class="col-sm-6">
                          <select class="form-control" required>
                            <option value="Paypal">Paypal</option>
                          </select>
                        </div>
                    </div>

                    <div class="form-group">
                        <label class="col-sm-3 control-label">Notes</label>
                        <div class="col-sm-6">
                          <textarea class="form-control" name="notes" rows="8" placeholder="Notes : "></textarea>
                        </div>
                    </div>

                    <div class="form-group">
                        <div class="col-sm-offset-3 col-sm-10">
                            <button type="submit" class="btn btn-black">Order Now</button></a>
                        </div>
                    </div>
                </form>
            </div>
        </div>
    </div>
</div>

这里是php

<?php

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



 $coffee = ($_POST['coffee']));
 $quantity = ($_POST['quantity']));
 $name = ($_POST['name']));
 $email = ($_POST['email']));
 $shipping_address = ($_POST['shipping_address']));
 $notes = ($_POST['notes'])); 
 

$email_from ='paradigmcoffee@gmail.com';
$email_subject="New Order Submission";
$email_body ="You have received a new message from user $name.\n".
"Email_address:$email\n".
"Coffee: $coffee\n".
"Quantity: $quantity\n".
"Shipping_Address: $shipping_address\n".
"Notes: $notes\n".

$to ="paradigmcoffee@gmail.com";
$headers = "From: $email \r\n";

mail($to,$email_from,$email_subject,$email_body,$headers);
header("Location: http://www.paradigmcoffee.co/order_thanks.html");
?>

【问题讨论】:

你试过在你的 php 中回显 $email_body 吗,它会得到所有的字段吗? 为什么你读到的每个后置变量的末尾都有 2 个右括号?我认为这至少应该给你一个警告,如果不是错误的话。 【参考方案1】:

根据您提供的内容,您无法获取数据的原因可能是因为您没有发送任何名为 submit 的内容。尝试命名您的按钮:

<!-- name="submit" added -->
<button name="submit" type="submit" class="btn btn-black">Order Now</button>

您可以这样做或创建一个隐藏字段:

<input type="hidden" name="submit" value="1" />

【讨论】:

不完全确定具体是什么,但在删除变量上的括号并重命名“提交”按钮(我在同一目录中有另一个表单也名为“提交”)+添加隐藏输入字段后美好的。 php 似乎无法找到/调用 html 操作

以上是关于php 表单不发送提交数据。但是仍然发送电子邮件和处理表格的主要内容,如果未能解决你的问题,请参考以下文章

不使用 PHP 提交表单

成功查询后未显示成功消息,但表单数据仍然发送到DB

如何使用HTML表单发送电子邮件并使用Node.js和Gulp提交?

PHP开发之旅-提取表单提交内容发送邮件

Yii2表单验证但未提交发送电子邮件

PHP 发送邮件