<textarea>不通过电子邮件发送

时间:2016-01-16 17:09:15

标签: php email textarea message

&lt; p&gt;我尝试为客户创建简单的电子邮件表单,但无法获取&lt; code&gt;&lt; textarea&gt;&lt; / code&gt;作为消息发送。我已经尝试了迄今为止我发现的所有内容,但没有任何工作正常......&lt; br&gt; 这是我的代码:&lt; / p&gt; &lt; pre&gt;&lt; code&gt;&lt; h4&gt;电子邮件Al&lt; / h4&gt; &LT;表&gt; &lt; form name =&#34; contactForm&#34; ID =&#34;接触&#34;行动=&#34; send_form_email.php&#34;方法=&#34;后&#34;&GT;     &LT; TR&GT;     &LT; TD&GT;     &LT;标签&gt;名称:其中/标签&gt;     &lt; input type =&#34; text&#34;名称=&#34;名称&#34;&GT;     &LT; / TD&GT;     &LT; TD&GT;     &lt; label&gt;电子邮件地址:&lt; / label&gt;     &lt; input type =&#34; email&#34;名称=&#34;电子邮件&#34;&GT;     &LT; / TD&GT;     &LT; / TR&GT;     &LT; TR&GT;     &lt; td colspan =&#34; 2&#34;&gt;     &lt; label&gt;网站(如果有):&lt; / label&gt;     &lt; input type =&#34; text&#34;名称=&#34;网站&#34;&GT;     &LT; / TD&GT;     &LT; / TR&GT;     &LT; TR&GT;     &lt; td colspan =&#34; 2&#34;&gt;     &lt; label&gt;您的留言:&lt; / label&gt;&lt; / br&gt;     &lt; textarea for =&#34;&#34;命名=&#34;信息&#34;宽度=&#34; 100%&#34;行=&#34; 10&#34;形式=&#34;联系形式&#34;&GT;&LT; / textarea的&GT;     &LT; / TD&GT;     &LT; / TR&GT;     &LT; TR&GT;     &lt; td colspan =&#34; 2&#34;&gt;     &lt;输入类型=&#34;提交&#34; value =&#34;发送消息&#34;&gt;     &LT; / TD&GT;     &LT; / TR&GT; &LT; /形式&GT; &LT; /表&gt; &LT; /代码&GT;&LT; /预&GT; &lt; p&gt;这是index.php文件中的表单,下面是电子邮件send-email.php&lt; / p&gt; &LT;预&GT;&LT;代码&GT;&LT; PHP   $ name = $ _POST [&#39; name&#39;];   $ email = $ _POST [&#39; email&#39;];   $ website = $ _POST [&#39;网站&#39;];   $ message = $ _POST [&#39;信息&#39;];     $ email_from =&#39; myemail@gmail.com' ;;     $ email_subject = $ name。 &#34;给你发了一条消息!&#34 ;;     $ email_body =&#34;您收到来自&#34;的新消息。 $ name。 &#34;通过您的网站!\ n&#34;。                             &#34;名称:\ n $ name \ n&#34;。                             &#34;电子邮件:\ n $ email \ n&#34;。                             &#34;网站:\ n $ website \ n&#34;。                             &#34;消息:\ n $ message \ n&#34;。   $ to =&#34; clientemail@gmail.com" ;;   $ headers =&#34;来自:$ email_from \ r \ n&#34 ;;   $ headers。=&#34;回复:$ visitor_email \ r \ n&#34 ;;   邮件($到,$ EMAIL_SUBJECT,$ EMAIL_BODY,$头); function IsInjected($ str) {     $ injections = array(&#39;(\ n +)&#39;,            &#39;(\ R +)&#39 ;,            &#39;(\吨+)&#39 ;,            &#39;(%0A +)&#39 ;,            &#39;(%0D +)&#39 ;,            &#39;(08%+)&#39 ;,            &#39;(09%+)&#39;            );     $ inject = join(&#39; |&#39;,$ injections);     $ inject =&#34; / $ inject / i&#34 ;;     如果(的preg_match($注射,$ STR))     {       返回true;     }     其他     {       返回false;     } } 如果(IsInjected($ visitor_email)) {     echo&#34;糟糕的电子邮件价值!&#34 ;;     出口; } ?&GT; &LT; PHP 标题(&#34;位置:/formsubmitted.php&#34;); / *重定向浏览器* / 出口(); ?&GT; &LT; /代码&GT;&LT; /预&GT; &lt; p&gt;如果有人知道为什么会出现故障,我也很想知道!这是我自己创建的第一个消息/电子邮件php函数之一,因为我通常为wordpress开发,所以我通常只为我的客户端安装一个插件。&lt; / p&gt;

2 个答案:

答案 0 :(得分:4)

这是因为这一行: (请参阅我的脚注)

"Message:\n $message\n".

你有一个点而不是一个(结束)分号;

修改:您需要从form="contactForm"删除<textarea>。在测试时,它与邮件一起使用时没有显示。

并且错误报告会告诉你它。

存在:

  

注意:未定义的索引:信息(第8行)

  

注意:未定义的变量:visitor_email(第26和55行)

两者:

$headers .= "Reply-To: $visitor_email \r\n";

if(IsInjected($visitor_email))
您的代码中未定义

$visitor_email。您应该使用$email代替$visitor_email的所有实例。

然后您for="" <{1}}似乎不是<textarea...

中有效的语法

for=""不明确。

参考:https://developer.mozilla.org/en/docs/Web/HTML/Element/textarea

您还应该检查带有条件!empty()的空字段。

<强>脚注:

经过更深入的测试,关于我上面提到的点,我必须说明以下内容:

奇怪的是,PHP认为它是有效的语法,因为这里有一个分号并包含在这里$to = "clientemail@gmail.com";

这样做仍然是发送邮件,也包含在电子邮件中,明确没有包含在$email_body变量正文中。

因此,我的回答的第一部分在某种程度上是正确的,form="contactForm"是这里的罪魁祸首。

  • 您可能打算使用ID id="contactForm"或类class="contactForm"。两者都可以使用,并将其包含在您的邮件中。

但是,由于name="contactForm"拥有该命名属性,您将无法使用<form>

  • nameid属性都是(意味着)唯一。

答案 1 :(得分:3)

form="contactForm"移除<textarea>。我删除了它。而且,它开始工作。

替换

<textarea for="" name="information" width="100%" rows="10" form="contactForm"></textarea>

<textarea for="" name="information" width="100%" rows="10"></textarea>

或者,

根据 HTML5 ,您可以在form中使用id's input。因此,取代form="contactForm"使用form="contact"

更改

<textarea for="" name="information" width="100%" rows="10" form="contactForm"></textarea>

<textarea for="" name="information" width="100%" rows="10" form="contact"></textarea>

有关详情,请查看textarea - attributes

相关问题