【问题标题】:Contact form not submitting data联系表格未提交数据
【发布时间】:2015-07-21 19:44:54
【问题描述】:

我不明白出了什么问题,但我的联系表单正在运行“邮件”脚本,但没有任何 POST 数据。谁能告诉我为什么它不起作用?

index.php:

<form id="newsletter-form" class="newsletter_form" action="php/order.php" method="post">
<input id="email_newsletter" required type="text" name="or_name" placeholder="Name*"> 
<input id="email_newsletter" type="text" name="or_company" placeholder="Company Name">
<input id="email_newsletter" required type="email" name="or_email" placeholder="Email*">
<input id="email_newsletter" type="tel" name="or_tel" placeholder="Phone">
<select id="email_newsletter" required name="or_package">
    <option value="" selected disabled>Select Package*</option>
    <option value="Starter">Starter - 1 Page Site £49</option>
    <option value="Business">Business - 3 Page Site £99</option>
    <option value="Premier">Premier - 6 Page Site £179</option>
</select>
<textarea id="email_newsletter" required class="or_tarea" name="or_details" placeholder="Project Details*"></textarea>
<input type="submit" value="SUBMIT!" id="submit-button-newsletter">
</form>

order.php:

<?php
$field_name = $_POST['or_name'];
$field_company = $_POST['or_company'];
$field_email = $_POST['or_email'];
$field_tel = $_POST['or_tel'];
$field_package = $_POST['or_package'];
$field_details = $_POST['or_details'];

$mail_to = 'my@email.com'; //Change to your email
$subject = 'Enquiry from '.$field_name.' ('.$field_company.')'; //Change to your subject

$body_message = 'From: '.$field_name."\n";
$body_message .= 'Company: '.$field_company."\n";
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Phone: '.$field_tel."\n";
$body_message .= 'Package: '.$field_package."\n";
$body_message .= 'Details: '.$field_details;

$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";

$mail_status = mail($mail_to, $subject, $body_message, $headers);

?>

当然,电子邮件会发送到我的收件箱。当我填写表格并按发送时,我会收到这封空白电子邮件:

Subject;
Enquiry from  ()
Message;
From: 
Company: 
E-mail: 
Phone: 
Package: 
Details:

【问题讨论】:

  • 由于某种原因 没有显示在这个 StackOverflow 问题上,但是当我去编辑时,它就在那里。只是提醒那些认为这与问题有关的人 - 事实并非如此。
  • 可能与您的问题无关,但您有邮件头注入问题(您的表单处理器可能用于发送垃圾邮件)并且您的 html 中的 ID 属性必须是唯一的。
  • 我将您的代码复制到 PhpFiddle 中,它似乎对我有用:phpfiddle.org/lite/code/2fxm-pj1u

标签: php forms email


【解决方案1】:

作为第一步,您能否将 POST 变量回显到脚本中以确保它们确实被设置?

echo $field_name = $_POST['or_name'];

【讨论】:

    【解决方案2】:

    检查所有正在传递的 POST 变量的值。

    echo print_r($_POST,true);
    

    检查您的 PHP 错误日志以查看是否有任何警告/通知。

    无关:您是否在处理用户输入之前对其进行了清理?

    【讨论】:

    • 这应该是评论而不是答案。
    【解决方案3】:

    事实证明,尽管 HTML 和 PHP 需要清理,但它们根本不是问题。这是一个被修改过的第三方脚本,结果发现有一个附加的 JS 文件正在过滤 POST 信息。我对其进行了修改以包含新的表单输入,并且效果很好:)

    【讨论】:

    • 很高兴知道您能弄明白!发生这种情况总是很好的。 :D
    猜你喜欢
    • 2021-04-07
    • 2019-11-25
    • 1970-01-01
    • 1970-01-01
    • 2015-03-31
    • 1970-01-01
    • 2015-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多