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 表单不发送提交数据。但是仍然发送电子邮件和处理表格的主要内容,如果未能解决你的问题,请参考以下文章