【问题标题】:Contact form only sending certain fields联系表格仅发送某些字段
【发布时间】:2014-10-23 21:55:02
【问题描述】:

我有一个仅发送某些特定字段的联系表单,但我不完全确定原因。正在发送公司名称和位置,但未发送描述。这是下面的脚本。

PHP端:

$companyname=$_REQUEST['companyname'];
$location=$_REQUEST['location']; 
$description=$_REQUEST['description']; 
if (($companyname=="")||($location=="")||($description=="")) 
    { 
    echo "Company Name, Company Location, and Company Description are required, please fill <a href=\"\">the form</a> again."; 
    } 
else{         
    $from="From: <$email>\r\nReturn-path: $email"; 
    $subject="Company Information"; 
    mail("n.dumanov@gmail.com", $subject, $companyname, $location, $description); 

    } 
}   

HTML 表单:

  <form class="xform" id="admin_form" method="post">
  <label align = "left">Company Name *</label>
  <section class="col col-4">
    <label class="input"> <i class="icon-prepend icon-user"></i> <i class="icon-append icon-asterisk"></i>
      <input type="text" name="companyname" placeholder="Company Name">
    </label>
  </section><br>
       <label align = "left">Company's Province of Operation *</label>
  <section class="col col-4">
    <label class="input"> <i class="icon-prepend icon-user"></i> <i class="icon-append icon-asterisk"></i>
      <input type="text" name="location" placeholder="Company's Province of Operation">
    </label>
  </section><br>
       <label align = "left">Company Description *</label>
  <section class="col col-4">
    <label class="input"> <i class="icon-prepend icon-user"></i> <i class="icon-append icon-asterisk"></i>
                <textarea type="text" name="description" placeholder="Please be as specific as possible. Include information about what kind of work your company does, what sector you operate in, and the type of legal services you will require."></textarea>
    </label>
  </section><br><form>

非常感谢任何帮助!

【问题讨论】:

  • 你有五个参数传递给mail()man page 表示它接受五个参数。但是,请检查您的五个参数是否与预期的五个参数匹配。尤其是最后两个似乎没有意义。

标签: php html forms input


【解决方案1】:

使用 $_POST 获取表单数据是公认的方法,但这不是问题。您必须将消息的第三个参数传递给 mail() 函数。

这就是 mail() 的工作原理:

bool mail (string $to, string $subject, string $message [,string $additional_headers [,string $additional_parameters ] ] )

因此,如果您想将表单数据作为消息正文发送,则必须执行以下操作:

$message = $companyname." ";
$message .= $location. " ";
$message .= $description;
mail("the@mail.com",$subject,$message);

消息之外的参数是可选的,如果你像你一样设置它们,你告诉 mail() $location 是一个带有额外标题的字符串和 $description 其他可选参数。

阅读文档以获取有关标头和额外参数实际含义的更多信息:

http://php.net/manual/en/function.mail.php

【讨论】:

    【解决方案2】:

    不要使用 $_REQUEST,而是尝试在第 1,2 和 3 行对您的 PHP 使用 $_POST。

    【讨论】:

    • 获取?表格清楚地写着POST。值得怀疑的是,这会起到什么作用。
    • 它返回 bool(false)
    • 尝试从文本区域中删除 type="text"。对于那段标记来说,这不应该是必需的。
    猜你喜欢
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    • 2018-04-16
    • 1970-01-01
    • 2013-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多